packages feed

uuagc-bootstrap 0.9.40.1 → 0.9.40.2

raw patch · 20 files changed

+36116/−34888 lines, 20 filesdep −uuagc-bootstrapnew-uploaderPVP ok

version bump matches the API change (PVP)

Dependencies removed: uuagc-bootstrap

API changes (from Hackage documentation)

Files

src-derived/AG2AspectAG.hs view
@@ -563,6 +563,8 @@                             Map.findWithDefault Map.empty _chnt     _lhsIsynMap                             {-# LINE 565 "dist/build/AG2AspectAG" #-}                             )+                       ___node =+                           (Syn_Child _lhsOidCL _lhsOppCSF _lhsOppDL _lhsOppL _lhsOppLI _lhsOppR _lhsOprdInh)                    in  ( _lhsOidCL,_lhsOppCSF,_lhsOppDL,_lhsOppL,_lhsOppLI,_lhsOppR,_lhsOprdInh)))) -- Children ---------------------------------------------------- {-@@ -671,156 +673,158 @@                           _lhsOppDL =                               ({-# LINE 237 "src-ag/AG2AspectAG.ag" #-}                                _hdIppDL ++ _tlIppDL-                               {-# LINE 675 "dist/build/AG2AspectAG" #-}+                               {-# LINE 677 "dist/build/AG2AspectAG" #-}                                )                           -- use rule "src-ag/AG2AspectAG.ag"(line 481, column 31)                           _lhsOidCL =                               ({-# LINE 481 "src-ag/AG2AspectAG.ag" #-}                                _hdIidCL ++ _tlIidCL-                               {-# LINE 681 "dist/build/AG2AspectAG" #-}+                               {-# LINE 683 "dist/build/AG2AspectAG" #-}                                )                           -- use rule "src-ag/AG2AspectAG.ag"(line 816, column 34)                           _lhsOppCSF =                               ({-# LINE 816 "src-ag/AG2AspectAG.ag" #-}                                _hdIppCSF ++ _tlIppCSF-                               {-# LINE 687 "dist/build/AG2AspectAG" #-}+                               {-# LINE 689 "dist/build/AG2AspectAG" #-}                                )                           -- use rule "src-ag/AG2AspectAG.ag"(line 258, column 79)                           _lhsOppL =                               ({-# LINE 258 "src-ag/AG2AspectAG.ag" #-}                                _hdIppL >-< _tlIppL-                               {-# LINE 693 "dist/build/AG2AspectAG" #-}+                               {-# LINE 695 "dist/build/AG2AspectAG" #-}                                )                           -- use rule "src-ag/AG2AspectAG.ag"(line 258, column 112)                           _lhsOppLI =                               ({-# LINE 258 "src-ag/AG2AspectAG.ag" #-}                                _hdIppLI ++ _tlIppLI-                               {-# LINE 699 "dist/build/AG2AspectAG" #-}+                               {-# LINE 701 "dist/build/AG2AspectAG" #-}                                )                           -- use rule "src-ag/AG2AspectAG.ag"(line 412, column 79)                           _lhsOppR =                               ({-# LINE 412 "src-ag/AG2AspectAG.ag" #-}                                _hdIppR >-< _tlIppR-                               {-# LINE 705 "dist/build/AG2AspectAG" #-}+                               {-# LINE 707 "dist/build/AG2AspectAG" #-}                                )                           -- use rule "src-ag/AG2AspectAG.ag"(line 64, column 57)                           _lhsOprdInh =                               ({-# LINE 64 "src-ag/AG2AspectAG.ag" #-}                                _hdIprdInh `Map.union` _tlIprdInh-                               {-# LINE 711 "dist/build/AG2AspectAG" #-}+                               {-# LINE 713 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _hdOext =                               ({-# LINE 118 "src-ag/AG2AspectAG.ag" #-}                                _lhsIext-                               {-# LINE 717 "dist/build/AG2AspectAG" #-}+                               {-# LINE 719 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _hdOinhMap =                               ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIinhMap-                               {-# LINE 723 "dist/build/AG2AspectAG" #-}+                               {-# LINE 725 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _hdOinhNoGroup =                               ({-# LINE 54 "src-ag/AG2AspectAG.ag" #-}                                _lhsIinhNoGroup-                               {-# LINE 729 "dist/build/AG2AspectAG" #-}+                               {-# LINE 731 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _hdOo_noGroup =                               ({-# LINE 44 "src-ag/AG2AspectAG.ag" #-}                                _lhsIo_noGroup-                               {-# LINE 735 "dist/build/AG2AspectAG" #-}+                               {-# LINE 737 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _hdOo_rename =                               ({-# LINE 40 "src-ag/AG2AspectAG.ag" #-}                                _lhsIo_rename-                               {-# LINE 741 "dist/build/AG2AspectAG" #-}+                               {-# LINE 743 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _hdOppNt =                               ({-# LINE 186 "src-ag/AG2AspectAG.ag" #-}                                _lhsIppNt-                               {-# LINE 747 "dist/build/AG2AspectAG" #-}+                               {-# LINE 749 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _hdOppProd =                               ({-# LINE 191 "src-ag/AG2AspectAG.ag" #-}                                _lhsIppProd-                               {-# LINE 753 "dist/build/AG2AspectAG" #-}+                               {-# LINE 755 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _hdOsynMap =                               ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIsynMap-                               {-# LINE 759 "dist/build/AG2AspectAG" #-}+                               {-# LINE 761 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _hdOsynNoGroup =                               ({-# LINE 54 "src-ag/AG2AspectAG.ag" #-}                                _lhsIsynNoGroup-                               {-# LINE 765 "dist/build/AG2AspectAG" #-}+                               {-# LINE 767 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _tlOext =                               ({-# LINE 118 "src-ag/AG2AspectAG.ag" #-}                                _lhsIext-                               {-# LINE 771 "dist/build/AG2AspectAG" #-}+                               {-# LINE 773 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _tlOinhMap =                               ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIinhMap-                               {-# LINE 777 "dist/build/AG2AspectAG" #-}+                               {-# LINE 779 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _tlOinhNoGroup =                               ({-# LINE 54 "src-ag/AG2AspectAG.ag" #-}                                _lhsIinhNoGroup-                               {-# LINE 783 "dist/build/AG2AspectAG" #-}+                               {-# LINE 785 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _tlOo_noGroup =                               ({-# LINE 44 "src-ag/AG2AspectAG.ag" #-}                                _lhsIo_noGroup-                               {-# LINE 789 "dist/build/AG2AspectAG" #-}+                               {-# LINE 791 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _tlOo_rename =                               ({-# LINE 40 "src-ag/AG2AspectAG.ag" #-}                                _lhsIo_rename-                               {-# LINE 795 "dist/build/AG2AspectAG" #-}+                               {-# LINE 797 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _tlOppNt =                               ({-# LINE 186 "src-ag/AG2AspectAG.ag" #-}                                _lhsIppNt-                               {-# LINE 801 "dist/build/AG2AspectAG" #-}+                               {-# LINE 803 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _tlOppProd =                               ({-# LINE 191 "src-ag/AG2AspectAG.ag" #-}                                _lhsIppProd-                               {-# LINE 807 "dist/build/AG2AspectAG" #-}+                               {-# LINE 809 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _tlOsynMap =                               ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIsynMap-                               {-# LINE 813 "dist/build/AG2AspectAG" #-}+                               {-# LINE 815 "dist/build/AG2AspectAG" #-}                                )                           -- copy rule (down)                           _tlOsynNoGroup =                               ({-# LINE 54 "src-ag/AG2AspectAG.ag" #-}                                _lhsIsynNoGroup-                               {-# LINE 819 "dist/build/AG2AspectAG" #-}+                               {-# LINE 821 "dist/build/AG2AspectAG" #-}                                )                           ( _hdIidCL,_hdIppCSF,_hdIppDL,_hdIppL,_hdIppLI,_hdIppR,_hdIprdInh) =                               hd_ _hdOext _hdOinhMap _hdOinhNoGroup _hdOo_noGroup _hdOo_rename _hdOppNt _hdOppProd _hdOsynMap _hdOsynNoGroup                           ( _tlIidCL,_tlIppCSF,_tlIppDL,_tlIppL,_tlIppLI,_tlIppR,_tlIprdInh) =                               tl_ _tlOext _tlOinhMap _tlOinhNoGroup _tlOo_noGroup _tlOo_rename _tlOppNt _tlOppProd _tlOsynMap _tlOsynNoGroup+                          ___node =+                              (Syn_Children _lhsOidCL _lhsOppCSF _lhsOppDL _lhsOppL _lhsOppLI _lhsOppR _lhsOprdInh)                       in  ( _lhsOidCL,_lhsOppCSF,_lhsOppDL,_lhsOppL,_lhsOppLI,_lhsOppR,_lhsOprdInh)))) sem_Children_Nil :: T_Children sem_Children_Nil =@@ -844,44 +848,46 @@                           _lhsOppDL =                               ({-# LINE 238 "src-ag/AG2AspectAG.ag" #-}                                []-                               {-# LINE 848 "dist/build/AG2AspectAG" #-}+                               {-# LINE 852 "dist/build/AG2AspectAG" #-}                                )                           -- use rule "src-ag/AG2AspectAG.ag"(line 481, column 31)                           _lhsOidCL =                               ({-# LINE 481 "src-ag/AG2AspectAG.ag" #-}                                []-                               {-# LINE 854 "dist/build/AG2AspectAG" #-}+                               {-# LINE 858 "dist/build/AG2AspectAG" #-}                                )                           -- use rule "src-ag/AG2AspectAG.ag"(line 816, column 34)                           _lhsOppCSF =                               ({-# LINE 816 "src-ag/AG2AspectAG.ag" #-}                                []-                               {-# LINE 860 "dist/build/AG2AspectAG" #-}+                               {-# LINE 864 "dist/build/AG2AspectAG" #-}                                )                           -- use rule "src-ag/AG2AspectAG.ag"(line 258, column 79)                           _lhsOppL =                               ({-# LINE 258 "src-ag/AG2AspectAG.ag" #-}                                empty-                               {-# LINE 866 "dist/build/AG2AspectAG" #-}+                               {-# LINE 870 "dist/build/AG2AspectAG" #-}                                )                           -- use rule "src-ag/AG2AspectAG.ag"(line 258, column 112)                           _lhsOppLI =                               ({-# LINE 258 "src-ag/AG2AspectAG.ag" #-}                                []-                               {-# LINE 872 "dist/build/AG2AspectAG" #-}+                               {-# LINE 876 "dist/build/AG2AspectAG" #-}                                )                           -- use rule "src-ag/AG2AspectAG.ag"(line 412, column 79)                           _lhsOppR =                               ({-# LINE 412 "src-ag/AG2AspectAG.ag" #-}                                empty-                               {-# LINE 878 "dist/build/AG2AspectAG" #-}+                               {-# LINE 882 "dist/build/AG2AspectAG" #-}                                )                           -- use rule "src-ag/AG2AspectAG.ag"(line 64, column 57)                           _lhsOprdInh =                               ({-# LINE 64 "src-ag/AG2AspectAG.ag" #-}                                Map.empty-                               {-# LINE 884 "dist/build/AG2AspectAG" #-}+                               {-# LINE 888 "dist/build/AG2AspectAG" #-}                                )+                          ___node =+                              (Syn_Children _lhsOidCL _lhsOppCSF _lhsOppDL _lhsOppL _lhsOppLI _lhsOppR _lhsOprdInh)                       in  ( _lhsOidCL,_lhsOppCSF,_lhsOppDL,_lhsOppL,_lhsOppLI,_lhsOppR,_lhsOprdInh)))) -- Expression -------------------------------------------------- {-@@ -924,8 +930,10 @@                             _lhsOppRE =                                 ({-# LINE 478 "src-ag/AG2AspectAG.ag" #-}                                  rhsRule _lhsIppNt _lhsIppProd tks_-                                 {-# LINE 928 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 934 "dist/build/AG2AspectAG" #-}                                  )+                            ___node =+                                (Syn_Expression _lhsOppRE)                         in  ( _lhsOppRE)))) -- Grammar ----------------------------------------------------- {-@@ -1029,52 +1037,52 @@                          _nontsOo_rename =                              ({-# LINE 42 "src-ag/AG2AspectAG.ag" #-}                               rename    _lhsIoptions-                              {-# LINE 1033 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1041 "dist/build/AG2AspectAG" #-}                               )                          -- "src-ag/AG2AspectAG.ag"(line 46, column 14)                          _o_noGroup =                              ({-# LINE 46 "src-ag/AG2AspectAG.ag" #-}                               sort $ noGroup    _lhsIoptions-                              {-# LINE 1039 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1047 "dist/build/AG2AspectAG" #-}                               )                          -- "src-ag/AG2AspectAG.ag"(line 47, column 14)                          _nontsOo_noGroup =                              ({-# LINE 47 "src-ag/AG2AspectAG.ag" #-}                               _o_noGroup-                              {-# LINE 1045 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1053 "dist/build/AG2AspectAG" #-}                               )                          -- "src-ag/AG2AspectAG.ag"(line 79, column 23)                          _newAtts =                              ({-# LINE 79 "src-ag/AG2AspectAG.ag" #-}                               case _lhsIagi of                                       (_,_,atts) -> ( Map.unions . (\(a,b) -> a++b) . unzip . Map.elems) atts-                              {-# LINE 1052 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1060 "dist/build/AG2AspectAG" #-}                               )                          -- "src-ag/AG2AspectAG.ag"(line 81, column 23)                          _nontsOnewAtts =                              ({-# LINE 81 "src-ag/AG2AspectAG.ag" #-}                               _newAtts-                              {-# LINE 1058 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1066 "dist/build/AG2AspectAG" #-}                               )                          -- "src-ag/AG2AspectAG.ag"(line 87, column 23)                          _newProds =                              ({-# LINE 87 "src-ag/AG2AspectAG.ag" #-}                               case _lhsIagi of                                      (_,prods,_) -> prods-                              {-# LINE 1065 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1073 "dist/build/AG2AspectAG" #-}                               )                          -- "src-ag/AG2AspectAG.ag"(line 89, column 23)                          _nontsOnewProds =                              ({-# LINE 89 "src-ag/AG2AspectAG.ag" #-}                               _newProds-                              {-# LINE 1071 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1079 "dist/build/AG2AspectAG" #-}                               )                          -- "src-ag/AG2AspectAG.ag"(line 111, column 23)                          _nontsOnewNTs =                              ({-# LINE 111 "src-ag/AG2AspectAG.ag" #-}                               case _lhsIagi of                                       (newNTs,_,_) -> Set.difference newNTs _nontsIextendedNTs-                              {-# LINE 1078 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1086 "dist/build/AG2AspectAG" #-}                               )                          -- "src-ag/AG2AspectAG.ag"(line 126, column 25)                          _lhsOimp =@@ -1086,7 +1094,7 @@                               "import Data.HList.TypeCastGeneric1" >-<                               maybe empty ("import qualified" >#<) _lhsIext >-<                               maybe empty (\ext -> "import" >#< ext >#< ppListSep "(" ")" "," (_nontsIppDI ++ _nontsIppLI ++ _ppAI    )) _lhsIext-                              {-# LINE 1090 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1098 "dist/build/AG2AspectAG" #-}                               )                          -- "src-ag/AG2AspectAG.ag"(line 139, column 25)                          _lhsOpp =@@ -1109,19 +1117,19 @@                               (if wrappers _lhsIoptions                               then  "-- wrappers"    >-< _nontsIppW                               else  empty)-                              {-# LINE 1113 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1121 "dist/build/AG2AspectAG" #-}                               )                          -- "src-ag/AG2AspectAG.ag"(line 201, column 25)                          _nontsOderivs =                              ({-# LINE 201 "src-ag/AG2AspectAG.ag" #-}                               derivings_-                              {-# LINE 1119 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1127 "dist/build/AG2AspectAG" #-}                               )                          -- "src-ag/AG2AspectAG.ag"(line 250, column 34)                          _nontsOtSyns =                              ({-# LINE 250 "src-ag/AG2AspectAG.ag" #-}                               typeSyns_-                              {-# LINE 1125 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1133 "dist/build/AG2AspectAG" #-}                               )                          -- "src-ag/AG2AspectAG.ag"(line 299, column 25)                          _ppA =@@ -1132,7 +1140,7 @@                                 Nothing    ->  defAtt "inh" >-< defAtt "syn"                                 otherwise  ->  empty) >-<                               _nontsIppA-                              {-# LINE 1136 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1144 "dist/build/AG2AspectAG" #-}                               )                          -- "src-ag/AG2AspectAG.ag"(line 306, column 25)                          _ppAI =@@ -1144,13 +1152,13 @@                                     Nothing    ->  []                                     otherwise  ->  [ attName "inh", attName "syn", attTName "inh", attTName "syn" ]) ++                                   _nontsIppAI-                              {-# LINE 1148 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1156 "dist/build/AG2AspectAG" #-}                               )                          -- "src-ag/AG2AspectAG.ag"(line 386, column 25)                          _ppNtL =                              ({-# LINE 386 "src-ag/AG2AspectAG.ag" #-}                               _nontsIppNtL-                              {-# LINE 1154 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1162 "dist/build/AG2AspectAG" #-}                               )                          -- "src-ag/AG2AspectAG.ag"(line 387, column 25)                          _ppR =@@ -1158,28 +1166,30 @@                               ntsList "group" _ppNtL      >-<                               vlist (map (\att -> ntsList att (filterNts att _ppNtL    )) (filterAtts _newAtts _o_noGroup    ))  >-<                               _nontsIppR-                              {-# LINE 1162 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1170 "dist/build/AG2AspectAG" #-}                               )                          -- "src-ag/DistChildAttr.ag"(line 15, column 13)                          _nontsOinhMap =                              ({-# LINE 15 "src-ag/DistChildAttr.ag" #-}                               _nontsIinhMap'-                              {-# LINE 1168 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1176 "dist/build/AG2AspectAG" #-}                               )                          -- "src-ag/DistChildAttr.ag"(line 16, column 13)                          _nontsOsynMap =                              ({-# LINE 16 "src-ag/DistChildAttr.ag" #-}                               _nontsIsynMap'-                              {-# LINE 1174 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1182 "dist/build/AG2AspectAG" #-}                               )                          -- copy rule (down)                          _nontsOext =                              ({-# LINE 118 "src-ag/AG2AspectAG.ag" #-}                               _lhsIext-                              {-# LINE 1180 "dist/build/AG2AspectAG" #-}+                              {-# LINE 1188 "dist/build/AG2AspectAG" #-}                               )                          ( _nontsIextendedNTs,_nontsIinhMap',_nontsIppA,_nontsIppAI,_nontsIppCata,_nontsIppD,_nontsIppDI,_nontsIppL,_nontsIppLI,_nontsIppNtL,_nontsIppR,_nontsIppSF,_nontsIppW,_nontsIsynMap') =                              nonts_ _nontsOderivs _nontsOext _nontsOinhMap _nontsOnewAtts _nontsOnewNTs _nontsOnewProds _nontsOo_noGroup _nontsOo_rename _nontsOsynMap _nontsOtSyns+                         ___node =+                             (Syn_Grammar _lhsOimp _lhsOpp)                      in  ( _lhsOimp,_lhsOpp)))) -- HsToken ----------------------------------------------------- {-@@ -1237,38 +1247,44 @@                        (Maybe String) ->                        T_HsToken sem_HsToken_AGField field_ attr_ pos_ rdesc_ =-    (T_HsToken (let+    (T_HsToken (let ___node =+                        (Syn_HsToken)                 in  ( ))) sem_HsToken_AGLocal :: Identifier ->                        Pos ->                        (Maybe String) ->                        T_HsToken sem_HsToken_AGLocal var_ pos_ rdesc_ =-    (T_HsToken (let+    (T_HsToken (let ___node =+                        (Syn_HsToken)                 in  ( ))) sem_HsToken_CharToken :: String ->                          Pos ->                          T_HsToken sem_HsToken_CharToken value_ pos_ =-    (T_HsToken (let+    (T_HsToken (let ___node =+                        (Syn_HsToken)                 in  ( ))) sem_HsToken_Err :: String ->                    Pos ->                    T_HsToken sem_HsToken_Err mesg_ pos_ =-    (T_HsToken (let+    (T_HsToken (let ___node =+                        (Syn_HsToken)                 in  ( ))) sem_HsToken_HsToken :: String ->                        Pos ->                        T_HsToken sem_HsToken_HsToken value_ pos_ =-    (T_HsToken (let+    (T_HsToken (let ___node =+                        (Syn_HsToken)                 in  ( ))) sem_HsToken_StrToken :: String ->                         Pos ->                         T_HsToken sem_HsToken_StrToken value_ pos_ =-    (T_HsToken (let+    (T_HsToken (let ___node =+                        (Syn_HsToken)                 in  ( ))) -- HsTokens ---------------------------------------------------- {-@@ -1297,11 +1313,13 @@                      T_HsTokens ->                      T_HsTokens sem_HsTokens_Cons (T_HsToken hd_) (T_HsTokens tl_) =-    (T_HsTokens (let+    (T_HsTokens (let ___node =+                         (Syn_HsTokens)                  in  ( ))) sem_HsTokens_Nil :: T_HsTokens sem_HsTokens_Nil =-    (T_HsTokens (let+    (T_HsTokens (let ___node =+                         (Syn_HsTokens)                  in  ( ))) -- HsTokensRoot ------------------------------------------------ {-@@ -1327,7 +1345,8 @@ sem_HsTokensRoot_HsTokensRoot :: T_HsTokens ->                                  T_HsTokensRoot sem_HsTokensRoot_HsTokensRoot (T_HsTokens tokens_) =-    (T_HsTokensRoot (let+    (T_HsTokensRoot (let ___node =+                             (Syn_HsTokensRoot)                      in  ( ))) -- Nonterminal ------------------------------------------------- {-@@ -1455,25 +1474,25 @@                              _inhNoGroup =                                  ({-# LINE 50 "src-ag/AG2AspectAG.ag" #-}                                   Map.filterWithKey (\att _ -> elem (getName att) _lhsIo_noGroup) _prodsIprdInh-                                  {-# LINE 1459 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1478 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 51, column 18)                              _synNoGroup =                                  ({-# LINE 51 "src-ag/AG2AspectAG.ag" #-}                                   Map.filterWithKey (\att _ -> elem (getName att) _lhsIo_noGroup) syn_-                                  {-# LINE 1465 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1484 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 56, column 18)                              _prodsOinhNoGroup =                                  ({-# LINE 56 "src-ag/AG2AspectAG.ag" #-}                                   map show $ Map.keys _inhNoGroup-                                  {-# LINE 1471 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1490 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 57, column 18)                              _prodsOsynNoGroup =                                  ({-# LINE 57 "src-ag/AG2AspectAG.ag" #-}                                   map show $ Map.keys _synNoGroup-                                  {-# LINE 1477 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1496 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 93, column 17)                              _prodsOnewProds =@@ -1481,7 +1500,7 @@                                   case Map.lookup nt_ _lhsInewProds of                                          Just prds -> prds                                          Nothing   -> Map.empty-                                  {-# LINE 1485 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1504 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 106, column 31)                              _lhsOextendedNTs =@@ -1489,19 +1508,19 @@                                   if _prodsIhasMoreProds                                   then Set.singleton nt_                                   else Set.empty-                                  {-# LINE 1493 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1512 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 172, column 25)                              _ppNt =                                  ({-# LINE 172 "src-ag/AG2AspectAG.ag" #-}                                   pp nt_-                                  {-# LINE 1499 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1518 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 189, column 25)                              _prodsOppNt =                                  ({-# LINE 189 "src-ag/AG2AspectAG.ag" #-}                                   _ppNt-                                  {-# LINE 1505 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1524 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 207, column 25)                              _lhsOppD =@@ -1515,7 +1534,7 @@                                                               Nothing   -> empty                                                  Just tp ->  "type " >|< _ppNt     >|< " = " >|< ppShow tp                                   else  empty-                                  {-# LINE 1519 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1538 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 220, column 25)                              _lhsOppDI =@@ -1523,13 +1542,13 @@                                   if (not $ Set.member nt_ _lhsInewNTs)                                   then  [ _ppNt     ]                                   else  [ ]-                                  {-# LINE 1527 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1546 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 261, column 25)                              _ntLabel =                                  ({-# LINE 261 "src-ag/AG2AspectAG.ag" #-}                                   "nt_" >|< _ppNt-                                  {-# LINE 1533 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1552 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 263, column 25)                              _lhsOppL =@@ -1538,7 +1557,7 @@                                     then _ntLabel     >|< " = proxy :: Proxy " >|< _ppNt                                     else empty)  >-<                                   _prodsIppL-                                  {-# LINE 1542 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1561 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 268, column 25)                              _lhsOppLI =@@ -1547,7 +1566,7 @@                                     then [ _ntLabel     ]                                     else [ ])  ++                                   _prodsIppLI-                                  {-# LINE 1551 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1570 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 319, column 25)                              _lhsOppA =@@ -1557,7 +1576,7 @@                                            defAttRec (pp "SynG") _ppNt     syn_ _synNoGroup                                     else   empty) >-<                                   _prodsIppA-                                  {-# LINE 1561 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1580 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 332, column 25)                              _lhsOppAI =@@ -1565,43 +1584,43 @@                                   if (not $ Set.member nt_ _lhsInewNTs)                                   then [ ppName [(pp "InhG"), _ppNt     ] >#< pp "(..)", ppName [(pp "SynG"), _ppNt     ] >#< pp "(..)" ]                                   else [ ]-                                  {-# LINE 1569 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1588 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 400, column 25)                              _lhsOppNtL =                                  ({-# LINE 400 "src-ag/AG2AspectAG.ag" #-}                                   [ ("nt_" >|< nt_, Map.union inh_ syn_) ]-                                  {-# LINE 1575 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1594 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 409, column 25)                              _prodsOnewNT =                                  ({-# LINE 409 "src-ag/AG2AspectAG.ag" #-}                                   Set.member nt_ _lhsInewNTs-                                  {-# LINE 1581 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1600 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 419, column 25)                              _lhsOppR =                                  ({-# LINE 419 "src-ag/AG2AspectAG.ag" #-}                                   pp "----" >|< pp nt_ >-< _prodsIppR-                                  {-# LINE 1587 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1606 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 729, column 25)                              _lhsOppCata =                                  ({-# LINE 729 "src-ag/AG2AspectAG.ag" #-}                                   "----" >|< _ppNt     >-< _prodsIppCata-                                  {-# LINE 1593 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1612 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 760, column 25)                              _prodsOsyn =                                  ({-# LINE 760 "src-ag/AG2AspectAG.ag" #-}                                   syn_-                                  {-# LINE 1599 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1618 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 761, column 25)                              _prodsOinh =                                  ({-# LINE 761 "src-ag/AG2AspectAG.ag" #-}                                   inh_-                                  {-# LINE 1605 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1624 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 772, column 25)                              _lhsOppSF =@@ -1622,65 +1641,67 @@                                            "instance SemType T_" >|< _ppNt     >|< " " >|< _ppNt     >-<                                            "-- sem_" >|< _ppNt     >|< " :: " >|< _ppNt     >|< " -> T_" >|<  _ppNt     >-<                                            _prodsIppSPF-                                  {-# LINE 1626 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1645 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 840, column 25)                              _lhsOppW =                                  ({-# LINE 840 "src-ag/AG2AspectAG.ag" #-}                                   ppName [pp "wrap", _ppNt    ] >|< " sem " >|< attVars inh_ >|< " = " >-<                                   "   sem " >|< attFields inh_ _inhNoGroup     _ppNt-                                  {-# LINE 1633 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1652 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/DistChildAttr.ag"(line 7, column 18)                              _lhsOinhMap' =                                  ({-# LINE 7 "src-ag/DistChildAttr.ag" #-}                                   Map.singleton nt_ inh_-                                  {-# LINE 1639 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1658 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/DistChildAttr.ag"(line 8, column 18)                              _lhsOsynMap' =                                  ({-# LINE 8 "src-ag/DistChildAttr.ag" #-}                                   Map.singleton nt_ syn_-                                  {-# LINE 1645 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1664 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _prodsOext =                                  ({-# LINE 118 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIext-                                  {-# LINE 1651 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1670 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _prodsOinhMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIinhMap-                                  {-# LINE 1657 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1676 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _prodsOnewAtts =                                  ({-# LINE 77 "src-ag/AG2AspectAG.ag" #-}                                   _lhsInewAtts-                                  {-# LINE 1663 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1682 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _prodsOo_noGroup =                                  ({-# LINE 44 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIo_noGroup-                                  {-# LINE 1669 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1688 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _prodsOo_rename =                                  ({-# LINE 40 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIo_rename-                                  {-# LINE 1675 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1694 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _prodsOsynMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIsynMap-                                  {-# LINE 1681 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 1700 "dist/build/AG2AspectAG" #-}                                   )                              ( _prodsIhasMoreProds,_prodsIppA,_prodsIppCata,_prodsIppDL,_prodsIppL,_prodsIppLI,_prodsIppR,_prodsIppRA,_prodsIppSF,_prodsIppSPF,_prodsIprdInh) =                                  prods_ _prodsOext _prodsOinh _prodsOinhMap _prodsOinhNoGroup _prodsOnewAtts _prodsOnewNT _prodsOnewProds _prodsOo_noGroup _prodsOo_rename _prodsOppNt _prodsOsyn _prodsOsynMap _prodsOsynNoGroup+                             ___node =+                                 (Syn_Nonterminal _lhsOextendedNTs _lhsOinhMap' _lhsOppA _lhsOppAI _lhsOppCata _lhsOppD _lhsOppDI _lhsOppL _lhsOppLI _lhsOppNtL _lhsOppR _lhsOppSF _lhsOppW _lhsOsynMap')                          in  ( _lhsOextendedNTs,_lhsOinhMap',_lhsOppA,_lhsOppAI,_lhsOppCata,_lhsOppD,_lhsOppDI,_lhsOppL,_lhsOppLI,_lhsOppNtL,_lhsOppR,_lhsOppSF,_lhsOppW,_lhsOsynMap')))) -- Nonterminals ------------------------------------------------ {-@@ -1822,210 +1843,212 @@                               _lhsOextendedNTs =                                   ({-# LINE 104 "src-ag/AG2AspectAG.ag" #-}                                    _hdIextendedNTs `Set.union` _tlIextendedNTs-                                   {-# LINE 1826 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1847 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)                               _lhsOinhMap' =                                   ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                    _hdIinhMap' `Map.union` _tlIinhMap'-                                   {-# LINE 1832 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1853 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 316, column 64)                               _lhsOppA =                                   ({-# LINE 316 "src-ag/AG2AspectAG.ag" #-}                                    _hdIppA >-< _tlIppA-                                   {-# LINE 1838 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1859 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 329, column 42)                               _lhsOppAI =                                   ({-# LINE 329 "src-ag/AG2AspectAG.ag" #-}                                    _hdIppAI ++ _tlIppAI-                                   {-# LINE 1844 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1865 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 726, column 67)                               _lhsOppCata =                                   ({-# LINE 726 "src-ag/AG2AspectAG.ag" #-}                                    _hdIppCata >-< _tlIppCata-                                   {-# LINE 1850 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1871 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 204, column 52)                               _lhsOppD =                                   ({-# LINE 204 "src-ag/AG2AspectAG.ag" #-}                                    _hdIppD >-< _tlIppD-                                   {-# LINE 1856 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1877 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 204, column 86)                               _lhsOppDI =                                   ({-# LINE 204 "src-ag/AG2AspectAG.ag" #-}                                    _hdIppDI ++ _tlIppDI-                                   {-# LINE 1862 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1883 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 258, column 79)                               _lhsOppL =                                   ({-# LINE 258 "src-ag/AG2AspectAG.ag" #-}                                    _hdIppL >-< _tlIppL-                                   {-# LINE 1868 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1889 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 258, column 112)                               _lhsOppLI =                                   ({-# LINE 258 "src-ag/AG2AspectAG.ag" #-}                                    _hdIppLI ++ _tlIppLI-                                   {-# LINE 1874 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1895 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 397, column 44)                               _lhsOppNtL =                                   ({-# LINE 397 "src-ag/AG2AspectAG.ag" #-}                                    _hdIppNtL ++ _tlIppNtL-                                   {-# LINE 1880 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1901 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 412, column 79)                               _lhsOppR =                                   ({-# LINE 412 "src-ag/AG2AspectAG.ag" #-}                                    _hdIppR >-< _tlIppR-                                   {-# LINE 1886 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1907 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 767, column 66)                               _lhsOppSF =                                   ({-# LINE 767 "src-ag/AG2AspectAG.ag" #-}                                    _hdIppSF >-< _tlIppSF-                                   {-# LINE 1892 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1913 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 837, column 42)                               _lhsOppW =                                   ({-# LINE 837 "src-ag/AG2AspectAG.ag" #-}                                    _hdIppW >-< _tlIppW-                                   {-# LINE 1898 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1919 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)                               _lhsOsynMap' =                                   ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                    _hdIsynMap' `Map.union` _tlIsynMap'-                                   {-# LINE 1904 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1925 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _hdOderivs =                                   ({-# LINE 198 "src-ag/AG2AspectAG.ag" #-}                                    _lhsIderivs-                                   {-# LINE 1910 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1931 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _hdOext =                                   ({-# LINE 118 "src-ag/AG2AspectAG.ag" #-}                                    _lhsIext-                                   {-# LINE 1916 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1937 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _hdOinhMap =                                   ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                    _lhsIinhMap-                                   {-# LINE 1922 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1943 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _hdOnewAtts =                                   ({-# LINE 77 "src-ag/AG2AspectAG.ag" #-}                                    _lhsInewAtts-                                   {-# LINE 1928 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1949 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _hdOnewNTs =                                   ({-# LINE 98 "src-ag/AG2AspectAG.ag" #-}                                    _lhsInewNTs-                                   {-# LINE 1934 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1955 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _hdOnewProds =                                   ({-# LINE 84 "src-ag/AG2AspectAG.ag" #-}                                    _lhsInewProds-                                   {-# LINE 1940 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1961 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _hdOo_noGroup =                                   ({-# LINE 44 "src-ag/AG2AspectAG.ag" #-}                                    _lhsIo_noGroup-                                   {-# LINE 1946 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1967 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _hdOo_rename =                                   ({-# LINE 40 "src-ag/AG2AspectAG.ag" #-}                                    _lhsIo_rename-                                   {-# LINE 1952 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1973 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _hdOsynMap =                                   ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                    _lhsIsynMap-                                   {-# LINE 1958 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1979 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _hdOtSyns =                                   ({-# LINE 247 "src-ag/AG2AspectAG.ag" #-}                                    _lhsItSyns-                                   {-# LINE 1964 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1985 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _tlOderivs =                                   ({-# LINE 198 "src-ag/AG2AspectAG.ag" #-}                                    _lhsIderivs-                                   {-# LINE 1970 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1991 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _tlOext =                                   ({-# LINE 118 "src-ag/AG2AspectAG.ag" #-}                                    _lhsIext-                                   {-# LINE 1976 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 1997 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _tlOinhMap =                                   ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                    _lhsIinhMap-                                   {-# LINE 1982 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2003 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _tlOnewAtts =                                   ({-# LINE 77 "src-ag/AG2AspectAG.ag" #-}                                    _lhsInewAtts-                                   {-# LINE 1988 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2009 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _tlOnewNTs =                                   ({-# LINE 98 "src-ag/AG2AspectAG.ag" #-}                                    _lhsInewNTs-                                   {-# LINE 1994 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2015 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _tlOnewProds =                                   ({-# LINE 84 "src-ag/AG2AspectAG.ag" #-}                                    _lhsInewProds-                                   {-# LINE 2000 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2021 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _tlOo_noGroup =                                   ({-# LINE 44 "src-ag/AG2AspectAG.ag" #-}                                    _lhsIo_noGroup-                                   {-# LINE 2006 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2027 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _tlOo_rename =                                   ({-# LINE 40 "src-ag/AG2AspectAG.ag" #-}                                    _lhsIo_rename-                                   {-# LINE 2012 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2033 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _tlOsynMap =                                   ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                    _lhsIsynMap-                                   {-# LINE 2018 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2039 "dist/build/AG2AspectAG" #-}                                    )                               -- copy rule (down)                               _tlOtSyns =                                   ({-# LINE 247 "src-ag/AG2AspectAG.ag" #-}                                    _lhsItSyns-                                   {-# LINE 2024 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2045 "dist/build/AG2AspectAG" #-}                                    )                               ( _hdIextendedNTs,_hdIinhMap',_hdIppA,_hdIppAI,_hdIppCata,_hdIppD,_hdIppDI,_hdIppL,_hdIppLI,_hdIppNtL,_hdIppR,_hdIppSF,_hdIppW,_hdIsynMap') =                                   hd_ _hdOderivs _hdOext _hdOinhMap _hdOnewAtts _hdOnewNTs _hdOnewProds _hdOo_noGroup _hdOo_rename _hdOsynMap _hdOtSyns                               ( _tlIextendedNTs,_tlIinhMap',_tlIppA,_tlIppAI,_tlIppCata,_tlIppD,_tlIppDI,_tlIppL,_tlIppLI,_tlIppNtL,_tlIppR,_tlIppSF,_tlIppW,_tlIsynMap') =                                   tl_ _tlOderivs _tlOext _tlOinhMap _tlOnewAtts _tlOnewNTs _tlOnewProds _tlOo_noGroup _tlOo_rename _tlOsynMap _tlOtSyns+                              ___node =+                                  (Syn_Nonterminals _lhsOextendedNTs _lhsOinhMap' _lhsOppA _lhsOppAI _lhsOppCata _lhsOppD _lhsOppDI _lhsOppL _lhsOppLI _lhsOppNtL _lhsOppR _lhsOppSF _lhsOppW _lhsOsynMap')                           in  ( _lhsOextendedNTs,_lhsOinhMap',_lhsOppA,_lhsOppAI,_lhsOppCata,_lhsOppD,_lhsOppDI,_lhsOppL,_lhsOppLI,_lhsOppNtL,_lhsOppR,_lhsOppSF,_lhsOppW,_lhsOsynMap')))) sem_Nonterminals_Nil :: T_Nonterminals sem_Nonterminals_Nil =@@ -2057,86 +2080,88 @@                               _lhsOextendedNTs =                                   ({-# LINE 104 "src-ag/AG2AspectAG.ag" #-}                                    Set.empty-                                   {-# LINE 2061 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2084 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)                               _lhsOinhMap' =                                   ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                    Map.empty-                                   {-# LINE 2067 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2090 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 316, column 64)                               _lhsOppA =                                   ({-# LINE 316 "src-ag/AG2AspectAG.ag" #-}                                    empty-                                   {-# LINE 2073 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2096 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 329, column 42)                               _lhsOppAI =                                   ({-# LINE 329 "src-ag/AG2AspectAG.ag" #-}                                    []-                                   {-# LINE 2079 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2102 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 726, column 67)                               _lhsOppCata =                                   ({-# LINE 726 "src-ag/AG2AspectAG.ag" #-}                                    empty-                                   {-# LINE 2085 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2108 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 204, column 52)                               _lhsOppD =                                   ({-# LINE 204 "src-ag/AG2AspectAG.ag" #-}                                    empty-                                   {-# LINE 2091 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2114 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 204, column 86)                               _lhsOppDI =                                   ({-# LINE 204 "src-ag/AG2AspectAG.ag" #-}                                    []-                                   {-# LINE 2097 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2120 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 258, column 79)                               _lhsOppL =                                   ({-# LINE 258 "src-ag/AG2AspectAG.ag" #-}                                    empty-                                   {-# LINE 2103 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2126 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 258, column 112)                               _lhsOppLI =                                   ({-# LINE 258 "src-ag/AG2AspectAG.ag" #-}                                    []-                                   {-# LINE 2109 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2132 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 397, column 44)                               _lhsOppNtL =                                   ({-# LINE 397 "src-ag/AG2AspectAG.ag" #-}                                    []-                                   {-# LINE 2115 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2138 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 412, column 79)                               _lhsOppR =                                   ({-# LINE 412 "src-ag/AG2AspectAG.ag" #-}                                    empty-                                   {-# LINE 2121 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2144 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 767, column 66)                               _lhsOppSF =                                   ({-# LINE 767 "src-ag/AG2AspectAG.ag" #-}                                    empty-                                   {-# LINE 2127 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2150 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/AG2AspectAG.ag"(line 837, column 42)                               _lhsOppW =                                   ({-# LINE 837 "src-ag/AG2AspectAG.ag" #-}                                    empty-                                   {-# LINE 2133 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2156 "dist/build/AG2AspectAG" #-}                                    )                               -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)                               _lhsOsynMap' =                                   ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                    Map.empty-                                   {-# LINE 2139 "dist/build/AG2AspectAG" #-}+                                   {-# LINE 2162 "dist/build/AG2AspectAG" #-}                                    )+                              ___node =+                                  (Syn_Nonterminals _lhsOextendedNTs _lhsOinhMap' _lhsOppA _lhsOppAI _lhsOppCata _lhsOppD _lhsOppDI _lhsOppL _lhsOppLI _lhsOppNtL _lhsOppR _lhsOppSF _lhsOppW _lhsOsynMap')                           in  ( _lhsOextendedNTs,_lhsOinhMap',_lhsOppA,_lhsOppAI,_lhsOppCata,_lhsOppD,_lhsOppDI,_lhsOppL,_lhsOppLI,_lhsOppNtL,_lhsOppR,_lhsOppSF,_lhsOppW,_lhsOsynMap')))) -- Pattern ----------------------------------------------------- {-@@ -2206,22 +2231,24 @@                     _lhsOinfo =                         ({-# LINE 376 "src-ag/AG2AspectAG.ag" #-}                          (field_, attr_)-                         {-# LINE 2210 "dist/build/AG2AspectAG" #-}+                         {-# LINE 2235 "dist/build/AG2AspectAG" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Alias field_ attr_ _patIcopy-                         {-# LINE 2216 "dist/build/AG2AspectAG" #-}+                         {-# LINE 2241 "dist/build/AG2AspectAG" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 2222 "dist/build/AG2AspectAG" #-}+                         {-# LINE 2247 "dist/build/AG2AspectAG" #-}                          )                     ( _patIcopy,_patIinfo) =                         pat_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOinfo)                 in  ( _lhsOcopy,_lhsOinfo))) sem_Pattern_Constr :: ConstructorIdent ->                       T_Patterns ->@@ -2234,22 +2261,24 @@                     _lhsOinfo =                         ({-# LINE 377 "src-ag/AG2AspectAG.ag" #-}                          error "Pattern Constr undefined!!"-                         {-# LINE 2238 "dist/build/AG2AspectAG" #-}+                         {-# LINE 2265 "dist/build/AG2AspectAG" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Constr name_ _patsIcopy-                         {-# LINE 2244 "dist/build/AG2AspectAG" #-}+                         {-# LINE 2271 "dist/build/AG2AspectAG" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 2250 "dist/build/AG2AspectAG" #-}+                         {-# LINE 2277 "dist/build/AG2AspectAG" #-}                          )                     ( _patsIcopy) =                         pats_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOinfo)                 in  ( _lhsOcopy,_lhsOinfo))) sem_Pattern_Irrefutable :: T_Pattern ->                            T_Pattern@@ -2262,22 +2291,24 @@                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Irrefutable _patIcopy-                         {-# LINE 2266 "dist/build/AG2AspectAG" #-}+                         {-# LINE 2295 "dist/build/AG2AspectAG" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 2272 "dist/build/AG2AspectAG" #-}+                         {-# LINE 2301 "dist/build/AG2AspectAG" #-}                          )                     -- copy rule (up)                     _lhsOinfo =                         ({-# LINE 374 "src-ag/AG2AspectAG.ag" #-}                          _patIinfo-                         {-# LINE 2278 "dist/build/AG2AspectAG" #-}+                         {-# LINE 2307 "dist/build/AG2AspectAG" #-}                          )                     ( _patIcopy,_patIinfo) =                         pat_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOinfo)                 in  ( _lhsOcopy,_lhsOinfo))) sem_Pattern_Product :: Pos ->                        T_Patterns ->@@ -2290,22 +2321,24 @@                     _lhsOinfo =                         ({-# LINE 378 "src-ag/AG2AspectAG.ag" #-}                          error "Pattern Product undefined!!"-                         {-# LINE 2294 "dist/build/AG2AspectAG" #-}+                         {-# LINE 2325 "dist/build/AG2AspectAG" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Product pos_ _patsIcopy-                         {-# LINE 2300 "dist/build/AG2AspectAG" #-}+                         {-# LINE 2331 "dist/build/AG2AspectAG" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 2306 "dist/build/AG2AspectAG" #-}+                         {-# LINE 2337 "dist/build/AG2AspectAG" #-}                          )                     ( _patsIcopy) =                         pats_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOinfo)                 in  ( _lhsOcopy,_lhsOinfo))) sem_Pattern_Underscore :: Pos ->                           T_Pattern@@ -2316,20 +2349,22 @@                     _lhsOinfo =                         ({-# LINE 379 "src-ag/AG2AspectAG.ag" #-}                          error "Pattern Underscore undefined!!"-                         {-# LINE 2320 "dist/build/AG2AspectAG" #-}+                         {-# LINE 2353 "dist/build/AG2AspectAG" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Underscore pos_-                         {-# LINE 2326 "dist/build/AG2AspectAG" #-}+                         {-# LINE 2359 "dist/build/AG2AspectAG" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 2332 "dist/build/AG2AspectAG" #-}+                         {-# LINE 2365 "dist/build/AG2AspectAG" #-}                          )+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOinfo)                 in  ( _lhsOcopy,_lhsOinfo))) -- Patterns ---------------------------------------------------- {-@@ -2373,18 +2408,20 @@                      _copy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           (:) _hdIcopy _tlIcopy-                          {-# LINE 2377 "dist/build/AG2AspectAG" #-}+                          {-# LINE 2412 "dist/build/AG2AspectAG" #-}                           )                      -- self rule                      _lhsOcopy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           _copy-                          {-# LINE 2383 "dist/build/AG2AspectAG" #-}+                          {-# LINE 2418 "dist/build/AG2AspectAG" #-}                           )                      ( _hdIcopy,_hdIinfo) =                          hd_                      ( _tlIcopy) =                          tl_+                     ___node =+                         (Syn_Patterns _lhsOcopy)                  in  ( _lhsOcopy))) sem_Patterns_Nil :: T_Patterns sem_Patterns_Nil =@@ -2393,14 +2430,16 @@                      _copy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           []-                          {-# LINE 2397 "dist/build/AG2AspectAG" #-}+                          {-# LINE 2434 "dist/build/AG2AspectAG" #-}                           )                      -- self rule                      _lhsOcopy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           _copy-                          {-# LINE 2403 "dist/build/AG2AspectAG" #-}+                          {-# LINE 2440 "dist/build/AG2AspectAG" #-}                           )+                     ___node =+                         (Syn_Patterns _lhsOcopy)                  in  ( _lhsOcopy))) -- Production -------------------------------------------------- {-@@ -2540,19 +2579,19 @@                             _lhsOhasMoreProds =                                 ({-# LINE 102 "src-ag/AG2AspectAG.ag" #-}                                  not $ Map.member con_ _lhsInewProds-                                 {-# LINE 2544 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2583 "dist/build/AG2AspectAG" #-}                                  )                             -- "src-ag/AG2AspectAG.ag"(line 175, column 25)                             _ppProd =                                 ({-# LINE 175 "src-ag/AG2AspectAG.ag" #-}                                  pp con_-                                 {-# LINE 2550 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2589 "dist/build/AG2AspectAG" #-}                                  )                             -- "src-ag/AG2AspectAG.ag"(line 176, column 25)                             _prodName =                                 ({-# LINE 176 "src-ag/AG2AspectAG.ag" #-}                                  ppName [_lhsIppNt, _ppProd    ]-                                 {-# LINE 2556 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2595 "dist/build/AG2AspectAG" #-}                                  )                             -- "src-ag/AG2AspectAG.ag"(line 177, column 25)                             _conName =@@ -2560,25 +2599,25 @@                                  if _lhsIo_rename                                  then _prodName                                  else _ppProd-                                 {-# LINE 2564 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2603 "dist/build/AG2AspectAG" #-}                                  )                             -- "src-ag/AG2AspectAG.ag"(line 194, column 25)                             _childrenOppProd =                                 ({-# LINE 194 "src-ag/AG2AspectAG.ag" #-}                                  _ppProd-                                 {-# LINE 2570 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2609 "dist/build/AG2AspectAG" #-}                                  )                             -- "src-ag/AG2AspectAG.ag"(line 195, column 25)                             _rulesOppProd =                                 ({-# LINE 195 "src-ag/AG2AspectAG.ag" #-}                                  _ppProd-                                 {-# LINE 2576 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2615 "dist/build/AG2AspectAG" #-}                                  )                             -- "src-ag/AG2AspectAG.ag"(line 227, column 25)                             _lhsOppD =                                 ({-# LINE 227 "src-ag/AG2AspectAG.ag" #-}                                  _conName     >|< ppListSep " {" "}" ", " _childrenIppDL-                                 {-# LINE 2582 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2621 "dist/build/AG2AspectAG" #-}                                  )                             -- "src-ag/AG2AspectAG.ag"(line 274, column 25)                             _lhsOppL =@@ -2586,7 +2625,7 @@                                  if (Map.member con_ _lhsInewProds)                                    then _childrenIppL                                    else empty-                                 {-# LINE 2590 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2629 "dist/build/AG2AspectAG" #-}                                  )                             -- "src-ag/AG2AspectAG.ag"(line 278, column 25)                             _lhsOppLI =@@ -2594,19 +2633,19 @@                                  if (not $ Map.member con_ _lhsInewProds)                                    then _childrenIppLI                                    else []-                                 {-# LINE 2598 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2637 "dist/build/AG2AspectAG" #-}                                  )                             -- "src-ag/AG2AspectAG.ag"(line 326, column 25)                             _lhsOppA =                                 ({-# LINE 326 "src-ag/AG2AspectAG.ag" #-}                                  defLocalAtts _prodName     (length _rulesIlocals) 1 $ sort _rulesIlocals-                                 {-# LINE 2604 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2643 "dist/build/AG2AspectAG" #-}                                  )                             -- "src-ag/AG2AspectAG.ag"(line 422, column 25)                             _newProd =                                 ({-# LINE 422 "src-ag/AG2AspectAG.ag" #-}                                  Map.member con_ _lhsInewProds-                                 {-# LINE 2610 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2649 "dist/build/AG2AspectAG" #-}                                  )                             -- "src-ag/AG2AspectAG.ag"(line 423, column 41)                             (_ppR,_ppRA) =@@ -2629,7 +2668,7 @@                                                                        _childrenIppR _rulesIppRL _lhsIinhNoGroup _lhsIsynNoGroup  _childrenIidCL _rulesIlocals                                  in   ( vlist [instR,locR,inhGR,synGR,inhR,synR,inhMR,synMR]                                       , instRA ++ locRA ++ inhGRA ++ synGRA ++ inhMRA ++ synMRA ++ inhRA ++ synRA)-                                 {-# LINE 2633 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2672 "dist/build/AG2AspectAG" #-}                                  )                             -- "src-ag/AG2AspectAG.ag"(line 733, column 25)                             _lhsOppCata =@@ -2647,7 +2686,7 @@                                                                     ppListSep "" "" " `ext` "                                                                     (atts ++ macro ++ extend ) >-<                                       "semP_" >|< _prodName     >|< pp " = knit atts_" >|< _prodName-                                 {-# LINE 2651 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2690 "dist/build/AG2AspectAG" #-}                                  )                             -- "src-ag/AG2AspectAG.ag"(line 797, column 25)                             _lhsOppSF =@@ -2660,7 +2699,7 @@                                       ppParams f =   f $ map (((>|<) (pp "_")) . fst) chi                                  in   "sem_" >|< _lhsIppNt >|< " (" >|< ppPattern >|< ") = sem_" >|< _prodName     >|<                                       " (" >|< map (fst . snd) chi >|< "emptyRecord)"-                                 {-# LINE 2664 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2703 "dist/build/AG2AspectAG" #-}                                  )                             -- "src-ag/AG2AspectAG.ag"(line 809, column 25)                             _lhsOppSPF =@@ -2669,120 +2708,122 @@                                       ppParams f =   f $ map (((>|<) (pp "_")) . fst) chi                                  in   "sem_" >|< _lhsIppNt >|< "_" >|< con_ >#< ppParams ppSpaced >|< " = semP_" >|< _prodName     >|<                                       " (" >|< map (snd . snd) chi >|< "emptyRecord)"-                                 {-# LINE 2673 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2712 "dist/build/AG2AspectAG" #-}                                  )                             -- use rule "src-ag/AG2AspectAG.ag"(line 204, column 86)                             _lhsOppDI =                                 ({-# LINE 204 "src-ag/AG2AspectAG.ag" #-}                                  []-                                 {-# LINE 2679 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2718 "dist/build/AG2AspectAG" #-}                                  )                             -- use rule "src-ag/AG2AspectAG.ag"(line 412, column 79)                             _lhsOppR =                                 ({-# LINE 412 "src-ag/AG2AspectAG.ag" #-}                                  _ppR-                                 {-# LINE 2685 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2724 "dist/build/AG2AspectAG" #-}                                  )                             -- use rule "src-ag/AG2AspectAG.ag"(line 413, column 43)                             _lhsOppRA =                                 ({-# LINE 413 "src-ag/AG2AspectAG.ag" #-}                                  _ppRA-                                 {-# LINE 2691 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2730 "dist/build/AG2AspectAG" #-}                                  )                             -- use rule "src-ag/AG2AspectAG.ag"(line 64, column 57)                             _lhsOprdInh =                                 ({-# LINE 64 "src-ag/AG2AspectAG.ag" #-}                                  _childrenIprdInh-                                 {-# LINE 2697 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2736 "dist/build/AG2AspectAG" #-}                                  )                             -- copy rule (down)                             _childrenOext =                                 ({-# LINE 118 "src-ag/AG2AspectAG.ag" #-}                                  _lhsIext-                                 {-# LINE 2703 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2742 "dist/build/AG2AspectAG" #-}                                  )                             -- copy rule (down)                             _childrenOinhMap =                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                  _lhsIinhMap-                                 {-# LINE 2709 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2748 "dist/build/AG2AspectAG" #-}                                  )                             -- copy rule (down)                             _childrenOinhNoGroup =                                 ({-# LINE 54 "src-ag/AG2AspectAG.ag" #-}                                  _lhsIinhNoGroup-                                 {-# LINE 2715 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2754 "dist/build/AG2AspectAG" #-}                                  )                             -- copy rule (down)                             _childrenOo_noGroup =                                 ({-# LINE 44 "src-ag/AG2AspectAG.ag" #-}                                  _lhsIo_noGroup-                                 {-# LINE 2721 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2760 "dist/build/AG2AspectAG" #-}                                  )                             -- copy rule (down)                             _childrenOo_rename =                                 ({-# LINE 40 "src-ag/AG2AspectAG.ag" #-}                                  _lhsIo_rename-                                 {-# LINE 2727 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2766 "dist/build/AG2AspectAG" #-}                                  )                             -- copy rule (down)                             _childrenOppNt =                                 ({-# LINE 186 "src-ag/AG2AspectAG.ag" #-}                                  _lhsIppNt-                                 {-# LINE 2733 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2772 "dist/build/AG2AspectAG" #-}                                  )                             -- copy rule (down)                             _childrenOsynMap =                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                  _lhsIsynMap-                                 {-# LINE 2739 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2778 "dist/build/AG2AspectAG" #-}                                  )                             -- copy rule (down)                             _childrenOsynNoGroup =                                 ({-# LINE 54 "src-ag/AG2AspectAG.ag" #-}                                  _lhsIsynNoGroup-                                 {-# LINE 2745 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2784 "dist/build/AG2AspectAG" #-}                                  )                             -- copy rule (down)                             _rulesOext =                                 ({-# LINE 118 "src-ag/AG2AspectAG.ag" #-}                                  _lhsIext-                                 {-# LINE 2751 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2790 "dist/build/AG2AspectAG" #-}                                  )                             -- copy rule (down)                             _rulesOinhNoGroup =                                 ({-# LINE 54 "src-ag/AG2AspectAG.ag" #-}                                  _lhsIinhNoGroup-                                 {-# LINE 2757 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2796 "dist/build/AG2AspectAG" #-}                                  )                             -- copy rule (from local)                             _rulesOnewProd =                                 ({-# LINE 406 "src-ag/AG2AspectAG.ag" #-}                                  _newProd-                                 {-# LINE 2763 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2802 "dist/build/AG2AspectAG" #-}                                  )                             -- copy rule (down)                             _rulesOo_noGroup =                                 ({-# LINE 44 "src-ag/AG2AspectAG.ag" #-}                                  _lhsIo_noGroup-                                 {-# LINE 2769 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2808 "dist/build/AG2AspectAG" #-}                                  )                             -- copy rule (down)                             _rulesOppNt =                                 ({-# LINE 186 "src-ag/AG2AspectAG.ag" #-}                                  _lhsIppNt-                                 {-# LINE 2775 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2814 "dist/build/AG2AspectAG" #-}                                  )                             -- copy rule (down)                             _rulesOsynNoGroup =                                 ({-# LINE 54 "src-ag/AG2AspectAG.ag" #-}                                  _lhsIsynNoGroup-                                 {-# LINE 2781 "dist/build/AG2AspectAG" #-}+                                 {-# LINE 2820 "dist/build/AG2AspectAG" #-}                                  )                             ( _childrenIidCL,_childrenIppCSF,_childrenIppDL,_childrenIppL,_childrenIppLI,_childrenIppR,_childrenIprdInh) =                                 children_ _childrenOext _childrenOinhMap _childrenOinhNoGroup _childrenOo_noGroup _childrenOo_rename _childrenOppNt _childrenOppProd _childrenOsynMap _childrenOsynNoGroup                             ( _rulesIlocals,_rulesIppRL) =                                 rules_ _rulesOext _rulesOinhNoGroup _rulesOnewProd _rulesOo_noGroup _rulesOppNt _rulesOppProd _rulesOsynNoGroup+                            ___node =+                                (Syn_Production _lhsOhasMoreProds _lhsOppA _lhsOppCata _lhsOppD _lhsOppDI _lhsOppL _lhsOppLI _lhsOppR _lhsOppRA _lhsOppSF _lhsOppSPF _lhsOprdInh)                         in  ( _lhsOhasMoreProds,_lhsOppA,_lhsOppCata,_lhsOppD,_lhsOppDI,_lhsOppL,_lhsOppLI,_lhsOppR,_lhsOppRA,_lhsOppSF,_lhsOppSPF,_lhsOprdInh)))) -- Productions ------------------------------------------------- {-@@ -2928,228 +2969,230 @@                              _hdOinhNoGroup =                                  ({-# LINE 61 "src-ag/AG2AspectAG.ag" #-}                                   filter (flip Map.member _hdIprdInh . identifier) _lhsIinhNoGroup-                                  {-# LINE 2932 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 2973 "dist/build/AG2AspectAG" #-}                                   )                              -- "src-ag/AG2AspectAG.ag"(line 233, column 33)                              _lhsOppDL =                                  ({-# LINE 233 "src-ag/AG2AspectAG.ag" #-}                                   _hdIppD : _tlIppDL-                                  {-# LINE 2938 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 2979 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 100, column 51)                              _lhsOhasMoreProds =                                  ({-# LINE 100 "src-ag/AG2AspectAG.ag" #-}                                   _hdIhasMoreProds  ||  _tlIhasMoreProds-                                  {-# LINE 2944 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 2985 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 316, column 64)                              _lhsOppA =                                  ({-# LINE 316 "src-ag/AG2AspectAG.ag" #-}                                   _hdIppA >-< _tlIppA-                                  {-# LINE 2950 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 2991 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 726, column 67)                              _lhsOppCata =                                  ({-# LINE 726 "src-ag/AG2AspectAG.ag" #-}                                   _hdIppCata >-< _tlIppCata-                                  {-# LINE 2956 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 2997 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 258, column 79)                              _lhsOppL =                                  ({-# LINE 258 "src-ag/AG2AspectAG.ag" #-}                                   _hdIppL >-< _tlIppL-                                  {-# LINE 2962 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3003 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 258, column 112)                              _lhsOppLI =                                  ({-# LINE 258 "src-ag/AG2AspectAG.ag" #-}                                   _hdIppLI ++ _tlIppLI-                                  {-# LINE 2968 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3009 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 412, column 79)                              _lhsOppR =                                  ({-# LINE 412 "src-ag/AG2AspectAG.ag" #-}                                   _hdIppR >-< _tlIppR-                                  {-# LINE 2974 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3015 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 413, column 43)                              _lhsOppRA =                                  ({-# LINE 413 "src-ag/AG2AspectAG.ag" #-}                                   _hdIppRA ++ _tlIppRA-                                  {-# LINE 2980 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3021 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 767, column 66)                              _lhsOppSF =                                  ({-# LINE 767 "src-ag/AG2AspectAG.ag" #-}                                   _hdIppSF >-< _tlIppSF-                                  {-# LINE 2986 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3027 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 768, column 42)                              _lhsOppSPF =                                  ({-# LINE 768 "src-ag/AG2AspectAG.ag" #-}                                   _hdIppSPF >-< _tlIppSPF-                                  {-# LINE 2992 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3033 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 64, column 57)                              _lhsOprdInh =                                  ({-# LINE 64 "src-ag/AG2AspectAG.ag" #-}                                   _hdIprdInh `Map.union` _tlIprdInh-                                  {-# LINE 2998 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3039 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _hdOext =                                  ({-# LINE 118 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIext-                                  {-# LINE 3004 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3045 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _hdOinh =                                  ({-# LINE 757 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIinh-                                  {-# LINE 3010 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3051 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _hdOinhMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIinhMap-                                  {-# LINE 3016 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3057 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _hdOnewAtts =                                  ({-# LINE 77 "src-ag/AG2AspectAG.ag" #-}                                   _lhsInewAtts-                                  {-# LINE 3022 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3063 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _hdOnewNT =                                  ({-# LINE 405 "src-ag/AG2AspectAG.ag" #-}                                   _lhsInewNT-                                  {-# LINE 3028 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3069 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _hdOnewProds =                                  ({-# LINE 85 "src-ag/AG2AspectAG.ag" #-}                                   _lhsInewProds-                                  {-# LINE 3034 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3075 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _hdOo_noGroup =                                  ({-# LINE 44 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIo_noGroup-                                  {-# LINE 3040 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3081 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _hdOo_rename =                                  ({-# LINE 40 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIo_rename-                                  {-# LINE 3046 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3087 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _hdOppNt =                                  ({-# LINE 186 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIppNt-                                  {-# LINE 3052 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3093 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _hdOsyn =                                  ({-# LINE 757 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIsyn-                                  {-# LINE 3058 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3099 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _hdOsynMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIsynMap-                                  {-# LINE 3064 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3105 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _hdOsynNoGroup =                                  ({-# LINE 54 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIsynNoGroup-                                  {-# LINE 3070 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3111 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _tlOext =                                  ({-# LINE 118 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIext-                                  {-# LINE 3076 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3117 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _tlOinh =                                  ({-# LINE 757 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIinh-                                  {-# LINE 3082 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3123 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _tlOinhMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIinhMap-                                  {-# LINE 3088 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3129 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _tlOinhNoGroup =                                  ({-# LINE 54 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIinhNoGroup-                                  {-# LINE 3094 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3135 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _tlOnewAtts =                                  ({-# LINE 77 "src-ag/AG2AspectAG.ag" #-}                                   _lhsInewAtts-                                  {-# LINE 3100 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3141 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _tlOnewNT =                                  ({-# LINE 405 "src-ag/AG2AspectAG.ag" #-}                                   _lhsInewNT-                                  {-# LINE 3106 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3147 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _tlOnewProds =                                  ({-# LINE 85 "src-ag/AG2AspectAG.ag" #-}                                   _lhsInewProds-                                  {-# LINE 3112 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3153 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _tlOo_noGroup =                                  ({-# LINE 44 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIo_noGroup-                                  {-# LINE 3118 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3159 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _tlOo_rename =                                  ({-# LINE 40 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIo_rename-                                  {-# LINE 3124 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3165 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _tlOppNt =                                  ({-# LINE 186 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIppNt-                                  {-# LINE 3130 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3171 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _tlOsyn =                                  ({-# LINE 757 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIsyn-                                  {-# LINE 3136 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3177 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _tlOsynMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIsynMap-                                  {-# LINE 3142 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3183 "dist/build/AG2AspectAG" #-}                                   )                              -- copy rule (down)                              _tlOsynNoGroup =                                  ({-# LINE 54 "src-ag/AG2AspectAG.ag" #-}                                   _lhsIsynNoGroup-                                  {-# LINE 3148 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3189 "dist/build/AG2AspectAG" #-}                                   )                              ( _hdIhasMoreProds,_hdIppA,_hdIppCata,_hdIppD,_hdIppDI,_hdIppL,_hdIppLI,_hdIppR,_hdIppRA,_hdIppSF,_hdIppSPF,_hdIprdInh) =                                  hd_ _hdOext _hdOinh _hdOinhMap _hdOinhNoGroup _hdOnewAtts _hdOnewNT _hdOnewProds _hdOo_noGroup _hdOo_rename _hdOppNt _hdOsyn _hdOsynMap _hdOsynNoGroup                              ( _tlIhasMoreProds,_tlIppA,_tlIppCata,_tlIppDL,_tlIppL,_tlIppLI,_tlIppR,_tlIppRA,_tlIppSF,_tlIppSPF,_tlIprdInh) =                                  tl_ _tlOext _tlOinh _tlOinhMap _tlOinhNoGroup _tlOnewAtts _tlOnewNT _tlOnewProds _tlOo_noGroup _tlOo_rename _tlOppNt _tlOsyn _tlOsynMap _tlOsynNoGroup+                             ___node =+                                 (Syn_Productions _lhsOhasMoreProds _lhsOppA _lhsOppCata _lhsOppDL _lhsOppL _lhsOppLI _lhsOppR _lhsOppRA _lhsOppSF _lhsOppSPF _lhsOprdInh)                          in  ( _lhsOhasMoreProds,_lhsOppA,_lhsOppCata,_lhsOppDL,_lhsOppL,_lhsOppLI,_lhsOppR,_lhsOppRA,_lhsOppSF,_lhsOppSPF,_lhsOprdInh)))) sem_Productions_Nil :: T_Productions sem_Productions_Nil =@@ -3181,68 +3224,70 @@                              _lhsOppDL =                                  ({-# LINE 234 "src-ag/AG2AspectAG.ag" #-}                                   []-                                  {-# LINE 3185 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3228 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 100, column 51)                              _lhsOhasMoreProds =                                  ({-# LINE 100 "src-ag/AG2AspectAG.ag" #-}                                   False-                                  {-# LINE 3191 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3234 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 316, column 64)                              _lhsOppA =                                  ({-# LINE 316 "src-ag/AG2AspectAG.ag" #-}                                   empty-                                  {-# LINE 3197 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3240 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 726, column 67)                              _lhsOppCata =                                  ({-# LINE 726 "src-ag/AG2AspectAG.ag" #-}                                   empty-                                  {-# LINE 3203 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3246 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 258, column 79)                              _lhsOppL =                                  ({-# LINE 258 "src-ag/AG2AspectAG.ag" #-}                                   empty-                                  {-# LINE 3209 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3252 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 258, column 112)                              _lhsOppLI =                                  ({-# LINE 258 "src-ag/AG2AspectAG.ag" #-}                                   []-                                  {-# LINE 3215 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3258 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 412, column 79)                              _lhsOppR =                                  ({-# LINE 412 "src-ag/AG2AspectAG.ag" #-}                                   empty-                                  {-# LINE 3221 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3264 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 413, column 43)                              _lhsOppRA =                                  ({-# LINE 413 "src-ag/AG2AspectAG.ag" #-}                                   []-                                  {-# LINE 3227 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3270 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 767, column 66)                              _lhsOppSF =                                  ({-# LINE 767 "src-ag/AG2AspectAG.ag" #-}                                   empty-                                  {-# LINE 3233 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3276 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 768, column 42)                              _lhsOppSPF =                                  ({-# LINE 768 "src-ag/AG2AspectAG.ag" #-}                                   empty-                                  {-# LINE 3239 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3282 "dist/build/AG2AspectAG" #-}                                   )                              -- use rule "src-ag/AG2AspectAG.ag"(line 64, column 57)                              _lhsOprdInh =                                  ({-# LINE 64 "src-ag/AG2AspectAG.ag" #-}                                   Map.empty-                                  {-# LINE 3245 "dist/build/AG2AspectAG" #-}+                                  {-# LINE 3288 "dist/build/AG2AspectAG" #-}                                   )+                             ___node =+                                 (Syn_Productions _lhsOhasMoreProds _lhsOppA _lhsOppCata _lhsOppDL _lhsOppL _lhsOppLI _lhsOppR _lhsOppRA _lhsOppSF _lhsOppSPF _lhsOprdInh)                          in  ( _lhsOhasMoreProds,_lhsOppA,_lhsOppCata,_lhsOppDL,_lhsOppL,_lhsOppLI,_lhsOppR,_lhsOppRA,_lhsOppSF,_lhsOppSPF,_lhsOprdInh)))) -- Rule -------------------------------------------------------- {-@@ -3325,7 +3370,7 @@                            if (show (fst _patternIinfo) == "loc")                             then [ snd _patternIinfo ]                             else [ ]-                           {-# LINE 3329 "dist/build/AG2AspectAG" #-}+                           {-# LINE 3374 "dist/build/AG2AspectAG" #-}                            )                       -- "src-ag/AG2AspectAG.ag"(line 466, column 33)                       _lhsOppRL =@@ -3333,24 +3378,26 @@                            if (not explicit_ &&  not _lhsInewProd)                            then []                            else [ ppRule _patternIinfo owrt_ (defRule _lhsIppNt _patternIinfo _lhsIo_noGroup _rhsIppRE) ]-                           {-# LINE 3337 "dist/build/AG2AspectAG" #-}+                           {-# LINE 3382 "dist/build/AG2AspectAG" #-}                            )                       -- copy rule (down)                       _rhsOppNt =                           ({-# LINE 186 "src-ag/AG2AspectAG.ag" #-}                            _lhsIppNt-                           {-# LINE 3343 "dist/build/AG2AspectAG" #-}+                           {-# LINE 3388 "dist/build/AG2AspectAG" #-}                            )                       -- copy rule (down)                       _rhsOppProd =                           ({-# LINE 191 "src-ag/AG2AspectAG.ag" #-}                            _lhsIppProd-                           {-# LINE 3349 "dist/build/AG2AspectAG" #-}+                           {-# LINE 3394 "dist/build/AG2AspectAG" #-}                            )                       ( _patternIcopy,_patternIinfo) =                           pattern_                       ( _rhsIppRE) =                           rhs_ _rhsOppNt _rhsOppProd+                      ___node =+                          (Syn_Rule _lhsOlocals _lhsOppRL)                   in  ( _lhsOlocals,_lhsOppRL)))) -- Rules ------------------------------------------------------- {-@@ -3429,102 +3476,104 @@                        _lhsOppRL =                            ({-# LINE 462 "src-ag/AG2AspectAG.ag" #-}                             _hdIppRL ++ _tlIppRL-                            {-# LINE 3433 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3480 "dist/build/AG2AspectAG" #-}                             )                        -- use rule "src-ag/AG2AspectAG.ag"(line 365, column 30)                        _lhsOlocals =                            ({-# LINE 365 "src-ag/AG2AspectAG.ag" #-}                             _hdIlocals ++ _tlIlocals-                            {-# LINE 3439 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3486 "dist/build/AG2AspectAG" #-}                             )                        -- copy rule (down)                        _hdOext =                            ({-# LINE 118 "src-ag/AG2AspectAG.ag" #-}                             _lhsIext-                            {-# LINE 3445 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3492 "dist/build/AG2AspectAG" #-}                             )                        -- copy rule (down)                        _hdOinhNoGroup =                            ({-# LINE 54 "src-ag/AG2AspectAG.ag" #-}                             _lhsIinhNoGroup-                            {-# LINE 3451 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3498 "dist/build/AG2AspectAG" #-}                             )                        -- copy rule (down)                        _hdOnewProd =                            ({-# LINE 406 "src-ag/AG2AspectAG.ag" #-}                             _lhsInewProd-                            {-# LINE 3457 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3504 "dist/build/AG2AspectAG" #-}                             )                        -- copy rule (down)                        _hdOo_noGroup =                            ({-# LINE 44 "src-ag/AG2AspectAG.ag" #-}                             _lhsIo_noGroup-                            {-# LINE 3463 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3510 "dist/build/AG2AspectAG" #-}                             )                        -- copy rule (down)                        _hdOppNt =                            ({-# LINE 186 "src-ag/AG2AspectAG.ag" #-}                             _lhsIppNt-                            {-# LINE 3469 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3516 "dist/build/AG2AspectAG" #-}                             )                        -- copy rule (down)                        _hdOppProd =                            ({-# LINE 191 "src-ag/AG2AspectAG.ag" #-}                             _lhsIppProd-                            {-# LINE 3475 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3522 "dist/build/AG2AspectAG" #-}                             )                        -- copy rule (down)                        _hdOsynNoGroup =                            ({-# LINE 54 "src-ag/AG2AspectAG.ag" #-}                             _lhsIsynNoGroup-                            {-# LINE 3481 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3528 "dist/build/AG2AspectAG" #-}                             )                        -- copy rule (down)                        _tlOext =                            ({-# LINE 118 "src-ag/AG2AspectAG.ag" #-}                             _lhsIext-                            {-# LINE 3487 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3534 "dist/build/AG2AspectAG" #-}                             )                        -- copy rule (down)                        _tlOinhNoGroup =                            ({-# LINE 54 "src-ag/AG2AspectAG.ag" #-}                             _lhsIinhNoGroup-                            {-# LINE 3493 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3540 "dist/build/AG2AspectAG" #-}                             )                        -- copy rule (down)                        _tlOnewProd =                            ({-# LINE 406 "src-ag/AG2AspectAG.ag" #-}                             _lhsInewProd-                            {-# LINE 3499 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3546 "dist/build/AG2AspectAG" #-}                             )                        -- copy rule (down)                        _tlOo_noGroup =                            ({-# LINE 44 "src-ag/AG2AspectAG.ag" #-}                             _lhsIo_noGroup-                            {-# LINE 3505 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3552 "dist/build/AG2AspectAG" #-}                             )                        -- copy rule (down)                        _tlOppNt =                            ({-# LINE 186 "src-ag/AG2AspectAG.ag" #-}                             _lhsIppNt-                            {-# LINE 3511 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3558 "dist/build/AG2AspectAG" #-}                             )                        -- copy rule (down)                        _tlOppProd =                            ({-# LINE 191 "src-ag/AG2AspectAG.ag" #-}                             _lhsIppProd-                            {-# LINE 3517 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3564 "dist/build/AG2AspectAG" #-}                             )                        -- copy rule (down)                        _tlOsynNoGroup =                            ({-# LINE 54 "src-ag/AG2AspectAG.ag" #-}                             _lhsIsynNoGroup-                            {-# LINE 3523 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3570 "dist/build/AG2AspectAG" #-}                             )                        ( _hdIlocals,_hdIppRL) =                            hd_ _hdOext _hdOinhNoGroup _hdOnewProd _hdOo_noGroup _hdOppNt _hdOppProd _hdOsynNoGroup                        ( _tlIlocals,_tlIppRL) =                            tl_ _tlOext _tlOinhNoGroup _tlOnewProd _tlOo_noGroup _tlOppNt _tlOppProd _tlOsynNoGroup+                       ___node =+                           (Syn_Rules _lhsOlocals _lhsOppRL)                    in  ( _lhsOlocals,_lhsOppRL)))) sem_Rules_Nil :: T_Rules sem_Rules_Nil =@@ -3541,14 +3590,16 @@                        _lhsOppRL =                            ({-# LINE 463 "src-ag/AG2AspectAG.ag" #-}                             []-                            {-# LINE 3545 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3594 "dist/build/AG2AspectAG" #-}                             )                        -- use rule "src-ag/AG2AspectAG.ag"(line 365, column 30)                        _lhsOlocals =                            ({-# LINE 365 "src-ag/AG2AspectAG.ag" #-}                             []-                            {-# LINE 3551 "dist/build/AG2AspectAG" #-}+                            {-# LINE 3600 "dist/build/AG2AspectAG" #-}                             )+                       ___node =+                           (Syn_Rules _lhsOlocals _lhsOppRL)                    in  ( _lhsOlocals,_lhsOppRL)))) -- TypeSig ----------------------------------------------------- {-@@ -3576,7 +3627,8 @@                        Type ->                        T_TypeSig sem_TypeSig_TypeSig name_ tp_ =-    (T_TypeSig (let+    (T_TypeSig (let ___node =+                        (Syn_TypeSig)                 in  ( ))) -- TypeSigs ---------------------------------------------------- {-@@ -3605,9 +3657,11 @@                      T_TypeSigs ->                      T_TypeSigs sem_TypeSigs_Cons (T_TypeSig hd_) (T_TypeSigs tl_) =-    (T_TypeSigs (let+    (T_TypeSigs (let ___node =+                         (Syn_TypeSigs)                  in  ( ))) sem_TypeSigs_Nil :: T_TypeSigs sem_TypeSigs_Nil =-    (T_TypeSigs (let+    (T_TypeSigs (let ___node =+                         (Syn_TypeSigs)                  in  ( )))
src-derived/AbstractSyntaxDump.hs view
@@ -76,6 +76,8 @@                        ppNestInfo ["Child","Child"] [pp name_, ppShow tp_] [ppF "kind" $ ppShow kind_] []                        {-# LINE 78 "dist/build/AbstractSyntaxDump" #-}                        )+                  ___node =+                      (Syn_Child _lhsOpp)               in  ( _lhsOpp))) -- Children ---------------------------------------------------- {-@@ -117,18 +119,20 @@                      _lhsOppL =                          ({-# LINE 67 "src-ag/AbstractSyntaxDump.ag" #-}                           _hdIpp : _tlIppL-                          {-# LINE 121 "dist/build/AbstractSyntaxDump" #-}+                          {-# LINE 123 "dist/build/AbstractSyntaxDump" #-}                           )                      -- use rule "src-ag/AbstractSyntaxDump.ag"(line 17, column 58)                      _lhsOpp =                          ({-# LINE 17 "src-ag/AbstractSyntaxDump.ag" #-}                           _hdIpp >-< _tlIpp-                          {-# LINE 127 "dist/build/AbstractSyntaxDump" #-}+                          {-# LINE 129 "dist/build/AbstractSyntaxDump" #-}                           )                      ( _hdIpp) =                          hd_                      ( _tlIpp,_tlIppL) =                          tl_+                     ___node =+                         (Syn_Children _lhsOpp _lhsOppL)                  in  ( _lhsOpp,_lhsOppL))) sem_Children_Nil :: T_Children sem_Children_Nil =@@ -138,14 +142,16 @@                      _lhsOppL =                          ({-# LINE 68 "src-ag/AbstractSyntaxDump.ag" #-}                           []-                          {-# LINE 142 "dist/build/AbstractSyntaxDump" #-}+                          {-# LINE 146 "dist/build/AbstractSyntaxDump" #-}                           )                      -- use rule "src-ag/AbstractSyntaxDump.ag"(line 17, column 58)                      _lhsOpp =                          ({-# LINE 17 "src-ag/AbstractSyntaxDump.ag" #-}                           empty-                          {-# LINE 148 "dist/build/AbstractSyntaxDump" #-}+                          {-# LINE 152 "dist/build/AbstractSyntaxDump" #-}                           )+                     ___node =+                         (Syn_Children _lhsOpp _lhsOppL)                  in  ( _lhsOpp,_lhsOppL))) -- Expression -------------------------------------------------- {-@@ -181,8 +187,10 @@                        _lhsOpp =                            ({-# LINE 50 "src-ag/AbstractSyntaxDump.ag" #-}                             ppNestInfo ["Expression","Expression"] [ppShow pos_] [ppF "txt" $ vlist . showTokens . tokensToStrings $ tks_] []-                            {-# LINE 185 "dist/build/AbstractSyntaxDump" #-}+                            {-# LINE 191 "dist/build/AbstractSyntaxDump" #-}                             )+                       ___node =+                           (Syn_Expression _lhsOpp)                    in  ( _lhsOpp))) -- Grammar ----------------------------------------------------- {-@@ -250,10 +258,12 @@                             , ppF "wrappers" $ ppShow $ wrappers_                             , ppF "nonts" $ ppVList _nontsIppL                             ] []-                         {-# LINE 254 "dist/build/AbstractSyntaxDump" #-}+                         {-# LINE 262 "dist/build/AbstractSyntaxDump" #-}                          )                     ( _nontsIpp,_nontsIppL) =                         nonts_+                    ___node =+                        (Syn_Grammar _lhsOpp)                 in  ( _lhsOpp))) -- Nonterminal ------------------------------------------------- {-@@ -297,10 +307,12 @@                         _lhsOpp =                             ({-# LINE 29 "src-ag/AbstractSyntaxDump.ag" #-}                              ppNestInfo ["Nonterminal","Nonterminal"] (pp nt_ : map pp params_) [ppF "inh" $ ppMap inh_, ppF "syn" $ ppMap syn_, ppF "prods" $ ppVList _prodsIppL] []-                             {-# LINE 301 "dist/build/AbstractSyntaxDump" #-}+                             {-# LINE 311 "dist/build/AbstractSyntaxDump" #-}                              )                         ( _prodsIpp,_prodsIppL) =                             prods_+                        ___node =+                            (Syn_Nonterminal _lhsOpp)                     in  ( _lhsOpp))) -- Nonterminals ------------------------------------------------ {-@@ -342,18 +354,20 @@                          _lhsOppL =                              ({-# LINE 75 "src-ag/AbstractSyntaxDump.ag" #-}                               _hdIpp : _tlIppL-                              {-# LINE 346 "dist/build/AbstractSyntaxDump" #-}+                              {-# LINE 358 "dist/build/AbstractSyntaxDump" #-}                               )                          -- use rule "src-ag/AbstractSyntaxDump.ag"(line 17, column 58)                          _lhsOpp =                              ({-# LINE 17 "src-ag/AbstractSyntaxDump.ag" #-}                               _hdIpp >-< _tlIpp-                              {-# LINE 352 "dist/build/AbstractSyntaxDump" #-}+                              {-# LINE 364 "dist/build/AbstractSyntaxDump" #-}                               )                          ( _hdIpp) =                              hd_                          ( _tlIpp,_tlIppL) =                              tl_+                         ___node =+                             (Syn_Nonterminals _lhsOpp _lhsOppL)                      in  ( _lhsOpp,_lhsOppL))) sem_Nonterminals_Nil :: T_Nonterminals sem_Nonterminals_Nil =@@ -363,14 +377,16 @@                          _lhsOppL =                              ({-# LINE 76 "src-ag/AbstractSyntaxDump.ag" #-}                               []-                              {-# LINE 367 "dist/build/AbstractSyntaxDump" #-}+                              {-# LINE 381 "dist/build/AbstractSyntaxDump" #-}                               )                          -- use rule "src-ag/AbstractSyntaxDump.ag"(line 17, column 58)                          _lhsOpp =                              ({-# LINE 17 "src-ag/AbstractSyntaxDump.ag" #-}                               empty-                              {-# LINE 373 "dist/build/AbstractSyntaxDump" #-}+                              {-# LINE 387 "dist/build/AbstractSyntaxDump" #-}                               )+                         ___node =+                             (Syn_Nonterminals _lhsOpp _lhsOppL)                      in  ( _lhsOpp,_lhsOppL))) -- Pattern ----------------------------------------------------- {-@@ -440,22 +456,24 @@                     _lhsOpp =                         ({-# LINE 46 "src-ag/AbstractSyntaxDump.ag" #-}                          ppNestInfo ["Pattern","Alias"] [pp field_, pp attr_] [ppF "pat" $ _patIpp] []-                         {-# LINE 444 "dist/build/AbstractSyntaxDump" #-}+                         {-# LINE 460 "dist/build/AbstractSyntaxDump" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Alias field_ attr_ _patIcopy-                         {-# LINE 450 "dist/build/AbstractSyntaxDump" #-}+                         {-# LINE 466 "dist/build/AbstractSyntaxDump" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 456 "dist/build/AbstractSyntaxDump" #-}+                         {-# LINE 472 "dist/build/AbstractSyntaxDump" #-}                          )                     ( _patIcopy,_patIpp) =                         pat_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOpp)                 in  ( _lhsOcopy,_lhsOpp))) sem_Pattern_Constr :: ConstructorIdent ->                       T_Patterns ->@@ -470,22 +488,24 @@                     _lhsOpp =                         ({-# LINE 44 "src-ag/AbstractSyntaxDump.ag" #-}                          ppNestInfo ["Pattern","Constr"] [pp name_] [ppF "pats" $ ppVList _patsIppL] []-                         {-# LINE 474 "dist/build/AbstractSyntaxDump" #-}+                         {-# LINE 492 "dist/build/AbstractSyntaxDump" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Constr name_ _patsIcopy-                         {-# LINE 480 "dist/build/AbstractSyntaxDump" #-}+                         {-# LINE 498 "dist/build/AbstractSyntaxDump" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 486 "dist/build/AbstractSyntaxDump" #-}+                         {-# LINE 504 "dist/build/AbstractSyntaxDump" #-}                          )                     ( _patsIcopy,_patsIpp,_patsIppL) =                         pats_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOpp)                 in  ( _lhsOcopy,_lhsOpp))) sem_Pattern_Irrefutable :: T_Pattern ->                            T_Pattern@@ -498,22 +518,24 @@                     _lhsOpp =                         ({-# LINE 17 "src-ag/AbstractSyntaxDump.ag" #-}                          _patIpp-                         {-# LINE 502 "dist/build/AbstractSyntaxDump" #-}+                         {-# LINE 522 "dist/build/AbstractSyntaxDump" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Irrefutable _patIcopy-                         {-# LINE 508 "dist/build/AbstractSyntaxDump" #-}+                         {-# LINE 528 "dist/build/AbstractSyntaxDump" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 514 "dist/build/AbstractSyntaxDump" #-}+                         {-# LINE 534 "dist/build/AbstractSyntaxDump" #-}                          )                     ( _patIcopy,_patIpp) =                         pat_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOpp)                 in  ( _lhsOcopy,_lhsOpp))) sem_Pattern_Product :: Pos ->                        T_Patterns ->@@ -528,22 +550,24 @@                     _lhsOpp =                         ({-# LINE 45 "src-ag/AbstractSyntaxDump.ag" #-}                          ppNestInfo ["Pattern","Product"] [ppShow pos_] [ppF "pats" $ ppVList _patsIppL] []-                         {-# LINE 532 "dist/build/AbstractSyntaxDump" #-}+                         {-# LINE 554 "dist/build/AbstractSyntaxDump" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Product pos_ _patsIcopy-                         {-# LINE 538 "dist/build/AbstractSyntaxDump" #-}+                         {-# LINE 560 "dist/build/AbstractSyntaxDump" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 544 "dist/build/AbstractSyntaxDump" #-}+                         {-# LINE 566 "dist/build/AbstractSyntaxDump" #-}                          )                     ( _patsIcopy,_patsIpp,_patsIppL) =                         pats_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOpp)                 in  ( _lhsOcopy,_lhsOpp))) sem_Pattern_Underscore :: Pos ->                           T_Pattern@@ -554,20 +578,22 @@                     _lhsOpp =                         ({-# LINE 47 "src-ag/AbstractSyntaxDump.ag" #-}                          ppNestInfo ["Pattern","Underscore"] [ppShow pos_] [] []-                         {-# LINE 558 "dist/build/AbstractSyntaxDump" #-}+                         {-# LINE 582 "dist/build/AbstractSyntaxDump" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Underscore pos_-                         {-# LINE 564 "dist/build/AbstractSyntaxDump" #-}+                         {-# LINE 588 "dist/build/AbstractSyntaxDump" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 570 "dist/build/AbstractSyntaxDump" #-}+                         {-# LINE 594 "dist/build/AbstractSyntaxDump" #-}                          )+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOpp)                 in  ( _lhsOcopy,_lhsOpp))) -- Patterns ---------------------------------------------------- {-@@ -617,30 +643,32 @@                      _lhsOppL =                          ({-# LINE 55 "src-ag/AbstractSyntaxDump.ag" #-}                           _hdIpp : _tlIppL-                          {-# LINE 621 "dist/build/AbstractSyntaxDump" #-}+                          {-# LINE 647 "dist/build/AbstractSyntaxDump" #-}                           )                      -- use rule "src-ag/AbstractSyntaxDump.ag"(line 17, column 58)                      _lhsOpp =                          ({-# LINE 17 "src-ag/AbstractSyntaxDump.ag" #-}                           _hdIpp >-< _tlIpp-                          {-# LINE 627 "dist/build/AbstractSyntaxDump" #-}+                          {-# LINE 653 "dist/build/AbstractSyntaxDump" #-}                           )                      -- self rule                      _copy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           (:) _hdIcopy _tlIcopy-                          {-# LINE 633 "dist/build/AbstractSyntaxDump" #-}+                          {-# LINE 659 "dist/build/AbstractSyntaxDump" #-}                           )                      -- self rule                      _lhsOcopy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           _copy-                          {-# LINE 639 "dist/build/AbstractSyntaxDump" #-}+                          {-# LINE 665 "dist/build/AbstractSyntaxDump" #-}                           )                      ( _hdIcopy,_hdIpp) =                          hd_                      ( _tlIcopy,_tlIpp,_tlIppL) =                          tl_+                     ___node =+                         (Syn_Patterns _lhsOcopy _lhsOpp _lhsOppL)                  in  ( _lhsOcopy,_lhsOpp,_lhsOppL))) sem_Patterns_Nil :: T_Patterns sem_Patterns_Nil =@@ -651,26 +679,28 @@                      _lhsOppL =                          ({-# LINE 56 "src-ag/AbstractSyntaxDump.ag" #-}                           []-                          {-# LINE 655 "dist/build/AbstractSyntaxDump" #-}+                          {-# LINE 683 "dist/build/AbstractSyntaxDump" #-}                           )                      -- use rule "src-ag/AbstractSyntaxDump.ag"(line 17, column 58)                      _lhsOpp =                          ({-# LINE 17 "src-ag/AbstractSyntaxDump.ag" #-}                           empty-                          {-# LINE 661 "dist/build/AbstractSyntaxDump" #-}+                          {-# LINE 689 "dist/build/AbstractSyntaxDump" #-}                           )                      -- self rule                      _copy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           []-                          {-# LINE 667 "dist/build/AbstractSyntaxDump" #-}+                          {-# LINE 695 "dist/build/AbstractSyntaxDump" #-}                           )                      -- self rule                      _lhsOcopy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           _copy-                          {-# LINE 673 "dist/build/AbstractSyntaxDump" #-}+                          {-# LINE 701 "dist/build/AbstractSyntaxDump" #-}                           )+                     ___node =+                         (Syn_Patterns _lhsOcopy _lhsOpp _lhsOppL)                  in  ( _lhsOcopy,_lhsOpp,_lhsOppL))) -- Production -------------------------------------------------- {-@@ -722,7 +752,7 @@                        _lhsOpp =                            ({-# LINE 32 "src-ag/AbstractSyntaxDump.ag" #-}                             ppNestInfo ["Production","Production"] [pp con_] [ppF "children" $ ppVList _childrenIppL,ppF "rules" $ ppVList _rulesIppL,ppF "typeSigs" $ ppVList _typeSigsIppL] []-                            {-# LINE 726 "dist/build/AbstractSyntaxDump" #-}+                            {-# LINE 756 "dist/build/AbstractSyntaxDump" #-}                             )                        ( _childrenIpp,_childrenIppL) =                            children_@@ -730,6 +760,8 @@                            rules_                        ( _typeSigsIpp,_typeSigsIppL) =                            typeSigs_+                       ___node =+                           (Syn_Production _lhsOpp)                    in  ( _lhsOpp))) -- Productions ------------------------------------------------- {-@@ -771,18 +803,20 @@                         _lhsOppL =                             ({-# LINE 71 "src-ag/AbstractSyntaxDump.ag" #-}                              _hdIpp : _tlIppL-                             {-# LINE 775 "dist/build/AbstractSyntaxDump" #-}+                             {-# LINE 807 "dist/build/AbstractSyntaxDump" #-}                              )                         -- use rule "src-ag/AbstractSyntaxDump.ag"(line 17, column 58)                         _lhsOpp =                             ({-# LINE 17 "src-ag/AbstractSyntaxDump.ag" #-}                              _hdIpp >-< _tlIpp-                             {-# LINE 781 "dist/build/AbstractSyntaxDump" #-}+                             {-# LINE 813 "dist/build/AbstractSyntaxDump" #-}                              )                         ( _hdIpp) =                             hd_                         ( _tlIpp,_tlIppL) =                             tl_+                        ___node =+                            (Syn_Productions _lhsOpp _lhsOppL)                     in  ( _lhsOpp,_lhsOppL))) sem_Productions_Nil :: T_Productions sem_Productions_Nil =@@ -792,14 +826,16 @@                         _lhsOppL =                             ({-# LINE 72 "src-ag/AbstractSyntaxDump.ag" #-}                              []-                             {-# LINE 796 "dist/build/AbstractSyntaxDump" #-}+                             {-# LINE 830 "dist/build/AbstractSyntaxDump" #-}                              )                         -- use rule "src-ag/AbstractSyntaxDump.ag"(line 17, column 58)                         _lhsOpp =                             ({-# LINE 17 "src-ag/AbstractSyntaxDump.ag" #-}                              empty-                             {-# LINE 802 "dist/build/AbstractSyntaxDump" #-}+                             {-# LINE 836 "dist/build/AbstractSyntaxDump" #-}                              )+                        ___node =+                            (Syn_Productions _lhsOpp _lhsOppL)                     in  ( _lhsOpp,_lhsOppL))) -- Rule -------------------------------------------------------- {-@@ -854,12 +890,14 @@                  _lhsOpp =                      ({-# LINE 38 "src-ag/AbstractSyntaxDump.ag" #-}                       ppNestInfo ["Rule","Rule"] [ppShow owrt_, pp origin_] [ppF "pattern" $ _patternIpp, ppF "rhs" $ _rhsIpp] []-                      {-# LINE 858 "dist/build/AbstractSyntaxDump" #-}+                      {-# LINE 894 "dist/build/AbstractSyntaxDump" #-}                       )                  ( _patternIcopy,_patternIpp) =                      pattern_                  ( _rhsIpp) =                      rhs_+                 ___node =+                     (Syn_Rule _lhsOpp)              in  ( _lhsOpp))) -- Rules ------------------------------------------------------- {-@@ -901,18 +939,20 @@                   _lhsOppL =                       ({-# LINE 63 "src-ag/AbstractSyntaxDump.ag" #-}                        _hdIpp : _tlIppL-                       {-# LINE 905 "dist/build/AbstractSyntaxDump" #-}+                       {-# LINE 943 "dist/build/AbstractSyntaxDump" #-}                        )                   -- use rule "src-ag/AbstractSyntaxDump.ag"(line 17, column 58)                   _lhsOpp =                       ({-# LINE 17 "src-ag/AbstractSyntaxDump.ag" #-}                        _hdIpp >-< _tlIpp-                       {-# LINE 911 "dist/build/AbstractSyntaxDump" #-}+                       {-# LINE 949 "dist/build/AbstractSyntaxDump" #-}                        )                   ( _hdIpp) =                       hd_                   ( _tlIpp,_tlIppL) =                       tl_+                  ___node =+                      (Syn_Rules _lhsOpp _lhsOppL)               in  ( _lhsOpp,_lhsOppL))) sem_Rules_Nil :: T_Rules sem_Rules_Nil =@@ -922,14 +962,16 @@                   _lhsOppL =                       ({-# LINE 64 "src-ag/AbstractSyntaxDump.ag" #-}                        []-                       {-# LINE 926 "dist/build/AbstractSyntaxDump" #-}+                       {-# LINE 966 "dist/build/AbstractSyntaxDump" #-}                        )                   -- use rule "src-ag/AbstractSyntaxDump.ag"(line 17, column 58)                   _lhsOpp =                       ({-# LINE 17 "src-ag/AbstractSyntaxDump.ag" #-}                        empty-                       {-# LINE 932 "dist/build/AbstractSyntaxDump" #-}+                       {-# LINE 972 "dist/build/AbstractSyntaxDump" #-}                        )+                  ___node =+                      (Syn_Rules _lhsOpp _lhsOppL)               in  ( _lhsOpp,_lhsOppL))) -- TypeSig ----------------------------------------------------- {-@@ -965,8 +1007,10 @@                     _lhsOpp =                         ({-# LINE 41 "src-ag/AbstractSyntaxDump.ag" #-}                          ppNestInfo ["TypeSig","TypeSig"] [pp name_, ppShow tp_] [] []-                         {-# LINE 969 "dist/build/AbstractSyntaxDump" #-}+                         {-# LINE 1011 "dist/build/AbstractSyntaxDump" #-}                          )+                    ___node =+                        (Syn_TypeSig _lhsOpp)                 in  ( _lhsOpp))) -- TypeSigs ---------------------------------------------------- {-@@ -1008,18 +1052,20 @@                      _lhsOppL =                          ({-# LINE 59 "src-ag/AbstractSyntaxDump.ag" #-}                           _hdIpp : _tlIppL-                          {-# LINE 1012 "dist/build/AbstractSyntaxDump" #-}+                          {-# LINE 1056 "dist/build/AbstractSyntaxDump" #-}                           )                      -- use rule "src-ag/AbstractSyntaxDump.ag"(line 17, column 58)                      _lhsOpp =                          ({-# LINE 17 "src-ag/AbstractSyntaxDump.ag" #-}                           _hdIpp >-< _tlIpp-                          {-# LINE 1018 "dist/build/AbstractSyntaxDump" #-}+                          {-# LINE 1062 "dist/build/AbstractSyntaxDump" #-}                           )                      ( _hdIpp) =                          hd_                      ( _tlIpp,_tlIppL) =                          tl_+                     ___node =+                         (Syn_TypeSigs _lhsOpp _lhsOppL)                  in  ( _lhsOpp,_lhsOppL))) sem_TypeSigs_Nil :: T_TypeSigs sem_TypeSigs_Nil =@@ -1029,12 +1075,14 @@                      _lhsOppL =                          ({-# LINE 60 "src-ag/AbstractSyntaxDump.ag" #-}                           []-                          {-# LINE 1033 "dist/build/AbstractSyntaxDump" #-}+                          {-# LINE 1079 "dist/build/AbstractSyntaxDump" #-}                           )                      -- use rule "src-ag/AbstractSyntaxDump.ag"(line 17, column 58)                      _lhsOpp =                          ({-# LINE 17 "src-ag/AbstractSyntaxDump.ag" #-}                           empty-                          {-# LINE 1039 "dist/build/AbstractSyntaxDump" #-}+                          {-# LINE 1085 "dist/build/AbstractSyntaxDump" #-}                           )+                     ___node =+                         (Syn_TypeSigs _lhsOpp _lhsOppL)                  in  ( _lhsOpp,_lhsOppL)))
src-derived/CodeSyntaxDump.hs view
@@ -117,6 +117,8 @@                           )                      ( _nontsIpp,_nontsIppL) =                          nonts_+                     ___node =+                         (Syn_CGrammar _lhsOpp)                  in  ( _lhsOpp))) -- CInterface -------------------------------------------------- {-@@ -152,10 +154,12 @@                        _lhsOpp =                            ({-# LINE 57 "src-ag/CodeSyntaxDump.ag" #-}                             ppNestInfo ["CInterface","CInterface"] [] [ppF "seg" $ ppVList _segIppL] []-                            {-# LINE 156 "dist/build/CodeSyntaxDump" #-}+                            {-# LINE 158 "dist/build/CodeSyntaxDump" #-}                             )                        ( _segIpp,_segIppL) =                            seg_+                       ___node =+                           (Syn_CInterface _lhsOpp)                    in  ( _lhsOpp))) -- CNonterminal ------------------------------------------------ {-@@ -202,12 +206,14 @@                          _lhsOpp =                              ({-# LINE 54 "src-ag/CodeSyntaxDump.ag" #-}                               ppNestInfo ["CNonterminal","CNonterminal"] (pp nt_ : map pp params_) [ppF "inh" $ ppMap inh_, ppF "syn" $ ppMap syn_, ppF "prods" $ ppVList _prodsIppL, ppF "inter" _interIpp] []-                              {-# LINE 206 "dist/build/CodeSyntaxDump" #-}+                              {-# LINE 210 "dist/build/CodeSyntaxDump" #-}                               )                          ( _prodsIpp,_prodsIppL) =                              prods_                          ( _interIpp) =                              inter_+                         ___node =+                             (Syn_CNonterminal _lhsOpp)                      in  ( _lhsOpp))) -- CNonterminals ----------------------------------------------- {-@@ -249,18 +255,20 @@                           _lhsOppL =                               ({-# LINE 102 "src-ag/CodeSyntaxDump.ag" #-}                                _hdIpp : _tlIppL-                               {-# LINE 253 "dist/build/CodeSyntaxDump" #-}+                               {-# LINE 259 "dist/build/CodeSyntaxDump" #-}                                )                           -- use rule "src-ag/CodeSyntaxDump.ag"(line 44, column 40)                           _lhsOpp =                               ({-# LINE 44 "src-ag/CodeSyntaxDump.ag" #-}                                _hdIpp >-< _tlIpp-                               {-# LINE 259 "dist/build/CodeSyntaxDump" #-}+                               {-# LINE 265 "dist/build/CodeSyntaxDump" #-}                                )                           ( _hdIpp) =                               hd_                           ( _tlIpp,_tlIppL) =                               tl_+                          ___node =+                              (Syn_CNonterminals _lhsOpp _lhsOppL)                       in  ( _lhsOpp,_lhsOppL))) sem_CNonterminals_Nil :: T_CNonterminals sem_CNonterminals_Nil =@@ -270,14 +278,16 @@                           _lhsOppL =                               ({-# LINE 103 "src-ag/CodeSyntaxDump.ag" #-}                                []-                               {-# LINE 274 "dist/build/CodeSyntaxDump" #-}+                               {-# LINE 282 "dist/build/CodeSyntaxDump" #-}                                )                           -- use rule "src-ag/CodeSyntaxDump.ag"(line 44, column 40)                           _lhsOpp =                               ({-# LINE 44 "src-ag/CodeSyntaxDump.ag" #-}                                empty-                               {-# LINE 280 "dist/build/CodeSyntaxDump" #-}+                               {-# LINE 288 "dist/build/CodeSyntaxDump" #-}                                )+                          ___node =+                              (Syn_CNonterminals _lhsOpp _lhsOppL)                       in  ( _lhsOpp,_lhsOppL))) -- CProduction ------------------------------------------------- {-@@ -319,10 +329,12 @@                         _lhsOpp =                             ({-# LINE 63 "src-ag/CodeSyntaxDump.ag" #-}                              ppNestInfo ["CProduction","CProduction"] [pp con_] [ppF "visits" $ ppVList _visitsIppL, ppF "children" $ ppVList (map ppChild children_),ppF "terminals" $ ppVList (map ppShow terminals_)] []-                             {-# LINE 323 "dist/build/CodeSyntaxDump" #-}+                             {-# LINE 333 "dist/build/CodeSyntaxDump" #-}                              )                         ( _visitsIpp,_visitsIppL) =                             visits_+                        ___node =+                            (Syn_CProduction _lhsOpp)                     in  ( _lhsOpp))) -- CProductions ------------------------------------------------ {-@@ -364,18 +376,20 @@                          _lhsOppL =                              ({-# LINE 94 "src-ag/CodeSyntaxDump.ag" #-}                               _hdIpp : _tlIppL-                              {-# LINE 368 "dist/build/CodeSyntaxDump" #-}+                              {-# LINE 380 "dist/build/CodeSyntaxDump" #-}                               )                          -- use rule "src-ag/CodeSyntaxDump.ag"(line 44, column 40)                          _lhsOpp =                              ({-# LINE 44 "src-ag/CodeSyntaxDump.ag" #-}                               _hdIpp >-< _tlIpp-                              {-# LINE 374 "dist/build/CodeSyntaxDump" #-}+                              {-# LINE 386 "dist/build/CodeSyntaxDump" #-}                               )                          ( _hdIpp) =                              hd_                          ( _tlIpp,_tlIppL) =                              tl_+                         ___node =+                             (Syn_CProductions _lhsOpp _lhsOppL)                      in  ( _lhsOpp,_lhsOppL))) sem_CProductions_Nil :: T_CProductions sem_CProductions_Nil =@@ -385,14 +399,16 @@                          _lhsOppL =                              ({-# LINE 95 "src-ag/CodeSyntaxDump.ag" #-}                               []-                              {-# LINE 389 "dist/build/CodeSyntaxDump" #-}+                              {-# LINE 403 "dist/build/CodeSyntaxDump" #-}                               )                          -- use rule "src-ag/CodeSyntaxDump.ag"(line 44, column 40)                          _lhsOpp =                              ({-# LINE 44 "src-ag/CodeSyntaxDump.ag" #-}                               empty-                              {-# LINE 395 "dist/build/CodeSyntaxDump" #-}+                              {-# LINE 409 "dist/build/CodeSyntaxDump" #-}                               )+                         ___node =+                             (Syn_CProductions _lhsOpp _lhsOppL)                      in  ( _lhsOpp,_lhsOppL))) -- CRule ------------------------------------------------------- {-@@ -455,8 +471,10 @@                   _lhsOpp =                       ({-# LINE 70 "src-ag/CodeSyntaxDump.ag" #-}                        ppNestInfo ["CRule","CChildVisit"] [pp name_] [ppF "nt" $ pp nt_, ppF "nr" $ ppShow nr_, ppF "inh" $ ppMap inh_, ppF "syn" $ ppMap syn_, ppF "last" $ ppBool isLast_] []-                       {-# LINE 459 "dist/build/CodeSyntaxDump" #-}+                       {-# LINE 475 "dist/build/CodeSyntaxDump" #-}                        )+                  ___node =+                      (Syn_CRule _lhsOpp)               in  ( _lhsOpp))) sem_CRule_CRule :: Identifier ->                    Bool ->@@ -483,10 +501,12 @@                   _lhsOpp =                       ({-# LINE 69 "src-ag/CodeSyntaxDump.ag" #-}                        ppNestInfo ["CRule","CRule"] [pp name_] [ppF "isIn" $ ppBool isIn_, ppF "hasCode" $ ppBool hasCode_, ppF "nt" $ pp nt_, ppF "con" $ pp con_, ppF "field" $ pp field_, ppF "childnt" $ ppMaybeShow childnt_, ppF "tp" $ ppMaybeShow tp_, ppF "pattern" $ if isIn_ then pp "<no pat because In>" else _patternIpp, ppF "rhs" $ ppStrings rhs_, ppF "defines" $ ppVertexMap defines_, ppF "owrt" $ ppBool owrt_, ppF "origin" $ pp origin_] []-                       {-# LINE 487 "dist/build/CodeSyntaxDump" #-}+                       {-# LINE 505 "dist/build/CodeSyntaxDump" #-}                        )                   ( _patternIcopy,_patternIpp) =                       pattern_+                  ___node =+                      (Syn_CRule _lhsOpp)               in  ( _lhsOpp))) -- CSegment ---------------------------------------------------- {-@@ -522,8 +542,10 @@                      _lhsOpp =                          ({-# LINE 60 "src-ag/CodeSyntaxDump.ag" #-}                           ppNestInfo ["CSegment","CSegment"] [] [ppF "inh" $ ppMap inh_, ppF "syn" $ ppMap syn_] []-                          {-# LINE 526 "dist/build/CodeSyntaxDump" #-}+                          {-# LINE 546 "dist/build/CodeSyntaxDump" #-}                           )+                     ___node =+                         (Syn_CSegment _lhsOpp)                  in  ( _lhsOpp))) -- CSegments --------------------------------------------------- {-@@ -565,18 +587,20 @@                       _lhsOppL =                           ({-# LINE 98 "src-ag/CodeSyntaxDump.ag" #-}                            _hdIpp : _tlIppL-                           {-# LINE 569 "dist/build/CodeSyntaxDump" #-}+                           {-# LINE 591 "dist/build/CodeSyntaxDump" #-}                            )                       -- use rule "src-ag/CodeSyntaxDump.ag"(line 44, column 40)                       _lhsOpp =                           ({-# LINE 44 "src-ag/CodeSyntaxDump.ag" #-}                            _hdIpp >-< _tlIpp-                           {-# LINE 575 "dist/build/CodeSyntaxDump" #-}+                           {-# LINE 597 "dist/build/CodeSyntaxDump" #-}                            )                       ( _hdIpp) =                           hd_                       ( _tlIpp,_tlIppL) =                           tl_+                      ___node =+                          (Syn_CSegments _lhsOpp _lhsOppL)                   in  ( _lhsOpp,_lhsOppL))) sem_CSegments_Nil :: T_CSegments sem_CSegments_Nil =@@ -586,14 +610,16 @@                       _lhsOppL =                           ({-# LINE 99 "src-ag/CodeSyntaxDump.ag" #-}                            []-                           {-# LINE 590 "dist/build/CodeSyntaxDump" #-}+                           {-# LINE 614 "dist/build/CodeSyntaxDump" #-}                            )                       -- use rule "src-ag/CodeSyntaxDump.ag"(line 44, column 40)                       _lhsOpp =                           ({-# LINE 44 "src-ag/CodeSyntaxDump.ag" #-}                            empty-                           {-# LINE 596 "dist/build/CodeSyntaxDump" #-}+                           {-# LINE 620 "dist/build/CodeSyntaxDump" #-}                            )+                      ___node =+                          (Syn_CSegments _lhsOpp _lhsOppL)                   in  ( _lhsOpp,_lhsOppL))) -- CVisit ------------------------------------------------------ {-@@ -637,12 +663,14 @@                    _lhsOpp =                        ({-# LINE 66 "src-ag/CodeSyntaxDump.ag" #-}                         ppNestInfo ["CVisit","CVisit"] [] [ppF "inh" $ ppMap inh_, ppF "syn" $ ppMap syn_, ppF "sequence" $ ppVList _vssIppL, ppF "intra" $ ppVList _intraIppL, ppF "ordered" $ ppBool ordered_] []-                        {-# LINE 641 "dist/build/CodeSyntaxDump" #-}+                        {-# LINE 667 "dist/build/CodeSyntaxDump" #-}                         )                    ( _vssIppL) =                        vss_                    ( _intraIppL) =                        intra_+                   ___node =+                       (Syn_CVisit _lhsOpp)                in  ( _lhsOpp))) -- CVisits ----------------------------------------------------- {-@@ -684,18 +712,20 @@                     _lhsOppL =                         ({-# LINE 90 "src-ag/CodeSyntaxDump.ag" #-}                          _hdIpp : _tlIppL-                         {-# LINE 688 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 716 "dist/build/CodeSyntaxDump" #-}                          )                     -- use rule "src-ag/CodeSyntaxDump.ag"(line 44, column 40)                     _lhsOpp =                         ({-# LINE 44 "src-ag/CodeSyntaxDump.ag" #-}                          _hdIpp >-< _tlIpp-                         {-# LINE 694 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 722 "dist/build/CodeSyntaxDump" #-}                          )                     ( _hdIpp) =                         hd_                     ( _tlIpp,_tlIppL) =                         tl_+                    ___node =+                        (Syn_CVisits _lhsOpp _lhsOppL)                 in  ( _lhsOpp,_lhsOppL))) sem_CVisits_Nil :: T_CVisits sem_CVisits_Nil =@@ -705,14 +735,16 @@                     _lhsOppL =                         ({-# LINE 91 "src-ag/CodeSyntaxDump.ag" #-}                          []-                         {-# LINE 709 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 739 "dist/build/CodeSyntaxDump" #-}                          )                     -- use rule "src-ag/CodeSyntaxDump.ag"(line 44, column 40)                     _lhsOpp =                         ({-# LINE 44 "src-ag/CodeSyntaxDump.ag" #-}                          empty-                         {-# LINE 715 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 745 "dist/build/CodeSyntaxDump" #-}                          )+                    ___node =+                        (Syn_CVisits _lhsOpp _lhsOppL)                 in  ( _lhsOpp,_lhsOppL))) -- Pattern ----------------------------------------------------- {-@@ -782,22 +814,24 @@                     _lhsOpp =                         ({-# LINE 75 "src-ag/CodeSyntaxDump.ag" #-}                          ppNestInfo ["Pattern","Alias"] [pp field_, pp attr_] [ppF "pat" $ _patIpp] []-                         {-# LINE 786 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 818 "dist/build/CodeSyntaxDump" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Alias field_ attr_ _patIcopy-                         {-# LINE 792 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 824 "dist/build/CodeSyntaxDump" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 798 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 830 "dist/build/CodeSyntaxDump" #-}                          )                     ( _patIcopy,_patIpp) =                         pat_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOpp)                 in  ( _lhsOcopy,_lhsOpp))) sem_Pattern_Constr :: ConstructorIdent ->                       T_Patterns ->@@ -812,22 +846,24 @@                     _lhsOpp =                         ({-# LINE 73 "src-ag/CodeSyntaxDump.ag" #-}                          ppNestInfo ["Pattern","Constr"] [pp name_] [ppF "pats" $ ppVList _patsIppL] []-                         {-# LINE 816 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 850 "dist/build/CodeSyntaxDump" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Constr name_ _patsIcopy-                         {-# LINE 822 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 856 "dist/build/CodeSyntaxDump" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 828 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 862 "dist/build/CodeSyntaxDump" #-}                          )                     ( _patsIcopy,_patsIpp,_patsIppL) =                         pats_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOpp)                 in  ( _lhsOcopy,_lhsOpp))) sem_Pattern_Irrefutable :: T_Pattern ->                            T_Pattern@@ -840,22 +876,24 @@                     _lhsOpp =                         ({-# LINE 44 "src-ag/CodeSyntaxDump.ag" #-}                          _patIpp-                         {-# LINE 844 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 880 "dist/build/CodeSyntaxDump" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Irrefutable _patIcopy-                         {-# LINE 850 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 886 "dist/build/CodeSyntaxDump" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 856 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 892 "dist/build/CodeSyntaxDump" #-}                          )                     ( _patIcopy,_patIpp) =                         pat_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOpp)                 in  ( _lhsOcopy,_lhsOpp))) sem_Pattern_Product :: Pos ->                        T_Patterns ->@@ -870,22 +908,24 @@                     _lhsOpp =                         ({-# LINE 74 "src-ag/CodeSyntaxDump.ag" #-}                          ppNestInfo ["Pattern","Product"] [ppShow pos_] [ppF "pats" $ ppVList _patsIppL] []-                         {-# LINE 874 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 912 "dist/build/CodeSyntaxDump" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Product pos_ _patsIcopy-                         {-# LINE 880 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 918 "dist/build/CodeSyntaxDump" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 886 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 924 "dist/build/CodeSyntaxDump" #-}                          )                     ( _patsIcopy,_patsIpp,_patsIppL) =                         pats_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOpp)                 in  ( _lhsOcopy,_lhsOpp))) sem_Pattern_Underscore :: Pos ->                           T_Pattern@@ -896,20 +936,22 @@                     _lhsOpp =                         ({-# LINE 76 "src-ag/CodeSyntaxDump.ag" #-}                          ppNestInfo ["Pattern","Underscore"] [ppShow pos_] [] []-                         {-# LINE 900 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 940 "dist/build/CodeSyntaxDump" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Underscore pos_-                         {-# LINE 906 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 946 "dist/build/CodeSyntaxDump" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 912 "dist/build/CodeSyntaxDump" #-}+                         {-# LINE 952 "dist/build/CodeSyntaxDump" #-}                          )+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOpp)                 in  ( _lhsOcopy,_lhsOpp))) -- Patterns ---------------------------------------------------- {-@@ -959,30 +1001,32 @@                      _lhsOppL =                          ({-# LINE 82 "src-ag/CodeSyntaxDump.ag" #-}                           _hdIpp : _tlIppL-                          {-# LINE 963 "dist/build/CodeSyntaxDump" #-}+                          {-# LINE 1005 "dist/build/CodeSyntaxDump" #-}                           )                      -- use rule "src-ag/CodeSyntaxDump.ag"(line 44, column 40)                      _lhsOpp =                          ({-# LINE 44 "src-ag/CodeSyntaxDump.ag" #-}                           _hdIpp >-< _tlIpp-                          {-# LINE 969 "dist/build/CodeSyntaxDump" #-}+                          {-# LINE 1011 "dist/build/CodeSyntaxDump" #-}                           )                      -- self rule                      _copy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           (:) _hdIcopy _tlIcopy-                          {-# LINE 975 "dist/build/CodeSyntaxDump" #-}+                          {-# LINE 1017 "dist/build/CodeSyntaxDump" #-}                           )                      -- self rule                      _lhsOcopy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           _copy-                          {-# LINE 981 "dist/build/CodeSyntaxDump" #-}+                          {-# LINE 1023 "dist/build/CodeSyntaxDump" #-}                           )                      ( _hdIcopy,_hdIpp) =                          hd_                      ( _tlIcopy,_tlIpp,_tlIppL) =                          tl_+                     ___node =+                         (Syn_Patterns _lhsOcopy _lhsOpp _lhsOppL)                  in  ( _lhsOcopy,_lhsOpp,_lhsOppL))) sem_Patterns_Nil :: T_Patterns sem_Patterns_Nil =@@ -993,26 +1037,28 @@                      _lhsOppL =                          ({-# LINE 83 "src-ag/CodeSyntaxDump.ag" #-}                           []-                          {-# LINE 997 "dist/build/CodeSyntaxDump" #-}+                          {-# LINE 1041 "dist/build/CodeSyntaxDump" #-}                           )                      -- use rule "src-ag/CodeSyntaxDump.ag"(line 44, column 40)                      _lhsOpp =                          ({-# LINE 44 "src-ag/CodeSyntaxDump.ag" #-}                           empty-                          {-# LINE 1003 "dist/build/CodeSyntaxDump" #-}+                          {-# LINE 1047 "dist/build/CodeSyntaxDump" #-}                           )                      -- self rule                      _copy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           []-                          {-# LINE 1009 "dist/build/CodeSyntaxDump" #-}+                          {-# LINE 1053 "dist/build/CodeSyntaxDump" #-}                           )                      -- self rule                      _lhsOcopy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           _copy-                          {-# LINE 1015 "dist/build/CodeSyntaxDump" #-}+                          {-# LINE 1059 "dist/build/CodeSyntaxDump" #-}                           )+                     ___node =+                         (Syn_Patterns _lhsOcopy _lhsOpp _lhsOppL)                  in  ( _lhsOcopy,_lhsOpp,_lhsOppL))) -- Sequence ---------------------------------------------------- {-@@ -1051,12 +1097,14 @@                      _lhsOppL =                          ({-# LINE 86 "src-ag/CodeSyntaxDump.ag" #-}                           _hdIpp : _tlIppL-                          {-# LINE 1055 "dist/build/CodeSyntaxDump" #-}+                          {-# LINE 1101 "dist/build/CodeSyntaxDump" #-}                           )                      ( _hdIpp) =                          hd_                      ( _tlIppL) =                          tl_+                     ___node =+                         (Syn_Sequence _lhsOppL)                  in  ( _lhsOppL))) sem_Sequence_Nil :: T_Sequence sem_Sequence_Nil =@@ -1065,6 +1113,8 @@                      _lhsOppL =                          ({-# LINE 87 "src-ag/CodeSyntaxDump.ag" #-}                           []-                          {-# LINE 1069 "dist/build/CodeSyntaxDump" #-}+                          {-# LINE 1117 "dist/build/CodeSyntaxDump" #-}                           )+                     ___node =+                         (Syn_Sequence _lhsOppL)                  in  ( _lhsOppL)))
src-derived/DefaultRules.hs view
@@ -541,7 +541,9 @@                                        {-# LINE 542 "dist/build/DefaultRules" #-}                                        )) of                                 { !_lhsOsynthesized ->-                                ( _lhsOerrors,_lhsOfield,_lhsOinherited,_lhsOname,_lhsOoutput,_lhsOsynthesized) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+                                (case ((Syn_Child _lhsOerrors _lhsOfield _lhsOinherited _lhsOname _lhsOoutput _lhsOsynthesized)) of+                                 { ___node ->+                                 ( _lhsOerrors,_lhsOfield,_lhsOinherited,_lhsOname,_lhsOoutput,_lhsOsynthesized) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))) -- Children ---------------------------------------------------- {-    visit 0:@@ -604,109 +606,111 @@                    (!_lhsIsynMap) ->                      (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                              _lhsIsynMap-                             {-# LINE 608 "dist/build/DefaultRules" #-}+                             {-# LINE 610 "dist/build/DefaultRules" #-}                              )) of                       { !_tlOsynMap ->                       (case (({-# LINE 41 "src-ag/DefaultRules.ag" #-}                               _lhsIparams-                              {-# LINE 613 "dist/build/DefaultRules" #-}+                              {-# LINE 615 "dist/build/DefaultRules" #-}                               )) of                        { !_tlOparams ->                        (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                                _lhsInt-                               {-# LINE 618 "dist/build/DefaultRules" #-}+                               {-# LINE 620 "dist/build/DefaultRules" #-}                                )) of                         { !_tlOnt ->                         (case (({-# LINE 757 "src-ag/DefaultRules.ag" #-}                                 _lhsImerged-                                {-# LINE 623 "dist/build/DefaultRules" #-}+                                {-# LINE 625 "dist/build/DefaultRules" #-}                                 )) of                          { !_tlOmerged ->                          (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                  _lhsIinhMap-                                 {-# LINE 628 "dist/build/DefaultRules" #-}+                                 {-# LINE 630 "dist/build/DefaultRules" #-}                                  )) of                           { !_tlOinhMap ->                           (case (({-# LINE 55 "src-ag/DefaultRules.ag" #-}                                   _lhsIcr-                                  {-# LINE 633 "dist/build/DefaultRules" #-}+                                  {-# LINE 635 "dist/build/DefaultRules" #-}                                   )) of                            { !_tlOcr ->                            (case (({-# LINE 39 "src-ag/DefaultRules.ag" #-}                                    _lhsIcon-                                   {-# LINE 638 "dist/build/DefaultRules" #-}+                                   {-# LINE 640 "dist/build/DefaultRules" #-}                                    )) of                             { !_tlOcon ->                             (case (tl_ _tlOcon _tlOcr _tlOinhMap _tlOmerged _tlOnt _tlOparams _tlOsynMap) of                              { ( !_tlIerrors,!_tlIfields,!_tlIinputs,!_tlIoutput,!_tlIoutputs) ->                                  (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                          _lhsIsynMap-                                         {-# LINE 645 "dist/build/DefaultRules" #-}+                                         {-# LINE 647 "dist/build/DefaultRules" #-}                                          )) of                                   { !_hdOsynMap ->                                   (case (({-# LINE 41 "src-ag/DefaultRules.ag" #-}                                           _lhsIparams-                                          {-# LINE 650 "dist/build/DefaultRules" #-}+                                          {-# LINE 652 "dist/build/DefaultRules" #-}                                           )) of                                    { !_hdOparams ->                                    (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                                            _lhsInt-                                           {-# LINE 655 "dist/build/DefaultRules" #-}+                                           {-# LINE 657 "dist/build/DefaultRules" #-}                                            )) of                                     { !_hdOnt ->                                     (case (({-# LINE 757 "src-ag/DefaultRules.ag" #-}                                             _lhsImerged-                                            {-# LINE 660 "dist/build/DefaultRules" #-}+                                            {-# LINE 662 "dist/build/DefaultRules" #-}                                             )) of                                      { !_hdOmerged ->                                      (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                              _lhsIinhMap-                                             {-# LINE 665 "dist/build/DefaultRules" #-}+                                             {-# LINE 667 "dist/build/DefaultRules" #-}                                              )) of                                       { !_hdOinhMap ->                                       (case (({-# LINE 55 "src-ag/DefaultRules.ag" #-}                                               _lhsIcr-                                              {-# LINE 670 "dist/build/DefaultRules" #-}+                                              {-# LINE 672 "dist/build/DefaultRules" #-}                                               )) of                                        { !_hdOcr ->                                        (case (({-# LINE 39 "src-ag/DefaultRules.ag" #-}                                                _lhsIcon-                                               {-# LINE 675 "dist/build/DefaultRules" #-}+                                               {-# LINE 677 "dist/build/DefaultRules" #-}                                                )) of                                         { !_hdOcon ->                                         (case (hd_ _hdOcon _hdOcr _hdOinhMap _hdOmerged _hdOnt _hdOparams _hdOsynMap) of                                          { ( !_hdIerrors,!_hdIfield,!_hdIinherited,!_hdIname,!_hdIoutput,!_hdIsynthesized) ->                                              (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                                                      _hdIerrors Seq.>< _tlIerrors-                                                     {-# LINE 682 "dist/build/DefaultRules" #-}+                                                     {-# LINE 684 "dist/build/DefaultRules" #-}                                                      )) of                                               { !_lhsOerrors ->                                               (case (({-# LINE 511 "src-ag/DefaultRules.ag" #-}                                                       _hdIfield : _tlIfields-                                                      {-# LINE 687 "dist/build/DefaultRules" #-}+                                                      {-# LINE 689 "dist/build/DefaultRules" #-}                                                       )) of                                                { !_lhsOfields ->                                                (case (({-# LINE 189 "src-ag/DefaultRules.ag" #-}                                                        (_hdIname, _hdIinherited) : _tlIinputs-                                                       {-# LINE 692 "dist/build/DefaultRules" #-}+                                                       {-# LINE 694 "dist/build/DefaultRules" #-}                                                        )) of                                                 { !_lhsOinputs ->                                                 (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                                         (:) _hdIoutput _tlIoutput-                                                        {-# LINE 697 "dist/build/DefaultRules" #-}+                                                        {-# LINE 699 "dist/build/DefaultRules" #-}                                                         )) of                                                  { !_output ->                                                  (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                                          _output-                                                         {-# LINE 702 "dist/build/DefaultRules" #-}+                                                         {-# LINE 704 "dist/build/DefaultRules" #-}                                                          )) of                                                   { !_lhsOoutput ->                                                   (case (({-# LINE 190 "src-ag/DefaultRules.ag" #-}                                                           (_hdIname, _hdIsynthesized) : _tlIoutputs-                                                          {-# LINE 707 "dist/build/DefaultRules" #-}+                                                          {-# LINE 709 "dist/build/DefaultRules" #-}                                                           )) of                                                    { !_lhsOoutputs ->-                                                   ( _lhsOerrors,_lhsOfields,_lhsOinputs,_lhsOoutput,_lhsOoutputs) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+                                                   (case ((Syn_Children _lhsOerrors _lhsOfields _lhsOinputs _lhsOoutput _lhsOoutputs)) of+                                                    { ___node ->+                                                    ( _lhsOerrors,_lhsOfields,_lhsOinputs,_lhsOoutput,_lhsOoutputs) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))) sem_Children_Nil :: T_Children sem_Children_Nil =     (T_Children (\ (!_lhsIcon)@@ -718,35 +722,37 @@                    (!_lhsIsynMap) ->                      (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                              Seq.empty-                             {-# LINE 722 "dist/build/DefaultRules" #-}+                             {-# LINE 726 "dist/build/DefaultRules" #-}                              )) of                       { !_lhsOerrors ->                       (case (({-# LINE 512 "src-ag/DefaultRules.ag" #-}                               []-                              {-# LINE 727 "dist/build/DefaultRules" #-}+                              {-# LINE 731 "dist/build/DefaultRules" #-}                               )) of                        { !_lhsOfields ->                        (case (({-# LINE 191 "src-ag/DefaultRules.ag" #-}                                []-                               {-# LINE 732 "dist/build/DefaultRules" #-}+                               {-# LINE 736 "dist/build/DefaultRules" #-}                                )) of                         { !_lhsOinputs ->                         (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                 []-                                {-# LINE 737 "dist/build/DefaultRules" #-}+                                {-# LINE 741 "dist/build/DefaultRules" #-}                                 )) of                          { !_output ->                          (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                  _output-                                 {-# LINE 742 "dist/build/DefaultRules" #-}+                                 {-# LINE 746 "dist/build/DefaultRules" #-}                                  )) of                           { !_lhsOoutput ->                           (case (({-# LINE 192 "src-ag/DefaultRules.ag" #-}                                   []-                                  {-# LINE 747 "dist/build/DefaultRules" #-}+                                  {-# LINE 751 "dist/build/DefaultRules" #-}                                   )) of                            { !_lhsOoutputs ->-                           ( _lhsOerrors,_lhsOfields,_lhsOinputs,_lhsOoutput,_lhsOoutputs) }) }) }) }) }) })))+                           (case ((Syn_Children _lhsOerrors _lhsOfields _lhsOinputs _lhsOoutput _lhsOoutputs)) of+                            { ___node ->+                            ( _lhsOerrors,_lhsOfields,_lhsOinputs,_lhsOoutput,_lhsOoutputs) }) }) }) }) }) }) }))) -- Grammar ----------------------------------------------------- {-    visit 0:@@ -809,94 +815,96 @@     (T_Grammar (\ (!_lhsIoptions) ->                     (case (({-# LINE 50 "src-ag/DefaultRules.ag" #-}                             _lhsIoptions-                            {-# LINE 813 "dist/build/DefaultRules" #-}+                            {-# LINE 819 "dist/build/DefaultRules" #-}                             )) of                      { !_nontsOoptions ->                      (case (nonts_) of                       { ( !_nontsIcollect_nts,!_nontsIinhMap',!_nontsIsynMap',!T_Nonterminals_1 nonts_1) ->                           (case (({-# LINE 16 "src-ag/DistChildAttr.ag" #-}                                   _nontsIsynMap'-                                  {-# LINE 820 "dist/build/DefaultRules" #-}+                                  {-# LINE 826 "dist/build/DefaultRules" #-}                                   )) of                            { !_nontsOsynMap ->                            (case (({-# LINE 15 "src-ag/DistChildAttr.ag" #-}                                    _nontsIinhMap'-                                   {-# LINE 825 "dist/build/DefaultRules" #-}+                                   {-# LINE 831 "dist/build/DefaultRules" #-}                                    )) of                             { !_nontsOinhMap ->                             (case (({-# LINE 759 "src-ag/DefaultRules.ag" #-}                                     mergeMap_-                                    {-# LINE 830 "dist/build/DefaultRules" #-}+                                    {-# LINE 836 "dist/build/DefaultRules" #-}                                     )) of                              { !_nontsOmergesIn ->                              (case (({-# LINE 678 "src-ag/DefaultRules.ag" #-}                                      manualAttrOrderMap_-                                     {-# LINE 835 "dist/build/DefaultRules" #-}+                                     {-# LINE 841 "dist/build/DefaultRules" #-}                                      )) of                               { !_nontsOmanualAttrOrderMap ->                               (case (({-# LINE 178 "src-ag/DefaultRules.ag" #-}                                       typeSyns_-                                      {-# LINE 840 "dist/build/DefaultRules" #-}+                                      {-# LINE 846 "dist/build/DefaultRules" #-}                                       )) of                                { !_nontsOtypeSyns ->                                (case (({-# LINE 176 "src-ag/DefaultRules.ag" #-}                                        useMap_-                                       {-# LINE 845 "dist/build/DefaultRules" #-}+                                       {-# LINE 851 "dist/build/DefaultRules" #-}                                        )) of                                 { !_nontsOuseMap ->                                 (case (({-# LINE 66 "src-ag/DefaultRules.ag" #-}                                         wrappers_-                                        {-# LINE 850 "dist/build/DefaultRules" #-}+                                        {-# LINE 856 "dist/build/DefaultRules" #-}                                         )) of                                  { !_nontsOwrappers ->                                  (case (({-# LINE 58 "src-ag/DefaultRules.ag" #-}                                          modcopy   _lhsIoptions-                                         {-# LINE 855 "dist/build/DefaultRules" #-}+                                         {-# LINE 861 "dist/build/DefaultRules" #-}                                          )) of                                   { !_nontsOcr ->                                   (case (({-# LINE 57 "src-ag/DefaultRules.ag" #-}                                           rename    _lhsIoptions-                                          {-# LINE 860 "dist/build/DefaultRules" #-}+                                          {-# LINE 866 "dist/build/DefaultRules" #-}                                           )) of                                    { !_nontsOo_rename ->                                    (case (({-# LINE 751 "src-ag/DefaultRules.ag" #-}                                            aroundsMap_-                                           {-# LINE 865 "dist/build/DefaultRules" #-}+                                           {-# LINE 871 "dist/build/DefaultRules" #-}                                            )) of                                     { !_nontsOaroundsIn ->                                     (case (({-# LINE 744 "src-ag/DefaultRules.ag" #-}                                             augmentsMap_-                                            {-# LINE 870 "dist/build/DefaultRules" #-}+                                            {-# LINE 876 "dist/build/DefaultRules" #-}                                             )) of                                      { !_nontsOaugmentsIn ->                                      (case (({-# LINE 564 "src-ag/DefaultRules.ag" #-}                                              1-                                             {-# LINE 875 "dist/build/DefaultRules" #-}+                                             {-# LINE 881 "dist/build/DefaultRules" #-}                                              )) of                                       { !_nontsOuniq ->                                       (case (({-# LINE 154 "src-ag/DefaultRules.ag" #-}                                               _nontsIcollect_nts-                                              {-# LINE 880 "dist/build/DefaultRules" #-}+                                              {-# LINE 886 "dist/build/DefaultRules" #-}                                               )) of                                        { !_nontsOnonterminals ->                                        (case (nonts_1 _nontsOaroundsIn _nontsOaugmentsIn _nontsOcr _nontsOinhMap _nontsOmanualAttrOrderMap _nontsOmergesIn _nontsOnonterminals _nontsOo_rename _nontsOoptions _nontsOsynMap _nontsOtypeSyns _nontsOuniq _nontsOuseMap _nontsOwrappers) of                                         { ( !_nontsIerrors,!_nontsIoutput,!_nontsIuniq) ->                                             (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                                                     _nontsIerrors-                                                    {-# LINE 887 "dist/build/DefaultRules" #-}+                                                    {-# LINE 893 "dist/build/DefaultRules" #-}                                                     )) of                                              { !_lhsOerrors ->                                              (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                                      Grammar typeSyns_ useMap_ derivings_ wrappers_ _nontsIoutput pragmas_ manualAttrOrderMap_ paramMap_ contextMap_ quantMap_ uniqueMap_ augmentsMap_ aroundsMap_ mergeMap_-                                                     {-# LINE 892 "dist/build/DefaultRules" #-}+                                                     {-# LINE 898 "dist/build/DefaultRules" #-}                                                      )) of                                               { !_output ->                                               (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                                       _output-                                                      {-# LINE 897 "dist/build/DefaultRules" #-}+                                                      {-# LINE 903 "dist/build/DefaultRules" #-}                                                       )) of                                                { !_lhsOoutput ->-                                               ( _lhsOerrors,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+                                               (case ((Syn_Grammar _lhsOerrors _lhsOoutput)) of+                                                { ___node ->+                                                ( _lhsOerrors,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))) -- Nonterminal ------------------------------------------------- {-    visit 0:@@ -978,17 +986,17 @@ sem_Nonterminal_Nonterminal !nt_ !params_ !inh_ !syn_ !(T_Productions prods_) =     (T_Nonterminal (case (({-# LINE 150 "src-ag/DefaultRules.ag" #-}                            Set.singleton nt_-                           {-# LINE 982 "dist/build/DefaultRules" #-}+                           {-# LINE 990 "dist/build/DefaultRules" #-}                            )) of                     { !_lhsOcollect_nts ->                     (case (({-# LINE 7 "src-ag/DistChildAttr.ag" #-}                             Map.singleton nt_ inh_-                            {-# LINE 987 "dist/build/DefaultRules" #-}+                            {-# LINE 995 "dist/build/DefaultRules" #-}                             )) of                      { !_lhsOinhMap' ->                      (case (({-# LINE 8 "src-ag/DistChildAttr.ag" #-}                              Map.singleton nt_ syn_-                             {-# LINE 992 "dist/build/DefaultRules" #-}+                             {-# LINE 1000 "dist/build/DefaultRules" #-}                              )) of                       { !_lhsOsynMap' ->                       (case ((let sem_Nonterminal_Nonterminal_1 :: T_Nonterminal_1@@ -1009,144 +1017,144 @@                                                           (!_lhsIwrappers) ->                                                             (case (({-# LINE 64 "src-ag/DefaultRules.ag" #-}                                                                     _lhsIwrappers-                                                                    {-# LINE 1013 "dist/build/DefaultRules" #-}+                                                                    {-# LINE 1021 "dist/build/DefaultRules" #-}                                                                     )) of                                                              { !_prodsOwrappers ->                                                              (case (({-# LINE 71 "src-ag/DefaultRules.ag" #-}                                                                      _lhsItypeSyns-                                                                     {-# LINE 1018 "dist/build/DefaultRules" #-}+                                                                     {-# LINE 1026 "dist/build/DefaultRules" #-}                                                                      )) of                                                               { !_prodsOtypeSyns ->                                                               (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                                                       _lhsIsynMap-                                                                      {-# LINE 1023 "dist/build/DefaultRules" #-}+                                                                      {-# LINE 1031 "dist/build/DefaultRules" #-}                                                                       )) of                                                                { !_prodsOsynMap ->                                                                (case (({-# LINE 50 "src-ag/DefaultRules.ag" #-}                                                                        _lhsIoptions-                                                                       {-# LINE 1028 "dist/build/DefaultRules" #-}+                                                                       {-# LINE 1036 "dist/build/DefaultRules" #-}                                                                        )) of                                                                 { !_prodsOoptions ->                                                                 (case (({-# LINE 51 "src-ag/DefaultRules.ag" #-}                                                                         _lhsIo_rename-                                                                        {-# LINE 1033 "dist/build/DefaultRules" #-}+                                                                        {-# LINE 1041 "dist/build/DefaultRules" #-}                                                                         )) of                                                                  { !_prodsOo_rename ->                                                                  (case (({-# LINE 760 "src-ag/DefaultRules.ag" #-}                                                                          Map.findWithDefault Map.empty nt_ _lhsImergesIn-                                                                         {-# LINE 1038 "dist/build/DefaultRules" #-}+                                                                         {-# LINE 1046 "dist/build/DefaultRules" #-}                                                                          )) of                                                                   { !_mergesIn ->                                                                   (case (({-# LINE 756 "src-ag/DefaultRules.ag" #-}                                                                           _mergesIn-                                                                          {-# LINE 1043 "dist/build/DefaultRules" #-}+                                                                          {-# LINE 1051 "dist/build/DefaultRules" #-}                                                                           )) of                                                                    { !_prodsOmergesIn ->                                                                    (case (({-# LINE 674 "src-ag/DefaultRules.ag" #-}                                                                            _lhsImanualAttrOrderMap-                                                                           {-# LINE 1048 "dist/build/DefaultRules" #-}+                                                                           {-# LINE 1056 "dist/build/DefaultRules" #-}                                                                            )) of                                                                     { !_prodsOmanualAttrOrderMap ->                                                                     (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                                                             _lhsIinhMap-                                                                            {-# LINE 1053 "dist/build/DefaultRules" #-}+                                                                            {-# LINE 1061 "dist/build/DefaultRules" #-}                                                                             )) of                                                                      { !_prodsOinhMap ->                                                                      (case (({-# LINE 52 "src-ag/DefaultRules.ag" #-}                                                                              _lhsIcr-                                                                             {-# LINE 1058 "dist/build/DefaultRules" #-}+                                                                             {-# LINE 1066 "dist/build/DefaultRules" #-}                                                                              )) of                                                                       { !_prodsOcr ->                                                                       (case (({-# LINE 534 "src-ag/DefaultRules.ag" #-}                                                                               Map.map (elimSelfId nt_ params_) syn_-                                                                              {-# LINE 1063 "dist/build/DefaultRules" #-}+                                                                              {-# LINE 1071 "dist/build/DefaultRules" #-}                                                                               )) of                                                                        { !_syn1 ->                                                                        (case (({-# LINE 533 "src-ag/DefaultRules.ag" #-}                                                                                Map.map (elimSelfId nt_ params_) inh_-                                                                               {-# LINE 1068 "dist/build/DefaultRules" #-}+                                                                               {-# LINE 1076 "dist/build/DefaultRules" #-}                                                                                )) of                                                                         { !_inh1 ->                                                                         (case (({-# LINE 180 "src-ag/DefaultRules.ag" #-}                                                                                 nt_-                                                                                {-# LINE 1073 "dist/build/DefaultRules" #-}+                                                                                {-# LINE 1081 "dist/build/DefaultRules" #-}                                                                                 )) of                                                                          { !_prodsOnt ->                                                                          (case (({-# LINE 168 "src-ag/DefaultRules.ag" #-}                                                                                  Map.findWithDefault Map.empty nt_ _lhsIuseMap-                                                                                 {-# LINE 1078 "dist/build/DefaultRules" #-}+                                                                                 {-# LINE 1086 "dist/build/DefaultRules" #-}                                                                                  )) of                                                                           { !_prodsOuseMap ->                                                                           (case (({-# LINE 167 "src-ag/DefaultRules.ag" #-}                                                                                   syn_-                                                                                  {-# LINE 1083 "dist/build/DefaultRules" #-}+                                                                                  {-# LINE 1091 "dist/build/DefaultRules" #-}                                                                                   )) of                                                                            { !_prodsOsynOrig ->                                                                            (case (({-# LINE 165 "src-ag/DefaultRules.ag" #-}                                                                                    _syn1-                                                                                   {-# LINE 1088 "dist/build/DefaultRules" #-}+                                                                                   {-# LINE 1096 "dist/build/DefaultRules" #-}                                                                                    )) of                                                                             { !_prodsOsyn ->                                                                             (case (({-# LINE 164 "src-ag/DefaultRules.ag" #-}                                                                                     _inh1-                                                                                    {-# LINE 1093 "dist/build/DefaultRules" #-}+                                                                                    {-# LINE 1101 "dist/build/DefaultRules" #-}                                                                                     )) of                                                                              { !_prodsOinh ->                                                                              (case (({-# LINE 561 "src-ag/DefaultRules.ag" #-}                                                                                      _lhsIuniq-                                                                                     {-# LINE 1098 "dist/build/DefaultRules" #-}+                                                                                     {-# LINE 1106 "dist/build/DefaultRules" #-}                                                                                      )) of                                                                               { !_prodsOuniq ->                                                                               (case (({-# LINE 152 "src-ag/DefaultRules.ag" #-}                                                                                       _lhsInonterminals-                                                                                      {-# LINE 1103 "dist/build/DefaultRules" #-}+                                                                                      {-# LINE 1111 "dist/build/DefaultRules" #-}                                                                                       )) of                                                                                { !_prodsOnonterminals ->                                                                                (case (({-# LINE 745 "src-ag/DefaultRules.ag" #-}                                                                                        Map.findWithDefault Map.empty nt_ _lhsIaugmentsIn-                                                                                       {-# LINE 1108 "dist/build/DefaultRules" #-}+                                                                                       {-# LINE 1116 "dist/build/DefaultRules" #-}                                                                                        )) of                                                                                 { !_augmentsIn ->                                                                                 (case (({-# LINE 742 "src-ag/DefaultRules.ag" #-}                                                                                         _augmentsIn-                                                                                        {-# LINE 1113 "dist/build/DefaultRules" #-}+                                                                                        {-# LINE 1121 "dist/build/DefaultRules" #-}                                                                                         )) of                                                                                  { !_prodsOaugmentsIn ->                                                                                  (case (({-# LINE 752 "src-ag/DefaultRules.ag" #-}                                                                                          Map.findWithDefault Map.empty nt_ _lhsIaroundsIn-                                                                                         {-# LINE 1118 "dist/build/DefaultRules" #-}+                                                                                         {-# LINE 1126 "dist/build/DefaultRules" #-}                                                                                          )) of                                                                                   { !_aroundsIn ->                                                                                   (case (({-# LINE 749 "src-ag/DefaultRules.ag" #-}                                                                                           _aroundsIn-                                                                                          {-# LINE 1123 "dist/build/DefaultRules" #-}+                                                                                          {-# LINE 1131 "dist/build/DefaultRules" #-}                                                                                           )) of                                                                                    { !_prodsOaroundsIn ->                                                                                    (case (({-# LINE 166 "src-ag/DefaultRules.ag" #-}                                                                                            inh_-                                                                                           {-# LINE 1128 "dist/build/DefaultRules" #-}+                                                                                           {-# LINE 1136 "dist/build/DefaultRules" #-}                                                                                            )) of                                                                                     { !_prodsOinhOrig ->                                                                                     (case (({-# LINE 43 "src-ag/DefaultRules.ag" #-}                                                                                             params_-                                                                                            {-# LINE 1133 "dist/build/DefaultRules" #-}+                                                                                            {-# LINE 1141 "dist/build/DefaultRules" #-}                                                                                             )) of                                                                                      { !_prodsOparams ->                                                                                      (case (prods_ _prodsOaroundsIn _prodsOaugmentsIn _prodsOcr _prodsOinh _prodsOinhMap _prodsOinhOrig _prodsOmanualAttrOrderMap _prodsOmergesIn _prodsOnonterminals _prodsOnt _prodsOo_rename _prodsOoptions _prodsOparams _prodsOsyn _prodsOsynMap _prodsOsynOrig _prodsOtypeSyns _prodsOuniq _prodsOuseMap _prodsOwrappers) of                                                                                       { ( !_prodsIerrors,!_prodsIoutput,!_prodsIuniq) ->                                                                                           (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                                                                                                   _prodsIerrors-                                                                                                  {-# LINE 1140 "dist/build/DefaultRules" #-}+                                                                                                  {-# LINE 1148 "dist/build/DefaultRules" #-}                                                                                                   )) of                                                                                            { !_lhsOerrors ->                                                                                            (case (({-# LINE 573 "src-ag/DefaultRules.ag" #-}                                                                                                    Nonterminal nt_ params_ _inh1     _syn1     _prodsIoutput-                                                                                                   {-# LINE 1145 "dist/build/DefaultRules" #-}+                                                                                                   {-# LINE 1153 "dist/build/DefaultRules" #-}                                                                                                    )) of                                                                                             { !_lhsOoutput ->                                                                                             (case (({-# LINE 561 "src-ag/DefaultRules.ag" #-}                                                                                                     _prodsIuniq-                                                                                                    {-# LINE 1150 "dist/build/DefaultRules" #-}+                                                                                                    {-# LINE 1158 "dist/build/DefaultRules" #-}                                                                                                     )) of                                                                                              { !_lhsOuniq ->                                                                                              ( _lhsOerrors,_lhsOoutput,_lhsOuniq) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))@@ -1231,17 +1239,17 @@                           { ( !_hdIcollect_nts,!_hdIinhMap',!_hdIsynMap',!T_Nonterminal_1 hd_1) ->                               (case (({-# LINE 148 "src-ag/DefaultRules.ag" #-}                                       _hdIcollect_nts `Set.union` _tlIcollect_nts-                                      {-# LINE 1235 "dist/build/DefaultRules" #-}+                                      {-# LINE 1243 "dist/build/DefaultRules" #-}                                       )) of                                { !_lhsOcollect_nts ->                                (case (({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                        _hdIinhMap' `Map.union` _tlIinhMap'-                                       {-# LINE 1240 "dist/build/DefaultRules" #-}+                                       {-# LINE 1248 "dist/build/DefaultRules" #-}                                        )) of                                 { !_lhsOinhMap' ->                                 (case (({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                         _hdIsynMap' `Map.union` _tlIsynMap'-                                        {-# LINE 1245 "dist/build/DefaultRules" #-}+                                        {-# LINE 1253 "dist/build/DefaultRules" #-}                                         )) of                                  { !_lhsOsynMap' ->                                  (case ((let sem_Nonterminals_Cons_1 :: T_Nonterminals_1@@ -1262,166 +1270,166 @@                                                                       (!_lhsIwrappers) ->                                                                         (case (({-# LINE 64 "src-ag/DefaultRules.ag" #-}                                                                                 _lhsIwrappers-                                                                                {-# LINE 1266 "dist/build/DefaultRules" #-}+                                                                                {-# LINE 1274 "dist/build/DefaultRules" #-}                                                                                 )) of                                                                          { !_tlOwrappers ->                                                                          (case (({-# LINE 160 "src-ag/DefaultRules.ag" #-}                                                                                  _lhsIuseMap-                                                                                 {-# LINE 1271 "dist/build/DefaultRules" #-}+                                                                                 {-# LINE 1279 "dist/build/DefaultRules" #-}                                                                                  )) of                                                                           { !_tlOuseMap ->                                                                           (case (({-# LINE 71 "src-ag/DefaultRules.ag" #-}                                                                                   _lhsItypeSyns-                                                                                  {-# LINE 1276 "dist/build/DefaultRules" #-}+                                                                                  {-# LINE 1284 "dist/build/DefaultRules" #-}                                                                                   )) of                                                                            { !_tlOtypeSyns ->                                                                            (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                                                                    _lhsIsynMap-                                                                                   {-# LINE 1281 "dist/build/DefaultRules" #-}+                                                                                   {-# LINE 1289 "dist/build/DefaultRules" #-}                                                                                    )) of                                                                             { !_tlOsynMap ->                                                                             (case (({-# LINE 50 "src-ag/DefaultRules.ag" #-}                                                                                     _lhsIoptions-                                                                                    {-# LINE 1286 "dist/build/DefaultRules" #-}+                                                                                    {-# LINE 1294 "dist/build/DefaultRules" #-}                                                                                     )) of                                                                              { !_tlOoptions ->                                                                              (case (({-# LINE 51 "src-ag/DefaultRules.ag" #-}                                                                                      _lhsIo_rename-                                                                                     {-# LINE 1291 "dist/build/DefaultRules" #-}+                                                                                     {-# LINE 1299 "dist/build/DefaultRules" #-}                                                                                      )) of                                                                               { !_tlOo_rename ->                                                                               (case (({-# LINE 755 "src-ag/DefaultRules.ag" #-}                                                                                       _lhsImergesIn-                                                                                      {-# LINE 1296 "dist/build/DefaultRules" #-}+                                                                                      {-# LINE 1304 "dist/build/DefaultRules" #-}                                                                                       )) of                                                                                { !_tlOmergesIn ->                                                                                (case (({-# LINE 674 "src-ag/DefaultRules.ag" #-}                                                                                        _lhsImanualAttrOrderMap-                                                                                       {-# LINE 1301 "dist/build/DefaultRules" #-}+                                                                                       {-# LINE 1309 "dist/build/DefaultRules" #-}                                                                                        )) of                                                                                 { !_tlOmanualAttrOrderMap ->                                                                                 (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                                                                         _lhsIinhMap-                                                                                        {-# LINE 1306 "dist/build/DefaultRules" #-}+                                                                                        {-# LINE 1314 "dist/build/DefaultRules" #-}                                                                                         )) of                                                                                  { !_tlOinhMap ->                                                                                  (case (({-# LINE 52 "src-ag/DefaultRules.ag" #-}                                                                                          _lhsIcr-                                                                                         {-# LINE 1311 "dist/build/DefaultRules" #-}+                                                                                         {-# LINE 1319 "dist/build/DefaultRules" #-}                                                                                          )) of                                                                                   { !_tlOcr ->                                                                                   (case (({-# LINE 64 "src-ag/DefaultRules.ag" #-}                                                                                           _lhsIwrappers-                                                                                          {-# LINE 1316 "dist/build/DefaultRules" #-}+                                                                                          {-# LINE 1324 "dist/build/DefaultRules" #-}                                                                                           )) of                                                                                    { !_hdOwrappers ->                                                                                    (case (({-# LINE 160 "src-ag/DefaultRules.ag" #-}                                                                                            _lhsIuseMap-                                                                                           {-# LINE 1321 "dist/build/DefaultRules" #-}+                                                                                           {-# LINE 1329 "dist/build/DefaultRules" #-}                                                                                            )) of                                                                                     { !_hdOuseMap ->                                                                                     (case (({-# LINE 71 "src-ag/DefaultRules.ag" #-}                                                                                             _lhsItypeSyns-                                                                                            {-# LINE 1326 "dist/build/DefaultRules" #-}+                                                                                            {-# LINE 1334 "dist/build/DefaultRules" #-}                                                                                             )) of                                                                                      { !_hdOtypeSyns ->                                                                                      (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                                                                              _lhsIsynMap-                                                                                             {-# LINE 1331 "dist/build/DefaultRules" #-}+                                                                                             {-# LINE 1339 "dist/build/DefaultRules" #-}                                                                                              )) of                                                                                       { !_hdOsynMap ->                                                                                       (case (({-# LINE 50 "src-ag/DefaultRules.ag" #-}                                                                                               _lhsIoptions-                                                                                              {-# LINE 1336 "dist/build/DefaultRules" #-}+                                                                                              {-# LINE 1344 "dist/build/DefaultRules" #-}                                                                                               )) of                                                                                        { !_hdOoptions ->                                                                                        (case (({-# LINE 51 "src-ag/DefaultRules.ag" #-}                                                                                                _lhsIo_rename-                                                                                               {-# LINE 1341 "dist/build/DefaultRules" #-}+                                                                                               {-# LINE 1349 "dist/build/DefaultRules" #-}                                                                                                )) of                                                                                         { !_hdOo_rename ->                                                                                         (case (({-# LINE 755 "src-ag/DefaultRules.ag" #-}                                                                                                 _lhsImergesIn-                                                                                                {-# LINE 1346 "dist/build/DefaultRules" #-}+                                                                                                {-# LINE 1354 "dist/build/DefaultRules" #-}                                                                                                 )) of                                                                                          { !_hdOmergesIn ->                                                                                          (case (({-# LINE 674 "src-ag/DefaultRules.ag" #-}                                                                                                  _lhsImanualAttrOrderMap-                                                                                                 {-# LINE 1351 "dist/build/DefaultRules" #-}+                                                                                                 {-# LINE 1359 "dist/build/DefaultRules" #-}                                                                                                  )) of                                                                                           { !_hdOmanualAttrOrderMap ->                                                                                           (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                                                                                   _lhsIinhMap-                                                                                                  {-# LINE 1356 "dist/build/DefaultRules" #-}+                                                                                                  {-# LINE 1364 "dist/build/DefaultRules" #-}                                                                                                   )) of                                                                                            { !_hdOinhMap ->                                                                                            (case (({-# LINE 52 "src-ag/DefaultRules.ag" #-}                                                                                                    _lhsIcr-                                                                                                   {-# LINE 1361 "dist/build/DefaultRules" #-}+                                                                                                   {-# LINE 1369 "dist/build/DefaultRules" #-}                                                                                                    )) of                                                                                             { !_hdOcr ->                                                                                             (case (({-# LINE 561 "src-ag/DefaultRules.ag" #-}                                                                                                     _lhsIuniq-                                                                                                    {-# LINE 1366 "dist/build/DefaultRules" #-}+                                                                                                    {-# LINE 1374 "dist/build/DefaultRules" #-}                                                                                                     )) of                                                                                              { !_hdOuniq ->                                                                                              (case (({-# LINE 152 "src-ag/DefaultRules.ag" #-}                                                                                                      _lhsInonterminals-                                                                                                     {-# LINE 1371 "dist/build/DefaultRules" #-}+                                                                                                     {-# LINE 1379 "dist/build/DefaultRules" #-}                                                                                                      )) of                                                                                               { !_hdOnonterminals ->                                                                                               (case (({-# LINE 741 "src-ag/DefaultRules.ag" #-}                                                                                                       _lhsIaugmentsIn-                                                                                                      {-# LINE 1376 "dist/build/DefaultRules" #-}+                                                                                                      {-# LINE 1384 "dist/build/DefaultRules" #-}                                                                                                       )) of                                                                                                { !_hdOaugmentsIn ->                                                                                                (case (({-# LINE 748 "src-ag/DefaultRules.ag" #-}                                                                                                        _lhsIaroundsIn-                                                                                                       {-# LINE 1381 "dist/build/DefaultRules" #-}+                                                                                                       {-# LINE 1389 "dist/build/DefaultRules" #-}                                                                                                        )) of                                                                                                 { !_hdOaroundsIn ->                                                                                                 (case (hd_1 _hdOaroundsIn _hdOaugmentsIn _hdOcr _hdOinhMap _hdOmanualAttrOrderMap _hdOmergesIn _hdOnonterminals _hdOo_rename _hdOoptions _hdOsynMap _hdOtypeSyns _hdOuniq _hdOuseMap _hdOwrappers) of                                                                                                  { ( !_hdIerrors,!_hdIoutput,!_hdIuniq) ->                                                                                                      (case (({-# LINE 561 "src-ag/DefaultRules.ag" #-}                                                                                                              _hdIuniq-                                                                                                             {-# LINE 1388 "dist/build/DefaultRules" #-}+                                                                                                             {-# LINE 1396 "dist/build/DefaultRules" #-}                                                                                                              )) of                                                                                                       { !_tlOuniq ->                                                                                                       (case (({-# LINE 152 "src-ag/DefaultRules.ag" #-}                                                                                                               _lhsInonterminals-                                                                                                              {-# LINE 1393 "dist/build/DefaultRules" #-}+                                                                                                              {-# LINE 1401 "dist/build/DefaultRules" #-}                                                                                                               )) of                                                                                                        { !_tlOnonterminals ->                                                                                                        (case (({-# LINE 741 "src-ag/DefaultRules.ag" #-}                                                                                                                _lhsIaugmentsIn-                                                                                                               {-# LINE 1398 "dist/build/DefaultRules" #-}+                                                                                                               {-# LINE 1406 "dist/build/DefaultRules" #-}                                                                                                                )) of                                                                                                         { !_tlOaugmentsIn ->                                                                                                         (case (({-# LINE 748 "src-ag/DefaultRules.ag" #-}                                                                                                                 _lhsIaroundsIn-                                                                                                                {-# LINE 1403 "dist/build/DefaultRules" #-}+                                                                                                                {-# LINE 1411 "dist/build/DefaultRules" #-}                                                                                                                 )) of                                                                                                          { !_tlOaroundsIn ->                                                                                                          (case (tl_1 _tlOaroundsIn _tlOaugmentsIn _tlOcr _tlOinhMap _tlOmanualAttrOrderMap _tlOmergesIn _tlOnonterminals _tlOo_rename _tlOoptions _tlOsynMap _tlOtypeSyns _tlOuniq _tlOuseMap _tlOwrappers) of                                                                                                           { ( !_tlIerrors,!_tlIoutput,!_tlIuniq) ->                                                                                                               (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                                                                                                                       _hdIerrors Seq.>< _tlIerrors-                                                                                                                      {-# LINE 1410 "dist/build/DefaultRules" #-}+                                                                                                                      {-# LINE 1418 "dist/build/DefaultRules" #-}                                                                                                                       )) of                                                                                                                { !_lhsOerrors ->                                                                                                                (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                                                                                                        (:) _hdIoutput _tlIoutput-                                                                                                                       {-# LINE 1415 "dist/build/DefaultRules" #-}+                                                                                                                       {-# LINE 1423 "dist/build/DefaultRules" #-}                                                                                                                        )) of                                                                                                                 { !_output ->                                                                                                                 (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                                                                                                         _output-                                                                                                                        {-# LINE 1420 "dist/build/DefaultRules" #-}+                                                                                                                        {-# LINE 1428 "dist/build/DefaultRules" #-}                                                                                                                         )) of                                                                                                                  { !_lhsOoutput ->                                                                                                                  (case (({-# LINE 561 "src-ag/DefaultRules.ag" #-}                                                                                                                          _tlIuniq-                                                                                                                         {-# LINE 1425 "dist/build/DefaultRules" #-}+                                                                                                                         {-# LINE 1433 "dist/build/DefaultRules" #-}                                                                                                                          )) of                                                                                                                   { !_lhsOuniq ->                                                                                                                   ( _lhsOerrors,_lhsOoutput,_lhsOuniq) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))@@ -1432,17 +1440,17 @@ sem_Nonterminals_Nil =     (T_Nonterminals (case (({-# LINE 148 "src-ag/DefaultRules.ag" #-}                             Set.empty-                            {-# LINE 1436 "dist/build/DefaultRules" #-}+                            {-# LINE 1444 "dist/build/DefaultRules" #-}                             )) of                      { !_lhsOcollect_nts ->                      (case (({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                              Map.empty-                             {-# LINE 1441 "dist/build/DefaultRules" #-}+                             {-# LINE 1449 "dist/build/DefaultRules" #-}                              )) of                       { !_lhsOinhMap' ->                       (case (({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                               Map.empty-                              {-# LINE 1446 "dist/build/DefaultRules" #-}+                              {-# LINE 1454 "dist/build/DefaultRules" #-}                               )) of                        { !_lhsOsynMap' ->                        (case ((let sem_Nonterminals_Nil_1 :: T_Nonterminals_1@@ -1463,22 +1471,22 @@                                                             (!_lhsIwrappers) ->                                                               (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                                                                       Seq.empty-                                                                      {-# LINE 1467 "dist/build/DefaultRules" #-}+                                                                      {-# LINE 1475 "dist/build/DefaultRules" #-}                                                                       )) of                                                                { !_lhsOerrors ->                                                                (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                                                        []-                                                                       {-# LINE 1472 "dist/build/DefaultRules" #-}+                                                                       {-# LINE 1480 "dist/build/DefaultRules" #-}                                                                        )) of                                                                 { !_output ->                                                                 (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                                                         _output-                                                                        {-# LINE 1477 "dist/build/DefaultRules" #-}+                                                                        {-# LINE 1485 "dist/build/DefaultRules" #-}                                                                         )) of                                                                  { !_lhsOoutput ->                                                                  (case (({-# LINE 561 "src-ag/DefaultRules.ag" #-}                                                                          _lhsIuniq-                                                                         {-# LINE 1482 "dist/build/DefaultRules" #-}+                                                                         {-# LINE 1490 "dist/build/DefaultRules" #-}                                                                          )) of                                                                   { !_lhsOuniq ->                                                                   ( _lhsOerrors,_lhsOoutput,_lhsOuniq) }) }) }) })))@@ -1563,59 +1571,61 @@                   (!_lhsInt) ->                     (case (({-# LINE 523 "src-ag/DefaultRules.ag" #-}                             True-                            {-# LINE 1567 "dist/build/DefaultRules" #-}+                            {-# LINE 1575 "dist/build/DefaultRules" #-}                             )) of                      { !_lhsOcontainsVars ->                      (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                              _lhsInt-                             {-# LINE 1572 "dist/build/DefaultRules" #-}+                             {-# LINE 1580 "dist/build/DefaultRules" #-}                              )) of                       { !_patOnt ->                       (case (({-# LINE 39 "src-ag/DefaultRules.ag" #-}                               _lhsIcon-                              {-# LINE 1577 "dist/build/DefaultRules" #-}+                              {-# LINE 1585 "dist/build/DefaultRules" #-}                               )) of                        { !_patOcon ->                        (case (pat_ _patOcon _patOnt) of                         { ( !_patIcontainsVars,!_patIcopy,!_patIdefinedAttrs,!_patIerrors,!_patIlocals,!_patIoutput) ->                             (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                     Alias field_ attr_ _patIcopy-                                    {-# LINE 1584 "dist/build/DefaultRules" #-}+                                    {-# LINE 1592 "dist/build/DefaultRules" #-}                                     )) of                              { !_copy ->                              (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                      _copy-                                     {-# LINE 1589 "dist/build/DefaultRules" #-}+                                     {-# LINE 1597 "dist/build/DefaultRules" #-}                                      )) of                               { !_lhsOcopy ->                               (case (({-# LINE 505 "src-ag/DefaultRules.ag" #-}                                       Set.insert (field_,attr_) _patIdefinedAttrs-                                      {-# LINE 1594 "dist/build/DefaultRules" #-}+                                      {-# LINE 1602 "dist/build/DefaultRules" #-}                                       )) of                                { !_lhsOdefinedAttrs ->                                (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                                        _patIerrors-                                       {-# LINE 1599 "dist/build/DefaultRules" #-}+                                       {-# LINE 1607 "dist/build/DefaultRules" #-}                                        )) of                                 { !_lhsOerrors ->                                 (case (({-# LINE 506 "src-ag/DefaultRules.ag" #-}                                         if field_ == _LOC                                            then Set.insert attr_ _patIlocals                                            else _patIlocals-                                        {-# LINE 1606 "dist/build/DefaultRules" #-}+                                        {-# LINE 1614 "dist/build/DefaultRules" #-}                                         )) of                                  { !_lhsOlocals ->                                  (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                          Alias field_ attr_ _patIoutput-                                         {-# LINE 1611 "dist/build/DefaultRules" #-}+                                         {-# LINE 1619 "dist/build/DefaultRules" #-}                                          )) of                                   { !_output ->                                   (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                           _output-                                          {-# LINE 1616 "dist/build/DefaultRules" #-}+                                          {-# LINE 1624 "dist/build/DefaultRules" #-}                                           )) of                                    { !_lhsOoutput ->-                                   ( _lhsOcontainsVars,_lhsOcopy,_lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) })))+                                   (case ((Syn_Pattern _lhsOcontainsVars _lhsOcopy _lhsOdefinedAttrs _lhsOerrors _lhsOlocals _lhsOoutput)) of+                                    { ___node ->+                                    ( _lhsOcontainsVars,_lhsOcopy,_lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }))) sem_Pattern_Constr :: ConstructorIdent ->                       T_Patterns ->                       T_Pattern@@ -1624,57 +1634,59 @@                   (!_lhsInt) ->                     (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                             _lhsInt-                            {-# LINE 1628 "dist/build/DefaultRules" #-}+                            {-# LINE 1638 "dist/build/DefaultRules" #-}                             )) of                      { !_patsOnt ->                      (case (({-# LINE 39 "src-ag/DefaultRules.ag" #-}                              _lhsIcon-                             {-# LINE 1633 "dist/build/DefaultRules" #-}+                             {-# LINE 1643 "dist/build/DefaultRules" #-}                              )) of                       { !_patsOcon ->                       (case (pats_ _patsOcon _patsOnt) of                        { ( !_patsIcontainsVars,!_patsIcopy,!_patsIdefinedAttrs,!_patsIerrors,!_patsIlocals,!_patsIoutput) ->                            (case (({-# LINE 520 "src-ag/DefaultRules.ag" #-}                                    _patsIcontainsVars-                                   {-# LINE 1640 "dist/build/DefaultRules" #-}+                                   {-# LINE 1650 "dist/build/DefaultRules" #-}                                    )) of                             { !_lhsOcontainsVars ->                             (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                     Constr name_ _patsIcopy-                                    {-# LINE 1645 "dist/build/DefaultRules" #-}+                                    {-# LINE 1655 "dist/build/DefaultRules" #-}                                     )) of                              { !_copy ->                              (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                      _copy-                                     {-# LINE 1650 "dist/build/DefaultRules" #-}+                                     {-# LINE 1660 "dist/build/DefaultRules" #-}                                      )) of                               { !_lhsOcopy ->                               (case (({-# LINE 500 "src-ag/DefaultRules.ag" #-}                                       _patsIdefinedAttrs-                                      {-# LINE 1655 "dist/build/DefaultRules" #-}+                                      {-# LINE 1665 "dist/build/DefaultRules" #-}                                       )) of                                { !_lhsOdefinedAttrs ->                                (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                                        _patsIerrors-                                       {-# LINE 1660 "dist/build/DefaultRules" #-}+                                       {-# LINE 1670 "dist/build/DefaultRules" #-}                                        )) of                                 { !_lhsOerrors ->                                 (case (({-# LINE 499 "src-ag/DefaultRules.ag" #-}                                         _patsIlocals-                                        {-# LINE 1665 "dist/build/DefaultRules" #-}+                                        {-# LINE 1675 "dist/build/DefaultRules" #-}                                         )) of                                  { !_lhsOlocals ->                                  (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                          Constr name_ _patsIoutput-                                         {-# LINE 1670 "dist/build/DefaultRules" #-}+                                         {-# LINE 1680 "dist/build/DefaultRules" #-}                                          )) of                                   { !_output ->                                   (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                           _output-                                          {-# LINE 1675 "dist/build/DefaultRules" #-}+                                          {-# LINE 1685 "dist/build/DefaultRules" #-}                                           )) of                                    { !_lhsOoutput ->-                                   ( _lhsOcontainsVars,_lhsOcopy,_lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) })))+                                   (case ((Syn_Pattern _lhsOcontainsVars _lhsOcopy _lhsOdefinedAttrs _lhsOerrors _lhsOlocals _lhsOoutput)) of+                                    { ___node ->+                                    ( _lhsOcontainsVars,_lhsOcopy,_lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }))) sem_Pattern_Irrefutable :: T_Pattern ->                            T_Pattern sem_Pattern_Irrefutable !(T_Pattern pat_) =@@ -1682,57 +1694,59 @@                   (!_lhsInt) ->                     (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                             _lhsInt-                            {-# LINE 1686 "dist/build/DefaultRules" #-}+                            {-# LINE 1698 "dist/build/DefaultRules" #-}                             )) of                      { !_patOnt ->                      (case (({-# LINE 39 "src-ag/DefaultRules.ag" #-}                              _lhsIcon-                             {-# LINE 1691 "dist/build/DefaultRules" #-}+                             {-# LINE 1703 "dist/build/DefaultRules" #-}                              )) of                       { !_patOcon ->                       (case (pat_ _patOcon _patOnt) of                        { ( !_patIcontainsVars,!_patIcopy,!_patIdefinedAttrs,!_patIerrors,!_patIlocals,!_patIoutput) ->                            (case (({-# LINE 520 "src-ag/DefaultRules.ag" #-}                                    _patIcontainsVars-                                   {-# LINE 1698 "dist/build/DefaultRules" #-}+                                   {-# LINE 1710 "dist/build/DefaultRules" #-}                                    )) of                             { !_lhsOcontainsVars ->                             (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                     Irrefutable _patIcopy-                                    {-# LINE 1703 "dist/build/DefaultRules" #-}+                                    {-# LINE 1715 "dist/build/DefaultRules" #-}                                     )) of                              { !_copy ->                              (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                      _copy-                                     {-# LINE 1708 "dist/build/DefaultRules" #-}+                                     {-# LINE 1720 "dist/build/DefaultRules" #-}                                      )) of                               { !_lhsOcopy ->                               (case (({-# LINE 500 "src-ag/DefaultRules.ag" #-}                                       _patIdefinedAttrs-                                      {-# LINE 1713 "dist/build/DefaultRules" #-}+                                      {-# LINE 1725 "dist/build/DefaultRules" #-}                                       )) of                                { !_lhsOdefinedAttrs ->                                (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                                        _patIerrors-                                       {-# LINE 1718 "dist/build/DefaultRules" #-}+                                       {-# LINE 1730 "dist/build/DefaultRules" #-}                                        )) of                                 { !_lhsOerrors ->                                 (case (({-# LINE 499 "src-ag/DefaultRules.ag" #-}                                         _patIlocals-                                        {-# LINE 1723 "dist/build/DefaultRules" #-}+                                        {-# LINE 1735 "dist/build/DefaultRules" #-}                                         )) of                                  { !_lhsOlocals ->                                  (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                          Irrefutable _patIoutput-                                         {-# LINE 1728 "dist/build/DefaultRules" #-}+                                         {-# LINE 1740 "dist/build/DefaultRules" #-}                                          )) of                                   { !_output ->                                   (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                           _output-                                          {-# LINE 1733 "dist/build/DefaultRules" #-}+                                          {-# LINE 1745 "dist/build/DefaultRules" #-}                                           )) of                                    { !_lhsOoutput ->-                                   ( _lhsOcontainsVars,_lhsOcopy,_lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) })))+                                   (case ((Syn_Pattern _lhsOcontainsVars _lhsOcopy _lhsOdefinedAttrs _lhsOerrors _lhsOlocals _lhsOoutput)) of+                                    { ___node ->+                                    ( _lhsOcontainsVars,_lhsOcopy,_lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }))) sem_Pattern_Product :: Pos ->                        T_Patterns ->                        T_Pattern@@ -1741,57 +1755,59 @@                   (!_lhsInt) ->                     (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                             _lhsInt-                            {-# LINE 1745 "dist/build/DefaultRules" #-}+                            {-# LINE 1759 "dist/build/DefaultRules" #-}                             )) of                      { !_patsOnt ->                      (case (({-# LINE 39 "src-ag/DefaultRules.ag" #-}                              _lhsIcon-                             {-# LINE 1750 "dist/build/DefaultRules" #-}+                             {-# LINE 1764 "dist/build/DefaultRules" #-}                              )) of                       { !_patsOcon ->                       (case (pats_ _patsOcon _patsOnt) of                        { ( !_patsIcontainsVars,!_patsIcopy,!_patsIdefinedAttrs,!_patsIerrors,!_patsIlocals,!_patsIoutput) ->                            (case (({-# LINE 520 "src-ag/DefaultRules.ag" #-}                                    _patsIcontainsVars-                                   {-# LINE 1757 "dist/build/DefaultRules" #-}+                                   {-# LINE 1771 "dist/build/DefaultRules" #-}                                    )) of                             { !_lhsOcontainsVars ->                             (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                     Product pos_ _patsIcopy-                                    {-# LINE 1762 "dist/build/DefaultRules" #-}+                                    {-# LINE 1776 "dist/build/DefaultRules" #-}                                     )) of                              { !_copy ->                              (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                      _copy-                                     {-# LINE 1767 "dist/build/DefaultRules" #-}+                                     {-# LINE 1781 "dist/build/DefaultRules" #-}                                      )) of                               { !_lhsOcopy ->                               (case (({-# LINE 500 "src-ag/DefaultRules.ag" #-}                                       _patsIdefinedAttrs-                                      {-# LINE 1772 "dist/build/DefaultRules" #-}+                                      {-# LINE 1786 "dist/build/DefaultRules" #-}                                       )) of                                { !_lhsOdefinedAttrs ->                                (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                                        _patsIerrors-                                       {-# LINE 1777 "dist/build/DefaultRules" #-}+                                       {-# LINE 1791 "dist/build/DefaultRules" #-}                                        )) of                                 { !_lhsOerrors ->                                 (case (({-# LINE 499 "src-ag/DefaultRules.ag" #-}                                         _patsIlocals-                                        {-# LINE 1782 "dist/build/DefaultRules" #-}+                                        {-# LINE 1796 "dist/build/DefaultRules" #-}                                         )) of                                  { !_lhsOlocals ->                                  (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                          Product pos_ _patsIoutput-                                         {-# LINE 1787 "dist/build/DefaultRules" #-}+                                         {-# LINE 1801 "dist/build/DefaultRules" #-}                                          )) of                                   { !_output ->                                   (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                           _output-                                          {-# LINE 1792 "dist/build/DefaultRules" #-}+                                          {-# LINE 1806 "dist/build/DefaultRules" #-}                                           )) of                                    { !_lhsOoutput ->-                                   ( _lhsOcontainsVars,_lhsOcopy,_lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) })))+                                   (case ((Syn_Pattern _lhsOcontainsVars _lhsOcopy _lhsOdefinedAttrs _lhsOerrors _lhsOlocals _lhsOoutput)) of+                                    { ___node ->+                                    ( _lhsOcontainsVars,_lhsOcopy,_lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }))) sem_Pattern_Underscore :: Pos ->                           T_Pattern sem_Pattern_Underscore !pos_ =@@ -1799,45 +1815,47 @@                   (!_lhsInt) ->                     (case (({-# LINE 520 "src-ag/DefaultRules.ag" #-}                             False-                            {-# LINE 1803 "dist/build/DefaultRules" #-}+                            {-# LINE 1819 "dist/build/DefaultRules" #-}                             )) of                      { !_lhsOcontainsVars ->                      (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                              Underscore pos_-                             {-# LINE 1808 "dist/build/DefaultRules" #-}+                             {-# LINE 1824 "dist/build/DefaultRules" #-}                              )) of                       { !_copy ->                       (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                               _copy-                              {-# LINE 1813 "dist/build/DefaultRules" #-}+                              {-# LINE 1829 "dist/build/DefaultRules" #-}                               )) of                        { !_lhsOcopy ->                        (case (({-# LINE 500 "src-ag/DefaultRules.ag" #-}                                Set.empty-                               {-# LINE 1818 "dist/build/DefaultRules" #-}+                               {-# LINE 1834 "dist/build/DefaultRules" #-}                                )) of                         { !_lhsOdefinedAttrs ->                         (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                                 Seq.empty-                                {-# LINE 1823 "dist/build/DefaultRules" #-}+                                {-# LINE 1839 "dist/build/DefaultRules" #-}                                 )) of                          { !_lhsOerrors ->                          (case (({-# LINE 499 "src-ag/DefaultRules.ag" #-}                                  Set.empty-                                 {-# LINE 1828 "dist/build/DefaultRules" #-}+                                 {-# LINE 1844 "dist/build/DefaultRules" #-}                                  )) of                           { !_lhsOlocals ->                           (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                   Underscore pos_-                                  {-# LINE 1833 "dist/build/DefaultRules" #-}+                                  {-# LINE 1849 "dist/build/DefaultRules" #-}                                   )) of                            { !_output ->                            (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                    _output-                                   {-# LINE 1838 "dist/build/DefaultRules" #-}+                                   {-# LINE 1854 "dist/build/DefaultRules" #-}                                    )) of                             { !_lhsOoutput ->-                            ( _lhsOcontainsVars,_lhsOcopy,_lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput) }) }) }) }) }) }) }) })))+                            (case ((Syn_Pattern _lhsOcontainsVars _lhsOcopy _lhsOdefinedAttrs _lhsOerrors _lhsOlocals _lhsOoutput)) of+                             { ___node ->+                             ( _lhsOcontainsVars,_lhsOcopy,_lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput) }) }) }) }) }) }) }) }) }))) -- Patterns ---------------------------------------------------- {-    visit 0:@@ -1888,114 +1906,118 @@                    (!_lhsInt) ->                      (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                              _lhsInt-                             {-# LINE 1892 "dist/build/DefaultRules" #-}+                             {-# LINE 1910 "dist/build/DefaultRules" #-}                              )) of                       { !_tlOnt ->                       (case (({-# LINE 39 "src-ag/DefaultRules.ag" #-}                               _lhsIcon-                              {-# LINE 1897 "dist/build/DefaultRules" #-}+                              {-# LINE 1915 "dist/build/DefaultRules" #-}                               )) of                        { !_tlOcon ->                        (case (tl_ _tlOcon _tlOnt) of                         { ( !_tlIcontainsVars,!_tlIcopy,!_tlIdefinedAttrs,!_tlIerrors,!_tlIlocals,!_tlIoutput) ->                             (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                                     _lhsInt-                                    {-# LINE 1904 "dist/build/DefaultRules" #-}+                                    {-# LINE 1922 "dist/build/DefaultRules" #-}                                     )) of                              { !_hdOnt ->                              (case (({-# LINE 39 "src-ag/DefaultRules.ag" #-}                                      _lhsIcon-                                     {-# LINE 1909 "dist/build/DefaultRules" #-}+                                     {-# LINE 1927 "dist/build/DefaultRules" #-}                                      )) of                               { !_hdOcon ->                               (case (hd_ _hdOcon _hdOnt) of                                { ( !_hdIcontainsVars,!_hdIcopy,!_hdIdefinedAttrs,!_hdIerrors,!_hdIlocals,!_hdIoutput) ->                                    (case (({-# LINE 520 "src-ag/DefaultRules.ag" #-}                                            _hdIcontainsVars || _tlIcontainsVars-                                           {-# LINE 1916 "dist/build/DefaultRules" #-}+                                           {-# LINE 1934 "dist/build/DefaultRules" #-}                                            )) of                                     { !_lhsOcontainsVars ->                                     (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                             (:) _hdIcopy _tlIcopy-                                            {-# LINE 1921 "dist/build/DefaultRules" #-}+                                            {-# LINE 1939 "dist/build/DefaultRules" #-}                                             )) of                                      { !_copy ->                                      (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                              _copy-                                             {-# LINE 1926 "dist/build/DefaultRules" #-}+                                             {-# LINE 1944 "dist/build/DefaultRules" #-}                                              )) of                                       { !_lhsOcopy ->                                       (case (({-# LINE 500 "src-ag/DefaultRules.ag" #-}                                               _hdIdefinedAttrs `Set.union` _tlIdefinedAttrs-                                              {-# LINE 1931 "dist/build/DefaultRules" #-}+                                              {-# LINE 1949 "dist/build/DefaultRules" #-}                                               )) of                                        { !_lhsOdefinedAttrs ->                                        (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                                                _hdIerrors Seq.>< _tlIerrors-                                               {-# LINE 1936 "dist/build/DefaultRules" #-}+                                               {-# LINE 1954 "dist/build/DefaultRules" #-}                                                )) of                                         { !_lhsOerrors ->                                         (case (({-# LINE 499 "src-ag/DefaultRules.ag" #-}                                                 _hdIlocals `Set.union` _tlIlocals-                                                {-# LINE 1941 "dist/build/DefaultRules" #-}+                                                {-# LINE 1959 "dist/build/DefaultRules" #-}                                                 )) of                                          { !_lhsOlocals ->                                          (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                                  (:) _hdIoutput _tlIoutput-                                                 {-# LINE 1946 "dist/build/DefaultRules" #-}+                                                 {-# LINE 1964 "dist/build/DefaultRules" #-}                                                  )) of                                           { !_output ->                                           (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                                   _output-                                                  {-# LINE 1951 "dist/build/DefaultRules" #-}+                                                  {-# LINE 1969 "dist/build/DefaultRules" #-}                                                   )) of                                            { !_lhsOoutput ->-                                           ( _lhsOcontainsVars,_lhsOcopy,_lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+                                           (case ((Syn_Patterns _lhsOcontainsVars _lhsOcopy _lhsOdefinedAttrs _lhsOerrors _lhsOlocals _lhsOoutput)) of+                                            { ___node ->+                                            ( _lhsOcontainsVars,_lhsOcopy,_lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))) sem_Patterns_Nil :: T_Patterns sem_Patterns_Nil =     (T_Patterns (\ (!_lhsIcon)                    (!_lhsInt) ->                      (case (({-# LINE 520 "src-ag/DefaultRules.ag" #-}                              False-                             {-# LINE 1961 "dist/build/DefaultRules" #-}+                             {-# LINE 1981 "dist/build/DefaultRules" #-}                              )) of                       { !_lhsOcontainsVars ->                       (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                               []-                              {-# LINE 1966 "dist/build/DefaultRules" #-}+                              {-# LINE 1986 "dist/build/DefaultRules" #-}                               )) of                        { !_copy ->                        (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                _copy-                               {-# LINE 1971 "dist/build/DefaultRules" #-}+                               {-# LINE 1991 "dist/build/DefaultRules" #-}                                )) of                         { !_lhsOcopy ->                         (case (({-# LINE 500 "src-ag/DefaultRules.ag" #-}                                 Set.empty-                                {-# LINE 1976 "dist/build/DefaultRules" #-}+                                {-# LINE 1996 "dist/build/DefaultRules" #-}                                 )) of                          { !_lhsOdefinedAttrs ->                          (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                                  Seq.empty-                                 {-# LINE 1981 "dist/build/DefaultRules" #-}+                                 {-# LINE 2001 "dist/build/DefaultRules" #-}                                  )) of                           { !_lhsOerrors ->                           (case (({-# LINE 499 "src-ag/DefaultRules.ag" #-}                                   Set.empty-                                  {-# LINE 1986 "dist/build/DefaultRules" #-}+                                  {-# LINE 2006 "dist/build/DefaultRules" #-}                                   )) of                            { !_lhsOlocals ->                            (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                    []-                                   {-# LINE 1991 "dist/build/DefaultRules" #-}+                                   {-# LINE 2011 "dist/build/DefaultRules" #-}                                    )) of                             { !_output ->                             (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                     _output-                                    {-# LINE 1996 "dist/build/DefaultRules" #-}+                                    {-# LINE 2016 "dist/build/DefaultRules" #-}                                     )) of                              { !_lhsOoutput ->-                             ( _lhsOcontainsVars,_lhsOcopy,_lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput) }) }) }) }) }) }) }) })))+                             (case ((Syn_Patterns _lhsOcontainsVars _lhsOcopy _lhsOdefinedAttrs _lhsOerrors _lhsOlocals _lhsOoutput)) of+                              { ___node ->+                              ( _lhsOcontainsVars,_lhsOcopy,_lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput) }) }) }) }) }) }) }) }) }))) -- Production -------------------------------------------------- {-    visit 0:@@ -2113,74 +2135,74 @@                      (!_lhsIwrappers) ->                        (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIsynMap-                               {-# LINE 2117 "dist/build/DefaultRules" #-}+                               {-# LINE 2139 "dist/build/DefaultRules" #-}                                )) of                         { !_childrenOsynMap ->                         (case (({-# LINE 761 "src-ag/DefaultRules.ag" #-}                                 Map.findWithDefault Map.empty con_ _lhsImergesIn-                                {-# LINE 2122 "dist/build/DefaultRules" #-}+                                {-# LINE 2144 "dist/build/DefaultRules" #-}                                 )) of                          { !_mergesIn ->                          (case (({-# LINE 762 "src-ag/DefaultRules.ag" #-}                                  Set.fromList [ c | (_,cs,_) <- Map.elems _mergesIn    , c <- cs ]-                                 {-# LINE 2127 "dist/build/DefaultRules" #-}+                                 {-# LINE 2149 "dist/build/DefaultRules" #-}                                  )) of                           { !_merged ->                           (case (({-# LINE 757 "src-ag/DefaultRules.ag" #-}                                   _merged-                                  {-# LINE 2132 "dist/build/DefaultRules" #-}+                                  {-# LINE 2154 "dist/build/DefaultRules" #-}                                   )) of                            { !_childrenOmerged ->                            (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                    _lhsIinhMap-                                   {-# LINE 2137 "dist/build/DefaultRules" #-}+                                   {-# LINE 2159 "dist/build/DefaultRules" #-}                                    )) of                             { !_childrenOinhMap ->                             (case (({-# LINE 688 "src-ag/DefaultRules.ag" #-}                                     Set.toList $ Map.findWithDefault Set.empty con_ $ Map.findWithDefault Map.empty _lhsInt _lhsImanualAttrOrderMap-                                    {-# LINE 2142 "dist/build/DefaultRules" #-}+                                    {-# LINE 2164 "dist/build/DefaultRules" #-}                                     )) of                              { !_orderDeps ->                              (case (({-# LINE 561 "src-ag/DefaultRules.ag" #-}                                      _lhsIuniq-                                     {-# LINE 2147 "dist/build/DefaultRules" #-}+                                     {-# LINE 2169 "dist/build/DefaultRules" #-}                                      )) of                               { !_rulesOuniq ->                               (case (({-# LINE 50 "src-ag/DefaultRules.ag" #-}                                       _lhsIoptions-                                      {-# LINE 2152 "dist/build/DefaultRules" #-}+                                      {-# LINE 2174 "dist/build/DefaultRules" #-}                                       )) of                                { !_rulesOoptions ->                                (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                                        _lhsInt-                                       {-# LINE 2157 "dist/build/DefaultRules" #-}+                                       {-# LINE 2179 "dist/build/DefaultRules" #-}                                        )) of                                 { !_rulesOnt ->                                 (case (({-# LINE 171 "src-ag/DefaultRules.ag" #-}                                         con_-                                        {-# LINE 2162 "dist/build/DefaultRules" #-}+                                        {-# LINE 2184 "dist/build/DefaultRules" #-}                                         )) of                                  { !_rulesOcon ->                                  (case (rules_ _rulesOcon _rulesOnt _rulesOoptions _rulesOuniq) of                                   { ( !_rulesIdefinedAttrs,!_rulesIerrors,!_rulesIlocals,!_rulesIoutput,!_rulesIruleNames,!_rulesIuniq) ->                                       (case (({-# LINE 41 "src-ag/DefaultRules.ag" #-}                                               _lhsIparams-                                              {-# LINE 2169 "dist/build/DefaultRules" #-}+                                              {-# LINE 2191 "dist/build/DefaultRules" #-}                                               )) of                                        { !_childrenOparams ->                                        (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                                                _lhsInt-                                               {-# LINE 2174 "dist/build/DefaultRules" #-}+                                               {-# LINE 2196 "dist/build/DefaultRules" #-}                                                )) of                                         { !_childrenOnt ->                                         (case (({-# LINE 55 "src-ag/DefaultRules.ag" #-}                                                 _lhsIcr-                                                {-# LINE 2179 "dist/build/DefaultRules" #-}+                                                {-# LINE 2201 "dist/build/DefaultRules" #-}                                                 )) of                                          { !_childrenOcr ->                                          (case (({-# LINE 172 "src-ag/DefaultRules.ag" #-}                                                  con_-                                                 {-# LINE 2184 "dist/build/DefaultRules" #-}+                                                 {-# LINE 2206 "dist/build/DefaultRules" #-}                                                  )) of                                           { !_childrenOcon ->                                           (case (children_ _childrenOcon _childrenOcr _childrenOinhMap _childrenOmerged _childrenOnt _childrenOparams _childrenOsynMap) of@@ -2221,7 +2243,7 @@                                                           [ checkIn occA ++ checkOut occB                                                           | (Dependency occA occB) <- _orderDeps                                                           ]-                                                       {-# LINE 2225 "dist/build/DefaultRules" #-}+                                                       {-# LINE 2247 "dist/build/DefaultRules" #-}                                                        )) of                                                 { !_orderErrs ->                                                 (case (({-# LINE 354 "src-ag/DefaultRules.ag" #-}@@ -2284,72 +2306,74 @@                                                                          locals                                                                          (lhs_env, (_LHS, others))                                                         in (uRules++selfLocRules++selfRules++rules5++rules1, errors1><errs5)-                                                        {-# LINE 2288 "dist/build/DefaultRules" #-}+                                                        {-# LINE 2310 "dist/build/DefaultRules" #-}                                                         )) of                                                  { !__tup2 ->                                                  (case (({-# LINE 354 "src-ag/DefaultRules.ag" #-}                                                          __tup2-                                                         {-# LINE 2293 "dist/build/DefaultRules" #-}+                                                         {-# LINE 2315 "dist/build/DefaultRules" #-}                                                          )) of                                                   { !(_,!_errs) ->                                                   (case (({-# LINE 352 "src-ag/DefaultRules.ag" #-}                                                           _childrenIerrors >< _errs >< _rulesIerrors >< _orderErrs-                                                          {-# LINE 2298 "dist/build/DefaultRules" #-}+                                                          {-# LINE 2320 "dist/build/DefaultRules" #-}                                                           )) of                                                    { !_lhsOerrors ->                                                    (case (({-# LINE 41 "src-ag/DefaultRules.ag" #-}                                                            _lhsIparams-                                                           {-# LINE 2303 "dist/build/DefaultRules" #-}+                                                           {-# LINE 2325 "dist/build/DefaultRules" #-}                                                            )) of                                                     { !_typeSigsOparams ->                                                     (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                                                             _lhsInt-                                                            {-# LINE 2308 "dist/build/DefaultRules" #-}+                                                            {-# LINE 2330 "dist/build/DefaultRules" #-}                                                             )) of                                                      { !_typeSigsOnt ->                                                      (case (({-# LINE 753 "src-ag/DefaultRules.ag" #-}                                                              Map.findWithDefault Map.empty con_ _lhsIaroundsIn-                                                             {-# LINE 2313 "dist/build/DefaultRules" #-}+                                                             {-# LINE 2335 "dist/build/DefaultRules" #-}                                                              )) of                                                       { !_aroundsIn ->                                                       (case (({-# LINE 746 "src-ag/DefaultRules.ag" #-}                                                               Map.findWithDefault Map.empty con_ _lhsIaugmentsIn-                                                              {-# LINE 2318 "dist/build/DefaultRules" #-}+                                                              {-# LINE 2340 "dist/build/DefaultRules" #-}                                                               )) of                                                        { !_augmentsIn ->                                                        (case (({-# LINE 354 "src-ag/DefaultRules.ag" #-}                                                                __tup2-                                                               {-# LINE 2323 "dist/build/DefaultRules" #-}+                                                               {-# LINE 2345 "dist/build/DefaultRules" #-}                                                                )) of                                                         { !(!_newRls,_) ->                                                         (case (({-# LINE 577 "src-ag/DefaultRules.ag" #-}                                                                 foldr addAugments (_rulesIoutput ++ _newRls) (Map.assocs _augmentsIn    )-                                                                {-# LINE 2328 "dist/build/DefaultRules" #-}+                                                                {-# LINE 2350 "dist/build/DefaultRules" #-}                                                                 )) of                                                          { !_extra1 ->                                                          (case (({-# LINE 578 "src-ag/DefaultRules.ag" #-}                                                                  foldr addArounds _extra1     (Map.assocs _aroundsIn    )-                                                                 {-# LINE 2333 "dist/build/DefaultRules" #-}+                                                                 {-# LINE 2355 "dist/build/DefaultRules" #-}                                                                  )) of                                                           { !_extra2 ->                                                           (case (({-# LINE 579 "src-ag/DefaultRules.ag" #-}                                                                   foldr addMerges _extra2     (Map.assocs _mergesIn    )-                                                                  {-# LINE 2338 "dist/build/DefaultRules" #-}+                                                                  {-# LINE 2360 "dist/build/DefaultRules" #-}                                                                   )) of                                                            { !_extra3 ->                                                            (case (typeSigs_ _typeSigsOnt _typeSigsOparams) of                                                             { ( !_typeSigsIoutput) ->                                                                 (case (({-# LINE 580 "src-ag/DefaultRules.ag" #-}                                                                         Production con_ params_ constraints_ _childrenIoutput _extra3     _typeSigsIoutput macro_-                                                                        {-# LINE 2345 "dist/build/DefaultRules" #-}+                                                                        {-# LINE 2367 "dist/build/DefaultRules" #-}                                                                         )) of                                                                  { !_lhsOoutput ->                                                                  (case (({-# LINE 561 "src-ag/DefaultRules.ag" #-}                                                                          _rulesIuniq-                                                                         {-# LINE 2350 "dist/build/DefaultRules" #-}+                                                                         {-# LINE 2372 "dist/build/DefaultRules" #-}                                                                          )) of                                                                   { !_lhsOuniq ->-                                                                  ( _lhsOerrors,_lhsOoutput,_lhsOuniq) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+                                                                  (case ((Syn_Production _lhsOerrors _lhsOoutput _lhsOuniq)) of+                                                                   { ___node ->+                                                                   ( _lhsOerrors,_lhsOoutput,_lhsOuniq) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))) -- Productions ------------------------------------------------- {-    visit 0:@@ -2449,229 +2473,231 @@                       (!_lhsIwrappers) ->                         (case (({-# LINE 64 "src-ag/DefaultRules.ag" #-}                                 _lhsIwrappers-                                {-# LINE 2453 "dist/build/DefaultRules" #-}+                                {-# LINE 2477 "dist/build/DefaultRules" #-}                                 )) of                          { !_tlOwrappers ->                          (case (({-# LINE 161 "src-ag/DefaultRules.ag" #-}                                  _lhsIuseMap-                                 {-# LINE 2458 "dist/build/DefaultRules" #-}+                                 {-# LINE 2482 "dist/build/DefaultRules" #-}                                  )) of                           { !_tlOuseMap ->                           (case (({-# LINE 71 "src-ag/DefaultRules.ag" #-}                                   _lhsItypeSyns-                                  {-# LINE 2463 "dist/build/DefaultRules" #-}+                                  {-# LINE 2487 "dist/build/DefaultRules" #-}                                   )) of                            { !_tlOtypeSyns ->                            (case (({-# LINE 161 "src-ag/DefaultRules.ag" #-}                                    _lhsIsynOrig-                                   {-# LINE 2468 "dist/build/DefaultRules" #-}+                                   {-# LINE 2492 "dist/build/DefaultRules" #-}                                    )) of                             { !_tlOsynOrig ->                             (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                     _lhsIsynMap-                                    {-# LINE 2473 "dist/build/DefaultRules" #-}+                                    {-# LINE 2497 "dist/build/DefaultRules" #-}                                     )) of                              { !_tlOsynMap ->                              (case (({-# LINE 161 "src-ag/DefaultRules.ag" #-}                                      _lhsIsyn-                                     {-# LINE 2478 "dist/build/DefaultRules" #-}+                                     {-# LINE 2502 "dist/build/DefaultRules" #-}                                      )) of                               { !_tlOsyn ->                               (case (({-# LINE 50 "src-ag/DefaultRules.ag" #-}                                       _lhsIoptions-                                      {-# LINE 2483 "dist/build/DefaultRules" #-}+                                      {-# LINE 2507 "dist/build/DefaultRules" #-}                                       )) of                                { !_tlOoptions ->                                (case (({-# LINE 51 "src-ag/DefaultRules.ag" #-}                                        _lhsIo_rename-                                       {-# LINE 2488 "dist/build/DefaultRules" #-}+                                       {-# LINE 2512 "dist/build/DefaultRules" #-}                                        )) of                                 { !_tlOo_rename ->                                 (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                                         _lhsInt-                                        {-# LINE 2493 "dist/build/DefaultRules" #-}+                                        {-# LINE 2517 "dist/build/DefaultRules" #-}                                         )) of                                  { !_tlOnt ->                                  (case (({-# LINE 756 "src-ag/DefaultRules.ag" #-}                                          _lhsImergesIn-                                         {-# LINE 2498 "dist/build/DefaultRules" #-}+                                         {-# LINE 2522 "dist/build/DefaultRules" #-}                                          )) of                                   { !_tlOmergesIn ->                                   (case (({-# LINE 674 "src-ag/DefaultRules.ag" #-}                                           _lhsImanualAttrOrderMap-                                          {-# LINE 2503 "dist/build/DefaultRules" #-}+                                          {-# LINE 2527 "dist/build/DefaultRules" #-}                                           )) of                                    { !_tlOmanualAttrOrderMap ->                                    (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                            _lhsIinhMap-                                           {-# LINE 2508 "dist/build/DefaultRules" #-}+                                           {-# LINE 2532 "dist/build/DefaultRules" #-}                                            )) of                                     { !_tlOinhMap ->                                     (case (({-# LINE 161 "src-ag/DefaultRules.ag" #-}                                             _lhsIinh-                                            {-# LINE 2513 "dist/build/DefaultRules" #-}+                                            {-# LINE 2537 "dist/build/DefaultRules" #-}                                             )) of                                      { !_tlOinh ->                                      (case (({-# LINE 52 "src-ag/DefaultRules.ag" #-}                                              _lhsIcr-                                             {-# LINE 2518 "dist/build/DefaultRules" #-}+                                             {-# LINE 2542 "dist/build/DefaultRules" #-}                                              )) of                                       { !_tlOcr ->                                       (case (({-# LINE 64 "src-ag/DefaultRules.ag" #-}                                               _lhsIwrappers-                                              {-# LINE 2523 "dist/build/DefaultRules" #-}+                                              {-# LINE 2547 "dist/build/DefaultRules" #-}                                               )) of                                        { !_hdOwrappers ->                                        (case (({-# LINE 161 "src-ag/DefaultRules.ag" #-}                                                _lhsIuseMap-                                               {-# LINE 2528 "dist/build/DefaultRules" #-}+                                               {-# LINE 2552 "dist/build/DefaultRules" #-}                                                )) of                                         { !_hdOuseMap ->                                         (case (({-# LINE 71 "src-ag/DefaultRules.ag" #-}                                                 _lhsItypeSyns-                                                {-# LINE 2533 "dist/build/DefaultRules" #-}+                                                {-# LINE 2557 "dist/build/DefaultRules" #-}                                                 )) of                                          { !_hdOtypeSyns ->                                          (case (({-# LINE 161 "src-ag/DefaultRules.ag" #-}                                                  _lhsIsynOrig-                                                 {-# LINE 2538 "dist/build/DefaultRules" #-}+                                                 {-# LINE 2562 "dist/build/DefaultRules" #-}                                                  )) of                                           { !_hdOsynOrig ->                                           (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                                   _lhsIsynMap-                                                  {-# LINE 2543 "dist/build/DefaultRules" #-}+                                                  {-# LINE 2567 "dist/build/DefaultRules" #-}                                                   )) of                                            { !_hdOsynMap ->                                            (case (({-# LINE 161 "src-ag/DefaultRules.ag" #-}                                                    _lhsIsyn-                                                   {-# LINE 2548 "dist/build/DefaultRules" #-}+                                                   {-# LINE 2572 "dist/build/DefaultRules" #-}                                                    )) of                                             { !_hdOsyn ->                                             (case (({-# LINE 50 "src-ag/DefaultRules.ag" #-}                                                     _lhsIoptions-                                                    {-# LINE 2553 "dist/build/DefaultRules" #-}+                                                    {-# LINE 2577 "dist/build/DefaultRules" #-}                                                     )) of                                              { !_hdOoptions ->                                              (case (({-# LINE 51 "src-ag/DefaultRules.ag" #-}                                                      _lhsIo_rename-                                                     {-# LINE 2558 "dist/build/DefaultRules" #-}+                                                     {-# LINE 2582 "dist/build/DefaultRules" #-}                                                      )) of                                               { !_hdOo_rename ->                                               (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                                                       _lhsInt-                                                      {-# LINE 2563 "dist/build/DefaultRules" #-}+                                                      {-# LINE 2587 "dist/build/DefaultRules" #-}                                                       )) of                                                { !_hdOnt ->                                                (case (({-# LINE 756 "src-ag/DefaultRules.ag" #-}                                                        _lhsImergesIn-                                                       {-# LINE 2568 "dist/build/DefaultRules" #-}+                                                       {-# LINE 2592 "dist/build/DefaultRules" #-}                                                        )) of                                                 { !_hdOmergesIn ->                                                 (case (({-# LINE 674 "src-ag/DefaultRules.ag" #-}                                                         _lhsImanualAttrOrderMap-                                                        {-# LINE 2573 "dist/build/DefaultRules" #-}+                                                        {-# LINE 2597 "dist/build/DefaultRules" #-}                                                         )) of                                                  { !_hdOmanualAttrOrderMap ->                                                  (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                                          _lhsIinhMap-                                                         {-# LINE 2578 "dist/build/DefaultRules" #-}+                                                         {-# LINE 2602 "dist/build/DefaultRules" #-}                                                          )) of                                                   { !_hdOinhMap ->                                                   (case (({-# LINE 161 "src-ag/DefaultRules.ag" #-}                                                           _lhsIinh-                                                          {-# LINE 2583 "dist/build/DefaultRules" #-}+                                                          {-# LINE 2607 "dist/build/DefaultRules" #-}                                                           )) of                                                    { !_hdOinh ->                                                    (case (({-# LINE 52 "src-ag/DefaultRules.ag" #-}                                                            _lhsIcr-                                                           {-# LINE 2588 "dist/build/DefaultRules" #-}+                                                           {-# LINE 2612 "dist/build/DefaultRules" #-}                                                            )) of                                                     { !_hdOcr ->                                                     (case (({-# LINE 561 "src-ag/DefaultRules.ag" #-}                                                             _lhsIuniq-                                                            {-# LINE 2593 "dist/build/DefaultRules" #-}+                                                            {-# LINE 2617 "dist/build/DefaultRules" #-}                                                             )) of                                                      { !_hdOuniq ->                                                      (case (({-# LINE 41 "src-ag/DefaultRules.ag" #-}                                                              _lhsIparams-                                                             {-# LINE 2598 "dist/build/DefaultRules" #-}+                                                             {-# LINE 2622 "dist/build/DefaultRules" #-}                                                              )) of                                                       { !_hdOparams ->                                                       (case (({-# LINE 152 "src-ag/DefaultRules.ag" #-}                                                               _lhsInonterminals-                                                              {-# LINE 2603 "dist/build/DefaultRules" #-}+                                                              {-# LINE 2627 "dist/build/DefaultRules" #-}                                                               )) of                                                        { !_hdOnonterminals ->                                                        (case (({-# LINE 161 "src-ag/DefaultRules.ag" #-}                                                                _lhsIinhOrig-                                                               {-# LINE 2608 "dist/build/DefaultRules" #-}+                                                               {-# LINE 2632 "dist/build/DefaultRules" #-}                                                                )) of                                                         { !_hdOinhOrig ->                                                         (case (({-# LINE 742 "src-ag/DefaultRules.ag" #-}                                                                 _lhsIaugmentsIn-                                                                {-# LINE 2613 "dist/build/DefaultRules" #-}+                                                                {-# LINE 2637 "dist/build/DefaultRules" #-}                                                                 )) of                                                          { !_hdOaugmentsIn ->                                                          (case (({-# LINE 749 "src-ag/DefaultRules.ag" #-}                                                                  _lhsIaroundsIn-                                                                 {-# LINE 2618 "dist/build/DefaultRules" #-}+                                                                 {-# LINE 2642 "dist/build/DefaultRules" #-}                                                                  )) of                                                           { !_hdOaroundsIn ->                                                           (case (hd_ _hdOaroundsIn _hdOaugmentsIn _hdOcr _hdOinh _hdOinhMap _hdOinhOrig _hdOmanualAttrOrderMap _hdOmergesIn _hdOnonterminals _hdOnt _hdOo_rename _hdOoptions _hdOparams _hdOsyn _hdOsynMap _hdOsynOrig _hdOtypeSyns _hdOuniq _hdOuseMap _hdOwrappers) of                                                            { ( !_hdIerrors,!_hdIoutput,!_hdIuniq) ->                                                                (case (({-# LINE 561 "src-ag/DefaultRules.ag" #-}                                                                        _hdIuniq-                                                                       {-# LINE 2625 "dist/build/DefaultRules" #-}+                                                                       {-# LINE 2649 "dist/build/DefaultRules" #-}                                                                        )) of                                                                 { !_tlOuniq ->                                                                 (case (({-# LINE 41 "src-ag/DefaultRules.ag" #-}                                                                         _lhsIparams-                                                                        {-# LINE 2630 "dist/build/DefaultRules" #-}+                                                                        {-# LINE 2654 "dist/build/DefaultRules" #-}                                                                         )) of                                                                  { !_tlOparams ->                                                                  (case (({-# LINE 152 "src-ag/DefaultRules.ag" #-}                                                                          _lhsInonterminals-                                                                         {-# LINE 2635 "dist/build/DefaultRules" #-}+                                                                         {-# LINE 2659 "dist/build/DefaultRules" #-}                                                                          )) of                                                                   { !_tlOnonterminals ->                                                                   (case (({-# LINE 161 "src-ag/DefaultRules.ag" #-}                                                                           _lhsIinhOrig-                                                                          {-# LINE 2640 "dist/build/DefaultRules" #-}+                                                                          {-# LINE 2664 "dist/build/DefaultRules" #-}                                                                           )) of                                                                    { !_tlOinhOrig ->                                                                    (case (({-# LINE 742 "src-ag/DefaultRules.ag" #-}                                                                            _lhsIaugmentsIn-                                                                           {-# LINE 2645 "dist/build/DefaultRules" #-}+                                                                           {-# LINE 2669 "dist/build/DefaultRules" #-}                                                                            )) of                                                                     { !_tlOaugmentsIn ->                                                                     (case (({-# LINE 749 "src-ag/DefaultRules.ag" #-}                                                                             _lhsIaroundsIn-                                                                            {-# LINE 2650 "dist/build/DefaultRules" #-}+                                                                            {-# LINE 2674 "dist/build/DefaultRules" #-}                                                                             )) of                                                                      { !_tlOaroundsIn ->                                                                      (case (tl_ _tlOaroundsIn _tlOaugmentsIn _tlOcr _tlOinh _tlOinhMap _tlOinhOrig _tlOmanualAttrOrderMap _tlOmergesIn _tlOnonterminals _tlOnt _tlOo_rename _tlOoptions _tlOparams _tlOsyn _tlOsynMap _tlOsynOrig _tlOtypeSyns _tlOuniq _tlOuseMap _tlOwrappers) of                                                                       { ( !_tlIerrors,!_tlIoutput,!_tlIuniq) ->                                                                           (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                                                                                   _hdIerrors Seq.>< _tlIerrors-                                                                                  {-# LINE 2657 "dist/build/DefaultRules" #-}+                                                                                  {-# LINE 2681 "dist/build/DefaultRules" #-}                                                                                   )) of                                                                            { !_lhsOerrors ->                                                                            (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                                                                    (:) _hdIoutput _tlIoutput-                                                                                   {-# LINE 2662 "dist/build/DefaultRules" #-}+                                                                                   {-# LINE 2686 "dist/build/DefaultRules" #-}                                                                                    )) of                                                                             { !_output ->                                                                             (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                                                                     _output-                                                                                    {-# LINE 2667 "dist/build/DefaultRules" #-}+                                                                                    {-# LINE 2691 "dist/build/DefaultRules" #-}                                                                                     )) of                                                                              { !_lhsOoutput ->                                                                              (case (({-# LINE 561 "src-ag/DefaultRules.ag" #-}                                                                                      _tlIuniq-                                                                                     {-# LINE 2672 "dist/build/DefaultRules" #-}+                                                                                     {-# LINE 2696 "dist/build/DefaultRules" #-}                                                                                      )) of                                                                               { !_lhsOuniq ->-                                                                              ( _lhsOerrors,_lhsOoutput,_lhsOuniq) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+                                                                              (case ((Syn_Productions _lhsOerrors _lhsOoutput _lhsOuniq)) of+                                                                               { ___node ->+                                                                               ( _lhsOerrors,_lhsOoutput,_lhsOuniq) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))) sem_Productions_Nil :: T_Productions sem_Productions_Nil =     (T_Productions (\ (!_lhsIaroundsIn)@@ -2696,25 +2722,27 @@                       (!_lhsIwrappers) ->                         (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                                 Seq.empty-                                {-# LINE 2700 "dist/build/DefaultRules" #-}+                                {-# LINE 2726 "dist/build/DefaultRules" #-}                                 )) of                          { !_lhsOerrors ->                          (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                  []-                                 {-# LINE 2705 "dist/build/DefaultRules" #-}+                                 {-# LINE 2731 "dist/build/DefaultRules" #-}                                  )) of                           { !_output ->                           (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                   _output-                                  {-# LINE 2710 "dist/build/DefaultRules" #-}+                                  {-# LINE 2736 "dist/build/DefaultRules" #-}                                   )) of                            { !_lhsOoutput ->                            (case (({-# LINE 561 "src-ag/DefaultRules.ag" #-}                                    _lhsIuniq-                                   {-# LINE 2715 "dist/build/DefaultRules" #-}+                                   {-# LINE 2741 "dist/build/DefaultRules" #-}                                    )) of                             { !_lhsOuniq ->-                            ( _lhsOerrors,_lhsOoutput,_lhsOuniq) }) }) }) })))+                            (case ((Syn_Productions _lhsOerrors _lhsOoutput _lhsOuniq)) of+                             { ___node ->+                             ( _lhsOerrors,_lhsOoutput,_lhsOuniq) }) }) }) }) }))) -- Rule -------------------------------------------------------- {-    visit 0:@@ -2790,96 +2818,98 @@                (!_lhsIuniq) ->                  (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                          _lhsInt-                         {-# LINE 2794 "dist/build/DefaultRules" #-}+                         {-# LINE 2822 "dist/build/DefaultRules" #-}                          )) of                   { !_patternOnt ->                   (case (({-# LINE 39 "src-ag/DefaultRules.ag" #-}                           _lhsIcon-                          {-# LINE 2799 "dist/build/DefaultRules" #-}+                          {-# LINE 2827 "dist/build/DefaultRules" #-}                           )) of                    { !_patternOcon ->                    (case (pattern_ _patternOcon _patternOnt) of                     { ( !_patternIcontainsVars,!_patternIcopy,!_patternIdefinedAttrs,!_patternIerrors,!_patternIlocals,!_patternIoutput) ->                         (case (({-# LINE 520 "src-ag/DefaultRules.ag" #-}                                 _patternIcontainsVars-                                {-# LINE 2806 "dist/build/DefaultRules" #-}+                                {-# LINE 2834 "dist/build/DefaultRules" #-}                                 )) of                          { !_lhsOcontainsVars ->                          (case (({-# LINE 500 "src-ag/DefaultRules.ag" #-}                                  _patternIdefinedAttrs-                                 {-# LINE 2811 "dist/build/DefaultRules" #-}+                                 {-# LINE 2839 "dist/build/DefaultRules" #-}                                  )) of                           { !_lhsOdefinedAttrs ->                           (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                                   _patternIerrors-                                  {-# LINE 2816 "dist/build/DefaultRules" #-}+                                  {-# LINE 2844 "dist/build/DefaultRules" #-}                                   )) of                            { !_lhsOerrors ->                            (case (({-# LINE 526 "src-ag/DefaultRules.ag" #-}                                    pure_-                                   {-# LINE 2821 "dist/build/DefaultRules" #-}+                                   {-# LINE 2849 "dist/build/DefaultRules" #-}                                    )) of                             { !_lhsOisPure ->                             (case (({-# LINE 499 "src-ag/DefaultRules.ag" #-}                                     _patternIlocals-                                    {-# LINE 2826 "dist/build/DefaultRules" #-}+                                    {-# LINE 2854 "dist/build/DefaultRules" #-}                                     )) of                              { !_lhsOlocals ->                              (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                      Rule mbName_ _patternIoutput rhs_ owrt_ origin_ explicit_ pure_ identity_ mbError_ eager_-                                     {-# LINE 2831 "dist/build/DefaultRules" #-}+                                     {-# LINE 2859 "dist/build/DefaultRules" #-}                                      )) of                               { !_output ->                               (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                       _output-                                      {-# LINE 2836 "dist/build/DefaultRules" #-}+                                      {-# LINE 2864 "dist/build/DefaultRules" #-}                                       )) of                                { !_lhsOoutput ->                                (case (({-# LINE 593 "src-ag/DefaultRules.ag" #-}                                        mkRuleAlias _output-                                       {-# LINE 2841 "dist/build/DefaultRules" #-}+                                       {-# LINE 2869 "dist/build/DefaultRules" #-}                                        )) of                                 { !__tup3 ->                                 (case (({-# LINE 593 "src-ag/DefaultRules.ag" #-}                                         __tup3-                                        {-# LINE 2846 "dist/build/DefaultRules" #-}+                                        {-# LINE 2874 "dist/build/DefaultRules" #-}                                         )) of                                  { !(!_output1,_) ->                                  (case (({-# LINE 594 "src-ag/DefaultRules.ag" #-}                                          if needsMultiRules _lhsIoptions                                          then multiRule _output1     _lhsIuniq                                          else ([_output1    ], _lhsIuniq)-                                         {-# LINE 2853 "dist/build/DefaultRules" #-}+                                         {-# LINE 2881 "dist/build/DefaultRules" #-}                                          )) of                                   { !__tup4 ->                                   (case (({-# LINE 594 "src-ag/DefaultRules.ag" #-}                                           __tup4-                                          {-# LINE 2858 "dist/build/DefaultRules" #-}+                                          {-# LINE 2886 "dist/build/DefaultRules" #-}                                           )) of                                    { !(!_outputs,_) ->                                    (case (({-# LINE 593 "src-ag/DefaultRules.ag" #-}                                            __tup3-                                           {-# LINE 2863 "dist/build/DefaultRules" #-}+                                           {-# LINE 2891 "dist/build/DefaultRules" #-}                                            )) of                                     { !(_,!_mbAlias) ->                                     (case (({-# LINE 597 "src-ag/DefaultRules.ag" #-}                                             maybe [] return _mbAlias     ++ _outputs-                                            {-# LINE 2868 "dist/build/DefaultRules" #-}+                                            {-# LINE 2896 "dist/build/DefaultRules" #-}                                             )) of                                      { !_lhsOoutputs ->                                      (case (({-# LINE 682 "src-ag/DefaultRules.ag" #-}                                              case mbName_ of                                                Nothing -> Set.empty                                                Just nm -> Set.singleton nm-                                             {-# LINE 2875 "dist/build/DefaultRules" #-}+                                             {-# LINE 2903 "dist/build/DefaultRules" #-}                                              )) of                                       { !_lhsOruleNames ->                                       (case (({-# LINE 594 "src-ag/DefaultRules.ag" #-}                                               __tup4-                                              {-# LINE 2880 "dist/build/DefaultRules" #-}+                                              {-# LINE 2908 "dist/build/DefaultRules" #-}                                               )) of                                        { !(_,!_lhsOuniq) ->-                                       ( _lhsOcontainsVars,_lhsOdefinedAttrs,_lhsOerrors,_lhsOisPure,_lhsOlocals,_lhsOoutput,_lhsOoutputs,_lhsOruleNames,_lhsOuniq) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+                                       (case ((Syn_Rule _lhsOcontainsVars _lhsOdefinedAttrs _lhsOerrors _lhsOisPure _lhsOlocals _lhsOoutput _lhsOoutputs _lhsOruleNames _lhsOuniq)) of+                                        { ___node ->+                                        ( _lhsOcontainsVars,_lhsOdefinedAttrs,_lhsOerrors,_lhsOisPure,_lhsOlocals,_lhsOoutput,_lhsOoutputs,_lhsOruleNames,_lhsOuniq) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))) -- Rules ------------------------------------------------------- {-    visit 0:@@ -2932,79 +2962,81 @@                 (!_lhsIuniq) ->                   (case (({-# LINE 561 "src-ag/DefaultRules.ag" #-}                           _lhsIuniq-                          {-# LINE 2936 "dist/build/DefaultRules" #-}+                          {-# LINE 2966 "dist/build/DefaultRules" #-}                           )) of                    { !_hdOuniq ->                    (case (({-# LINE 50 "src-ag/DefaultRules.ag" #-}                            _lhsIoptions-                           {-# LINE 2941 "dist/build/DefaultRules" #-}+                           {-# LINE 2971 "dist/build/DefaultRules" #-}                            )) of                     { !_hdOoptions ->                     (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                             _lhsInt-                            {-# LINE 2946 "dist/build/DefaultRules" #-}+                            {-# LINE 2976 "dist/build/DefaultRules" #-}                             )) of                      { !_hdOnt ->                      (case (({-# LINE 39 "src-ag/DefaultRules.ag" #-}                              _lhsIcon-                             {-# LINE 2951 "dist/build/DefaultRules" #-}+                             {-# LINE 2981 "dist/build/DefaultRules" #-}                              )) of                       { !_hdOcon ->                       (case (hd_ _hdOcon _hdOnt _hdOoptions _hdOuniq) of                        { ( !_hdIcontainsVars,!_hdIdefinedAttrs,!_hdIerrors,!_hdIisPure,!_hdIlocals,!_hdIoutput,!_hdIoutputs,!_hdIruleNames,!_hdIuniq) ->                            (case (({-# LINE 561 "src-ag/DefaultRules.ag" #-}                                    _hdIuniq-                                   {-# LINE 2958 "dist/build/DefaultRules" #-}+                                   {-# LINE 2988 "dist/build/DefaultRules" #-}                                    )) of                             { !_tlOuniq ->                             (case (({-# LINE 50 "src-ag/DefaultRules.ag" #-}                                     _lhsIoptions-                                    {-# LINE 2963 "dist/build/DefaultRules" #-}+                                    {-# LINE 2993 "dist/build/DefaultRules" #-}                                     )) of                              { !_tlOoptions ->                              (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                                      _lhsInt-                                     {-# LINE 2968 "dist/build/DefaultRules" #-}+                                     {-# LINE 2998 "dist/build/DefaultRules" #-}                                      )) of                               { !_tlOnt ->                               (case (({-# LINE 39 "src-ag/DefaultRules.ag" #-}                                       _lhsIcon-                                      {-# LINE 2973 "dist/build/DefaultRules" #-}+                                      {-# LINE 3003 "dist/build/DefaultRules" #-}                                       )) of                                { !_tlOcon ->                                (case (tl_ _tlOcon _tlOnt _tlOoptions _tlOuniq) of                                 { ( !_tlIdefinedAttrs,!_tlIerrors,!_tlIlocals,!_tlIoutput,!_tlIruleNames,!_tlIuniq) ->                                     (case (({-# LINE 500 "src-ag/DefaultRules.ag" #-}                                             _hdIdefinedAttrs `Set.union` _tlIdefinedAttrs-                                            {-# LINE 2980 "dist/build/DefaultRules" #-}+                                            {-# LINE 3010 "dist/build/DefaultRules" #-}                                             )) of                                      { !_lhsOdefinedAttrs ->                                      (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                                              _hdIerrors Seq.>< _tlIerrors-                                             {-# LINE 2985 "dist/build/DefaultRules" #-}+                                             {-# LINE 3015 "dist/build/DefaultRules" #-}                                              )) of                                       { !_lhsOerrors ->                                       (case (({-# LINE 499 "src-ag/DefaultRules.ag" #-}                                               _hdIlocals `Set.union` _tlIlocals-                                              {-# LINE 2990 "dist/build/DefaultRules" #-}+                                              {-# LINE 3020 "dist/build/DefaultRules" #-}                                               )) of                                        { !_lhsOlocals ->                                        (case (({-# LINE 589 "src-ag/DefaultRules.ag" #-}                                                if _hdIcontainsVars && _hdIisPure then _hdIoutputs ++ _tlIoutput else _tlIoutput-                                               {-# LINE 2995 "dist/build/DefaultRules" #-}+                                               {-# LINE 3025 "dist/build/DefaultRules" #-}                                                )) of                                         { !_lhsOoutput ->                                         (case (({-# LINE 680 "src-ag/DefaultRules.ag" #-}                                                 _hdIruleNames `Set.union` _tlIruleNames-                                                {-# LINE 3000 "dist/build/DefaultRules" #-}+                                                {-# LINE 3030 "dist/build/DefaultRules" #-}                                                 )) of                                          { !_lhsOruleNames ->                                          (case (({-# LINE 561 "src-ag/DefaultRules.ag" #-}                                                  _tlIuniq-                                                 {-# LINE 3005 "dist/build/DefaultRules" #-}+                                                 {-# LINE 3035 "dist/build/DefaultRules" #-}                                                  )) of                                           { !_lhsOuniq ->-                                          ( _lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput,_lhsOruleNames,_lhsOuniq) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+                                          (case ((Syn_Rules _lhsOdefinedAttrs _lhsOerrors _lhsOlocals _lhsOoutput _lhsOruleNames _lhsOuniq)) of+                                           { ___node ->+                                           ( _lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput,_lhsOruleNames,_lhsOuniq) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))) sem_Rules_Nil :: T_Rules sem_Rules_Nil =     (T_Rules (\ (!_lhsIcon)@@ -3013,40 +3045,42 @@                 (!_lhsIuniq) ->                   (case (({-# LINE 500 "src-ag/DefaultRules.ag" #-}                           Set.empty-                          {-# LINE 3017 "dist/build/DefaultRules" #-}+                          {-# LINE 3049 "dist/build/DefaultRules" #-}                           )) of                    { !_lhsOdefinedAttrs ->                    (case (({-# LINE 142 "src-ag/DefaultRules.ag" #-}                            Seq.empty-                           {-# LINE 3022 "dist/build/DefaultRules" #-}+                           {-# LINE 3054 "dist/build/DefaultRules" #-}                            )) of                     { !_lhsOerrors ->                     (case (({-# LINE 499 "src-ag/DefaultRules.ag" #-}                             Set.empty-                            {-# LINE 3027 "dist/build/DefaultRules" #-}+                            {-# LINE 3059 "dist/build/DefaultRules" #-}                             )) of                      { !_lhsOlocals ->                      (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                              []-                             {-# LINE 3032 "dist/build/DefaultRules" #-}+                             {-# LINE 3064 "dist/build/DefaultRules" #-}                              )) of                       { !_output ->                       (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                               _output-                              {-# LINE 3037 "dist/build/DefaultRules" #-}+                              {-# LINE 3069 "dist/build/DefaultRules" #-}                               )) of                        { !_lhsOoutput ->                        (case (({-# LINE 680 "src-ag/DefaultRules.ag" #-}                                Set.empty-                               {-# LINE 3042 "dist/build/DefaultRules" #-}+                               {-# LINE 3074 "dist/build/DefaultRules" #-}                                )) of                         { !_lhsOruleNames ->                         (case (({-# LINE 561 "src-ag/DefaultRules.ag" #-}                                 _lhsIuniq-                                {-# LINE 3047 "dist/build/DefaultRules" #-}+                                {-# LINE 3079 "dist/build/DefaultRules" #-}                                 )) of                          { !_lhsOuniq ->-                         ( _lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput,_lhsOruleNames,_lhsOuniq) }) }) }) }) }) }) })))+                         (case ((Syn_Rules _lhsOdefinedAttrs _lhsOerrors _lhsOlocals _lhsOoutput _lhsOruleNames _lhsOuniq)) of+                          { ___node ->+                          ( _lhsOdefinedAttrs,_lhsOerrors,_lhsOlocals,_lhsOoutput,_lhsOruleNames,_lhsOuniq) }) }) }) }) }) }) }) }))) -- TypeSig ----------------------------------------------------- {-    visit 0:@@ -3087,15 +3121,17 @@                   (!_lhsIparams) ->                     (case (({-# LINE 545 "src-ag/DefaultRules.ag" #-}                             elimSelfId _lhsInt _lhsIparams tp_-                            {-# LINE 3091 "dist/build/DefaultRules" #-}+                            {-# LINE 3125 "dist/build/DefaultRules" #-}                             )) of                      { !_tp1 ->                      (case (({-# LINE 586 "src-ag/DefaultRules.ag" #-}                              TypeSig name_ _tp1-                             {-# LINE 3096 "dist/build/DefaultRules" #-}+                             {-# LINE 3130 "dist/build/DefaultRules" #-}                              )) of                       { !_lhsOoutput ->-                      ( _lhsOoutput) }) })))+                      (case ((Syn_TypeSig _lhsOoutput)) of+                       { ___node ->+                       ( _lhsOoutput) }) }) }))) -- TypeSigs ---------------------------------------------------- {-    visit 0:@@ -3139,22 +3175,22 @@                    (!_lhsIparams) ->                      (case (({-# LINE 41 "src-ag/DefaultRules.ag" #-}                              _lhsIparams-                             {-# LINE 3143 "dist/build/DefaultRules" #-}+                             {-# LINE 3179 "dist/build/DefaultRules" #-}                              )) of                       { !_tlOparams ->                       (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                               _lhsInt-                              {-# LINE 3148 "dist/build/DefaultRules" #-}+                              {-# LINE 3184 "dist/build/DefaultRules" #-}                               )) of                        { !_tlOnt ->                        (case (({-# LINE 41 "src-ag/DefaultRules.ag" #-}                                _lhsIparams-                               {-# LINE 3153 "dist/build/DefaultRules" #-}+                               {-# LINE 3189 "dist/build/DefaultRules" #-}                                )) of                         { !_hdOparams ->                         (case (({-# LINE 38 "src-ag/DefaultRules.ag" #-}                                 _lhsInt-                                {-# LINE 3158 "dist/build/DefaultRules" #-}+                                {-# LINE 3194 "dist/build/DefaultRules" #-}                                 )) of                          { !_hdOnt ->                          (case (tl_ _tlOnt _tlOparams) of@@ -3163,27 +3199,31 @@                                { ( !_hdIoutput) ->                                    (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                            (:) _hdIoutput _tlIoutput-                                           {-# LINE 3167 "dist/build/DefaultRules" #-}+                                           {-# LINE 3203 "dist/build/DefaultRules" #-}                                            )) of                                     { !_output ->                                     (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                                             _output-                                            {-# LINE 3172 "dist/build/DefaultRules" #-}+                                            {-# LINE 3208 "dist/build/DefaultRules" #-}                                             )) of                                      { !_lhsOoutput ->-                                     ( _lhsOoutput) }) }) }) }) }) }) }) })))+                                     (case ((Syn_TypeSigs _lhsOoutput)) of+                                      { ___node ->+                                      ( _lhsOoutput) }) }) }) }) }) }) }) }) }))) sem_TypeSigs_Nil :: T_TypeSigs sem_TypeSigs_Nil =     (T_TypeSigs (\ (!_lhsInt)                    (!_lhsIparams) ->                      (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                              []-                             {-# LINE 3182 "dist/build/DefaultRules" #-}+                             {-# LINE 3220 "dist/build/DefaultRules" #-}                              )) of                       { !_output ->                       (case (({-# LINE 568 "src-ag/DefaultRules.ag" #-}                               _output-                              {-# LINE 3187 "dist/build/DefaultRules" #-}+                              {-# LINE 3225 "dist/build/DefaultRules" #-}                               )) of                        { !_lhsOoutput ->-                       ( _lhsOoutput) }) })))+                       (case ((Syn_TypeSigs _lhsOoutput)) of+                        { ___node ->+                        ( _lhsOoutput) }) }) })))
src-derived/Desugar.hs view
@@ -197,7 +197,9 @@                                {-# LINE 198 "dist/build/Desugar" #-}                                )) of                         { !_lhsOoutput ->-                        ( _lhsOchildInhs,_lhsOchildSyns,_lhsOoutput) }) }) }) }) }) })))+                        (case ((Syn_Child _lhsOchildInhs _lhsOchildSyns _lhsOoutput)) of+                         { ___node ->+                         ( _lhsOchildInhs,_lhsOchildSyns,_lhsOoutput) }) }) }) }) }) }) }))) -- Children ---------------------------------------------------- {-    visit 0:@@ -249,69 +251,71 @@                    (!_lhsIsynMap) ->                      (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                              _lhsIinhMap-                             {-# LINE 253 "dist/build/Desugar" #-}+                             {-# LINE 255 "dist/build/Desugar" #-}                              )) of                       { !_tlOinhMap ->                       (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                               _lhsIinhMap-                              {-# LINE 258 "dist/build/Desugar" #-}+                              {-# LINE 260 "dist/build/Desugar" #-}                               )) of                        { !_hdOinhMap ->                        (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIsynMap-                               {-# LINE 263 "dist/build/Desugar" #-}+                               {-# LINE 265 "dist/build/Desugar" #-}                                )) of                         { !_tlOsynMap ->                         (case (({-# LINE 36 "src-ag/Desugar.ag" #-}                                 _lhsIoptions-                                {-# LINE 268 "dist/build/Desugar" #-}+                                {-# LINE 270 "dist/build/Desugar" #-}                                 )) of                          { !_tlOoptions ->                          (case (({-# LINE 289 "src-ag/Desugar.ag" #-}                                  _lhsImainName-                                 {-# LINE 273 "dist/build/Desugar" #-}+                                 {-# LINE 275 "dist/build/Desugar" #-}                                  )) of                           { !_tlOmainName ->                           (case (tl_ _tlOinhMap _tlOmainName _tlOoptions _tlOsynMap) of                            { ( !_tlIchildInhs,!_tlIchildSyns,!_tlIoutput) ->                                (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                        _lhsIsynMap-                                       {-# LINE 280 "dist/build/Desugar" #-}+                                       {-# LINE 282 "dist/build/Desugar" #-}                                        )) of                                 { !_hdOsynMap ->                                 (case (({-# LINE 36 "src-ag/Desugar.ag" #-}                                         _lhsIoptions-                                        {-# LINE 285 "dist/build/Desugar" #-}+                                        {-# LINE 287 "dist/build/Desugar" #-}                                         )) of                                  { !_hdOoptions ->                                  (case (({-# LINE 289 "src-ag/Desugar.ag" #-}                                          _lhsImainName-                                         {-# LINE 290 "dist/build/Desugar" #-}+                                         {-# LINE 292 "dist/build/Desugar" #-}                                          )) of                                   { !_hdOmainName ->                                   (case (hd_ _hdOinhMap _hdOmainName _hdOoptions _hdOsynMap) of                                    { ( !_hdIchildInhs,!_hdIchildSyns,!_hdIoutput) ->                                        (case (({-# LINE 125 "src-ag/Desugar.ag" #-}                                                _hdIchildInhs ++ _tlIchildInhs-                                               {-# LINE 297 "dist/build/Desugar" #-}+                                               {-# LINE 299 "dist/build/Desugar" #-}                                                )) of                                         { !_lhsOchildInhs ->                                         (case (({-# LINE 125 "src-ag/Desugar.ag" #-}                                                 _hdIchildSyns ++ _tlIchildSyns-                                                {-# LINE 302 "dist/build/Desugar" #-}+                                                {-# LINE 304 "dist/build/Desugar" #-}                                                 )) of                                          { !_lhsOchildSyns ->                                          (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                  (:) _hdIoutput _tlIoutput-                                                 {-# LINE 307 "dist/build/Desugar" #-}+                                                 {-# LINE 309 "dist/build/Desugar" #-}                                                  )) of                                           { !_output ->                                           (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                   _output-                                                  {-# LINE 312 "dist/build/Desugar" #-}+                                                  {-# LINE 314 "dist/build/Desugar" #-}                                                   )) of                                            { !_lhsOoutput ->-                                           ( _lhsOchildInhs,_lhsOchildSyns,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+                                           (case ((Syn_Children _lhsOchildInhs _lhsOchildSyns _lhsOoutput)) of+                                            { ___node ->+                                            ( _lhsOchildInhs,_lhsOchildSyns,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))) sem_Children_Nil :: T_Children sem_Children_Nil =     (T_Children (\ (!_lhsIinhMap)@@ -320,25 +324,27 @@                    (!_lhsIsynMap) ->                      (case (({-# LINE 125 "src-ag/Desugar.ag" #-}                              []-                             {-# LINE 324 "dist/build/Desugar" #-}+                             {-# LINE 328 "dist/build/Desugar" #-}                              )) of                       { !_lhsOchildInhs ->                       (case (({-# LINE 125 "src-ag/Desugar.ag" #-}                               []-                              {-# LINE 329 "dist/build/Desugar" #-}+                              {-# LINE 333 "dist/build/Desugar" #-}                               )) of                        { !_lhsOchildSyns ->                        (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                []-                               {-# LINE 334 "dist/build/Desugar" #-}+                               {-# LINE 338 "dist/build/Desugar" #-}                                )) of                         { !_output ->                         (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                 _output-                                {-# LINE 339 "dist/build/Desugar" #-}+                                {-# LINE 343 "dist/build/Desugar" #-}                                 )) of                          { !_lhsOoutput ->-                         ( _lhsOchildInhs,_lhsOchildSyns,_lhsOoutput) }) }) }) })))+                         (case ((Syn_Children _lhsOchildInhs _lhsOchildSyns _lhsOoutput)) of+                          { ___node ->+                          ( _lhsOchildInhs,_lhsOchildSyns,_lhsOoutput) }) }) }) }) }))) -- Expression -------------------------------------------------- {-    visit 0:@@ -402,25 +408,27 @@                                    sem = sem_HsTokensRoot (HsTokensRoot tks_)                                    syn = wrap_HsTokensRoot sem inh                                in (tks_Syn_HsTokensRoot syn, errors_Syn_HsTokensRoot syn)-                               {-# LINE 406 "dist/build/Desugar" #-}+                               {-# LINE 412 "dist/build/Desugar" #-}                                )) of                         { !__tup1 ->                         (case (({-# LINE 49 "src-ag/Desugar.ag" #-}                                 __tup1-                                {-# LINE 411 "dist/build/Desugar" #-}+                                {-# LINE 417 "dist/build/Desugar" #-}                                 )) of                          { !(_,!_lhsOerrors) ->                          (case (({-# LINE 49 "src-ag/Desugar.ag" #-}                                  __tup1-                                 {-# LINE 416 "dist/build/Desugar" #-}+                                 {-# LINE 422 "dist/build/Desugar" #-}                                  )) of                           { !(!_tks',_) ->                           (case (({-# LINE 59 "src-ag/Desugar.ag" #-}                                   Expression pos_ _tks'-                                  {-# LINE 421 "dist/build/Desugar" #-}+                                  {-# LINE 427 "dist/build/Desugar" #-}                                   )) of                            { !_lhsOoutput ->-                           ( _lhsOerrors,_lhsOoutput) }) }) }) })))+                           (case ((Syn_Expression _lhsOerrors _lhsOoutput)) of+                            { ___node ->+                            ( _lhsOerrors,_lhsOoutput) }) }) }) }) }))) -- Grammar ----------------------------------------------------- {-    visit 0:@@ -490,44 +498,44 @@                      { ( !_nontsIinhMap',!_nontsIsynMap',!T_Nonterminals_1 nonts_1) ->                          (case (({-# LINE 36 "src-ag/Desugar.ag" #-}                                  _lhsIoptions-                                 {-# LINE 494 "dist/build/Desugar" #-}+                                 {-# LINE 502 "dist/build/Desugar" #-}                                  )) of                           { !_nontsOoptions ->                           (case (({-# LINE 289 "src-ag/Desugar.ag" #-}                                   _lhsImainName-                                  {-# LINE 499 "dist/build/Desugar" #-}+                                  {-# LINE 507 "dist/build/Desugar" #-}                                   )) of                            { !_nontsOmainName ->                            (case (({-# LINE 215 "src-ag/Desugar.ag" #-}                                    _lhsIforcedIrrefutables-                                   {-# LINE 504 "dist/build/Desugar" #-}+                                   {-# LINE 512 "dist/build/Desugar" #-}                                    )) of                             { !_nontsOforcedIrrefutables ->                             (case (({-# LINE 16 "src-ag/DistChildAttr.ag" #-}                                     _nontsIsynMap'-                                    {-# LINE 509 "dist/build/Desugar" #-}+                                    {-# LINE 517 "dist/build/Desugar" #-}                                     )) of                              { !_nontsOsynMap ->                              (case (({-# LINE 15 "src-ag/DistChildAttr.ag" #-}                                      _nontsIinhMap'-                                     {-# LINE 514 "dist/build/Desugar" #-}+                                     {-# LINE 522 "dist/build/Desugar" #-}                                      )) of                               { !_nontsOinhMap ->                               (case (({-# LINE 235 "src-ag/Desugar.ag" #-}                                       augmentsMap_-                                      {-# LINE 519 "dist/build/Desugar" #-}+                                      {-# LINE 527 "dist/build/Desugar" #-}                                       )) of                                { !_nontsOaugmentsIn ->                                (case (nonts_1 _nontsOaugmentsIn _nontsOforcedIrrefutables _nontsOinhMap _nontsOmainName _nontsOoptions _nontsOsynMap) of                                 { ( !_nontsIallAttributes,!_nontsIaugmentsOut,!_nontsIerrors,!_nontsIoutput) ->                                     (case (({-# LINE 196 "src-ag/Desugar.ag" #-}                                             _nontsIallAttributes-                                            {-# LINE 526 "dist/build/Desugar" #-}+                                            {-# LINE 534 "dist/build/Desugar" #-}                                             )) of                                      { !_lhsOallAttributes ->                                      (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                                              _nontsIerrors-                                             {-# LINE 531 "dist/build/Desugar" #-}+                                             {-# LINE 539 "dist/build/Desugar" #-}                                              )) of                                       { !_lhsOerrors ->                                       (case (({-# LINE 319 "src-ag/Desugar.ag" #-}@@ -545,10 +553,12 @@                                                       _nontsIaugmentsOut                                                       aroundsMap_                                                       mergeMap_-                                              {-# LINE 549 "dist/build/Desugar" #-}+                                              {-# LINE 557 "dist/build/Desugar" #-}                                               )) of                                        { !_lhsOoutput ->-                                       ( _lhsOallAttributes,_lhsOerrors,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) })))+                                       (case ((Syn_Grammar _lhsOallAttributes _lhsOerrors _lhsOoutput)) of+                                        { ___node ->+                                        ( _lhsOallAttributes,_lhsOerrors,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }))) -- HsToken ----------------------------------------------------- {-    visit 0:@@ -648,37 +658,39 @@                   (!_lhsIuseFieldIdent) ->                     (case (({-# LINE 79 "src-ag/Desugar.ag" #-}                             findField field_ attr_ _lhsIchildSyns-                            {-# LINE 652 "dist/build/Desugar" #-}+                            {-# LINE 662 "dist/build/Desugar" #-}                             )) of                      { !_mField ->                      (case (({-# LINE 81 "src-ag/Desugar.ag" #-}                              maybe field_ id _mField-                             {-# LINE 657 "dist/build/Desugar" #-}+                             {-# LINE 667 "dist/build/Desugar" #-}                              )) of                       { !_field' ->                       (case (({-# LINE 84 "src-ag/Desugar.ag" #-}                               if _lhsIuseFieldIdent || length (getName field_) < length (getName _field'    )                               then _lhsIaddLines + 1                               else _lhsIaddLines-                              {-# LINE 664 "dist/build/Desugar" #-}+                              {-# LINE 674 "dist/build/Desugar" #-}                               )) of                        { !_lhsOaddLines ->                        (case (({-# LINE 82 "src-ag/Desugar.ag" #-}                                maybe (Seq.singleton (UndefAttr _lhsInt _lhsIcon field_ (Ident "<ANY>" (getPos field_)) False)) (const Seq.empty) _mField-                               {-# LINE 669 "dist/build/Desugar" #-}+                               {-# LINE 679 "dist/build/Desugar" #-}                                )) of                         { !_lhsOerrors ->                         (case (({-# LINE 88 "src-ag/Desugar.ag" #-}                                 AGField _field'     attr_ (addl _lhsIaddLines pos_) (if _lhsIuseFieldIdent then Just _lhsIruleDescr else Nothing)-                                {-# LINE 674 "dist/build/Desugar" #-}+                                {-# LINE 684 "dist/build/Desugar" #-}                                 )) of                          { !_tks ->                          (case (({-# LINE 70 "src-ag/Desugar.ag" #-}                                  _tks-                                 {-# LINE 679 "dist/build/Desugar" #-}+                                 {-# LINE 689 "dist/build/Desugar" #-}                                  )) of                           { !_lhsOtks ->-                          ( _lhsOaddLines,_lhsOerrors,_lhsOtks) }) }) }) }) }) })))+                          (case ((Syn_HsToken _lhsOaddLines _lhsOerrors _lhsOtks)) of+                           { ___node ->+                           ( _lhsOaddLines,_lhsOerrors,_lhsOtks) }) }) }) }) }) }) }))) sem_HsToken_AGLocal :: Identifier ->                        Pos ->                        (Maybe String) ->@@ -695,25 +707,27 @@                             if _lhsIuseFieldIdent                             then _lhsIaddLines + 1                             else _lhsIaddLines-                            {-# LINE 699 "dist/build/Desugar" #-}+                            {-# LINE 711 "dist/build/Desugar" #-}                             )) of                      { !_lhsOaddLines ->                      (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                              Seq.empty-                             {-# LINE 704 "dist/build/Desugar" #-}+                             {-# LINE 716 "dist/build/Desugar" #-}                              )) of                       { !_lhsOerrors ->                       (case (({-# LINE 77 "src-ag/Desugar.ag" #-}                               AGLocal var_ (addl _lhsIaddLines pos_) (if _lhsIuseFieldIdent then Just _lhsIruleDescr else Nothing)-                              {-# LINE 709 "dist/build/Desugar" #-}+                              {-# LINE 721 "dist/build/Desugar" #-}                               )) of                        { !_tks ->                        (case (({-# LINE 70 "src-ag/Desugar.ag" #-}                                _tks-                               {-# LINE 714 "dist/build/Desugar" #-}+                               {-# LINE 726 "dist/build/Desugar" #-}                                )) of                         { !_lhsOtks ->-                        ( _lhsOaddLines,_lhsOerrors,_lhsOtks) }) }) }) })))+                        (case ((Syn_HsToken _lhsOaddLines _lhsOerrors _lhsOtks)) of+                         { ___node ->+                         ( _lhsOaddLines,_lhsOerrors,_lhsOtks) }) }) }) }) }))) sem_HsToken_CharToken :: String ->                          Pos ->                          T_HsToken@@ -727,25 +741,27 @@                   (!_lhsIuseFieldIdent) ->                     (case (({-# LINE 64 "src-ag/Desugar.ag" #-}                             _lhsIaddLines-                            {-# LINE 731 "dist/build/Desugar" #-}+                            {-# LINE 745 "dist/build/Desugar" #-}                             )) of                      { !_lhsOaddLines ->                      (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                              Seq.empty-                             {-# LINE 736 "dist/build/Desugar" #-}+                             {-# LINE 750 "dist/build/Desugar" #-}                              )) of                       { !_lhsOerrors ->                       (case (({-# LINE 92 "src-ag/Desugar.ag" #-}                               CharToken value_ (addl _lhsIaddLines pos_)-                              {-# LINE 741 "dist/build/Desugar" #-}+                              {-# LINE 755 "dist/build/Desugar" #-}                               )) of                        { !_tks ->                        (case (({-# LINE 70 "src-ag/Desugar.ag" #-}                                _tks-                               {-# LINE 746 "dist/build/Desugar" #-}+                               {-# LINE 760 "dist/build/Desugar" #-}                                )) of                         { !_lhsOtks ->-                        ( _lhsOaddLines,_lhsOerrors,_lhsOtks) }) }) }) })))+                        (case ((Syn_HsToken _lhsOaddLines _lhsOerrors _lhsOtks)) of+                         { ___node ->+                         ( _lhsOaddLines,_lhsOerrors,_lhsOtks) }) }) }) }) }))) sem_HsToken_Err :: String ->                    Pos ->                    T_HsToken@@ -759,25 +775,27 @@                   (!_lhsIuseFieldIdent) ->                     (case (({-# LINE 64 "src-ag/Desugar.ag" #-}                             _lhsIaddLines-                            {-# LINE 763 "dist/build/Desugar" #-}+                            {-# LINE 779 "dist/build/Desugar" #-}                             )) of                      { !_lhsOaddLines ->                      (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                              Seq.empty-                             {-# LINE 768 "dist/build/Desugar" #-}+                             {-# LINE 784 "dist/build/Desugar" #-}                              )) of                       { !_lhsOerrors ->                       (case (({-# LINE 96 "src-ag/Desugar.ag" #-}                               Err mesg_ (addl _lhsIaddLines pos_)-                              {-# LINE 773 "dist/build/Desugar" #-}+                              {-# LINE 789 "dist/build/Desugar" #-}                               )) of                        { !_tks ->                        (case (({-# LINE 70 "src-ag/Desugar.ag" #-}                                _tks-                               {-# LINE 778 "dist/build/Desugar" #-}+                               {-# LINE 794 "dist/build/Desugar" #-}                                )) of                         { !_lhsOtks ->-                        ( _lhsOaddLines,_lhsOerrors,_lhsOtks) }) }) }) })))+                        (case ((Syn_HsToken _lhsOaddLines _lhsOerrors _lhsOtks)) of+                         { ___node ->+                         ( _lhsOaddLines,_lhsOerrors,_lhsOtks) }) }) }) }) }))) sem_HsToken_HsToken :: String ->                        Pos ->                        T_HsToken@@ -791,25 +809,27 @@                   (!_lhsIuseFieldIdent) ->                     (case (({-# LINE 64 "src-ag/Desugar.ag" #-}                             _lhsIaddLines-                            {-# LINE 795 "dist/build/Desugar" #-}+                            {-# LINE 813 "dist/build/Desugar" #-}                             )) of                      { !_lhsOaddLines ->                      (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                              Seq.empty-                             {-# LINE 800 "dist/build/Desugar" #-}+                             {-# LINE 818 "dist/build/Desugar" #-}                              )) of                       { !_lhsOerrors ->                       (case (({-# LINE 90 "src-ag/Desugar.ag" #-}                               HsToken value_ (addl _lhsIaddLines pos_)-                              {-# LINE 805 "dist/build/Desugar" #-}+                              {-# LINE 823 "dist/build/Desugar" #-}                               )) of                        { !_tks ->                        (case (({-# LINE 70 "src-ag/Desugar.ag" #-}                                _tks-                               {-# LINE 810 "dist/build/Desugar" #-}+                               {-# LINE 828 "dist/build/Desugar" #-}                                )) of                         { !_lhsOtks ->-                        ( _lhsOaddLines,_lhsOerrors,_lhsOtks) }) }) }) })))+                        (case ((Syn_HsToken _lhsOaddLines _lhsOerrors _lhsOtks)) of+                         { ___node ->+                         ( _lhsOaddLines,_lhsOerrors,_lhsOtks) }) }) }) }) }))) sem_HsToken_StrToken :: String ->                         Pos ->                         T_HsToken@@ -823,25 +843,27 @@                   (!_lhsIuseFieldIdent) ->                     (case (({-# LINE 64 "src-ag/Desugar.ag" #-}                             _lhsIaddLines-                            {-# LINE 827 "dist/build/Desugar" #-}+                            {-# LINE 847 "dist/build/Desugar" #-}                             )) of                      { !_lhsOaddLines ->                      (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                              Seq.empty-                             {-# LINE 832 "dist/build/Desugar" #-}+                             {-# LINE 852 "dist/build/Desugar" #-}                              )) of                       { !_lhsOerrors ->                       (case (({-# LINE 94 "src-ag/Desugar.ag" #-}                               StrToken value_ (addl _lhsIaddLines pos_)-                              {-# LINE 837 "dist/build/Desugar" #-}+                              {-# LINE 857 "dist/build/Desugar" #-}                               )) of                        { !_tks ->                        (case (({-# LINE 70 "src-ag/Desugar.ag" #-}                                _tks-                               {-# LINE 842 "dist/build/Desugar" #-}+                               {-# LINE 862 "dist/build/Desugar" #-}                                )) of                         { !_lhsOtks ->-                        ( _lhsOaddLines,_lhsOerrors,_lhsOtks) }) }) }) })))+                        (case ((Syn_HsToken _lhsOaddLines _lhsOerrors _lhsOtks)) of+                         { ___node ->+                         ( _lhsOaddLines,_lhsOerrors,_lhsOtks) }) }) }) }) }))) -- HsTokens ---------------------------------------------------- {-    visit 0:@@ -902,99 +924,101 @@                    (!_lhsIuseFieldIdent) ->                      (case (({-# LINE 62 "src-ag/Desugar.ag" #-}                              _lhsIuseFieldIdent-                             {-# LINE 906 "dist/build/Desugar" #-}+                             {-# LINE 928 "dist/build/Desugar" #-}                              )) of                       { !_tlOuseFieldIdent ->                       (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                               _lhsIchildSyns-                              {-# LINE 911 "dist/build/Desugar" #-}+                              {-# LINE 933 "dist/build/Desugar" #-}                               )) of                        { !_tlOchildSyns ->                        (case (({-# LINE 62 "src-ag/Desugar.ag" #-}                                _lhsIuseFieldIdent-                               {-# LINE 916 "dist/build/Desugar" #-}+                               {-# LINE 938 "dist/build/Desugar" #-}                                )) of                         { !_hdOuseFieldIdent ->                         (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                 _lhsIchildSyns-                                {-# LINE 921 "dist/build/Desugar" #-}+                                {-# LINE 943 "dist/build/Desugar" #-}                                 )) of                          { !_hdOchildSyns ->                          (case (({-# LINE 64 "src-ag/Desugar.ag" #-}                                  _lhsIaddLines-                                 {-# LINE 926 "dist/build/Desugar" #-}+                                 {-# LINE 948 "dist/build/Desugar" #-}                                  )) of                           { !_hdOaddLines ->                           (case (({-# LINE 168 "src-ag/Desugar.ag" #-}                                   _lhsIruleDescr-                                  {-# LINE 931 "dist/build/Desugar" #-}+                                  {-# LINE 953 "dist/build/Desugar" #-}                                   )) of                            { !_hdOruleDescr ->                            (case (({-# LINE 152 "src-ag/Desugar.ag" #-}                                    _lhsInt-                                   {-# LINE 936 "dist/build/Desugar" #-}+                                   {-# LINE 958 "dist/build/Desugar" #-}                                    )) of                             { !_hdOnt ->                             (case (({-# LINE 153 "src-ag/Desugar.ag" #-}                                     _lhsIcon-                                    {-# LINE 941 "dist/build/Desugar" #-}+                                    {-# LINE 963 "dist/build/Desugar" #-}                                     )) of                              { !_hdOcon ->                              (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                      _lhsIchildInhs-                                     {-# LINE 946 "dist/build/Desugar" #-}+                                     {-# LINE 968 "dist/build/Desugar" #-}                                      )) of                               { !_hdOchildInhs ->                               (case (hd_ _hdOaddLines _hdOchildInhs _hdOchildSyns _hdOcon _hdOnt _hdOruleDescr _hdOuseFieldIdent) of                                { ( !_hdIaddLines,!_hdIerrors,!_hdItks) ->                                    (case (({-# LINE 64 "src-ag/Desugar.ag" #-}                                            _hdIaddLines-                                           {-# LINE 953 "dist/build/Desugar" #-}+                                           {-# LINE 975 "dist/build/Desugar" #-}                                            )) of                                     { !_tlOaddLines ->                                     (case (({-# LINE 168 "src-ag/Desugar.ag" #-}                                             _lhsIruleDescr-                                            {-# LINE 958 "dist/build/Desugar" #-}+                                            {-# LINE 980 "dist/build/Desugar" #-}                                             )) of                                      { !_tlOruleDescr ->                                      (case (({-# LINE 152 "src-ag/Desugar.ag" #-}                                              _lhsInt-                                             {-# LINE 963 "dist/build/Desugar" #-}+                                             {-# LINE 985 "dist/build/Desugar" #-}                                              )) of                                       { !_tlOnt ->                                       (case (({-# LINE 153 "src-ag/Desugar.ag" #-}                                               _lhsIcon-                                              {-# LINE 968 "dist/build/Desugar" #-}+                                              {-# LINE 990 "dist/build/Desugar" #-}                                               )) of                                        { !_tlOcon ->                                        (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                _lhsIchildInhs-                                               {-# LINE 973 "dist/build/Desugar" #-}+                                               {-# LINE 995 "dist/build/Desugar" #-}                                                )) of                                         { !_tlOchildInhs ->                                         (case (tl_ _tlOaddLines _tlOchildInhs _tlOchildSyns _tlOcon _tlOnt _tlOruleDescr _tlOuseFieldIdent) of                                          { ( !_tlIaddLines,!_tlIerrors,!_tlItks) ->                                              (case (({-# LINE 64 "src-ag/Desugar.ag" #-}                                                      _tlIaddLines-                                                     {-# LINE 980 "dist/build/Desugar" #-}+                                                     {-# LINE 1002 "dist/build/Desugar" #-}                                                      )) of                                               { !_lhsOaddLines ->                                               (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                                                       _hdIerrors Seq.>< _tlIerrors-                                                      {-# LINE 985 "dist/build/Desugar" #-}+                                                      {-# LINE 1007 "dist/build/Desugar" #-}                                                       )) of                                                { !_lhsOerrors ->                                                (case (({-# LINE 70 "src-ag/Desugar.ag" #-}                                                        (:) _hdItks _tlItks-                                                       {-# LINE 990 "dist/build/Desugar" #-}+                                                       {-# LINE 1012 "dist/build/Desugar" #-}                                                        )) of                                                 { !_tks ->                                                 (case (({-# LINE 70 "src-ag/Desugar.ag" #-}                                                         _tks-                                                        {-# LINE 995 "dist/build/Desugar" #-}+                                                        {-# LINE 1017 "dist/build/Desugar" #-}                                                         )) of                                                  { !_lhsOtks ->-                                                 ( _lhsOaddLines,_lhsOerrors,_lhsOtks) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+                                                 (case ((Syn_HsTokens _lhsOaddLines _lhsOerrors _lhsOtks)) of+                                                  { ___node ->+                                                  ( _lhsOaddLines,_lhsOerrors,_lhsOtks) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))) sem_HsTokens_Nil :: T_HsTokens sem_HsTokens_Nil =     (T_HsTokens (\ (!_lhsIaddLines)@@ -1006,25 +1030,27 @@                    (!_lhsIuseFieldIdent) ->                      (case (({-# LINE 64 "src-ag/Desugar.ag" #-}                              _lhsIaddLines-                             {-# LINE 1010 "dist/build/Desugar" #-}+                             {-# LINE 1034 "dist/build/Desugar" #-}                              )) of                       { !_lhsOaddLines ->                       (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                               Seq.empty-                              {-# LINE 1015 "dist/build/Desugar" #-}+                              {-# LINE 1039 "dist/build/Desugar" #-}                               )) of                        { !_lhsOerrors ->                        (case (({-# LINE 70 "src-ag/Desugar.ag" #-}                                []-                               {-# LINE 1020 "dist/build/Desugar" #-}+                               {-# LINE 1044 "dist/build/Desugar" #-}                                )) of                         { !_tks ->                         (case (({-# LINE 70 "src-ag/Desugar.ag" #-}                                 _tks-                                {-# LINE 1025 "dist/build/Desugar" #-}+                                {-# LINE 1049 "dist/build/Desugar" #-}                                 )) of                          { !_lhsOtks ->-                         ( _lhsOaddLines,_lhsOerrors,_lhsOtks) }) }) }) })))+                         (case ((Syn_HsTokens _lhsOaddLines _lhsOerrors _lhsOtks)) of+                          { ___node ->+                          ( _lhsOaddLines,_lhsOerrors,_lhsOtks) }) }) }) }) }))) -- HsTokensRoot ------------------------------------------------ {-    visit 0:@@ -1074,52 +1100,54 @@                        (!_lhsIuseFieldIdent) ->                          (case (({-# LINE 152 "src-ag/Desugar.ag" #-}                                  _lhsInt-                                 {-# LINE 1078 "dist/build/Desugar" #-}+                                 {-# LINE 1104 "dist/build/Desugar" #-}                                  )) of                           { !_tokensOnt ->                           (case (({-# LINE 153 "src-ag/Desugar.ag" #-}                                   _lhsIcon-                                  {-# LINE 1083 "dist/build/Desugar" #-}+                                  {-# LINE 1109 "dist/build/Desugar" #-}                                   )) of                            { !_tokensOcon ->                            (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                    _lhsIchildSyns-                                   {-# LINE 1088 "dist/build/Desugar" #-}+                                   {-# LINE 1114 "dist/build/Desugar" #-}                                    )) of                             { !_tokensOchildSyns ->                             (case (({-# LINE 62 "src-ag/Desugar.ag" #-}                                     _lhsIuseFieldIdent-                                    {-# LINE 1093 "dist/build/Desugar" #-}+                                    {-# LINE 1119 "dist/build/Desugar" #-}                                     )) of                              { !_tokensOuseFieldIdent ->                              (case (({-# LINE 168 "src-ag/Desugar.ag" #-}                                      _lhsIruleDescr-                                     {-# LINE 1098 "dist/build/Desugar" #-}+                                     {-# LINE 1124 "dist/build/Desugar" #-}                                      )) of                               { !_tokensOruleDescr ->                               (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                       _lhsIchildInhs-                                      {-# LINE 1103 "dist/build/Desugar" #-}+                                      {-# LINE 1129 "dist/build/Desugar" #-}                                       )) of                                { !_tokensOchildInhs ->                                (case (({-# LINE 67 "src-ag/Desugar.ag" #-}                                        0-                                       {-# LINE 1108 "dist/build/Desugar" #-}+                                       {-# LINE 1134 "dist/build/Desugar" #-}                                        )) of                                 { !_tokensOaddLines ->                                 (case (tokens_ _tokensOaddLines _tokensOchildInhs _tokensOchildSyns _tokensOcon _tokensOnt _tokensOruleDescr _tokensOuseFieldIdent) of                                  { ( !_tokensIaddLines,!_tokensIerrors,!_tokensItks) ->                                      (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                                              _tokensIerrors-                                             {-# LINE 1115 "dist/build/Desugar" #-}+                                             {-# LINE 1141 "dist/build/Desugar" #-}                                              )) of                                       { !_lhsOerrors ->                                       (case (({-# LINE 69 "src-ag/Desugar.ag" #-}                                               _tokensItks-                                              {-# LINE 1120 "dist/build/Desugar" #-}+                                              {-# LINE 1146 "dist/build/Desugar" #-}                                               )) of                                        { !_lhsOtks ->-                                       ( _lhsOerrors,_lhsOtks) }) }) }) }) }) }) }) }) }) })))+                                       (case ((Syn_HsTokensRoot _lhsOerrors _lhsOtks)) of+                                        { ___node ->+                                        ( _lhsOerrors,_lhsOtks) }) }) }) }) }) }) }) }) }) }) }))) -- Nonterminal ------------------------------------------------- {-    visit 0:@@ -1183,12 +1211,12 @@ sem_Nonterminal_Nonterminal !nt_ !params_ !inh_ !syn_ !(T_Productions prods_) =     (T_Nonterminal (case (({-# LINE 7 "src-ag/DistChildAttr.ag" #-}                            Map.singleton nt_ inh_-                           {-# LINE 1187 "dist/build/Desugar" #-}+                           {-# LINE 1215 "dist/build/Desugar" #-}                            )) of                     { !_lhsOinhMap' ->                     (case (({-# LINE 8 "src-ag/DistChildAttr.ag" #-}                             Map.singleton nt_ syn_-                            {-# LINE 1192 "dist/build/Desugar" #-}+                            {-# LINE 1220 "dist/build/Desugar" #-}                             )) of                      { !_lhsOsynMap' ->                      (case ((let sem_Nonterminal_Nonterminal_1 :: T_Nonterminal_1@@ -1201,69 +1229,69 @@                                                          (!_lhsIsynMap) ->                                                            (case (({-# LINE 157 "src-ag/Desugar.ag" #-}                                                                    nt_-                                                                   {-# LINE 1205 "dist/build/Desugar" #-}+                                                                   {-# LINE 1233 "dist/build/Desugar" #-}                                                                    )) of                                                             { !_prodsOnt ->                                                             (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                                                     _lhsIsynMap-                                                                    {-# LINE 1210 "dist/build/Desugar" #-}+                                                                    {-# LINE 1238 "dist/build/Desugar" #-}                                                                     )) of                                                              { !_prodsOsynMap ->                                                              (case (({-# LINE 36 "src-ag/Desugar.ag" #-}                                                                      _lhsIoptions-                                                                     {-# LINE 1215 "dist/build/Desugar" #-}+                                                                     {-# LINE 1243 "dist/build/Desugar" #-}                                                                      )) of                                                               { !_prodsOoptions ->                                                               (case (({-# LINE 289 "src-ag/Desugar.ag" #-}                                                                       _lhsImainName-                                                                      {-# LINE 1220 "dist/build/Desugar" #-}+                                                                      {-# LINE 1248 "dist/build/Desugar" #-}                                                                       )) of                                                                { !_prodsOmainName ->                                                                (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                                                        _lhsIinhMap-                                                                       {-# LINE 1225 "dist/build/Desugar" #-}+                                                                       {-# LINE 1253 "dist/build/Desugar" #-}                                                                        )) of                                                                 { !_prodsOinhMap ->                                                                 (case (({-# LINE 215 "src-ag/Desugar.ag" #-}                                                                         _lhsIforcedIrrefutables-                                                                        {-# LINE 1230 "dist/build/Desugar" #-}+                                                                        {-# LINE 1258 "dist/build/Desugar" #-}                                                                         )) of                                                                  { !_prodsOforcedIrrefutables ->                                                                  (case (({-# LINE 239 "src-ag/Desugar.ag" #-}                                                                          Map.findWithDefault Map.empty nt_ _lhsIaugmentsIn-                                                                         {-# LINE 1235 "dist/build/Desugar" #-}+                                                                         {-# LINE 1263 "dist/build/Desugar" #-}                                                                          )) of                                                                   { !_augmentsIn ->                                                                   (case (({-# LINE 230 "src-ag/Desugar.ag" #-}                                                                           _augmentsIn-                                                                          {-# LINE 1240 "dist/build/Desugar" #-}+                                                                          {-# LINE 1268 "dist/build/Desugar" #-}                                                                           )) of                                                                    { !_prodsOaugmentsIn ->                                                                    (case (prods_ _prodsOaugmentsIn _prodsOforcedIrrefutables _prodsOinhMap _prodsOmainName _prodsOnt _prodsOoptions _prodsOsynMap) of                                                                     { ( !_prodsIallAttributes,!_prodsIaugmentsOut,!_prodsIerrors,!_prodsIoutput) ->                                                                         (case (({-# LINE 196 "src-ag/Desugar.ag" #-}                                                                                 _prodsIallAttributes-                                                                                {-# LINE 1247 "dist/build/Desugar" #-}+                                                                                {-# LINE 1275 "dist/build/Desugar" #-}                                                                                 )) of                                                                          { !_lhsOallAttributes ->                                                                          (case (({-# LINE 240 "src-ag/Desugar.ag" #-}                                                                                  Map.singleton nt_ _prodsIaugmentsOut-                                                                                 {-# LINE 1252 "dist/build/Desugar" #-}+                                                                                 {-# LINE 1280 "dist/build/Desugar" #-}                                                                                  )) of                                                                           { !_augmentsOut ->                                                                           (case (({-# LINE 229 "src-ag/Desugar.ag" #-}                                                                                   _augmentsOut-                                                                                  {-# LINE 1257 "dist/build/Desugar" #-}+                                                                                  {-# LINE 1285 "dist/build/Desugar" #-}                                                                                   )) of                                                                            { !_lhsOaugmentsOut ->                                                                            (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                                                                                    _prodsIerrors-                                                                                   {-# LINE 1262 "dist/build/Desugar" #-}+                                                                                   {-# LINE 1290 "dist/build/Desugar" #-}                                                                                    )) of                                                                             { !_lhsOerrors ->                                                                             (case (({-# LINE 292 "src-ag/Desugar.ag" #-}                                                                                     addLateAttr _lhsIoptions _lhsImainName-                                                                                    {-# LINE 1267 "dist/build/Desugar" #-}+                                                                                    {-# LINE 1295 "dist/build/Desugar" #-}                                                                                     )) of                                                                              { !_extraInh ->                                                                              (case (({-# LINE 308 "src-ag/Desugar.ag" #-}@@ -1272,7 +1300,7 @@                                                                                        (_extraInh     `Map.union` inh_)                                                                                        syn_                                                                                        _prodsIoutput-                                                                                     {-# LINE 1276 "dist/build/Desugar" #-}+                                                                                     {-# LINE 1304 "dist/build/Desugar" #-}                                                                                      )) of                                                                               { !_lhsOoutput ->                                                                               ( _lhsOallAttributes,_lhsOaugmentsOut,_lhsOerrors,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))@@ -1341,12 +1369,12 @@                           { ( !_hdIinhMap',!_hdIsynMap',!T_Nonterminal_1 hd_1) ->                               (case (({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                       _hdIinhMap' `Map.union` _tlIinhMap'-                                      {-# LINE 1345 "dist/build/Desugar" #-}+                                      {-# LINE 1373 "dist/build/Desugar" #-}                                       )) of                                { !_lhsOinhMap' ->                                (case (({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                        _hdIsynMap' `Map.union` _tlIsynMap'-                                       {-# LINE 1350 "dist/build/Desugar" #-}+                                       {-# LINE 1378 "dist/build/Desugar" #-}                                        )) of                                 { !_lhsOsynMap' ->                                 (case ((let sem_Nonterminals_Cons_1 :: T_Nonterminals_1@@ -1359,91 +1387,91 @@                                                                      (!_lhsIsynMap) ->                                                                        (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                                                                _lhsIsynMap-                                                                               {-# LINE 1363 "dist/build/Desugar" #-}+                                                                               {-# LINE 1391 "dist/build/Desugar" #-}                                                                                )) of                                                                         { !_tlOsynMap ->                                                                         (case (({-# LINE 36 "src-ag/Desugar.ag" #-}                                                                                 _lhsIoptions-                                                                                {-# LINE 1368 "dist/build/Desugar" #-}+                                                                                {-# LINE 1396 "dist/build/Desugar" #-}                                                                                 )) of                                                                          { !_tlOoptions ->                                                                          (case (({-# LINE 289 "src-ag/Desugar.ag" #-}                                                                                  _lhsImainName-                                                                                 {-# LINE 1373 "dist/build/Desugar" #-}+                                                                                 {-# LINE 1401 "dist/build/Desugar" #-}                                                                                  )) of                                                                           { !_tlOmainName ->                                                                           (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                                                                   _lhsIinhMap-                                                                                  {-# LINE 1378 "dist/build/Desugar" #-}+                                                                                  {-# LINE 1406 "dist/build/Desugar" #-}                                                                                   )) of                                                                            { !_tlOinhMap ->                                                                            (case (({-# LINE 215 "src-ag/Desugar.ag" #-}                                                                                    _lhsIforcedIrrefutables-                                                                                   {-# LINE 1383 "dist/build/Desugar" #-}+                                                                                   {-# LINE 1411 "dist/build/Desugar" #-}                                                                                    )) of                                                                             { !_tlOforcedIrrefutables ->                                                                             (case (({-# LINE 228 "src-ag/Desugar.ag" #-}                                                                                     _lhsIaugmentsIn-                                                                                    {-# LINE 1388 "dist/build/Desugar" #-}+                                                                                    {-# LINE 1416 "dist/build/Desugar" #-}                                                                                     )) of                                                                              { !_tlOaugmentsIn ->                                                                              (case (tl_1 _tlOaugmentsIn _tlOforcedIrrefutables _tlOinhMap _tlOmainName _tlOoptions _tlOsynMap) of                                                                               { ( !_tlIallAttributes,!_tlIaugmentsOut,!_tlIerrors,!_tlIoutput) ->                                                                                   (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                                                                           _lhsIsynMap-                                                                                          {-# LINE 1395 "dist/build/Desugar" #-}+                                                                                          {-# LINE 1423 "dist/build/Desugar" #-}                                                                                           )) of                                                                                    { !_hdOsynMap ->                                                                                    (case (({-# LINE 36 "src-ag/Desugar.ag" #-}                                                                                            _lhsIoptions-                                                                                           {-# LINE 1400 "dist/build/Desugar" #-}+                                                                                           {-# LINE 1428 "dist/build/Desugar" #-}                                                                                            )) of                                                                                     { !_hdOoptions ->                                                                                     (case (({-# LINE 289 "src-ag/Desugar.ag" #-}                                                                                             _lhsImainName-                                                                                            {-# LINE 1405 "dist/build/Desugar" #-}+                                                                                            {-# LINE 1433 "dist/build/Desugar" #-}                                                                                             )) of                                                                                      { !_hdOmainName ->                                                                                      (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                                                                              _lhsIinhMap-                                                                                             {-# LINE 1410 "dist/build/Desugar" #-}+                                                                                             {-# LINE 1438 "dist/build/Desugar" #-}                                                                                              )) of                                                                                       { !_hdOinhMap ->                                                                                       (case (({-# LINE 215 "src-ag/Desugar.ag" #-}                                                                                               _lhsIforcedIrrefutables-                                                                                              {-# LINE 1415 "dist/build/Desugar" #-}+                                                                                              {-# LINE 1443 "dist/build/Desugar" #-}                                                                                               )) of                                                                                        { !_hdOforcedIrrefutables ->                                                                                        (case (({-# LINE 228 "src-ag/Desugar.ag" #-}                                                                                                _lhsIaugmentsIn-                                                                                               {-# LINE 1420 "dist/build/Desugar" #-}+                                                                                               {-# LINE 1448 "dist/build/Desugar" #-}                                                                                                )) of                                                                                         { !_hdOaugmentsIn ->                                                                                         (case (hd_1 _hdOaugmentsIn _hdOforcedIrrefutables _hdOinhMap _hdOmainName _hdOoptions _hdOsynMap) of                                                                                          { ( !_hdIallAttributes,!_hdIaugmentsOut,!_hdIerrors,!_hdIoutput) ->                                                                                              (case (({-# LINE 196 "src-ag/Desugar.ag" #-}                                                                                                      _hdIallAttributes `mergeAttributes` _tlIallAttributes-                                                                                                     {-# LINE 1427 "dist/build/Desugar" #-}+                                                                                                     {-# LINE 1455 "dist/build/Desugar" #-}                                                                                                      )) of                                                                                               { !_lhsOallAttributes ->                                                                                               (case (({-# LINE 229 "src-ag/Desugar.ag" #-}                                                                                                       _hdIaugmentsOut `Map.union` _tlIaugmentsOut-                                                                                                      {-# LINE 1432 "dist/build/Desugar" #-}+                                                                                                      {-# LINE 1460 "dist/build/Desugar" #-}                                                                                                       )) of                                                                                                { !_lhsOaugmentsOut ->                                                                                                (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                                                                                                        _hdIerrors Seq.>< _tlIerrors-                                                                                                       {-# LINE 1437 "dist/build/Desugar" #-}+                                                                                                       {-# LINE 1465 "dist/build/Desugar" #-}                                                                                                        )) of                                                                                                 { !_lhsOerrors ->                                                                                                 (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                                                         (:) _hdIoutput _tlIoutput-                                                                                                        {-# LINE 1442 "dist/build/Desugar" #-}+                                                                                                        {-# LINE 1470 "dist/build/Desugar" #-}                                                                                                         )) of                                                                                                  { !_output ->                                                                                                  (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                                                          _output-                                                                                                         {-# LINE 1447 "dist/build/Desugar" #-}+                                                                                                         {-# LINE 1475 "dist/build/Desugar" #-}                                                                                                          )) of                                                                                                   { !_lhsOoutput ->                                                                                                   ( _lhsOallAttributes,_lhsOaugmentsOut,_lhsOerrors,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))@@ -1454,12 +1482,12 @@ sem_Nonterminals_Nil =     (T_Nonterminals (case (({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                             Map.empty-                            {-# LINE 1458 "dist/build/Desugar" #-}+                            {-# LINE 1486 "dist/build/Desugar" #-}                             )) of                      { !_lhsOinhMap' ->                      (case (({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                              Map.empty-                             {-# LINE 1463 "dist/build/Desugar" #-}+                             {-# LINE 1491 "dist/build/Desugar" #-}                              )) of                       { !_lhsOsynMap' ->                       (case ((let sem_Nonterminals_Nil_1 :: T_Nonterminals_1@@ -1472,27 +1500,27 @@                                                            (!_lhsIsynMap) ->                                                              (case (({-# LINE 196 "src-ag/Desugar.ag" #-}                                                                      Map.empty-                                                                     {-# LINE 1476 "dist/build/Desugar" #-}+                                                                     {-# LINE 1504 "dist/build/Desugar" #-}                                                                      )) of                                                               { !_lhsOallAttributes ->                                                               (case (({-# LINE 229 "src-ag/Desugar.ag" #-}                                                                       Map.empty-                                                                      {-# LINE 1481 "dist/build/Desugar" #-}+                                                                      {-# LINE 1509 "dist/build/Desugar" #-}                                                                       )) of                                                                { !_lhsOaugmentsOut ->                                                                (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                                                                        Seq.empty-                                                                       {-# LINE 1486 "dist/build/Desugar" #-}+                                                                       {-# LINE 1514 "dist/build/Desugar" #-}                                                                        )) of                                                                 { !_lhsOerrors ->                                                                 (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                         []-                                                                        {-# LINE 1491 "dist/build/Desugar" #-}+                                                                        {-# LINE 1519 "dist/build/Desugar" #-}                                                                         )) of                                                                  { !_output ->                                                                  (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                          _output-                                                                         {-# LINE 1496 "dist/build/Desugar" #-}+                                                                         {-# LINE 1524 "dist/build/Desugar" #-}                                                                          )) of                                                                   { !_lhsOoutput ->                                                                   ( _lhsOallAttributes,_lhsOaugmentsOut,_lhsOerrors,_lhsOoutput) }) }) }) }) })))@@ -1592,14 +1620,14 @@ sem_Pattern_Alias !field_ !attr_ !(T_Pattern pat_) =     (T_Pattern (case (({-# LINE 182 "src-ag/Desugar.ag" #-}                        Set.singleton (field_, attr_)-                       {-# LINE 1596 "dist/build/Desugar" #-}+                       {-# LINE 1624 "dist/build/Desugar" #-}                        )) of                 { !_def ->                 (case (pat_) of                  { ( !_patIdefsCollect,!T_Pattern_1 pat_1) ->                      (case (({-# LINE 183 "src-ag/Desugar.ag" #-}                              _def     `Set.union` _patIdefsCollect-                             {-# LINE 1603 "dist/build/Desugar" #-}+                             {-# LINE 1631 "dist/build/Desugar" #-}                              )) of                       { !_lhsOdefsCollect ->                       (case ((let sem_Pattern_Alias_1 :: T_Pattern_1@@ -1612,60 +1640,60 @@                                                       (!_lhsInt) ->                                                         (case (({-# LINE 152 "src-ag/Desugar.ag" #-}                                                                 _lhsInt-                                                                {-# LINE 1616 "dist/build/Desugar" #-}+                                                                {-# LINE 1644 "dist/build/Desugar" #-}                                                                 )) of                                                          { !_patOnt ->                                                          (case (({-# LINE 153 "src-ag/Desugar.ag" #-}                                                                  _lhsIcon-                                                                 {-# LINE 1621 "dist/build/Desugar" #-}+                                                                 {-# LINE 1649 "dist/build/Desugar" #-}                                                                  )) of                                                           { !_patOcon ->                                                           (case (({-# LINE 215 "src-ag/Desugar.ag" #-}                                                                   _lhsIforcedIrrefutables-                                                                  {-# LINE 1626 "dist/build/Desugar" #-}+                                                                  {-# LINE 1654 "dist/build/Desugar" #-}                                                                   )) of                                                            { !_patOforcedIrrefutables ->                                                            (case (({-# LINE 185 "src-ag/Desugar.ag" #-}                                                                    _lhsIdefs-                                                                   {-# LINE 1631 "dist/build/Desugar" #-}+                                                                   {-# LINE 1659 "dist/build/Desugar" #-}                                                                    )) of                                                             { !_patOdefs ->                                                             (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                     _lhsIchildSyns-                                                                    {-# LINE 1636 "dist/build/Desugar" #-}+                                                                    {-# LINE 1664 "dist/build/Desugar" #-}                                                                     )) of                                                              { !_patOchildSyns ->                                                              (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                      _lhsIchildInhs-                                                                     {-# LINE 1641 "dist/build/Desugar" #-}+                                                                     {-# LINE 1669 "dist/build/Desugar" #-}                                                                      )) of                                                               { !_patOchildInhs ->                                                               (case (pat_1 _patOchildInhs _patOchildSyns _patOcon _patOdefs _patOforcedIrrefutables _patOnt) of                                                                { ( !_patIallAttributes,!_patIcopy,!_patIerrors,!_patIoutput) ->                                                                    (case (({-# LINE 200 "src-ag/Desugar.ag" #-}                                                                            (Map.singleton _lhsInt $ Map.singleton _lhsIcon $ Set.singleton (field_, attr_)) `mergeAttributes` _patIallAttributes-                                                                           {-# LINE 1648 "dist/build/Desugar" #-}+                                                                           {-# LINE 1676 "dist/build/Desugar" #-}                                                                            )) of                                                                     { !_lhsOallAttributes ->                                                                     (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                                                             Alias field_ attr_ _patIcopy-                                                                            {-# LINE 1653 "dist/build/Desugar" #-}+                                                                            {-# LINE 1681 "dist/build/Desugar" #-}                                                                             )) of                                                                      { !_copy ->                                                                      (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                                                              _copy-                                                                             {-# LINE 1658 "dist/build/Desugar" #-}+                                                                             {-# LINE 1686 "dist/build/Desugar" #-}                                                                              )) of                                                                       { !_lhsOcopy ->                                                                       (case (({-# LINE 110 "src-ag/Desugar.ag" #-}                                                                               maybeError field_ (UndefAttr _lhsInt _lhsIcon (Ident "<ANY>" (getPos field_)) attr_ True) $                                                                                 findField field_ attr_ _lhsIchildInhs-                                                                              {-# LINE 1664 "dist/build/Desugar" #-}+                                                                              {-# LINE 1692 "dist/build/Desugar" #-}                                                                               )) of                                                                        { !__tup2 ->                                                                        (case (({-# LINE 110 "src-ag/Desugar.ag" #-}                                                                                __tup2-                                                                               {-# LINE 1669 "dist/build/Desugar" #-}+                                                                               {-# LINE 1697 "dist/build/Desugar" #-}                                                                                )) of                                                                         { !(!_field',_) ->                                                                         (case (({-# LINE 112 "src-ag/Desugar.ag" #-}@@ -1674,29 +1702,29 @@                                                                                 else if (_field'    , attr_) `Set.member` _lhsIdefs                                                                                      then Seq.singleton $ DupRule _lhsInt _lhsIcon field_ attr_ _field'                                                                                      else Seq.empty-                                                                                {-# LINE 1678 "dist/build/Desugar" #-}+                                                                                {-# LINE 1706 "dist/build/Desugar" #-}                                                                                 )) of                                                                          { !_err2 ->                                                                          (case (({-# LINE 110 "src-ag/Desugar.ag" #-}                                                                                  __tup2-                                                                                 {-# LINE 1683 "dist/build/Desugar" #-}+                                                                                 {-# LINE 1711 "dist/build/Desugar" #-}                                                                                  )) of                                                                           { !(_,!_err1) ->                                                                           (case (({-# LINE 117 "src-ag/Desugar.ag" #-}                                                                                   _err1     Seq.>< _err2     Seq.>< _patIerrors-                                                                                  {-# LINE 1688 "dist/build/Desugar" #-}+                                                                                  {-# LINE 1716 "dist/build/Desugar" #-}                                                                                   )) of                                                                            { !_lhsOerrors ->                                                                            (case (({-# LINE 118 "src-ag/Desugar.ag" #-}                                                                                    Alias _field'     attr_ _patIoutput-                                                                                   {-# LINE 1693 "dist/build/Desugar" #-}+                                                                                   {-# LINE 1721 "dist/build/Desugar" #-}                                                                                    )) of                                                                             { !_output ->                                                                             (case (({-# LINE 219 "src-ag/Desugar.ag" #-}                                                                                     if Set.member (field_, attr_) $ Map.findWithDefault Set.empty _lhsIcon $ Map.findWithDefault Map.empty _lhsInt $ _lhsIforcedIrrefutables                                                                                     then Irrefutable _output                                                                                     else _output-                                                                                    {-# LINE 1700 "dist/build/Desugar" #-}+                                                                                    {-# LINE 1728 "dist/build/Desugar" #-}                                                                                     )) of                                                                              { !_lhsOoutput ->                                                                              ( _lhsOallAttributes,_lhsOcopy,_lhsOerrors,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))@@ -1711,7 +1739,7 @@                 { ( !_patsIdefsCollect,!T_Patterns_1 pats_1) ->                     (case (({-# LINE 179 "src-ag/Desugar.ag" #-}                             _patsIdefsCollect-                            {-# LINE 1715 "dist/build/Desugar" #-}+                            {-# LINE 1743 "dist/build/Desugar" #-}                             )) of                      { !_lhsOdefsCollect ->                      (case ((let sem_Pattern_Constr_1 :: T_Pattern_1@@ -1724,64 +1752,64 @@                                                      (!_lhsInt) ->                                                        (case (({-# LINE 152 "src-ag/Desugar.ag" #-}                                                                _lhsInt-                                                               {-# LINE 1728 "dist/build/Desugar" #-}+                                                               {-# LINE 1756 "dist/build/Desugar" #-}                                                                )) of                                                         { !_patsOnt ->                                                         (case (({-# LINE 153 "src-ag/Desugar.ag" #-}                                                                 _lhsIcon-                                                                {-# LINE 1733 "dist/build/Desugar" #-}+                                                                {-# LINE 1761 "dist/build/Desugar" #-}                                                                 )) of                                                          { !_patsOcon ->                                                          (case (({-# LINE 215 "src-ag/Desugar.ag" #-}                                                                  _lhsIforcedIrrefutables-                                                                 {-# LINE 1738 "dist/build/Desugar" #-}+                                                                 {-# LINE 1766 "dist/build/Desugar" #-}                                                                  )) of                                                           { !_patsOforcedIrrefutables ->                                                           (case (({-# LINE 185 "src-ag/Desugar.ag" #-}                                                                   _lhsIdefs-                                                                  {-# LINE 1743 "dist/build/Desugar" #-}+                                                                  {-# LINE 1771 "dist/build/Desugar" #-}                                                                   )) of                                                            { !_patsOdefs ->                                                            (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                    _lhsIchildSyns-                                                                   {-# LINE 1748 "dist/build/Desugar" #-}+                                                                   {-# LINE 1776 "dist/build/Desugar" #-}                                                                    )) of                                                             { !_patsOchildSyns ->                                                             (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                     _lhsIchildInhs-                                                                    {-# LINE 1753 "dist/build/Desugar" #-}+                                                                    {-# LINE 1781 "dist/build/Desugar" #-}                                                                     )) of                                                              { !_patsOchildInhs ->                                                              (case (pats_1 _patsOchildInhs _patsOchildSyns _patsOcon _patsOdefs _patsOforcedIrrefutables _patsOnt) of                                                               { ( !_patsIallAttributes,!_patsIcopy,!_patsIerrors,!_patsIoutput) ->                                                                   (case (({-# LINE 196 "src-ag/Desugar.ag" #-}                                                                           _patsIallAttributes-                                                                          {-# LINE 1760 "dist/build/Desugar" #-}+                                                                          {-# LINE 1788 "dist/build/Desugar" #-}                                                                           )) of                                                                    { !_lhsOallAttributes ->                                                                    (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                                                            Constr name_ _patsIcopy-                                                                           {-# LINE 1765 "dist/build/Desugar" #-}+                                                                           {-# LINE 1793 "dist/build/Desugar" #-}                                                                            )) of                                                                     { !_copy ->                                                                     (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                                                             _copy-                                                                            {-# LINE 1770 "dist/build/Desugar" #-}+                                                                            {-# LINE 1798 "dist/build/Desugar" #-}                                                                             )) of                                                                      { !_lhsOcopy ->                                                                      (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                                                                              _patsIerrors-                                                                             {-# LINE 1775 "dist/build/Desugar" #-}+                                                                             {-# LINE 1803 "dist/build/Desugar" #-}                                                                              )) of                                                                       { !_lhsOerrors ->                                                                       (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                               Constr name_ _patsIoutput-                                                                              {-# LINE 1780 "dist/build/Desugar" #-}+                                                                              {-# LINE 1808 "dist/build/Desugar" #-}                                                                               )) of                                                                        { !_output ->                                                                        (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                                _output-                                                                               {-# LINE 1785 "dist/build/Desugar" #-}+                                                                               {-# LINE 1813 "dist/build/Desugar" #-}                                                                                )) of                                                                         { !_lhsOoutput ->                                                                         ( _lhsOallAttributes,_lhsOcopy,_lhsOerrors,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) })))@@ -1795,7 +1823,7 @@                 { ( !_patIdefsCollect,!T_Pattern_1 pat_1) ->                     (case (({-# LINE 179 "src-ag/Desugar.ag" #-}                             _patIdefsCollect-                            {-# LINE 1799 "dist/build/Desugar" #-}+                            {-# LINE 1827 "dist/build/Desugar" #-}                             )) of                      { !_lhsOdefsCollect ->                      (case ((let sem_Pattern_Irrefutable_1 :: T_Pattern_1@@ -1808,64 +1836,64 @@                                                      (!_lhsInt) ->                                                        (case (({-# LINE 202 "src-ag/Desugar.ag" #-}                                                                Map.empty-                                                               {-# LINE 1812 "dist/build/Desugar" #-}+                                                               {-# LINE 1840 "dist/build/Desugar" #-}                                                                )) of                                                         { !_lhsOallAttributes ->                                                         (case (({-# LINE 152 "src-ag/Desugar.ag" #-}                                                                 _lhsInt-                                                                {-# LINE 1817 "dist/build/Desugar" #-}+                                                                {-# LINE 1845 "dist/build/Desugar" #-}                                                                 )) of                                                          { !_patOnt ->                                                          (case (({-# LINE 215 "src-ag/Desugar.ag" #-}                                                                  _lhsIforcedIrrefutables-                                                                 {-# LINE 1822 "dist/build/Desugar" #-}+                                                                 {-# LINE 1850 "dist/build/Desugar" #-}                                                                  )) of                                                           { !_patOforcedIrrefutables ->                                                           (case (({-# LINE 185 "src-ag/Desugar.ag" #-}                                                                   _lhsIdefs-                                                                  {-# LINE 1827 "dist/build/Desugar" #-}+                                                                  {-# LINE 1855 "dist/build/Desugar" #-}                                                                   )) of                                                            { !_patOdefs ->                                                            (case (({-# LINE 153 "src-ag/Desugar.ag" #-}                                                                    _lhsIcon-                                                                   {-# LINE 1832 "dist/build/Desugar" #-}+                                                                   {-# LINE 1860 "dist/build/Desugar" #-}                                                                    )) of                                                             { !_patOcon ->                                                             (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                     _lhsIchildSyns-                                                                    {-# LINE 1837 "dist/build/Desugar" #-}+                                                                    {-# LINE 1865 "dist/build/Desugar" #-}                                                                     )) of                                                              { !_patOchildSyns ->                                                              (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                      _lhsIchildInhs-                                                                     {-# LINE 1842 "dist/build/Desugar" #-}+                                                                     {-# LINE 1870 "dist/build/Desugar" #-}                                                                      )) of                                                               { !_patOchildInhs ->                                                               (case (pat_1 _patOchildInhs _patOchildSyns _patOcon _patOdefs _patOforcedIrrefutables _patOnt) of                                                                { ( !_patIallAttributes,!_patIcopy,!_patIerrors,!_patIoutput) ->                                                                    (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                                                            Irrefutable _patIcopy-                                                                           {-# LINE 1849 "dist/build/Desugar" #-}+                                                                           {-# LINE 1877 "dist/build/Desugar" #-}                                                                            )) of                                                                     { !_copy ->                                                                     (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                                                             _copy-                                                                            {-# LINE 1854 "dist/build/Desugar" #-}+                                                                            {-# LINE 1882 "dist/build/Desugar" #-}                                                                             )) of                                                                      { !_lhsOcopy ->                                                                      (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                                                                              _patIerrors-                                                                             {-# LINE 1859 "dist/build/Desugar" #-}+                                                                             {-# LINE 1887 "dist/build/Desugar" #-}                                                                              )) of                                                                       { !_lhsOerrors ->                                                                       (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                               Irrefutable _patIoutput-                                                                              {-# LINE 1864 "dist/build/Desugar" #-}+                                                                              {-# LINE 1892 "dist/build/Desugar" #-}                                                                               )) of                                                                        { !_output ->                                                                        (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                                _output-                                                                               {-# LINE 1869 "dist/build/Desugar" #-}+                                                                               {-# LINE 1897 "dist/build/Desugar" #-}                                                                                )) of                                                                         { !_lhsOoutput ->                                                                         ( _lhsOallAttributes,_lhsOcopy,_lhsOerrors,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) })))@@ -1880,7 +1908,7 @@                 { ( !_patsIdefsCollect,!T_Patterns_1 pats_1) ->                     (case (({-# LINE 179 "src-ag/Desugar.ag" #-}                             _patsIdefsCollect-                            {-# LINE 1884 "dist/build/Desugar" #-}+                            {-# LINE 1912 "dist/build/Desugar" #-}                             )) of                      { !_lhsOdefsCollect ->                      (case ((let sem_Pattern_Product_1 :: T_Pattern_1@@ -1893,64 +1921,64 @@                                                      (!_lhsInt) ->                                                        (case (({-# LINE 152 "src-ag/Desugar.ag" #-}                                                                _lhsInt-                                                               {-# LINE 1897 "dist/build/Desugar" #-}+                                                               {-# LINE 1925 "dist/build/Desugar" #-}                                                                )) of                                                         { !_patsOnt ->                                                         (case (({-# LINE 153 "src-ag/Desugar.ag" #-}                                                                 _lhsIcon-                                                                {-# LINE 1902 "dist/build/Desugar" #-}+                                                                {-# LINE 1930 "dist/build/Desugar" #-}                                                                 )) of                                                          { !_patsOcon ->                                                          (case (({-# LINE 215 "src-ag/Desugar.ag" #-}                                                                  _lhsIforcedIrrefutables-                                                                 {-# LINE 1907 "dist/build/Desugar" #-}+                                                                 {-# LINE 1935 "dist/build/Desugar" #-}                                                                  )) of                                                           { !_patsOforcedIrrefutables ->                                                           (case (({-# LINE 185 "src-ag/Desugar.ag" #-}                                                                   _lhsIdefs-                                                                  {-# LINE 1912 "dist/build/Desugar" #-}+                                                                  {-# LINE 1940 "dist/build/Desugar" #-}                                                                   )) of                                                            { !_patsOdefs ->                                                            (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                    _lhsIchildSyns-                                                                   {-# LINE 1917 "dist/build/Desugar" #-}+                                                                   {-# LINE 1945 "dist/build/Desugar" #-}                                                                    )) of                                                             { !_patsOchildSyns ->                                                             (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                     _lhsIchildInhs-                                                                    {-# LINE 1922 "dist/build/Desugar" #-}+                                                                    {-# LINE 1950 "dist/build/Desugar" #-}                                                                     )) of                                                              { !_patsOchildInhs ->                                                              (case (pats_1 _patsOchildInhs _patsOchildSyns _patsOcon _patsOdefs _patsOforcedIrrefutables _patsOnt) of                                                               { ( !_patsIallAttributes,!_patsIcopy,!_patsIerrors,!_patsIoutput) ->                                                                   (case (({-# LINE 196 "src-ag/Desugar.ag" #-}                                                                           _patsIallAttributes-                                                                          {-# LINE 1929 "dist/build/Desugar" #-}+                                                                          {-# LINE 1957 "dist/build/Desugar" #-}                                                                           )) of                                                                    { !_lhsOallAttributes ->                                                                    (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                                                            Product pos_ _patsIcopy-                                                                           {-# LINE 1934 "dist/build/Desugar" #-}+                                                                           {-# LINE 1962 "dist/build/Desugar" #-}                                                                            )) of                                                                     { !_copy ->                                                                     (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                                                             _copy-                                                                            {-# LINE 1939 "dist/build/Desugar" #-}+                                                                            {-# LINE 1967 "dist/build/Desugar" #-}                                                                             )) of                                                                      { !_lhsOcopy ->                                                                      (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                                                                              _patsIerrors-                                                                             {-# LINE 1944 "dist/build/Desugar" #-}+                                                                             {-# LINE 1972 "dist/build/Desugar" #-}                                                                              )) of                                                                       { !_lhsOerrors ->                                                                       (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                               Product pos_ _patsIoutput-                                                                              {-# LINE 1949 "dist/build/Desugar" #-}+                                                                              {-# LINE 1977 "dist/build/Desugar" #-}                                                                               )) of                                                                        { !_output ->                                                                        (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                                _output-                                                                               {-# LINE 1954 "dist/build/Desugar" #-}+                                                                               {-# LINE 1982 "dist/build/Desugar" #-}                                                                                )) of                                                                         { !_lhsOoutput ->                                                                         ( _lhsOallAttributes,_lhsOcopy,_lhsOerrors,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) })))@@ -1962,7 +1990,7 @@ sem_Pattern_Underscore !pos_ =     (T_Pattern (case (({-# LINE 179 "src-ag/Desugar.ag" #-}                        Set.empty-                       {-# LINE 1966 "dist/build/Desugar" #-}+                       {-# LINE 1994 "dist/build/Desugar" #-}                        )) of                 { !_lhsOdefsCollect ->                 (case ((let sem_Pattern_Underscore_1 :: T_Pattern_1@@ -1975,32 +2003,32 @@                                                 (!_lhsInt) ->                                                   (case (({-# LINE 196 "src-ag/Desugar.ag" #-}                                                           Map.empty-                                                          {-# LINE 1979 "dist/build/Desugar" #-}+                                                          {-# LINE 2007 "dist/build/Desugar" #-}                                                           )) of                                                    { !_lhsOallAttributes ->                                                    (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                                            Underscore pos_-                                                           {-# LINE 1984 "dist/build/Desugar" #-}+                                                           {-# LINE 2012 "dist/build/Desugar" #-}                                                            )) of                                                     { !_copy ->                                                     (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                                             _copy-                                                            {-# LINE 1989 "dist/build/Desugar" #-}+                                                            {-# LINE 2017 "dist/build/Desugar" #-}                                                             )) of                                                      { !_lhsOcopy ->                                                      (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                                                              Seq.empty-                                                             {-# LINE 1994 "dist/build/Desugar" #-}+                                                             {-# LINE 2022 "dist/build/Desugar" #-}                                                              )) of                                                       { !_lhsOerrors ->                                                       (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                               Underscore pos_-                                                              {-# LINE 1999 "dist/build/Desugar" #-}+                                                              {-# LINE 2027 "dist/build/Desugar" #-}                                                               )) of                                                        { !_output ->                                                        (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                _output-                                                               {-# LINE 2004 "dist/build/Desugar" #-}+                                                               {-# LINE 2032 "dist/build/Desugar" #-}                                                                )) of                                                         { !_lhsOoutput ->                                                         ( _lhsOallAttributes,_lhsOcopy,_lhsOerrors,_lhsOoutput) }) }) }) }) }) })))@@ -2070,7 +2098,7 @@                       { ( !_hdIdefsCollect,!T_Pattern_1 hd_1) ->                           (case (({-# LINE 179 "src-ag/Desugar.ag" #-}                                   _hdIdefsCollect `Set.union` _tlIdefsCollect-                                  {-# LINE 2074 "dist/build/Desugar" #-}+                                  {-# LINE 2102 "dist/build/Desugar" #-}                                   )) of                            { !_lhsOdefsCollect ->                            (case ((let sem_Patterns_Cons_1 :: T_Patterns_1@@ -2083,96 +2111,96 @@                                                             (!_lhsInt) ->                                                               (case (({-# LINE 152 "src-ag/Desugar.ag" #-}                                                                       _lhsInt-                                                                      {-# LINE 2087 "dist/build/Desugar" #-}+                                                                      {-# LINE 2115 "dist/build/Desugar" #-}                                                                       )) of                                                                { !_tlOnt ->                                                                (case (({-# LINE 153 "src-ag/Desugar.ag" #-}                                                                        _lhsIcon-                                                                       {-# LINE 2092 "dist/build/Desugar" #-}+                                                                       {-# LINE 2120 "dist/build/Desugar" #-}                                                                        )) of                                                                 { !_tlOcon ->                                                                 (case (({-# LINE 152 "src-ag/Desugar.ag" #-}                                                                         _lhsInt-                                                                        {-# LINE 2097 "dist/build/Desugar" #-}+                                                                        {-# LINE 2125 "dist/build/Desugar" #-}                                                                         )) of                                                                  { !_hdOnt ->                                                                  (case (({-# LINE 153 "src-ag/Desugar.ag" #-}                                                                          _lhsIcon-                                                                         {-# LINE 2102 "dist/build/Desugar" #-}+                                                                         {-# LINE 2130 "dist/build/Desugar" #-}                                                                          )) of                                                                   { !_hdOcon ->                                                                   (case (({-# LINE 215 "src-ag/Desugar.ag" #-}                                                                           _lhsIforcedIrrefutables-                                                                          {-# LINE 2107 "dist/build/Desugar" #-}+                                                                          {-# LINE 2135 "dist/build/Desugar" #-}                                                                           )) of                                                                    { !_tlOforcedIrrefutables ->                                                                    (case (({-# LINE 185 "src-ag/Desugar.ag" #-}                                                                            _lhsIdefs-                                                                           {-# LINE 2112 "dist/build/Desugar" #-}+                                                                           {-# LINE 2140 "dist/build/Desugar" #-}                                                                            )) of                                                                     { !_tlOdefs ->                                                                     (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                             _lhsIchildSyns-                                                                            {-# LINE 2117 "dist/build/Desugar" #-}+                                                                            {-# LINE 2145 "dist/build/Desugar" #-}                                                                             )) of                                                                      { !_tlOchildSyns ->                                                                      (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                              _lhsIchildInhs-                                                                             {-# LINE 2122 "dist/build/Desugar" #-}+                                                                             {-# LINE 2150 "dist/build/Desugar" #-}                                                                              )) of                                                                       { !_tlOchildInhs ->                                                                       (case (tl_1 _tlOchildInhs _tlOchildSyns _tlOcon _tlOdefs _tlOforcedIrrefutables _tlOnt) of                                                                        { ( !_tlIallAttributes,!_tlIcopy,!_tlIerrors,!_tlIoutput) ->                                                                            (case (({-# LINE 215 "src-ag/Desugar.ag" #-}                                                                                    _lhsIforcedIrrefutables-                                                                                   {-# LINE 2129 "dist/build/Desugar" #-}+                                                                                   {-# LINE 2157 "dist/build/Desugar" #-}                                                                                    )) of                                                                             { !_hdOforcedIrrefutables ->                                                                             (case (({-# LINE 185 "src-ag/Desugar.ag" #-}                                                                                     _lhsIdefs-                                                                                    {-# LINE 2134 "dist/build/Desugar" #-}+                                                                                    {-# LINE 2162 "dist/build/Desugar" #-}                                                                                     )) of                                                                              { !_hdOdefs ->                                                                              (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                                      _lhsIchildSyns-                                                                                     {-# LINE 2139 "dist/build/Desugar" #-}+                                                                                     {-# LINE 2167 "dist/build/Desugar" #-}                                                                                      )) of                                                                               { !_hdOchildSyns ->                                                                               (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                                       _lhsIchildInhs-                                                                                      {-# LINE 2144 "dist/build/Desugar" #-}+                                                                                      {-# LINE 2172 "dist/build/Desugar" #-}                                                                                       )) of                                                                                { !_hdOchildInhs ->                                                                                (case (hd_1 _hdOchildInhs _hdOchildSyns _hdOcon _hdOdefs _hdOforcedIrrefutables _hdOnt) of                                                                                 { ( !_hdIallAttributes,!_hdIcopy,!_hdIerrors,!_hdIoutput) ->                                                                                     (case (({-# LINE 196 "src-ag/Desugar.ag" #-}                                                                                             _hdIallAttributes `mergeAttributes` _tlIallAttributes-                                                                                            {-# LINE 2151 "dist/build/Desugar" #-}+                                                                                            {-# LINE 2179 "dist/build/Desugar" #-}                                                                                             )) of                                                                                      { !_lhsOallAttributes ->                                                                                      (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                                                                              (:) _hdIcopy _tlIcopy-                                                                                             {-# LINE 2156 "dist/build/Desugar" #-}+                                                                                             {-# LINE 2184 "dist/build/Desugar" #-}                                                                                              )) of                                                                                       { !_copy ->                                                                                       (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                                                                               _copy-                                                                                              {-# LINE 2161 "dist/build/Desugar" #-}+                                                                                              {-# LINE 2189 "dist/build/Desugar" #-}                                                                                               )) of                                                                                        { !_lhsOcopy ->                                                                                        (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                                                                                                _hdIerrors Seq.>< _tlIerrors-                                                                                               {-# LINE 2166 "dist/build/Desugar" #-}+                                                                                               {-# LINE 2194 "dist/build/Desugar" #-}                                                                                                )) of                                                                                         { !_lhsOerrors ->                                                                                         (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                                                 (:) _hdIoutput _tlIoutput-                                                                                                {-# LINE 2171 "dist/build/Desugar" #-}+                                                                                                {-# LINE 2199 "dist/build/Desugar" #-}                                                                                                 )) of                                                                                          { !_output ->                                                                                          (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                                                  _output-                                                                                                 {-# LINE 2176 "dist/build/Desugar" #-}+                                                                                                 {-# LINE 2204 "dist/build/Desugar" #-}                                                                                                  )) of                                                                                           { !_lhsOoutput ->                                                                                           ( _lhsOallAttributes,_lhsOcopy,_lhsOerrors,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))@@ -2183,7 +2211,7 @@ sem_Patterns_Nil =     (T_Patterns (case (({-# LINE 179 "src-ag/Desugar.ag" #-}                         Set.empty-                        {-# LINE 2187 "dist/build/Desugar" #-}+                        {-# LINE 2215 "dist/build/Desugar" #-}                         )) of                  { !_lhsOdefsCollect ->                  (case ((let sem_Patterns_Nil_1 :: T_Patterns_1@@ -2196,32 +2224,32 @@                                                   (!_lhsInt) ->                                                     (case (({-# LINE 196 "src-ag/Desugar.ag" #-}                                                             Map.empty-                                                            {-# LINE 2200 "dist/build/Desugar" #-}+                                                            {-# LINE 2228 "dist/build/Desugar" #-}                                                             )) of                                                      { !_lhsOallAttributes ->                                                      (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                                              []-                                                             {-# LINE 2205 "dist/build/Desugar" #-}+                                                             {-# LINE 2233 "dist/build/Desugar" #-}                                                              )) of                                                       { !_copy ->                                                       (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                                               _copy-                                                              {-# LINE 2210 "dist/build/Desugar" #-}+                                                              {-# LINE 2238 "dist/build/Desugar" #-}                                                               )) of                                                        { !_lhsOcopy ->                                                        (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                                                                Seq.empty-                                                               {-# LINE 2215 "dist/build/Desugar" #-}+                                                               {-# LINE 2243 "dist/build/Desugar" #-}                                                                )) of                                                         { !_lhsOerrors ->                                                         (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                 []-                                                                {-# LINE 2220 "dist/build/Desugar" #-}+                                                                {-# LINE 2248 "dist/build/Desugar" #-}                                                                 )) of                                                          { !_output ->                                                          (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                  _output-                                                                 {-# LINE 2225 "dist/build/Desugar" #-}+                                                                 {-# LINE 2253 "dist/build/Desugar" #-}                                                                  )) of                                                           { !_lhsOoutput ->                                                           ( _lhsOallAttributes,_lhsOcopy,_lhsOerrors,_lhsOoutput) }) }) }) }) }) })))@@ -2301,118 +2329,120 @@                      (!_lhsIsynMap) ->                        (case (({-# LINE 152 "src-ag/Desugar.ag" #-}                                _lhsInt-                               {-# LINE 2305 "dist/build/Desugar" #-}+                               {-# LINE 2333 "dist/build/Desugar" #-}                                )) of                         { !_rulesOnt ->                         (case (({-# LINE 161 "src-ag/Desugar.ag" #-}                                 con_-                                {-# LINE 2310 "dist/build/Desugar" #-}+                                {-# LINE 2338 "dist/build/Desugar" #-}                                 )) of                          { !_rulesOcon ->                          (case (rules_) of                           { ( !_rulesIdefsCollect,!T_Rules_1 rules_1) ->                               (case (({-# LINE 36 "src-ag/Desugar.ag" #-}                                       _lhsIoptions-                                      {-# LINE 2317 "dist/build/Desugar" #-}+                                      {-# LINE 2345 "dist/build/Desugar" #-}                                       )) of                                { !_rulesOoptions ->                                (case (({-# LINE 215 "src-ag/Desugar.ag" #-}                                        _lhsIforcedIrrefutables-                                       {-# LINE 2322 "dist/build/Desugar" #-}+                                       {-# LINE 2350 "dist/build/Desugar" #-}                                        )) of                                 { !_rulesOforcedIrrefutables ->                                 (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                         _lhsIsynMap-                                        {-# LINE 2327 "dist/build/Desugar" #-}+                                        {-# LINE 2355 "dist/build/Desugar" #-}                                         )) of                                  { !_childrenOsynMap ->                                  (case (({-# LINE 36 "src-ag/Desugar.ag" #-}                                          _lhsIoptions-                                         {-# LINE 2332 "dist/build/Desugar" #-}+                                         {-# LINE 2360 "dist/build/Desugar" #-}                                          )) of                                   { !_childrenOoptions ->                                   (case (({-# LINE 289 "src-ag/Desugar.ag" #-}                                           _lhsImainName-                                          {-# LINE 2337 "dist/build/Desugar" #-}+                                          {-# LINE 2365 "dist/build/Desugar" #-}                                           )) of                                    { !_childrenOmainName ->                                    (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                            _lhsIinhMap-                                           {-# LINE 2342 "dist/build/Desugar" #-}+                                           {-# LINE 2370 "dist/build/Desugar" #-}                                            )) of                                     { !_childrenOinhMap ->                                     (case (children_ _childrenOinhMap _childrenOmainName _childrenOoptions _childrenOsynMap) of                                      { ( !_childrenIchildInhs,!_childrenIchildSyns,!_childrenIoutput) ->                                          (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                  _childrenIchildSyns-                                                 {-# LINE 2349 "dist/build/Desugar" #-}+                                                 {-# LINE 2377 "dist/build/Desugar" #-}                                                  )) of                                           { !_rulesOchildSyns ->                                           (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                   _childrenIchildInhs-                                                  {-# LINE 2354 "dist/build/Desugar" #-}+                                                  {-# LINE 2382 "dist/build/Desugar" #-}                                                   )) of                                            { !_rulesOchildInhs ->                                            (case (({-# LINE 188 "src-ag/Desugar.ag" #-}                                                    _rulesIdefsCollect-                                                   {-# LINE 2359 "dist/build/Desugar" #-}+                                                   {-# LINE 2387 "dist/build/Desugar" #-}                                                    )) of                                             { !_rulesOdefs ->                                             (case (rules_1 _rulesOchildInhs _rulesOchildSyns _rulesOcon _rulesOdefs _rulesOforcedIrrefutables _rulesOnt _rulesOoptions) of                                              { ( !_rulesIallAttributes,!_rulesIerrors,!_rulesIoutput) ->                                                  (case (({-# LINE 196 "src-ag/Desugar.ag" #-}                                                          _rulesIallAttributes-                                                         {-# LINE 2366 "dist/build/Desugar" #-}+                                                         {-# LINE 2394 "dist/build/Desugar" #-}                                                          )) of                                                   { !_lhsOallAttributes ->                                                   (case (({-# LINE 244 "src-ag/Desugar.ag" #-}                                                           Map.findWithDefault Map.empty con_ _lhsIaugmentsIn-                                                          {-# LINE 2371 "dist/build/Desugar" #-}+                                                          {-# LINE 2399 "dist/build/Desugar" #-}                                                           )) of                                                    { !_augmentsIn ->                                                    (case (({-# LINE 247 "src-ag/Desugar.ag" #-}                                                            Map.mapAccum (desugarExprs _lhsIoptions _lhsInt con_ _childrenIchildInhs _childrenIchildSyns) Seq.empty _augmentsIn-                                                           {-# LINE 2376 "dist/build/Desugar" #-}+                                                           {-# LINE 2404 "dist/build/Desugar" #-}                                                            )) of                                                     { !__tup3 ->                                                     (case (({-# LINE 247 "src-ag/Desugar.ag" #-}                                                             __tup3-                                                            {-# LINE 2381 "dist/build/Desugar" #-}+                                                            {-# LINE 2409 "dist/build/Desugar" #-}                                                             )) of                                                      { !(_,!_augmentsOut1) ->                                                      (case (({-# LINE 245 "src-ag/Desugar.ag" #-}                                                              Map.singleton con_ _augmentsOut1-                                                             {-# LINE 2386 "dist/build/Desugar" #-}+                                                             {-# LINE 2414 "dist/build/Desugar" #-}                                                              )) of                                                       { !_augmentsOut ->                                                       (case (({-# LINE 231 "src-ag/Desugar.ag" #-}                                                               _augmentsOut-                                                              {-# LINE 2391 "dist/build/Desugar" #-}+                                                              {-# LINE 2419 "dist/build/Desugar" #-}                                                               )) of                                                        { !_lhsOaugmentsOut ->                                                        (case (({-# LINE 247 "src-ag/Desugar.ag" #-}                                                                __tup3-                                                               {-# LINE 2396 "dist/build/Desugar" #-}+                                                               {-# LINE 2424 "dist/build/Desugar" #-}                                                                )) of                                                         { !(!_augmentErrs,_) ->                                                         (case (({-# LINE 283 "src-ag/Desugar.ag" #-}                                                                 _rulesIerrors Seq.>< _augmentErrs-                                                                {-# LINE 2401 "dist/build/Desugar" #-}+                                                                {-# LINE 2429 "dist/build/Desugar" #-}                                                                 )) of                                                          { !_lhsOerrors ->                                                          (case (typeSigs_) of                                                           { ( !_typeSigsIoutput) ->                                                               (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                       Production con_ params_ constraints_ _childrenIoutput _rulesIoutput _typeSigsIoutput macro_-                                                                      {-# LINE 2408 "dist/build/Desugar" #-}+                                                                      {-# LINE 2436 "dist/build/Desugar" #-}                                                                       )) of                                                                { !_output ->                                                                (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                        _output-                                                                       {-# LINE 2413 "dist/build/Desugar" #-}+                                                                       {-# LINE 2441 "dist/build/Desugar" #-}                                                                        )) of                                                                 { !_lhsOoutput ->-                                                                ( _lhsOallAttributes,_lhsOaugmentsOut,_lhsOerrors,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+                                                                (case ((Syn_Production _lhsOallAttributes _lhsOaugmentsOut _lhsOerrors _lhsOoutput)) of+                                                                 { ___node ->+                                                                 ( _lhsOallAttributes,_lhsOaugmentsOut,_lhsOerrors,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))) -- Productions ------------------------------------------------- {-    visit 0:@@ -2474,104 +2504,106 @@                       (!_lhsIsynMap) ->                         (case (({-# LINE 152 "src-ag/Desugar.ag" #-}                                 _lhsInt-                                {-# LINE 2478 "dist/build/Desugar" #-}+                                {-# LINE 2508 "dist/build/Desugar" #-}                                 )) of                          { !_tlOnt ->                          (case (({-# LINE 152 "src-ag/Desugar.ag" #-}                                  _lhsInt-                                 {-# LINE 2483 "dist/build/Desugar" #-}+                                 {-# LINE 2513 "dist/build/Desugar" #-}                                  )) of                           { !_hdOnt ->                           (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIsynMap-                                  {-# LINE 2488 "dist/build/Desugar" #-}+                                  {-# LINE 2518 "dist/build/Desugar" #-}                                   )) of                            { !_tlOsynMap ->                            (case (({-# LINE 36 "src-ag/Desugar.ag" #-}                                    _lhsIoptions-                                   {-# LINE 2493 "dist/build/Desugar" #-}+                                   {-# LINE 2523 "dist/build/Desugar" #-}                                    )) of                             { !_tlOoptions ->                             (case (({-# LINE 289 "src-ag/Desugar.ag" #-}                                     _lhsImainName-                                    {-# LINE 2498 "dist/build/Desugar" #-}+                                    {-# LINE 2528 "dist/build/Desugar" #-}                                     )) of                              { !_tlOmainName ->                              (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                      _lhsIinhMap-                                     {-# LINE 2503 "dist/build/Desugar" #-}+                                     {-# LINE 2533 "dist/build/Desugar" #-}                                      )) of                               { !_tlOinhMap ->                               (case (({-# LINE 215 "src-ag/Desugar.ag" #-}                                       _lhsIforcedIrrefutables-                                      {-# LINE 2508 "dist/build/Desugar" #-}+                                      {-# LINE 2538 "dist/build/Desugar" #-}                                       )) of                                { !_tlOforcedIrrefutables ->                                (case (({-# LINE 230 "src-ag/Desugar.ag" #-}                                        _lhsIaugmentsIn-                                       {-# LINE 2513 "dist/build/Desugar" #-}+                                       {-# LINE 2543 "dist/build/Desugar" #-}                                        )) of                                 { !_tlOaugmentsIn ->                                 (case (tl_ _tlOaugmentsIn _tlOforcedIrrefutables _tlOinhMap _tlOmainName _tlOnt _tlOoptions _tlOsynMap) of                                  { ( !_tlIallAttributes,!_tlIaugmentsOut,!_tlIerrors,!_tlIoutput) ->                                      (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                              _lhsIsynMap-                                             {-# LINE 2520 "dist/build/Desugar" #-}+                                             {-# LINE 2550 "dist/build/Desugar" #-}                                              )) of                                       { !_hdOsynMap ->                                       (case (({-# LINE 36 "src-ag/Desugar.ag" #-}                                               _lhsIoptions-                                              {-# LINE 2525 "dist/build/Desugar" #-}+                                              {-# LINE 2555 "dist/build/Desugar" #-}                                               )) of                                        { !_hdOoptions ->                                        (case (({-# LINE 289 "src-ag/Desugar.ag" #-}                                                _lhsImainName-                                               {-# LINE 2530 "dist/build/Desugar" #-}+                                               {-# LINE 2560 "dist/build/Desugar" #-}                                                )) of                                         { !_hdOmainName ->                                         (case (({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                                 _lhsIinhMap-                                                {-# LINE 2535 "dist/build/Desugar" #-}+                                                {-# LINE 2565 "dist/build/Desugar" #-}                                                 )) of                                          { !_hdOinhMap ->                                          (case (({-# LINE 215 "src-ag/Desugar.ag" #-}                                                  _lhsIforcedIrrefutables-                                                 {-# LINE 2540 "dist/build/Desugar" #-}+                                                 {-# LINE 2570 "dist/build/Desugar" #-}                                                  )) of                                           { !_hdOforcedIrrefutables ->                                           (case (({-# LINE 230 "src-ag/Desugar.ag" #-}                                                   _lhsIaugmentsIn-                                                  {-# LINE 2545 "dist/build/Desugar" #-}+                                                  {-# LINE 2575 "dist/build/Desugar" #-}                                                   )) of                                            { !_hdOaugmentsIn ->                                            (case (hd_ _hdOaugmentsIn _hdOforcedIrrefutables _hdOinhMap _hdOmainName _hdOnt _hdOoptions _hdOsynMap) of                                             { ( !_hdIallAttributes,!_hdIaugmentsOut,!_hdIerrors,!_hdIoutput) ->                                                 (case (({-# LINE 196 "src-ag/Desugar.ag" #-}                                                         _hdIallAttributes `mergeAttributes` _tlIallAttributes-                                                        {-# LINE 2552 "dist/build/Desugar" #-}+                                                        {-# LINE 2582 "dist/build/Desugar" #-}                                                         )) of                                                  { !_lhsOallAttributes ->                                                  (case (({-# LINE 231 "src-ag/Desugar.ag" #-}                                                          _hdIaugmentsOut `Map.union` _tlIaugmentsOut-                                                         {-# LINE 2557 "dist/build/Desugar" #-}+                                                         {-# LINE 2587 "dist/build/Desugar" #-}                                                          )) of                                                   { !_lhsOaugmentsOut ->                                                   (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                                                           _hdIerrors Seq.>< _tlIerrors-                                                          {-# LINE 2562 "dist/build/Desugar" #-}+                                                          {-# LINE 2592 "dist/build/Desugar" #-}                                                           )) of                                                    { !_lhsOerrors ->                                                    (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                            (:) _hdIoutput _tlIoutput-                                                           {-# LINE 2567 "dist/build/Desugar" #-}+                                                           {-# LINE 2597 "dist/build/Desugar" #-}                                                            )) of                                                     { !_output ->                                                     (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                             _output-                                                            {-# LINE 2572 "dist/build/Desugar" #-}+                                                            {-# LINE 2602 "dist/build/Desugar" #-}                                                             )) of                                                      { !_lhsOoutput ->-                                                     ( _lhsOallAttributes,_lhsOaugmentsOut,_lhsOerrors,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+                                                     (case ((Syn_Productions _lhsOallAttributes _lhsOaugmentsOut _lhsOerrors _lhsOoutput)) of+                                                      { ___node ->+                                                      ( _lhsOallAttributes,_lhsOaugmentsOut,_lhsOerrors,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))) sem_Productions_Nil :: T_Productions sem_Productions_Nil =     (T_Productions (\ (!_lhsIaugmentsIn)@@ -2583,30 +2615,32 @@                       (!_lhsIsynMap) ->                         (case (({-# LINE 196 "src-ag/Desugar.ag" #-}                                 Map.empty-                                {-# LINE 2587 "dist/build/Desugar" #-}+                                {-# LINE 2619 "dist/build/Desugar" #-}                                 )) of                          { !_lhsOallAttributes ->                          (case (({-# LINE 231 "src-ag/Desugar.ag" #-}                                  Map.empty-                                 {-# LINE 2592 "dist/build/Desugar" #-}+                                 {-# LINE 2624 "dist/build/Desugar" #-}                                  )) of                           { !_lhsOaugmentsOut ->                           (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                                   Seq.empty-                                  {-# LINE 2597 "dist/build/Desugar" #-}+                                  {-# LINE 2629 "dist/build/Desugar" #-}                                   )) of                            { !_lhsOerrors ->                            (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                    []-                                   {-# LINE 2602 "dist/build/Desugar" #-}+                                   {-# LINE 2634 "dist/build/Desugar" #-}                                    )) of                             { !_output ->                             (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                     _output-                                    {-# LINE 2607 "dist/build/Desugar" #-}+                                    {-# LINE 2639 "dist/build/Desugar" #-}                                     )) of                              { !_lhsOoutput ->-                             ( _lhsOallAttributes,_lhsOaugmentsOut,_lhsOerrors,_lhsOoutput) }) }) }) }) })))+                             (case ((Syn_Productions _lhsOallAttributes _lhsOaugmentsOut _lhsOerrors _lhsOoutput)) of+                              { ___node ->+                              ( _lhsOallAttributes,_lhsOaugmentsOut,_lhsOerrors,_lhsOoutput) }) }) }) }) }) }))) -- Rule -------------------------------------------------------- {-    visit 0:@@ -2681,7 +2715,7 @@              { ( !_patternIdefsCollect,!T_Pattern_1 pattern_1) ->                  (case (({-# LINE 179 "src-ag/Desugar.ag" #-}                          _patternIdefsCollect-                         {-# LINE 2685 "dist/build/Desugar" #-}+                         {-# LINE 2719 "dist/build/Desugar" #-}                          )) of                   { !_lhsOdefsCollect ->                   (case ((let sem_Rule_Rule_1 :: T_Rule_1@@ -2695,91 +2729,91 @@                                                (!_lhsIoptions) ->                                                  (case (({-# LINE 152 "src-ag/Desugar.ag" #-}                                                          _lhsInt-                                                         {-# LINE 2699 "dist/build/Desugar" #-}+                                                         {-# LINE 2733 "dist/build/Desugar" #-}                                                          )) of                                                   { !_patternOnt ->                                                   (case (({-# LINE 153 "src-ag/Desugar.ag" #-}                                                           _lhsIcon-                                                          {-# LINE 2704 "dist/build/Desugar" #-}+                                                          {-# LINE 2738 "dist/build/Desugar" #-}                                                           )) of                                                    { !_patternOcon ->                                                    (case (({-# LINE 215 "src-ag/Desugar.ag" #-}                                                            _lhsIforcedIrrefutables-                                                           {-# LINE 2709 "dist/build/Desugar" #-}+                                                           {-# LINE 2743 "dist/build/Desugar" #-}                                                            )) of                                                     { !_patternOforcedIrrefutables ->                                                     (case (({-# LINE 185 "src-ag/Desugar.ag" #-}                                                             _lhsIdefs-                                                            {-# LINE 2714 "dist/build/Desugar" #-}+                                                            {-# LINE 2748 "dist/build/Desugar" #-}                                                             )) of                                                      { !_patternOdefs ->                                                      (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                              _lhsIchildSyns-                                                             {-# LINE 2719 "dist/build/Desugar" #-}+                                                             {-# LINE 2753 "dist/build/Desugar" #-}                                                              )) of                                                       { !_patternOchildSyns ->                                                       (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                               _lhsIchildInhs-                                                              {-# LINE 2724 "dist/build/Desugar" #-}+                                                              {-# LINE 2758 "dist/build/Desugar" #-}                                                               )) of                                                        { !_patternOchildInhs ->                                                        (case (pattern_1 _patternOchildInhs _patternOchildSyns _patternOcon _patternOdefs _patternOforcedIrrefutables _patternOnt) of                                                         { ( !_patternIallAttributes,!_patternIcopy,!_patternIerrors,!_patternIoutput) ->                                                             (case (({-# LINE 196 "src-ag/Desugar.ag" #-}                                                                     _patternIallAttributes-                                                                    {-# LINE 2731 "dist/build/Desugar" #-}+                                                                    {-# LINE 2765 "dist/build/Desugar" #-}                                                                     )) of                                                              { !_lhsOallAttributes ->                                                              (case (({-# LINE 172 "src-ag/Desugar.ag" #-}                                                                      show _lhsInt ++ " :: " ++ show _lhsIcon ++ " :: " ++ (concat $ intersperse "," $ map (\(f,a) -> show f ++ "." ++ show a) $ Set.toList _patternIdefsCollect)-                                                                     {-# LINE 2736 "dist/build/Desugar" #-}+                                                                     {-# LINE 2770 "dist/build/Desugar" #-}                                                                      )) of                                                               { !_ruleDescr ->                                                               (case (({-# LINE 168 "src-ag/Desugar.ag" #-}                                                                       _ruleDescr-                                                                      {-# LINE 2741 "dist/build/Desugar" #-}+                                                                      {-# LINE 2775 "dist/build/Desugar" #-}                                                                       )) of                                                                { !_rhsOruleDescr ->                                                                (case (({-# LINE 36 "src-ag/Desugar.ag" #-}                                                                        _lhsIoptions-                                                                       {-# LINE 2746 "dist/build/Desugar" #-}+                                                                       {-# LINE 2780 "dist/build/Desugar" #-}                                                                        )) of                                                                 { !_rhsOoptions ->                                                                 (case (({-# LINE 152 "src-ag/Desugar.ag" #-}                                                                         _lhsInt-                                                                        {-# LINE 2751 "dist/build/Desugar" #-}+                                                                        {-# LINE 2785 "dist/build/Desugar" #-}                                                                         )) of                                                                  { !_rhsOnt ->                                                                  (case (({-# LINE 153 "src-ag/Desugar.ag" #-}                                                                          _lhsIcon-                                                                         {-# LINE 2756 "dist/build/Desugar" #-}+                                                                         {-# LINE 2790 "dist/build/Desugar" #-}                                                                          )) of                                                                   { !_rhsOcon ->                                                                   (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                           _lhsIchildSyns-                                                                          {-# LINE 2761 "dist/build/Desugar" #-}+                                                                          {-# LINE 2795 "dist/build/Desugar" #-}                                                                           )) of                                                                    { !_rhsOchildSyns ->                                                                    (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                            _lhsIchildInhs-                                                                           {-# LINE 2766 "dist/build/Desugar" #-}+                                                                           {-# LINE 2800 "dist/build/Desugar" #-}                                                                            )) of                                                                     { !_rhsOchildInhs ->                                                                     (case (rhs_ _rhsOchildInhs _rhsOchildSyns _rhsOcon _rhsOnt _rhsOoptions _rhsOruleDescr) of                                                                      { ( !_rhsIerrors,!_rhsIoutput) ->                                                                          (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                                                                                  _patternIerrors Seq.>< _rhsIerrors-                                                                                 {-# LINE 2773 "dist/build/Desugar" #-}+                                                                                 {-# LINE 2807 "dist/build/Desugar" #-}                                                                                  )) of                                                                           { !_lhsOerrors ->                                                                           (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                                   Rule mbName_ _patternIoutput _rhsIoutput owrt_ origin_ explicit_ pure_ identity_ mbError_ eager_-                                                                                  {-# LINE 2778 "dist/build/Desugar" #-}+                                                                                  {-# LINE 2812 "dist/build/Desugar" #-}                                                                                   )) of                                                                            { !_output ->                                                                            (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                                    _output-                                                                                   {-# LINE 2783 "dist/build/Desugar" #-}+                                                                                   {-# LINE 2817 "dist/build/Desugar" #-}                                                                                    )) of                                                                             { !_lhsOoutput ->                                                                             ( _lhsOallAttributes,_lhsOerrors,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))@@ -2848,7 +2882,7 @@                    { ( !_hdIdefsCollect,!T_Rule_1 hd_1) ->                        (case (({-# LINE 179 "src-ag/Desugar.ag" #-}                                _hdIdefsCollect `Set.union` _tlIdefsCollect-                               {-# LINE 2852 "dist/build/Desugar" #-}+                               {-# LINE 2886 "dist/build/Desugar" #-}                                )) of                         { !_lhsOdefsCollect ->                         (case ((let sem_Rules_Cons_1 :: T_Rules_1@@ -2862,96 +2896,96 @@                                                       (!_lhsIoptions) ->                                                         (case (({-# LINE 152 "src-ag/Desugar.ag" #-}                                                                 _lhsInt-                                                                {-# LINE 2866 "dist/build/Desugar" #-}+                                                                {-# LINE 2900 "dist/build/Desugar" #-}                                                                 )) of                                                          { !_tlOnt ->                                                          (case (({-# LINE 153 "src-ag/Desugar.ag" #-}                                                                  _lhsIcon-                                                                 {-# LINE 2871 "dist/build/Desugar" #-}+                                                                 {-# LINE 2905 "dist/build/Desugar" #-}                                                                  )) of                                                           { !_tlOcon ->                                                           (case (({-# LINE 152 "src-ag/Desugar.ag" #-}                                                                   _lhsInt-                                                                  {-# LINE 2876 "dist/build/Desugar" #-}+                                                                  {-# LINE 2910 "dist/build/Desugar" #-}                                                                   )) of                                                            { !_hdOnt ->                                                            (case (({-# LINE 153 "src-ag/Desugar.ag" #-}                                                                    _lhsIcon-                                                                   {-# LINE 2881 "dist/build/Desugar" #-}+                                                                   {-# LINE 2915 "dist/build/Desugar" #-}                                                                    )) of                                                             { !_hdOcon ->                                                             (case (({-# LINE 36 "src-ag/Desugar.ag" #-}                                                                     _lhsIoptions-                                                                    {-# LINE 2886 "dist/build/Desugar" #-}+                                                                    {-# LINE 2920 "dist/build/Desugar" #-}                                                                     )) of                                                              { !_tlOoptions ->                                                              (case (({-# LINE 215 "src-ag/Desugar.ag" #-}                                                                      _lhsIforcedIrrefutables-                                                                     {-# LINE 2891 "dist/build/Desugar" #-}+                                                                     {-# LINE 2925 "dist/build/Desugar" #-}                                                                      )) of                                                               { !_tlOforcedIrrefutables ->                                                               (case (({-# LINE 185 "src-ag/Desugar.ag" #-}                                                                       _lhsIdefs-                                                                      {-# LINE 2896 "dist/build/Desugar" #-}+                                                                      {-# LINE 2930 "dist/build/Desugar" #-}                                                                       )) of                                                                { !_tlOdefs ->                                                                (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                        _lhsIchildSyns-                                                                       {-# LINE 2901 "dist/build/Desugar" #-}+                                                                       {-# LINE 2935 "dist/build/Desugar" #-}                                                                        )) of                                                                 { !_tlOchildSyns ->                                                                 (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                         _lhsIchildInhs-                                                                        {-# LINE 2906 "dist/build/Desugar" #-}+                                                                        {-# LINE 2940 "dist/build/Desugar" #-}                                                                         )) of                                                                  { !_tlOchildInhs ->                                                                  (case (tl_1 _tlOchildInhs _tlOchildSyns _tlOcon _tlOdefs _tlOforcedIrrefutables _tlOnt _tlOoptions) of                                                                   { ( !_tlIallAttributes,!_tlIerrors,!_tlIoutput) ->                                                                       (case (({-# LINE 36 "src-ag/Desugar.ag" #-}                                                                               _lhsIoptions-                                                                              {-# LINE 2913 "dist/build/Desugar" #-}+                                                                              {-# LINE 2947 "dist/build/Desugar" #-}                                                                               )) of                                                                        { !_hdOoptions ->                                                                        (case (({-# LINE 215 "src-ag/Desugar.ag" #-}                                                                                _lhsIforcedIrrefutables-                                                                               {-# LINE 2918 "dist/build/Desugar" #-}+                                                                               {-# LINE 2952 "dist/build/Desugar" #-}                                                                                )) of                                                                         { !_hdOforcedIrrefutables ->                                                                         (case (({-# LINE 185 "src-ag/Desugar.ag" #-}                                                                                 _lhsIdefs-                                                                                {-# LINE 2923 "dist/build/Desugar" #-}+                                                                                {-# LINE 2957 "dist/build/Desugar" #-}                                                                                 )) of                                                                          { !_hdOdefs ->                                                                          (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                                  _lhsIchildSyns-                                                                                 {-# LINE 2928 "dist/build/Desugar" #-}+                                                                                 {-# LINE 2962 "dist/build/Desugar" #-}                                                                                  )) of                                                                           { !_hdOchildSyns ->                                                                           (case (({-# LINE 126 "src-ag/Desugar.ag" #-}                                                                                   _lhsIchildInhs-                                                                                  {-# LINE 2933 "dist/build/Desugar" #-}+                                                                                  {-# LINE 2967 "dist/build/Desugar" #-}                                                                                   )) of                                                                            { !_hdOchildInhs ->                                                                            (case (hd_1 _hdOchildInhs _hdOchildSyns _hdOcon _hdOdefs _hdOforcedIrrefutables _hdOnt _hdOoptions) of                                                                             { ( !_hdIallAttributes,!_hdIerrors,!_hdIoutput) ->                                                                                 (case (({-# LINE 196 "src-ag/Desugar.ag" #-}                                                                                         _hdIallAttributes `mergeAttributes` _tlIallAttributes-                                                                                        {-# LINE 2940 "dist/build/Desugar" #-}+                                                                                        {-# LINE 2974 "dist/build/Desugar" #-}                                                                                         )) of                                                                                  { !_lhsOallAttributes ->                                                                                  (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                                                                                          _hdIerrors Seq.>< _tlIerrors-                                                                                         {-# LINE 2945 "dist/build/Desugar" #-}+                                                                                         {-# LINE 2979 "dist/build/Desugar" #-}                                                                                          )) of                                                                                   { !_lhsOerrors ->                                                                                   (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                                           (:) _hdIoutput _tlIoutput-                                                                                          {-# LINE 2950 "dist/build/Desugar" #-}+                                                                                          {-# LINE 2984 "dist/build/Desugar" #-}                                                                                           )) of                                                                                    { !_output ->                                                                                    (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                                                            _output-                                                                                           {-# LINE 2955 "dist/build/Desugar" #-}+                                                                                           {-# LINE 2989 "dist/build/Desugar" #-}                                                                                            )) of                                                                                     { !_lhsOoutput ->                                                                                     ( _lhsOallAttributes,_lhsOerrors,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))@@ -2962,7 +2996,7 @@ sem_Rules_Nil =     (T_Rules (case (({-# LINE 179 "src-ag/Desugar.ag" #-}                      Set.empty-                     {-# LINE 2966 "dist/build/Desugar" #-}+                     {-# LINE 3000 "dist/build/Desugar" #-}                      )) of               { !_lhsOdefsCollect ->               (case ((let sem_Rules_Nil_1 :: T_Rules_1@@ -2976,22 +3010,22 @@                                             (!_lhsIoptions) ->                                               (case (({-# LINE 196 "src-ag/Desugar.ag" #-}                                                       Map.empty-                                                      {-# LINE 2980 "dist/build/Desugar" #-}+                                                      {-# LINE 3014 "dist/build/Desugar" #-}                                                       )) of                                                { !_lhsOallAttributes ->                                                (case (({-# LINE 38 "src-ag/Desugar.ag" #-}                                                        Seq.empty-                                                       {-# LINE 2985 "dist/build/Desugar" #-}+                                                       {-# LINE 3019 "dist/build/Desugar" #-}                                                        )) of                                                 { !_lhsOerrors ->                                                 (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                         []-                                                        {-# LINE 2990 "dist/build/Desugar" #-}+                                                        {-# LINE 3024 "dist/build/Desugar" #-}                                                         )) of                                                  { !_output ->                                                  (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                                          _output-                                                         {-# LINE 2995 "dist/build/Desugar" #-}+                                                         {-# LINE 3029 "dist/build/Desugar" #-}                                                          )) of                                                   { !_lhsOoutput ->                                                   ( _lhsOallAttributes,_lhsOerrors,_lhsOoutput) }) }) }) })))@@ -3031,15 +3065,17 @@ sem_TypeSig_TypeSig !name_ !tp_ =     (T_TypeSig (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                        TypeSig name_ tp_-                       {-# LINE 3035 "dist/build/Desugar" #-}+                       {-# LINE 3069 "dist/build/Desugar" #-}                        )) of                 { !_output ->                 (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                         _output-                        {-# LINE 3040 "dist/build/Desugar" #-}+                        {-# LINE 3074 "dist/build/Desugar" #-}                         )) of                  { !_lhsOoutput ->-                 ( _lhsOoutput) }) }))+                 (case ((Syn_TypeSig _lhsOoutput)) of+                  { ___node ->+                  ( _lhsOoutput) }) }) })) -- TypeSigs ---------------------------------------------------- {-    visit 0:@@ -3080,25 +3116,29 @@                       { ( !_hdIoutput) ->                           (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                   (:) _hdIoutput _tlIoutput-                                  {-# LINE 3084 "dist/build/Desugar" #-}+                                  {-# LINE 3120 "dist/build/Desugar" #-}                                   )) of                            { !_output ->                            (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                                    _output-                                   {-# LINE 3089 "dist/build/Desugar" #-}+                                   {-# LINE 3125 "dist/build/Desugar" #-}                                    )) of                             { !_lhsOoutput ->-                            ( _lhsOoutput) }) }) }) }))+                            (case ((Syn_TypeSigs _lhsOoutput)) of+                             { ___node ->+                             ( _lhsOoutput) }) }) }) }) })) sem_TypeSigs_Nil :: T_TypeSigs sem_TypeSigs_Nil =     (T_TypeSigs (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                         []-                        {-# LINE 3097 "dist/build/Desugar" #-}+                        {-# LINE 3135 "dist/build/Desugar" #-}                         )) of                  { !_output ->                  (case (({-# LINE 40 "src-ag/Desugar.ag" #-}                          _output-                         {-# LINE 3102 "dist/build/Desugar" #-}+                         {-# LINE 3140 "dist/build/Desugar" #-}                          )) of                   { !_lhsOoutput ->-                  ( _lhsOoutput) }) }))+                  (case ((Syn_TypeSigs _lhsOoutput)) of+                   { ___node ->+                   ( _lhsOoutput) }) }) }))
src-derived/ExecutionPlan2Hs.hs view
@@ -598,8997 +598,9079 @@                              _argpats                              {-# LINE 600 "dist/build/ExecutionPlan2Hs" #-}                              )-                    in  ( _lhsOargnamesw,_lhsOargpats,_lhsOargtps,_lhsOchildTypes,_lhsOchildintros,_lhsOdatatype,_lhsOterminaldefs))))-sem_EChild_ETerm :: Identifier ->-                    Type ->-                    T_EChild-sem_EChild_ETerm name_ tp_ =-    (T_EChild (\ _lhsIallInitStates-                 _lhsIcon-                 _lhsIimportBlocks-                 _lhsImainFile-                 _lhsImainName-                 _lhsImoduleHeader-                 _lhsInt-                 _lhsIoptions-                 _lhsIpragmaBlocks-                 _lhsItextBlocks ->-                   (let _lhsOdatatype :: PP_Doc-                        _lhsOargnamesw :: ( PP_Doc )-                        _lhsOargtps :: (  PP_Doc  )-                        _lhsOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))-                        _lhsOterminaldefs :: (Set String)-                        _lhsOchildTypes :: (Map Identifier Type)-                        _lhsOargpats :: (  PP_Doc  )-                        -- "src-ag/ExecutionPlan2Hs.ag"(line 204, column 7)-                        _tpDoc =-                            ({-# LINE 204 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _addStrict     $ pp_parens $ ppTp $ removeDeforested tp_-                             {-# LINE 628 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- "src-ag/ExecutionPlan2Hs.ag"(line 205, column 7)-                        _strNm =-                            ({-# LINE 205 "src-ag/ExecutionPlan2Hs.ag" #-}-                             recordFieldname _lhsInt _lhsIcon name_-                             {-# LINE 634 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- "src-ag/ExecutionPlan2Hs.ag"(line 206, column 7)-                        _field =-                            ({-# LINE 206 "src-ag/ExecutionPlan2Hs.ag" #-}-                             if dataRecords _lhsIoptions-                             then _strNm     >#< "::" >#< _tpDoc-                             else _tpDoc-                             {-# LINE 642 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- "src-ag/ExecutionPlan2Hs.ag"(line 209, column 7)-                        _addStrict =-                            ({-# LINE 209 "src-ag/ExecutionPlan2Hs.ag" #-}-                             \x -> if strictData _lhsIoptions then "!" >|< x else x-                             {-# LINE 648 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- "src-ag/ExecutionPlan2Hs.ag"(line 214, column 13)-                        _lhsOdatatype =-                            ({-# LINE 214 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _field-                             {-# LINE 654 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- "src-ag/ExecutionPlan2Hs.ag"(line 305, column 12)-                        _lhsOargnamesw =-                            ({-# LINE 305 "src-ag/ExecutionPlan2Hs.ag" #-}-                             text $ fieldname name_-                             {-# LINE 660 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- "src-ag/ExecutionPlan2Hs.ag"(line 576, column 12)-                        _lhsOargtps =-                            ({-# LINE 576 "src-ag/ExecutionPlan2Hs.ag" #-}-                             (pp_parens $ show tp_) >#< "->"-                             {-# LINE 666 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- "src-ag/ExecutionPlan2Hs.ag"(line 577, column 12)-                        _argpats =-                            ({-# LINE 577 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _addbang     $ text $ fieldname name_-                             {-# LINE 672 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- "src-ag/ExecutionPlan2Hs.ag"(line 899, column 12)-                        _lhsOchildintros =-                            ({-# LINE 899 "src-ag/ExecutionPlan2Hs.ag" #-}-                             Map.singleton name_ (\_ _ -> Right (empty, Set.empty, Map.empty))-                             {-# LINE 678 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- "src-ag/ExecutionPlan2Hs.ag"(line 1287, column 3)-                        _lhsOterminaldefs =-                            ({-# LINE 1287 "src-ag/ExecutionPlan2Hs.ag" #-}-                             Set.singleton $ fieldname name_-                             {-# LINE 684 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- "src-ag/ExecutionPlan2Hs.ag"(line 1519, column 37)-                        _addbang =-                            ({-# LINE 1519 "src-ag/ExecutionPlan2Hs.ag" #-}-                             \x -> if bangpats _lhsIoptions then "!" >|< x else x-                             {-# LINE 690 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- "src-ag/ExecutionPlan2Hs.ag"(line 1570, column 3)-                        _lhsOchildTypes =-                            ({-# LINE 1570 "src-ag/ExecutionPlan2Hs.ag" #-}-                             Map.singleton name_ tp_-                             {-# LINE 696 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (from local)-                        _lhsOargpats =-                            ({-# LINE 563 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _argpats-                             {-# LINE 702 "dist/build/ExecutionPlan2Hs" #-}-                             )-                    in  ( _lhsOargnamesw,_lhsOargpats,_lhsOargtps,_lhsOchildTypes,_lhsOchildintros,_lhsOdatatype,_lhsOterminaldefs))))--- EChildren ----------------------------------------------------{--   visit 0:-      inherited attributes:-         allInitStates        : Map NontermIdent Int-         con                  : ConstructorIdent-         importBlocks         : PP_Doc-         mainFile             : String-         mainName             : String-         moduleHeader         : String -> String -> String -> Bool -> String-         nt                   : NontermIdent-         options              : Options-         pragmaBlocks         : String-         textBlocks           : PP_Doc-      synthesized attributes:-         argnamesw            : [PP_Doc]-         argpats              :  [PP_Doc] -         argtps               :  [PP_Doc] -         childTypes           : Map Identifier Type-         childintros          : Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))-         datatype             : [PP_Doc]-         terminaldefs         : Set String-   alternatives:-      alternative Cons:-         child hd             : EChild -         child tl             : EChildren -      alternative Nil:--}--- cata-sem_EChildren :: EChildren ->-                 T_EChildren-sem_EChildren list =-    (Prelude.foldr sem_EChildren_Cons sem_EChildren_Nil (Prelude.map sem_EChild list))--- semantic domain-newtype T_EChildren = T_EChildren ((Map NontermIdent Int) ->-                                   ConstructorIdent ->-                                   PP_Doc ->-                                   String ->-                                   String ->-                                   (String -> String -> String -> Bool -> String) ->-                                   NontermIdent ->-                                   Options ->-                                   String ->-                                   PP_Doc ->-                                   ( ([PP_Doc]),( [PP_Doc] ),( [PP_Doc] ),(Map Identifier Type),(Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),([PP_Doc]),(Set String)))-data Inh_EChildren = Inh_EChildren {allInitStates_Inh_EChildren :: (Map NontermIdent Int),con_Inh_EChildren :: ConstructorIdent,importBlocks_Inh_EChildren :: PP_Doc,mainFile_Inh_EChildren :: String,mainName_Inh_EChildren :: String,moduleHeader_Inh_EChildren :: (String -> String -> String -> Bool -> String),nt_Inh_EChildren :: NontermIdent,options_Inh_EChildren :: Options,pragmaBlocks_Inh_EChildren :: String,textBlocks_Inh_EChildren :: PP_Doc}-data Syn_EChildren = Syn_EChildren {argnamesw_Syn_EChildren :: ([PP_Doc]),argpats_Syn_EChildren :: ( [PP_Doc] ),argtps_Syn_EChildren :: ( [PP_Doc] ),childTypes_Syn_EChildren :: (Map Identifier Type),childintros_Syn_EChildren :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),datatype_Syn_EChildren :: ([PP_Doc]),terminaldefs_Syn_EChildren :: (Set String)}-wrap_EChildren :: T_EChildren ->-                  Inh_EChildren ->-                  Syn_EChildren-wrap_EChildren (T_EChildren sem) (Inh_EChildren _lhsIallInitStates _lhsIcon _lhsIimportBlocks _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInt _lhsIoptions _lhsIpragmaBlocks _lhsItextBlocks) =-    (let ( _lhsOargnamesw,_lhsOargpats,_lhsOargtps,_lhsOchildTypes,_lhsOchildintros,_lhsOdatatype,_lhsOterminaldefs) = sem _lhsIallInitStates _lhsIcon _lhsIimportBlocks _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInt _lhsIoptions _lhsIpragmaBlocks _lhsItextBlocks-     in  (Syn_EChildren _lhsOargnamesw _lhsOargpats _lhsOargtps _lhsOchildTypes _lhsOchildintros _lhsOdatatype _lhsOterminaldefs))-sem_EChildren_Cons :: T_EChild ->-                      T_EChildren ->-                      T_EChildren-sem_EChildren_Cons (T_EChild hd_) (T_EChildren tl_) =-    (T_EChildren (\ _lhsIallInitStates-                    _lhsIcon-                    _lhsIimportBlocks-                    _lhsImainFile-                    _lhsImainName-                    _lhsImoduleHeader-                    _lhsInt-                    _lhsIoptions-                    _lhsIpragmaBlocks-                    _lhsItextBlocks ->-                      (let _lhsOargnamesw :: ([PP_Doc])-                           _lhsOargpats :: ( [PP_Doc] )-                           _lhsOargtps :: ( [PP_Doc] )-                           _lhsOchildTypes :: (Map Identifier Type)-                           _lhsOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))-                           _lhsOdatatype :: ([PP_Doc])-                           _lhsOterminaldefs :: (Set String)-                           _hdOallInitStates :: (Map NontermIdent Int)-                           _hdOcon :: ConstructorIdent-                           _hdOimportBlocks :: PP_Doc-                           _hdOmainFile :: String-                           _hdOmainName :: String-                           _hdOmoduleHeader :: (String -> String -> String -> Bool -> String)-                           _hdOnt :: NontermIdent-                           _hdOoptions :: Options-                           _hdOpragmaBlocks :: String-                           _hdOtextBlocks :: PP_Doc-                           _tlOallInitStates :: (Map NontermIdent Int)-                           _tlOcon :: ConstructorIdent-                           _tlOimportBlocks :: PP_Doc-                           _tlOmainFile :: String-                           _tlOmainName :: String-                           _tlOmoduleHeader :: (String -> String -> String -> Bool -> String)-                           _tlOnt :: NontermIdent-                           _tlOoptions :: Options-                           _tlOpragmaBlocks :: String-                           _tlOtextBlocks :: PP_Doc-                           _hdIargnamesw :: ( PP_Doc )-                           _hdIargpats :: (  PP_Doc  )-                           _hdIargtps :: (  PP_Doc  )-                           _hdIchildTypes :: (Map Identifier Type)-                           _hdIchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))-                           _hdIdatatype :: PP_Doc-                           _hdIterminaldefs :: (Set String)-                           _tlIargnamesw :: ([PP_Doc])-                           _tlIargpats :: ( [PP_Doc] )-                           _tlIargtps :: ( [PP_Doc] )-                           _tlIchildTypes :: (Map Identifier Type)-                           _tlIchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))-                           _tlIdatatype :: ([PP_Doc])-                           _tlIterminaldefs :: (Set String)-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 298, column 32)-                           _lhsOargnamesw =-                               ({-# LINE 298 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _hdIargnamesw : _tlIargnamesw-                                {-# LINE 817 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 565, column 30)-                           _lhsOargpats =-                               ({-# LINE 565 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _hdIargpats : _tlIargpats-                                {-# LINE 823 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 564, column 30)-                           _lhsOargtps =-                               ({-# LINE 564 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _hdIargtps : _tlIargtps-                                {-# LINE 829 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1563, column 40)-                           _lhsOchildTypes =-                               ({-# LINE 1563 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _hdIchildTypes `mappend` _tlIchildTypes-                                {-# LINE 835 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 890, column 41)-                           _lhsOchildintros =-                               ({-# LINE 890 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _hdIchildintros `Map.union` _tlIchildintros-                                {-# LINE 841 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 199, column 31)-                           _lhsOdatatype =-                               ({-# LINE 199 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _hdIdatatype : _tlIdatatype-                                {-# LINE 847 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1284, column 42)-                           _lhsOterminaldefs =-                               ({-# LINE 1284 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _hdIterminaldefs `Set.union` _tlIterminaldefs-                                {-# LINE 853 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _hdOallInitStates =-                               ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIallInitStates-                                {-# LINE 859 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _hdOcon =-                               ({-# LINE 66 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIcon-                                {-# LINE 865 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _hdOimportBlocks =-                               ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIimportBlocks-                                {-# LINE 871 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _hdOmainFile =-                               ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsImainFile-                                {-# LINE 877 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _hdOmainName =-                               ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsImainName-                                {-# LINE 883 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _hdOmoduleHeader =-                               ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsImoduleHeader-                                {-# LINE 889 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _hdOnt =-                               ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsInt-                                {-# LINE 895 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _hdOoptions =-                               ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIoptions-                                {-# LINE 901 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _hdOpragmaBlocks =-                               ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIpragmaBlocks-                                {-# LINE 907 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _hdOtextBlocks =-                               ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsItextBlocks-                                {-# LINE 913 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _tlOallInitStates =-                               ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIallInitStates-                                {-# LINE 919 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _tlOcon =-                               ({-# LINE 66 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIcon-                                {-# LINE 925 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _tlOimportBlocks =-                               ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIimportBlocks-                                {-# LINE 931 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _tlOmainFile =-                               ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsImainFile-                                {-# LINE 937 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _tlOmainName =-                               ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsImainName-                                {-# LINE 943 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _tlOmoduleHeader =-                               ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsImoduleHeader-                                {-# LINE 949 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _tlOnt =-                               ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsInt-                                {-# LINE 955 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _tlOoptions =-                               ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIoptions-                                {-# LINE 961 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _tlOpragmaBlocks =-                               ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIpragmaBlocks-                                {-# LINE 967 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _tlOtextBlocks =-                               ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsItextBlocks-                                {-# LINE 973 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           ( _hdIargnamesw,_hdIargpats,_hdIargtps,_hdIchildTypes,_hdIchildintros,_hdIdatatype,_hdIterminaldefs) =-                               hd_ _hdOallInitStates _hdOcon _hdOimportBlocks _hdOmainFile _hdOmainName _hdOmoduleHeader _hdOnt _hdOoptions _hdOpragmaBlocks _hdOtextBlocks-                           ( _tlIargnamesw,_tlIargpats,_tlIargtps,_tlIchildTypes,_tlIchildintros,_tlIdatatype,_tlIterminaldefs) =-                               tl_ _tlOallInitStates _tlOcon _tlOimportBlocks _tlOmainFile _tlOmainName _tlOmoduleHeader _tlOnt _tlOoptions _tlOpragmaBlocks _tlOtextBlocks-                       in  ( _lhsOargnamesw,_lhsOargpats,_lhsOargtps,_lhsOchildTypes,_lhsOchildintros,_lhsOdatatype,_lhsOterminaldefs))))-sem_EChildren_Nil :: T_EChildren-sem_EChildren_Nil =-    (T_EChildren (\ _lhsIallInitStates-                    _lhsIcon-                    _lhsIimportBlocks-                    _lhsImainFile-                    _lhsImainName-                    _lhsImoduleHeader-                    _lhsInt-                    _lhsIoptions-                    _lhsIpragmaBlocks-                    _lhsItextBlocks ->-                      (let _lhsOargnamesw :: ([PP_Doc])-                           _lhsOargpats :: ( [PP_Doc] )-                           _lhsOargtps :: ( [PP_Doc] )-                           _lhsOchildTypes :: (Map Identifier Type)-                           _lhsOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))-                           _lhsOdatatype :: ([PP_Doc])-                           _lhsOterminaldefs :: (Set String)-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 298, column 32)-                           _lhsOargnamesw =-                               ({-# LINE 298 "src-ag/ExecutionPlan2Hs.ag" #-}-                                []-                                {-# LINE 1003 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 565, column 30)-                           _lhsOargpats =-                               ({-# LINE 565 "src-ag/ExecutionPlan2Hs.ag" #-}-                                []-                                {-# LINE 1009 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 564, column 30)-                           _lhsOargtps =-                               ({-# LINE 564 "src-ag/ExecutionPlan2Hs.ag" #-}-                                []-                                {-# LINE 1015 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1563, column 40)-                           _lhsOchildTypes =-                               ({-# LINE 1563 "src-ag/ExecutionPlan2Hs.ag" #-}-                                mempty-                                {-# LINE 1021 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 890, column 41)-                           _lhsOchildintros =-                               ({-# LINE 890 "src-ag/ExecutionPlan2Hs.ag" #-}-                                Map.empty-                                {-# LINE 1027 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 199, column 31)-                           _lhsOdatatype =-                               ({-# LINE 199 "src-ag/ExecutionPlan2Hs.ag" #-}-                                []-                                {-# LINE 1033 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1284, column 42)-                           _lhsOterminaldefs =-                               ({-# LINE 1284 "src-ag/ExecutionPlan2Hs.ag" #-}-                                Set.empty-                                {-# LINE 1039 "dist/build/ExecutionPlan2Hs" #-}-                                )-                       in  ( _lhsOargnamesw,_lhsOargpats,_lhsOargtps,_lhsOchildTypes,_lhsOchildintros,_lhsOdatatype,_lhsOterminaldefs))))--- ENonterminal -------------------------------------------------{--   visit 0:-      inherited attributes:-         allFromToStates      : Map VisitIdentifier (Int,Int)-         allInitStates        : Map NontermIdent Int-         allVisitKinds        : Map VisitIdentifier VisitKind-         allchildvisit        : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))-         avisitdefs           : Map VisitIdentifier (Set Identifier)-         avisituses           : Map VisitIdentifier (Set Identifier)-         derivings            : Derivings-         importBlocks         : PP_Doc-         inhmap               : Map NontermIdent Attributes-         localAttrTypes       : Map NontermIdent (Map ConstructorIdent (Map Identifier Type))-         mainFile             : String-         mainName             : String-         moduleHeader         : String -> String -> String -> Bool -> String-         options              : Options-         pragmaBlocks         : String-         synmap               : Map NontermIdent Attributes-         textBlocks           : PP_Doc-         typeSyns             : TypeSyns-         wrappers             : Set NontermIdent-      synthesized attributes:-         appendCommon         :  PP_Doc -         appendMain           :  PP_Doc -         childvisit           : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))-         errors               : Seq Error-         fromToStates         : Map VisitIdentifier (Int,Int)-         genProdIO            : IO ()-         imports              : [PP_Doc]-         initStates           : Map NontermIdent Int-         output               : PP_Doc-         semFunBndDefs        : Seq PP_Doc-         semFunBndTps         : Seq PP_Doc-         visitKinds           : Map VisitIdentifier VisitKind-         visitdefs            : Map VisitIdentifier (Set Identifier)-         visituses            : Map VisitIdentifier (Set Identifier)-   alternatives:-      alternative ENonterminal:-         child nt             : {NontermIdent}-         child params         : {[Identifier]}-         child classCtxs      : {ClassContext}-         child initial        : {StateIdentifier}-         child initialv       : {Maybe VisitIdentifier}-         child nextVisits     : {Map StateIdentifier StateCtx}-         child prevVisits     : {Map StateIdentifier StateCtx}-         child prods          : EProductions -         child recursive      : {Bool}-         child hoInfo         : {HigherOrderInfo}-         visit 0:-            local hasWrapper  : _-            local classPP     : _-            local aliasPre    : _-            local datatype    : _-            local derivings   : _-            local fsemname    : _-            local semname     : _-            local frecarg     : _-            local sem_tp      : _-            local quantPP     : _-            local sem_nt      : _-            local inlineNt    : _-            local semPragma   : _-            local outedges    : _-            local inedges     : _-            local allstates   : _-            local stvisits    : _-            local t_type      : _-            local t_params    : _-            local t_init      : _-            local t_states    : _-            local k_type      : _-            local k_states    : _-            local wr_inh      : _-            local wr_syn      : _-            local genwrap     : _-            local synAttrs    : _-            local wr_inhs     : _-            local wr_inhs1    : _-            local wr_filter   : _-            local wr_syns     : _-            local inhlist     : _-            local inhlist1    : _-            local synlist     : _-            local wrapname    : _-            local inhname     : _-            local synname     : _-            local firstVisitInfo : _-            local wrapper     : _-            local wrapPragma  : _-            local semFunBndDef : _-            local semFunBndTp : _-            local semFunBndNm : _-            local addbang     : _-            local addbangWrap : _-            local ntType      : _--}--- cata-sem_ENonterminal :: ENonterminal ->-                    T_ENonterminal-sem_ENonterminal (ENonterminal _nt _params _classCtxs _initial _initialv _nextVisits _prevVisits _prods _recursive _hoInfo) =-    (sem_ENonterminal_ENonterminal _nt _params _classCtxs _initial _initialv _nextVisits _prevVisits (sem_EProductions _prods) _recursive _hoInfo)--- semantic domain-newtype T_ENonterminal = T_ENonterminal ((Map VisitIdentifier (Int,Int)) ->-                                         (Map NontermIdent Int) ->-                                         (Map VisitIdentifier VisitKind) ->-                                         (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))) ->-                                         (Map VisitIdentifier (Set Identifier)) ->-                                         (Map VisitIdentifier (Set Identifier)) ->-                                         Derivings ->-                                         PP_Doc ->-                                         (Map NontermIdent Attributes) ->-                                         (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))) ->-                                         String ->-                                         String ->-                                         (String -> String -> String -> Bool -> String) ->-                                         Options ->-                                         String ->-                                         (Map NontermIdent Attributes) ->-                                         PP_Doc ->-                                         TypeSyns ->-                                         (Set NontermIdent) ->-                                         ( ( PP_Doc ),( PP_Doc ),(Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),(Seq Error),(Map VisitIdentifier (Int,Int)),(IO ()),([PP_Doc]),(Map NontermIdent Int),PP_Doc,(Seq PP_Doc),(Seq PP_Doc),(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier))))-data Inh_ENonterminal = Inh_ENonterminal {allFromToStates_Inh_ENonterminal :: (Map VisitIdentifier (Int,Int)),allInitStates_Inh_ENonterminal :: (Map NontermIdent Int),allVisitKinds_Inh_ENonterminal :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_ENonterminal :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),avisitdefs_Inh_ENonterminal :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_ENonterminal :: (Map VisitIdentifier (Set Identifier)),derivings_Inh_ENonterminal :: Derivings,importBlocks_Inh_ENonterminal :: PP_Doc,inhmap_Inh_ENonterminal :: (Map NontermIdent Attributes),localAttrTypes_Inh_ENonterminal :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))),mainFile_Inh_ENonterminal :: String,mainName_Inh_ENonterminal :: String,moduleHeader_Inh_ENonterminal :: (String -> String -> String -> Bool -> String),options_Inh_ENonterminal :: Options,pragmaBlocks_Inh_ENonterminal :: String,synmap_Inh_ENonterminal :: (Map NontermIdent Attributes),textBlocks_Inh_ENonterminal :: PP_Doc,typeSyns_Inh_ENonterminal :: TypeSyns,wrappers_Inh_ENonterminal :: (Set NontermIdent)}-data Syn_ENonterminal = Syn_ENonterminal {appendCommon_Syn_ENonterminal :: ( PP_Doc ),appendMain_Syn_ENonterminal :: ( PP_Doc ),childvisit_Syn_ENonterminal :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),errors_Syn_ENonterminal :: (Seq Error),fromToStates_Syn_ENonterminal :: (Map VisitIdentifier (Int,Int)),genProdIO_Syn_ENonterminal :: (IO ()),imports_Syn_ENonterminal :: ([PP_Doc]),initStates_Syn_ENonterminal :: (Map NontermIdent Int),output_Syn_ENonterminal :: PP_Doc,semFunBndDefs_Syn_ENonterminal :: (Seq PP_Doc),semFunBndTps_Syn_ENonterminal :: (Seq PP_Doc),visitKinds_Syn_ENonterminal :: (Map VisitIdentifier VisitKind),visitdefs_Syn_ENonterminal :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_ENonterminal :: (Map VisitIdentifier (Set Identifier))}-wrap_ENonterminal :: T_ENonterminal ->-                     Inh_ENonterminal ->-                     Syn_ENonterminal-wrap_ENonterminal (T_ENonterminal sem) (Inh_ENonterminal _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIderivings _lhsIimportBlocks _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIpragmaBlocks _lhsIsynmap _lhsItextBlocks _lhsItypeSyns _lhsIwrappers) =-    (let ( _lhsOappendCommon,_lhsOappendMain,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOinitStates,_lhsOoutput,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIderivings _lhsIimportBlocks _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIpragmaBlocks _lhsIsynmap _lhsItextBlocks _lhsItypeSyns _lhsIwrappers-     in  (Syn_ENonterminal _lhsOappendCommon _lhsOappendMain _lhsOchildvisit _lhsOerrors _lhsOfromToStates _lhsOgenProdIO _lhsOimports _lhsOinitStates _lhsOoutput _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses))-sem_ENonterminal_ENonterminal :: NontermIdent ->-                                 ([Identifier]) ->-                                 ClassContext ->-                                 StateIdentifier ->-                                 (Maybe VisitIdentifier) ->-                                 (Map StateIdentifier StateCtx) ->-                                 (Map StateIdentifier StateCtx) ->-                                 T_EProductions ->-                                 Bool ->-                                 HigherOrderInfo ->-                                 T_ENonterminal-sem_ENonterminal_ENonterminal nt_ params_ classCtxs_ initial_ initialv_ nextVisits_ prevVisits_ (T_EProductions prods_) recursive_ hoInfo_ =-    (T_ENonterminal (\ _lhsIallFromToStates-                       _lhsIallInitStates-                       _lhsIallVisitKinds-                       _lhsIallchildvisit-                       _lhsIavisitdefs-                       _lhsIavisituses-                       _lhsIderivings-                       _lhsIimportBlocks-                       _lhsIinhmap-                       _lhsIlocalAttrTypes-                       _lhsImainFile-                       _lhsImainName-                       _lhsImoduleHeader-                       _lhsIoptions-                       _lhsIpragmaBlocks-                       _lhsIsynmap-                       _lhsItextBlocks-                       _lhsItypeSyns-                       _lhsIwrappers ->-                         (let _prodsOrename :: Bool-                              _prodsOnt :: NontermIdent-                              _prodsOparams :: ([Identifier])-                              _prodsOclassCtxs :: ClassContext-                              _lhsOoutput :: PP_Doc-                              _prodsOinhmap :: Attributes-                              _prodsOsynmap :: Attributes-                              _prodsOallInhmap :: (Map NontermIdent Attributes)-                              _prodsOallSynmap :: (Map NontermIdent Attributes)-                              _lhsOsemFunBndDefs :: (Seq PP_Doc)-                              _lhsOsemFunBndTps :: (Seq PP_Doc)-                              _prodsOinitial :: StateIdentifier-                              _prodsOallstates :: (Set StateIdentifier)-                              _lhsOappendMain :: ( PP_Doc )-                              _lhsOappendCommon :: ( PP_Doc )-                              _prodsOnextVisits :: (Map StateIdentifier StateCtx)-                              _prodsOprevVisits :: (Map StateIdentifier StateCtx)-                              _prodsOlocalAttrTypes :: (Map ConstructorIdent (Map Identifier Type))-                              _lhsOinitStates :: (Map NontermIdent Int)-                              _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                              _lhsOerrors :: (Seq Error)-                              _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))-                              _lhsOgenProdIO :: (IO ())-                              _lhsOimports :: ([PP_Doc])-                              _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)-                              _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))-                              _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))-                              _prodsOallFromToStates :: (Map VisitIdentifier (Int,Int))-                              _prodsOallInitStates :: (Map NontermIdent Int)-                              _prodsOallVisitKinds :: (Map VisitIdentifier VisitKind)-                              _prodsOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                              _prodsOavisitdefs :: (Map VisitIdentifier (Set Identifier))-                              _prodsOavisituses :: (Map VisitIdentifier (Set Identifier))-                              _prodsOimportBlocks :: PP_Doc-                              _prodsOmainFile :: String-                              _prodsOmainName :: String-                              _prodsOmoduleHeader :: (String -> String -> String -> Bool -> String)-                              _prodsOntType :: Type-                              _prodsOoptions :: Options-                              _prodsOpragmaBlocks :: String-                              _prodsOtextBlocks :: PP_Doc-                              _prodsIallvisits :: ([VisitStateState])-                              _prodsIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                              _prodsIcount :: Int-                              _prodsIdatatype :: ([PP_Doc])-                              _prodsIerrors :: (Seq Error)-                              _prodsIfromToStates :: (Map VisitIdentifier (Int,Int))-                              _prodsIgenProdIO :: (IO ())-                              _prodsIimports :: ([PP_Doc])-                              _prodsIsemFunBndDefs :: (Seq PP_Doc)-                              _prodsIsemFunBndTps :: (Seq PP_Doc)-                              _prodsIsem_nt :: PP_Doc-                              _prodsIsem_prod :: PP_Doc-                              _prodsIt_visits :: PP_Doc-                              _prodsIvisitKinds :: (Map VisitIdentifier VisitKind)-                              _prodsIvisitdefs :: (Map VisitIdentifier (Set Identifier))-                              _prodsIvisituses :: (Map VisitIdentifier (Set Identifier))-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 55, column 18)-                              _prodsOrename =-                                  ({-# LINE 55 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   rename _lhsIoptions-                                   {-# LINE 1266 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 63, column 18)-                              _prodsOnt =-                                  ({-# LINE 63 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   nt_-                                   {-# LINE 1272 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 75, column 3)-                              _prodsOparams =-                                  ({-# LINE 75 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   params_-                                   {-# LINE 1278 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 79, column 3)-                              _prodsOclassCtxs =-                                  ({-# LINE 79 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   classCtxs_-                                   {-# LINE 1284 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 96, column 18)-                              _lhsOoutput =-                                  ({-# LINE 96 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   ("-- " ++ getName nt_ ++ " " ++ replicate (60 - length (getName nt_)) '-')-                                   >-< (if dataTypes _lhsIoptions-                                        then "-- data"-                                             >-< _datatype-                                             >-< ""-                                        else empty)-                                   >-< (if _hasWrapper-                                        then "-- wrapper"-                                             >-< _wr_inh-                                             >-< _wr_syn-                                             >-< _wrapper-                                             >-< ""-                                        else empty)-                                   >-< (if   folds _lhsIoptions-                                        then "-- cata"-                                             >-< _sem_nt-                                             >-< ""-                                        else empty)-                                   >-< (if   semfuns _lhsIoptions-                                        then "-- semantic domain"-                                             >-< _t_init-                                             >-< _t_states-                                             >-< _k_states-                                             >-< _prodsIt_visits-                                             >-< _prodsIsem_prod-                                             >-< ""-                                        else empty)-                                   {-# LINE 1316 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 123, column 18)-                              _hasWrapper =-                                  ({-# LINE 123 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   nt_ `Set.member` _lhsIwrappers-                                   {-# LINE 1322 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 136, column 18)-                              _classPP =-                                  ({-# LINE 136 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   ppClasses $ classCtxsToDocs classCtxs_-                                   {-# LINE 1328 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 137, column 18)-                              _aliasPre =-                                  ({-# LINE 137 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   "type" >#< _classPP     >#< nt_ >#< _t_params     >#< "="-                                   {-# LINE 1334 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 138, column 18)-                              _datatype =-                                  ({-# LINE 138 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   case lookup nt_ _lhsItypeSyns of-                                      Nothing -> "data" >#< _classPP     >#< nt_ >#< _t_params-                                                 >-< ( if null _prodsIdatatype-                                                       then empty-                                                       else indent 2 $ vlist $ ( ("=" >#< head _prodsIdatatype)-                                                                               : (map ("|" >#<) $ tail _prodsIdatatype))-                                                     )-                                                 >-< indent 2 _derivings-                                      Just (List t)     -> _aliasPre     >#< "[" >#< show t >#< "]"-                                      Just (Maybe t)    -> _aliasPre     >#< "Maybe" >#< show t-                                      Just (Tuple ts)   -> _aliasPre     >#< pp_parens (ppCommas $ map (show . snd) ts)-                                      Just (Either l r) -> _aliasPre     >#< "Either" >#< show l >#< show r-                                      Just (Map k v)    -> _aliasPre     >#< "Data.Map" >#< pp_parens (show k) >#< show v-                                      Just (IntMap t)   -> _aliasPre     >#< "Data.IntMap.IntMap" >#< show t-                                      Just (OrdSet t)   -> _aliasPre     >#< "Data.Set.Set" >#< show t-                                      Just IntSet       -> _aliasPre     >#< "Data.IntSet.IntSet"-                                   {-# LINE 1355 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 155, column 18)-                              _derivings =-                                  ({-# LINE 155 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   case Map.lookup nt_ _lhsIderivings of-                                      Nothing -> empty-                                      Just s  -> if   Set.null s-                                                 then empty-                                                 else "deriving" >#< (pp_parens $ ppCommas $ map pp $ Set.toList s)-                                   {-# LINE 1365 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 228, column 18)-                              _fsemname =-                                  ({-# LINE 228 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   \x -> "sem_" ++ show x-                                   {-# LINE 1371 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 229, column 18)-                              _semname =-                                  ({-# LINE 229 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _fsemname     nt_-                                   {-# LINE 1377 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 230, column 18)-                              _frecarg =-                                  ({-# LINE 230 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   \t x -> case t of-                                              NT nt _ _ -> pp_parens (_fsemname nt >#< x)-                                              _         -> pp x-                                   {-# LINE 1385 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 236, column 18)-                              _sem_tp =-                                  ({-# LINE 236 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _quantPP     >#< _classPP     >#< nt_ >#< _t_params     >#< "->" >#< _t_type     >#< _t_params-                                   {-# LINE 1391 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 237, column 18)-                              _quantPP =-                                  ({-# LINE 237 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   ppQuants params_-                                   {-# LINE 1397 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 238, column 18)-                              _sem_nt =-                                  ({-# LINE 238 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _semPragma-                                   >-< _semname     >#< "::" >#< _sem_tp-                                   >-< case lookup nt_ _lhsItypeSyns of-                                          Nothing -> _prodsIsem_nt-                                          Just (List t) -> _semname     >#< "list" >#< "=" >#< "Prelude.foldr" >#< _semname     >|< "_Cons"-                                                           >#< _semname     >|< "_Nil"-                                                           >#< case t of-                                                                  NT nt _ _ -> pp_parens ("Prelude.map" >#< _fsemname nt >#< "list")-                                                                  _         -> pp "list"-                                          Just (Maybe t) -> _semname     >#< "Prelude.Nothing" >#< "=" >#< _semname     >|< "_Nothing"-                                                            >-< _semname     >#< pp_parens ("Prelude.Just just") >#< "="-                                                            >#< _semname     >|< "_Just" >#< _frecarg t "just"-                                          Just (Tuple ts) -> _semname     >#< pp_parens (ppCommas $ map fst ts) >#< "="-                                                             >#< _semname     >|< "_Tuple" >#< ppSpaced (map (\t -> _frecarg (snd t) (show $ fst t)) ts)-                                          Just (Either l r) -> _semname     >#< "(Prelude.Left left)" >#< "=" >#< _semname     >|< "_Left" >#< _frecarg l "left"-                                                               >-< _semname     >#< "(Prelude.Right right)" >#< "=" >#< _semname     >|< "_Right" >#< _frecarg r "right"-                                          Just (Map k v) -> _semname     >#< "m" >#< "=" >#< "Data.Map.foldrWithKey"-                                                            >#< _semname     >|< "_Entry" >#< _semname     >|< "_Nil"-                                                            >#< case v of-                                                                   NT nt _ _ -> pp_parens ("Data.Map.map" >#< _fsemname nt >#< "m")-                                                                   _         -> pp "m"-                                          Just (IntMap v) -> _semname     >#< "m" >#< "=" >#< "Data.IntMap.foldWithKey"-                                                             >#< _semname     >|< "_Entry" >#< _semname     >|< "_Nil"-                                                             >#< case v of-                                                                    NT nt _ _ -> pp_parens ("Data.IntMap.map" >#< _fsemname nt >#< "m")-                                                                    _         -> pp "m"-                                          Just (OrdSet t) -> _semname     >#< "s" >#< "=" >#< "Prelude.foldr" >#< _semname     >|< "_Entry"-                                                             >#< _semname     >|< "_Nil"-                                                             >#< pp_parens (-                                                                   ( case t of-                                                                       NT nt _ _ -> pp_parens ("Prelude.map" >#< _fsemname nt)-                                                                       _         -> empty-                                                                   ) >#< pp_parens ("Data.IntSet.elems" >#< "s")-                                                                 )-                                          Just IntSet     -> _semname     >#< "s" >#< "=" >#< "Prelude.foldr" >#< _semname     >|< "_Entry"-                                                             >#< _semname     >|< "_Nil"-                                                             >#< pp_parens ("Data.IntSet.elems" >#< "s")-                                   {-# LINE 1439 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 278, column 17)-                              _inlineNt =-                                  ({-# LINE 278 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   not (lateHigherOrderBinding _lhsIoptions) && not recursive_ && (_prodsIcount == 1 || (aggressiveInlinePragmas _lhsIoptions && not _hasWrapper    ))-                                   {-# LINE 1445 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 279, column 17)-                              _semPragma =-                                  ({-# LINE 279 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   if noInlinePragmas _lhsIoptions-                                   then empty-                                   else if _inlineNt-                                        then ppInline _semname-                                        else if helpInlining _lhsIoptions && not (lateHigherOrderBinding _lhsIoptions)-                                             then ppInlinable _semname-                                             else ppNoInline _semname-                                   {-# LINE 1457 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 325, column 19)-                              (Just _prodsOinhmap) =-                                  ({-# LINE 325 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   Map.lookup nt_ _lhsIinhmap-                                   {-# LINE 1463 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 326, column 19)-                              (Just _prodsOsynmap) =-                                  ({-# LINE 326 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   Map.lookup nt_ _lhsIsynmap-                                   {-# LINE 1469 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 327, column 18)-                              _prodsOallInhmap =-                                  ({-# LINE 327 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIinhmap-                                   {-# LINE 1475 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 328, column 18)-                              _prodsOallSynmap =-                                  ({-# LINE 328 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIsynmap-                                   {-# LINE 1481 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 349, column 18)-                              _outedges =-                                  ({-# LINE 349 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   Set.fromList $ map (\(_,f,_) -> f) _prodsIallvisits-                                   {-# LINE 1487 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 350, column 18)-                              _inedges =-                                  ({-# LINE 350 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   Set.fromList $ map (\(_,_,t) -> t) _prodsIallvisits-                                   {-# LINE 1493 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 351, column 18)-                              _allstates =-                                  ({-# LINE 351 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   Set.insert initial_ $ _inedges     `Set.union` _outedges-                                   {-# LINE 1499 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 352, column 18)-                              _stvisits =-                                  ({-# LINE 352 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   \st -> filter (\(v,f,t) -> f == st) _prodsIallvisits-                                   {-# LINE 1505 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 353, column 18)-                              _t_type =-                                  ({-# LINE 353 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   "T_" >|< nt_-                                   {-# LINE 1511 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 354, column 18)-                              _t_params =-                                  ({-# LINE 354 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   ppSpaced params_-                                   {-# LINE 1517 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 355, column 18)-                              _t_init =-                                  ({-# LINE 355 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   "newtype" >#< _t_type     >#< _t_params     >#< "=" >#< _t_type     >#<-                                     pp_braces (-                                       "attach_">|< _t_type     >#< "::"-                                         >#< ppMonadType _lhsIoptions >#< pp_parens (_t_type     >|< "_s" >|< initial_ >#< _t_params    ))-                                   {-# LINE 1526 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 359, column 18)-                              _t_states =-                                  ({-# LINE 359 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   vlist $ map (\st ->-                                      let nt_st = nt_ >|< "_s" >|< st-                                          t_st  = "T_" >|< nt_st-                                          k_st  = "K_" >|< nt_st-                                          c_st  = "C_" >|< nt_st-                                          inv_st  = "inv_" >|< nt_st-                                          nextVisit = Map.findWithDefault ManyVis st nextVisits_-                                      in  case nextVisit of-                                            NoneVis    -> "data" >#< t_st >#< _t_params     >#< "=" >#< c_st-                                            OneVis vId -> "newtype" >#< t_st >#< _t_params     >#< "=" >#< c_st-                                                           >#< (pp_braces $ inv_st >#< "::" >#< pp_parens (conNmTVisit nt_ vId >#< _t_params    ))-                                            ManyVis    -> "data" >#< t_st >#< _t_params     >#< "where" >#< c_st >#< "::"-                                                            >#< (pp_braces $ inv_st >#< "::" >#< "!" >|< pp_parens ("forall t." >#< k_st >#< _t_params     >#< "t" >#< "->" >#< "t"))-                                                            >#< "->" >#< t_st >#< _t_params-                                          ) $ Set.toList _allstates-                                   {-# LINE 1546 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 377, column 18)-                              _k_type =-                                  ({-# LINE 377 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   "K_" ++ show nt_-                                   {-# LINE 1552 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 378, column 18)-                              _k_states =-                                  ({-# LINE 378 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   vlist $ map (\st ->-                                      let nt_st = nt_ >|< "_s" >|< st-                                          k_st  = "K_" >|< nt_st-                                          outg  = filter (\(v,f,t) -> f == st) _prodsIallvisits-                                          visitlist = vlist $ map (\(v,f,t) ->-                                              _k_type     >|< "_v" >|< v >#< "::" >#< k_st >#< _t_params     >#< pp_parens (_t_type     >|< "_v" >|< v >#< _t_params    )-                                               ) outg-                                          nextVisit = Map.findWithDefault ManyVis st nextVisits_-                                          decl = "data" >#< k_st >#< "k" >#< _t_params     >#< "where" >-< indent 3 visitlist-                                      in  case nextVisit of-                                            NoneVis  -> empty-                                            OneVis _ -> empty-                                            ManyVis  -> decl-                                      ) $ Set.toList _allstates-                                   {-# LINE 1571 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 445, column 18)-                              _wr_inh =-                                  ({-# LINE 445 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _genwrap     "Inh" _wr_inhs-                                   {-# LINE 1577 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 446, column 18)-                              _wr_syn =-                                  ({-# LINE 446 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _genwrap     "Syn" _wr_syns-                                   {-# LINE 1583 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 447, column 18)-                              _genwrap =-                                  ({-# LINE 447 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   \nm attr -> "data" >#< nm >|< "_" >|< nt_ >#< _t_params     >#< "=" >#< nm >|< "_" >|< nt_ >#< "{"-                                               >#< (ppCommas $ map (\(i,t) -> i >|< "_" >|< nm >|< "_" >|< nt_ >#< "::"-                                               >#< (_addbang     $ pp_parens $ typeToHaskellString (Just nt_) [] t)) attr) >#< "}"-                                   {-# LINE 1591 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 450, column 18)-                              _synAttrs =-                                  ({-# LINE 450 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   fromJust $ Map.lookup nt_ _lhsIinhmap-                                   {-# LINE 1597 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 451, column 18)-                              _wr_inhs =-                                  ({-# LINE 451 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   Map.toList $ _wr_filter     $ _synAttrs-                                   {-# LINE 1603 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 452, column 18)-                              _wr_inhs1 =-                                  ({-# LINE 452 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   Map.toList _synAttrs-                                   {-# LINE 1609 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 453, column 18)-                              _wr_filter =-                                  ({-# LINE 453 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   if kennedyWarren _lhsIoptions && lateHigherOrderBinding _lhsIoptions-                                   then Map.delete idLateBindingAttr-                                   else id-                                   {-# LINE 1617 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 456, column 18)-                              _wr_syns =-                                  ({-# LINE 456 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   Map.toList $ fromJust $ Map.lookup nt_ _lhsIsynmap-                                   {-# LINE 1623 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 457, column 18)-                              _inhlist =-                                  ({-# LINE 457 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   map (lhsname True . fst) _wr_inhs-                                   {-# LINE 1629 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 458, column 18)-                              _inhlist1 =-                                  ({-# LINE 458 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   map (lhsname True . fst) _wr_inhs1-                                   {-# LINE 1635 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 459, column 18)-                              _synlist =-                                  ({-# LINE 459 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   map (lhsname False . fst) _wr_syns-                                   {-# LINE 1641 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 460, column 18)-                              _wrapname =-                                  ({-# LINE 460 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   "wrap_" ++ show nt_-                                   {-# LINE 1647 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 461, column 18)-                              _inhname =-                                  ({-# LINE 461 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   "Inh_" ++ show nt_-                                   {-# LINE 1653 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 462, column 18)-                              _synname =-                                  ({-# LINE 462 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   "Syn_" ++ show nt_-                                   {-# LINE 1659 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 463, column 18)-                              _firstVisitInfo =-                                  ({-# LINE 463 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   Map.findWithDefault ManyVis initial_ nextVisits_-                                   {-# LINE 1665 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 464, column 18)-                              _wrapper =-                                  ({-# LINE 464 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _wrapPragma-                                   >-< (_wrapname     >#< "::" >#< _quantPP     >#< _classPP     >#< _t_type     >#< _t_params     >#< "->"-                                         >#< _inhname     >#< _t_params     >#< "->" >#< ( if monadicWrappers _lhsIoptions then ppMonadType _lhsIoptions else empty) >#< pp_parens (_synname     >#< _t_params    ))-                                   >-< (_wrapname     >#< (_addbang     $ pp_parens (_t_type     >#< pp "act"))-                                       >#< (_addbang     $ pp_parens (_inhname-                                              >#< (ppSpaced $ map (_addbangWrap     . pp) _inhlist    )) >#< "="))-                                   >-<-                                   indent 3 (case initialv_ of-                                     Nothing -> _synname     >#< " { }"-                                     Just initv ->-                                       let inCon  = conNmTVisitIn nt_ initv-                                           outCon = conNmTVisitOut nt_ initv-                                           pat    = _addbang     $ pp_parens $ pat0-                                           pat0   = outCon >#< ppSpaced _synlist-                                           arg    = inCon >#< ppSpaced _inhlist1-                                           ind    = case _firstVisitInfo     of-                                                      NoneVis  -> error "wrapper: initial state should have a next visit but it has none"-                                                      OneVis _ -> empty-                                                      ManyVis  -> _k_type     >|< "_v" >|< initv-                                           extra  = if dummyTokenVisit _lhsIoptions-                                                    then pp $ dummyArg _lhsIoptions True-                                                    else empty-                                           convert = case Map.lookup initv _lhsIallVisitKinds of-                                                       Just kind -> case kind of-                                                                      VisitPure _  -> text "return"-                                                                      VisitMonadic -> empty-                                           unMonad | monadicWrappers _lhsIoptions = empty-                                                   | otherwise                    = unMon _lhsIoptions-                                       in unMonad >#< "("-                                          >-< indent 2 (-                                                 "do" >#< ( _addbang     (pp "sem") >#< "<-" >#< "act"-                                                          >-< "let" >#< _addbangWrap     (pp "arg") >#< "=" >#< arg-                                                          >-< pat >#< "<-" >#< convert >#< pp_parens ("inv_" >|< nt_ >|< "_s" >|< initial_ >#< "sem" >#< ind >#< "arg" >#< extra)-                                                          >-< "return" >#< pp_parens (_synname     >#< ppSpaced _synlist    )-                                                          )-                                               )-                                          >-< ")" )-                                   >-< if kennedyWarren _lhsIoptions && lateHigherOrderBinding _lhsIoptions-                                       then indent 2 ("where" >#< lhsname True idLateBindingAttr >#< "=" >#< lateBindingFieldNm _lhsImainName)-                                       else empty-                                   {-# LINE 1710 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 505, column 18)-                              _wrapPragma =-                                  ({-# LINE 505 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   if parallelInvoke _lhsIoptions && not (monadicWrappers _lhsIoptions)-                                   then ppNoInline _wrapname-                                   else if noInlinePragmas _lhsIoptions-                                        then empty-                                        else ppInlinable _wrapname-                                   {-# LINE 1720 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 517, column 3)-                              _lhsOsemFunBndDefs =-                                  ({-# LINE 517 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _semFunBndDef     Seq.<| _prodsIsemFunBndDefs-                                   {-# LINE 1726 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 518, column 3)-                              _lhsOsemFunBndTps =-                                  ({-# LINE 518 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _semFunBndTp     Seq.<| _prodsIsemFunBndTps-                                   {-# LINE 1732 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 519, column 3)-                              _semFunBndDef =-                                  ({-# LINE 519 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _semFunBndNm     >#< "=" >#< _semname-                                   {-# LINE 1738 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 520, column 3)-                              _semFunBndTp =-                                  ({-# LINE 520 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _semFunBndNm     >#< "::" >#< _sem_tp-                                   {-# LINE 1744 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 521, column 3)-                              _semFunBndNm =-                                  ({-# LINE 521 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   lateSemNtLabel nt_-                                   {-# LINE 1750 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 559, column 18)-                              _prodsOinitial =-                                  ({-# LINE 559 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   initial_-                                   {-# LINE 1756 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 560, column 18)-                              _prodsOallstates =-                                  ({-# LINE 560 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _allstates-                                   {-# LINE 1762 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1450, column 18)-                              _lhsOappendMain =-                                  ({-# LINE 1450 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   (if nt_ `Set.member` _lhsIwrappers-                                    then     _wr_inh-                                         >-< _wr_syn-                                         >-< _wrapper-                                    else empty)-                                   >-< _sem_nt-                                   {-# LINE 1773 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1456, column 18)-                              _lhsOappendCommon =-                                  ({-# LINE 1456 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   (if dataTypes _lhsIoptions then _datatype     else empty)-                                   >-< _t_init-                                   >-< _t_states-                                   >-< _k_states-                                   >-< _prodsIt_visits-                                   {-# LINE 1783 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1516, column 37)-                              _addbang =-                                  ({-# LINE 1516 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   \x -> if bangpats _lhsIoptions then "!" >|< x else x-                                   {-# LINE 1789 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1524, column 37)-                              _addbangWrap =-                                  ({-# LINE 1524 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   if strictWrap _lhsIoptions then _addbang     else id-                                   {-# LINE 1795 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1536, column 3)-                              _prodsOnextVisits =-                                  ({-# LINE 1536 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   nextVisits_-                                   {-# LINE 1801 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1537, column 3)-                              _prodsOprevVisits =-                                  ({-# LINE 1537 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   prevVisits_-                                   {-# LINE 1807 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1581, column 3)-                              _prodsOlocalAttrTypes =-                                  ({-# LINE 1581 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   Map.findWithDefault Map.empty nt_ _lhsIlocalAttrTypes-                                   {-# LINE 1813 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1608, column 3)-                              _lhsOinitStates =-                                  ({-# LINE 1608 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   Map.singleton nt_ initial_-                                   {-# LINE 1819 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1622, column 3)-                              _ntType =-                                  ({-# LINE 1622 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   NT nt_ (map show params_) False-                                   {-# LINE 1825 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1187, column 37)-                              _lhsOchildvisit =-                                  ({-# LINE 1187 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _prodsIchildvisit-                                   {-# LINE 1831 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)-                              _lhsOerrors =-                                  ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _prodsIerrors-                                   {-# LINE 1837 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1544, column 22)-                              _lhsOfromToStates =-                                  ({-# LINE 1544 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _prodsIfromToStates-                                   {-# LINE 1843 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1464, column 49)-                              _lhsOgenProdIO =-                                  ({-# LINE 1464 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _prodsIgenProdIO-                                   {-# LINE 1849 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1463, column 47)-                              _lhsOimports =-                                  ({-# LINE 1463 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _prodsIimports-                                   {-# LINE 1855 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)-                              _lhsOvisitKinds =-                                  ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _prodsIvisitKinds-                                   {-# LINE 1861 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1322, column 36)-                              _lhsOvisitdefs =-                                  ({-# LINE 1322 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _prodsIvisitdefs-                                   {-# LINE 1867 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1323, column 36)-                              _lhsOvisituses =-                                  ({-# LINE 1323 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _prodsIvisituses-                                   {-# LINE 1873 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _prodsOallFromToStates =-                                  ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallFromToStates-                                   {-# LINE 1879 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _prodsOallInitStates =-                                  ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallInitStates-                                   {-# LINE 1885 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _prodsOallVisitKinds =-                                  ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallVisitKinds-                                   {-# LINE 1891 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _prodsOallchildvisit =-                                  ({-# LINE 1186 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallchildvisit-                                   {-# LINE 1897 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _prodsOavisitdefs =-                                  ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIavisitdefs-                                   {-# LINE 1903 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _prodsOavisituses =-                                  ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIavisituses-                                   {-# LINE 1909 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _prodsOimportBlocks =-                                  ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIimportBlocks-                                   {-# LINE 1915 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _prodsOmainFile =-                                  ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsImainFile-                                   {-# LINE 1921 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _prodsOmainName =-                                  ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsImainName-                                   {-# LINE 1927 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _prodsOmoduleHeader =-                                  ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsImoduleHeader-                                   {-# LINE 1933 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (from local)-                              _prodsOntType =-                                  ({-# LINE 1620 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _ntType-                                   {-# LINE 1939 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _prodsOoptions =-                                  ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIoptions-                                   {-# LINE 1945 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _prodsOpragmaBlocks =-                                  ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIpragmaBlocks-                                   {-# LINE 1951 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _prodsOtextBlocks =-                                  ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsItextBlocks-                                   {-# LINE 1957 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              ( _prodsIallvisits,_prodsIchildvisit,_prodsIcount,_prodsIdatatype,_prodsIerrors,_prodsIfromToStates,_prodsIgenProdIO,_prodsIimports,_prodsIsemFunBndDefs,_prodsIsemFunBndTps,_prodsIsem_nt,_prodsIsem_prod,_prodsIt_visits,_prodsIvisitKinds,_prodsIvisitdefs,_prodsIvisituses) =-                                  prods_ _prodsOallFromToStates _prodsOallInhmap _prodsOallInitStates _prodsOallSynmap _prodsOallVisitKinds _prodsOallchildvisit _prodsOallstates _prodsOavisitdefs _prodsOavisituses _prodsOclassCtxs _prodsOimportBlocks _prodsOinhmap _prodsOinitial _prodsOlocalAttrTypes _prodsOmainFile _prodsOmainName _prodsOmoduleHeader _prodsOnextVisits _prodsOnt _prodsOntType _prodsOoptions _prodsOparams _prodsOpragmaBlocks _prodsOprevVisits _prodsOrename _prodsOsynmap _prodsOtextBlocks-                          in  ( _lhsOappendCommon,_lhsOappendMain,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOinitStates,_lhsOoutput,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))--- ENonterminals ------------------------------------------------{--   visit 0:-      inherited attributes:-         allFromToStates      : Map VisitIdentifier (Int,Int)-         allInitStates        : Map NontermIdent Int-         allVisitKinds        : Map VisitIdentifier VisitKind-         allchildvisit        : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))-         avisitdefs           : Map VisitIdentifier (Set Identifier)-         avisituses           : Map VisitIdentifier (Set Identifier)-         derivings            : Derivings-         importBlocks         : PP_Doc-         inhmap               : Map NontermIdent Attributes-         localAttrTypes       : Map NontermIdent (Map ConstructorIdent (Map Identifier Type))-         mainFile             : String-         mainName             : String-         moduleHeader         : String -> String -> String -> Bool -> String-         options              : Options-         pragmaBlocks         : String-         synmap               : Map NontermIdent Attributes-         textBlocks           : PP_Doc-         typeSyns             : TypeSyns-         wrappers             : Set NontermIdent-      synthesized attributes:-         appendCommon         : [PP_Doc]-         appendMain           : [PP_Doc]-         childvisit           : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))-         errors               : Seq Error-         fromToStates         : Map VisitIdentifier (Int,Int)-         genProdIO            : IO ()-         imports              : [PP_Doc]-         initStates           : Map NontermIdent Int-         output               : PP_Doc-         semFunBndDefs        : Seq PP_Doc-         semFunBndTps         : Seq PP_Doc-         visitKinds           : Map VisitIdentifier VisitKind-         visitdefs            : Map VisitIdentifier (Set Identifier)-         visituses            : Map VisitIdentifier (Set Identifier)-   alternatives:-      alternative Cons:-         child hd             : ENonterminal -         child tl             : ENonterminals -      alternative Nil:--}--- cata-sem_ENonterminals :: ENonterminals ->-                     T_ENonterminals-sem_ENonterminals list =-    (Prelude.foldr sem_ENonterminals_Cons sem_ENonterminals_Nil (Prelude.map sem_ENonterminal list))--- semantic domain-newtype T_ENonterminals = T_ENonterminals ((Map VisitIdentifier (Int,Int)) ->-                                           (Map NontermIdent Int) ->-                                           (Map VisitIdentifier VisitKind) ->-                                           (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))) ->-                                           (Map VisitIdentifier (Set Identifier)) ->-                                           (Map VisitIdentifier (Set Identifier)) ->-                                           Derivings ->-                                           PP_Doc ->-                                           (Map NontermIdent Attributes) ->-                                           (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))) ->-                                           String ->-                                           String ->-                                           (String -> String -> String -> Bool -> String) ->-                                           Options ->-                                           String ->-                                           (Map NontermIdent Attributes) ->-                                           PP_Doc ->-                                           TypeSyns ->-                                           (Set NontermIdent) ->-                                           ( ([PP_Doc]),([PP_Doc]),(Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),(Seq Error),(Map VisitIdentifier (Int,Int)),(IO ()),([PP_Doc]),(Map NontermIdent Int),PP_Doc,(Seq PP_Doc),(Seq PP_Doc),(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier))))-data Inh_ENonterminals = Inh_ENonterminals {allFromToStates_Inh_ENonterminals :: (Map VisitIdentifier (Int,Int)),allInitStates_Inh_ENonterminals :: (Map NontermIdent Int),allVisitKinds_Inh_ENonterminals :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_ENonterminals :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),avisitdefs_Inh_ENonterminals :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_ENonterminals :: (Map VisitIdentifier (Set Identifier)),derivings_Inh_ENonterminals :: Derivings,importBlocks_Inh_ENonterminals :: PP_Doc,inhmap_Inh_ENonterminals :: (Map NontermIdent Attributes),localAttrTypes_Inh_ENonterminals :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))),mainFile_Inh_ENonterminals :: String,mainName_Inh_ENonterminals :: String,moduleHeader_Inh_ENonterminals :: (String -> String -> String -> Bool -> String),options_Inh_ENonterminals :: Options,pragmaBlocks_Inh_ENonterminals :: String,synmap_Inh_ENonterminals :: (Map NontermIdent Attributes),textBlocks_Inh_ENonterminals :: PP_Doc,typeSyns_Inh_ENonterminals :: TypeSyns,wrappers_Inh_ENonterminals :: (Set NontermIdent)}-data Syn_ENonterminals = Syn_ENonterminals {appendCommon_Syn_ENonterminals :: ([PP_Doc]),appendMain_Syn_ENonterminals :: ([PP_Doc]),childvisit_Syn_ENonterminals :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),errors_Syn_ENonterminals :: (Seq Error),fromToStates_Syn_ENonterminals :: (Map VisitIdentifier (Int,Int)),genProdIO_Syn_ENonterminals :: (IO ()),imports_Syn_ENonterminals :: ([PP_Doc]),initStates_Syn_ENonterminals :: (Map NontermIdent Int),output_Syn_ENonterminals :: PP_Doc,semFunBndDefs_Syn_ENonterminals :: (Seq PP_Doc),semFunBndTps_Syn_ENonterminals :: (Seq PP_Doc),visitKinds_Syn_ENonterminals :: (Map VisitIdentifier VisitKind),visitdefs_Syn_ENonterminals :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_ENonterminals :: (Map VisitIdentifier (Set Identifier))}-wrap_ENonterminals :: T_ENonterminals ->-                      Inh_ENonterminals ->-                      Syn_ENonterminals-wrap_ENonterminals (T_ENonterminals sem) (Inh_ENonterminals _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIderivings _lhsIimportBlocks _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIpragmaBlocks _lhsIsynmap _lhsItextBlocks _lhsItypeSyns _lhsIwrappers) =-    (let ( _lhsOappendCommon,_lhsOappendMain,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOinitStates,_lhsOoutput,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIderivings _lhsIimportBlocks _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIpragmaBlocks _lhsIsynmap _lhsItextBlocks _lhsItypeSyns _lhsIwrappers-     in  (Syn_ENonterminals _lhsOappendCommon _lhsOappendMain _lhsOchildvisit _lhsOerrors _lhsOfromToStates _lhsOgenProdIO _lhsOimports _lhsOinitStates _lhsOoutput _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses))-sem_ENonterminals_Cons :: T_ENonterminal ->-                          T_ENonterminals ->-                          T_ENonterminals-sem_ENonterminals_Cons (T_ENonterminal hd_) (T_ENonterminals tl_) =-    (T_ENonterminals (\ _lhsIallFromToStates-                        _lhsIallInitStates-                        _lhsIallVisitKinds-                        _lhsIallchildvisit-                        _lhsIavisitdefs-                        _lhsIavisituses-                        _lhsIderivings-                        _lhsIimportBlocks-                        _lhsIinhmap-                        _lhsIlocalAttrTypes-                        _lhsImainFile-                        _lhsImainName-                        _lhsImoduleHeader-                        _lhsIoptions-                        _lhsIpragmaBlocks-                        _lhsIsynmap-                        _lhsItextBlocks-                        _lhsItypeSyns-                        _lhsIwrappers ->-                          (let _lhsOappendCommon :: ([PP_Doc])-                               _lhsOappendMain :: ([PP_Doc])-                               _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                               _lhsOerrors :: (Seq Error)-                               _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))-                               _lhsOgenProdIO :: (IO ())-                               _lhsOimports :: ([PP_Doc])-                               _lhsOinitStates :: (Map NontermIdent Int)-                               _lhsOoutput :: PP_Doc-                               _lhsOsemFunBndDefs :: (Seq PP_Doc)-                               _lhsOsemFunBndTps :: (Seq PP_Doc)-                               _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)-                               _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))-                               _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))-                               _hdOallFromToStates :: (Map VisitIdentifier (Int,Int))-                               _hdOallInitStates :: (Map NontermIdent Int)-                               _hdOallVisitKinds :: (Map VisitIdentifier VisitKind)-                               _hdOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                               _hdOavisitdefs :: (Map VisitIdentifier (Set Identifier))-                               _hdOavisituses :: (Map VisitIdentifier (Set Identifier))-                               _hdOderivings :: Derivings-                               _hdOimportBlocks :: PP_Doc-                               _hdOinhmap :: (Map NontermIdent Attributes)-                               _hdOlocalAttrTypes :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type)))-                               _hdOmainFile :: String-                               _hdOmainName :: String-                               _hdOmoduleHeader :: (String -> String -> String -> Bool -> String)-                               _hdOoptions :: Options-                               _hdOpragmaBlocks :: String-                               _hdOsynmap :: (Map NontermIdent Attributes)-                               _hdOtextBlocks :: PP_Doc-                               _hdOtypeSyns :: TypeSyns-                               _hdOwrappers :: (Set NontermIdent)-                               _tlOallFromToStates :: (Map VisitIdentifier (Int,Int))-                               _tlOallInitStates :: (Map NontermIdent Int)-                               _tlOallVisitKinds :: (Map VisitIdentifier VisitKind)-                               _tlOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                               _tlOavisitdefs :: (Map VisitIdentifier (Set Identifier))-                               _tlOavisituses :: (Map VisitIdentifier (Set Identifier))-                               _tlOderivings :: Derivings-                               _tlOimportBlocks :: PP_Doc-                               _tlOinhmap :: (Map NontermIdent Attributes)-                               _tlOlocalAttrTypes :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type)))-                               _tlOmainFile :: String-                               _tlOmainName :: String-                               _tlOmoduleHeader :: (String -> String -> String -> Bool -> String)-                               _tlOoptions :: Options-                               _tlOpragmaBlocks :: String-                               _tlOsynmap :: (Map NontermIdent Attributes)-                               _tlOtextBlocks :: PP_Doc-                               _tlOtypeSyns :: TypeSyns-                               _tlOwrappers :: (Set NontermIdent)-                               _hdIappendCommon :: ( PP_Doc )-                               _hdIappendMain :: ( PP_Doc )-                               _hdIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                               _hdIerrors :: (Seq Error)-                               _hdIfromToStates :: (Map VisitIdentifier (Int,Int))-                               _hdIgenProdIO :: (IO ())-                               _hdIimports :: ([PP_Doc])-                               _hdIinitStates :: (Map NontermIdent Int)-                               _hdIoutput :: PP_Doc-                               _hdIsemFunBndDefs :: (Seq PP_Doc)-                               _hdIsemFunBndTps :: (Seq PP_Doc)-                               _hdIvisitKinds :: (Map VisitIdentifier VisitKind)-                               _hdIvisitdefs :: (Map VisitIdentifier (Set Identifier))-                               _hdIvisituses :: (Map VisitIdentifier (Set Identifier))-                               _tlIappendCommon :: ([PP_Doc])-                               _tlIappendMain :: ([PP_Doc])-                               _tlIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                               _tlIerrors :: (Seq Error)-                               _tlIfromToStates :: (Map VisitIdentifier (Int,Int))-                               _tlIgenProdIO :: (IO ())-                               _tlIimports :: ([PP_Doc])-                               _tlIinitStates :: (Map NontermIdent Int)-                               _tlIoutput :: PP_Doc-                               _tlIsemFunBndDefs :: (Seq PP_Doc)-                               _tlIsemFunBndTps :: (Seq PP_Doc)-                               _tlIvisitKinds :: (Map VisitIdentifier VisitKind)-                               _tlIvisitdefs :: (Map VisitIdentifier (Set Identifier))-                               _tlIvisituses :: (Map VisitIdentifier (Set Identifier))-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1447, column 51)-                               _lhsOappendCommon =-                                   ({-# LINE 1447 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _hdIappendCommon : _tlIappendCommon-                                    {-# LINE 2147 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1447, column 51)-                               _lhsOappendMain =-                                   ({-# LINE 1447 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _hdIappendMain : _tlIappendMain-                                    {-# LINE 2153 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1187, column 37)-                               _lhsOchildvisit =-                                   ({-# LINE 1187 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _hdIchildvisit `Map.union` _tlIchildvisit-                                    {-# LINE 2159 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)-                               _lhsOerrors =-                                   ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _hdIerrors Seq.>< _tlIerrors-                                    {-# LINE 2165 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1544, column 22)-                               _lhsOfromToStates =-                                   ({-# LINE 1544 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _hdIfromToStates `mappend` _tlIfromToStates-                                    {-# LINE 2171 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1464, column 49)-                               _lhsOgenProdIO =-                                   ({-# LINE 1464 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _hdIgenProdIO >> _tlIgenProdIO-                                    {-# LINE 2177 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1463, column 47)-                               _lhsOimports =-                                   ({-# LINE 1463 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _hdIimports ++ _tlIimports-                                    {-# LINE 2183 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1603, column 50)-                               _lhsOinitStates =-                                   ({-# LINE 1603 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _hdIinitStates `mappend` _tlIinitStates-                                    {-# LINE 2189 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 90, column 45)-                               _lhsOoutput =-                                   ({-# LINE 90 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _hdIoutput >-< _tlIoutput-                                    {-# LINE 2195 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 515, column 92)-                               _lhsOsemFunBndDefs =-                                   ({-# LINE 515 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _hdIsemFunBndDefs Seq.>< _tlIsemFunBndDefs-                                    {-# LINE 2201 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 515, column 92)-                               _lhsOsemFunBndTps =-                                   ({-# LINE 515 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _hdIsemFunBndTps Seq.>< _tlIsemFunBndTps-                                    {-# LINE 2207 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)-                               _lhsOvisitKinds =-                                   ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _hdIvisitKinds `mappend` _tlIvisitKinds-                                    {-# LINE 2213 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1322, column 36)-                               _lhsOvisitdefs =-                                   ({-# LINE 1322 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _hdIvisitdefs `uwSetUnion` _tlIvisitdefs-                                    {-# LINE 2219 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1323, column 36)-                               _lhsOvisituses =-                                   ({-# LINE 1323 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _hdIvisituses `uwSetUnion` _tlIvisituses-                                    {-# LINE 2225 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOallFromToStates =-                                   ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIallFromToStates-                                    {-# LINE 2231 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOallInitStates =-                                   ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIallInitStates-                                    {-# LINE 2237 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOallVisitKinds =-                                   ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIallVisitKinds-                                    {-# LINE 2243 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOallchildvisit =-                                   ({-# LINE 1186 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIallchildvisit-                                    {-# LINE 2249 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOavisitdefs =-                                   ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIavisitdefs-                                    {-# LINE 2255 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOavisituses =-                                   ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIavisituses-                                    {-# LINE 2261 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOderivings =-                                   ({-# LINE 129 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIderivings-                                    {-# LINE 2267 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOimportBlocks =-                                   ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIimportBlocks-                                    {-# LINE 2273 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOinhmap =-                                   ({-# LINE 312 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIinhmap-                                    {-# LINE 2279 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOlocalAttrTypes =-                                   ({-# LINE 1576 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIlocalAttrTypes-                                    {-# LINE 2285 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOmainFile =-                                   ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsImainFile-                                    {-# LINE 2291 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOmainName =-                                   ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsImainName-                                    {-# LINE 2297 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOmoduleHeader =-                                   ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsImoduleHeader-                                    {-# LINE 2303 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOoptions =-                                   ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIoptions-                                    {-# LINE 2309 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOpragmaBlocks =-                                   ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIpragmaBlocks-                                    {-# LINE 2315 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOsynmap =-                                   ({-# LINE 313 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIsynmap-                                    {-# LINE 2321 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOtextBlocks =-                                   ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsItextBlocks-                                    {-# LINE 2327 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOtypeSyns =-                                   ({-# LINE 128 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsItypeSyns-                                    {-# LINE 2333 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _hdOwrappers =-                                   ({-# LINE 89 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIwrappers-                                    {-# LINE 2339 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOallFromToStates =-                                   ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIallFromToStates-                                    {-# LINE 2345 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOallInitStates =-                                   ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIallInitStates-                                    {-# LINE 2351 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOallVisitKinds =-                                   ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIallVisitKinds-                                    {-# LINE 2357 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOallchildvisit =-                                   ({-# LINE 1186 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIallchildvisit-                                    {-# LINE 2363 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOavisitdefs =-                                   ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIavisitdefs-                                    {-# LINE 2369 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOavisituses =-                                   ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIavisituses-                                    {-# LINE 2375 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOderivings =-                                   ({-# LINE 129 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIderivings-                                    {-# LINE 2381 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOimportBlocks =-                                   ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIimportBlocks-                                    {-# LINE 2387 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOinhmap =-                                   ({-# LINE 312 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIinhmap-                                    {-# LINE 2393 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOlocalAttrTypes =-                                   ({-# LINE 1576 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIlocalAttrTypes-                                    {-# LINE 2399 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOmainFile =-                                   ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsImainFile-                                    {-# LINE 2405 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOmainName =-                                   ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsImainName-                                    {-# LINE 2411 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOmoduleHeader =-                                   ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsImoduleHeader-                                    {-# LINE 2417 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOoptions =-                                   ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIoptions-                                    {-# LINE 2423 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOpragmaBlocks =-                                   ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIpragmaBlocks-                                    {-# LINE 2429 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOsynmap =-                                   ({-# LINE 313 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIsynmap-                                    {-# LINE 2435 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOtextBlocks =-                                   ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsItextBlocks-                                    {-# LINE 2441 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOtypeSyns =-                                   ({-# LINE 128 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsItypeSyns-                                    {-# LINE 2447 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _tlOwrappers =-                                   ({-# LINE 89 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIwrappers-                                    {-# LINE 2453 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               ( _hdIappendCommon,_hdIappendMain,_hdIchildvisit,_hdIerrors,_hdIfromToStates,_hdIgenProdIO,_hdIimports,_hdIinitStates,_hdIoutput,_hdIsemFunBndDefs,_hdIsemFunBndTps,_hdIvisitKinds,_hdIvisitdefs,_hdIvisituses) =-                                   hd_ _hdOallFromToStates _hdOallInitStates _hdOallVisitKinds _hdOallchildvisit _hdOavisitdefs _hdOavisituses _hdOderivings _hdOimportBlocks _hdOinhmap _hdOlocalAttrTypes _hdOmainFile _hdOmainName _hdOmoduleHeader _hdOoptions _hdOpragmaBlocks _hdOsynmap _hdOtextBlocks _hdOtypeSyns _hdOwrappers-                               ( _tlIappendCommon,_tlIappendMain,_tlIchildvisit,_tlIerrors,_tlIfromToStates,_tlIgenProdIO,_tlIimports,_tlIinitStates,_tlIoutput,_tlIsemFunBndDefs,_tlIsemFunBndTps,_tlIvisitKinds,_tlIvisitdefs,_tlIvisituses) =-                                   tl_ _tlOallFromToStates _tlOallInitStates _tlOallVisitKinds _tlOallchildvisit _tlOavisitdefs _tlOavisituses _tlOderivings _tlOimportBlocks _tlOinhmap _tlOlocalAttrTypes _tlOmainFile _tlOmainName _tlOmoduleHeader _tlOoptions _tlOpragmaBlocks _tlOsynmap _tlOtextBlocks _tlOtypeSyns _tlOwrappers-                           in  ( _lhsOappendCommon,_lhsOappendMain,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOinitStates,_lhsOoutput,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))-sem_ENonterminals_Nil :: T_ENonterminals-sem_ENonterminals_Nil =-    (T_ENonterminals (\ _lhsIallFromToStates-                        _lhsIallInitStates-                        _lhsIallVisitKinds-                        _lhsIallchildvisit-                        _lhsIavisitdefs-                        _lhsIavisituses-                        _lhsIderivings-                        _lhsIimportBlocks-                        _lhsIinhmap-                        _lhsIlocalAttrTypes-                        _lhsImainFile-                        _lhsImainName-                        _lhsImoduleHeader-                        _lhsIoptions-                        _lhsIpragmaBlocks-                        _lhsIsynmap-                        _lhsItextBlocks-                        _lhsItypeSyns-                        _lhsIwrappers ->-                          (let _lhsOappendCommon :: ([PP_Doc])-                               _lhsOappendMain :: ([PP_Doc])-                               _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                               _lhsOerrors :: (Seq Error)-                               _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))-                               _lhsOgenProdIO :: (IO ())-                               _lhsOimports :: ([PP_Doc])-                               _lhsOinitStates :: (Map NontermIdent Int)-                               _lhsOoutput :: PP_Doc-                               _lhsOsemFunBndDefs :: (Seq PP_Doc)-                               _lhsOsemFunBndTps :: (Seq PP_Doc)-                               _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)-                               _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))-                               _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1447, column 51)-                               _lhsOappendCommon =-                                   ({-# LINE 1447 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    []-                                    {-# LINE 2499 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1447, column 51)-                               _lhsOappendMain =-                                   ({-# LINE 1447 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    []-                                    {-# LINE 2505 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1187, column 37)-                               _lhsOchildvisit =-                                   ({-# LINE 1187 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    Map.empty-                                    {-# LINE 2511 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)-                               _lhsOerrors =-                                   ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    Seq.empty-                                    {-# LINE 2517 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1544, column 22)-                               _lhsOfromToStates =-                                   ({-# LINE 1544 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    mempty-                                    {-# LINE 2523 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1464, column 49)-                               _lhsOgenProdIO =-                                   ({-# LINE 1464 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    return ()-                                    {-# LINE 2529 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1463, column 47)-                               _lhsOimports =-                                   ({-# LINE 1463 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    []-                                    {-# LINE 2535 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1603, column 50)-                               _lhsOinitStates =-                                   ({-# LINE 1603 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    mempty-                                    {-# LINE 2541 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 90, column 45)-                               _lhsOoutput =-                                   ({-# LINE 90 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    empty-                                    {-# LINE 2547 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 515, column 92)-                               _lhsOsemFunBndDefs =-                                   ({-# LINE 515 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    Seq.empty-                                    {-# LINE 2553 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 515, column 92)-                               _lhsOsemFunBndTps =-                                   ({-# LINE 515 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    Seq.empty-                                    {-# LINE 2559 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)-                               _lhsOvisitKinds =-                                   ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    mempty-                                    {-# LINE 2565 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1322, column 36)-                               _lhsOvisitdefs =-                                   ({-# LINE 1322 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    Map.empty-                                    {-# LINE 2571 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1323, column 36)-                               _lhsOvisituses =-                                   ({-# LINE 1323 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    Map.empty-                                    {-# LINE 2577 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                           in  ( _lhsOappendCommon,_lhsOappendMain,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOinitStates,_lhsOoutput,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))--- EProduction --------------------------------------------------{--   visit 0:-      inherited attributes:-         allFromToStates      : Map VisitIdentifier (Int,Int)-         allInhmap            : Map NontermIdent Attributes-         allInitStates        : Map NontermIdent Int-         allSynmap            : Map NontermIdent Attributes-         allVisitKinds        : Map VisitIdentifier VisitKind-         allchildvisit        : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))-         allstates            : Set StateIdentifier-         avisitdefs           : Map VisitIdentifier (Set Identifier)-         avisituses           : Map VisitIdentifier (Set Identifier)-         classCtxs            : ClassContext-         importBlocks         : PP_Doc-         inhmap               : Attributes-         initial              : StateIdentifier-         localAttrTypes       : Map ConstructorIdent (Map Identifier Type)-         mainFile             : String-         mainName             : String-         moduleHeader         : String -> String -> String -> Bool -> String-         nextVisits           : Map StateIdentifier StateCtx-         nt                   : NontermIdent-         ntType               : Type-         options              : Options-         params               : [Identifier]-         pragmaBlocks         : String-         prevVisits           : Map StateIdentifier StateCtx-         rename               : Bool-         synmap               : Attributes-         textBlocks           : PP_Doc-      synthesized attributes:-         allvisits            : [VisitStateState]-         childvisit           : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))-         count                : Int-         datatype             : PP_Doc-         errors               : Seq Error-         fromToStates         : Map VisitIdentifier (Int,Int)-         genProdIO            : IO ()-         imports              : [PP_Doc]-         semFunBndDefs        : Seq PP_Doc-         semFunBndTps         : Seq PP_Doc-         sem_nt               : PP_Doc-         sem_prod             : PP_Doc-         t_visits             : PP_Doc-         visitKinds           : Map VisitIdentifier VisitKind-         visitdefs            : Map VisitIdentifier (Set Identifier)-         visituses            : Map VisitIdentifier (Set Identifier)-   alternatives:-      alternative EProduction:-         child con            : {ConstructorIdent}-         child params         : {[Identifier]}-         child constraints    : {[Type]}-         child rules          : ERules -         child children       : EChildren -         child visits         : Visits -         visit 0:-            local classPP1    : _-            local quantPP1    : _-            local semFunBndDef : _-            local semFunBndTp : _-            local semFunBndNm : _-            local t_type      : _-            local t_params    : _-            local args        : _-            local semname     : _-            local sem_tp      : _-            local classPP2    : _-            local quantPP2    : _-            local sem_prod    : _-            local mkSemBody   : _-            local mbInitializer : _-            local scc         : _-            local semInlinePragma : _-            local outerlet    : _-            local statefns    : _-            local genstfn     : _-            local stargs      : _-            local stks        : _-            local stvisits    : _-            local stvs        : _-            local lazyIntras  : _-            local moduleName  : _-            local suffix      : _-            local outputfile  : _-            local ppMonadImports : _-            local addbang     : _-            local childTypes  : _-            local localAttrTypes : _--}--- cata-sem_EProduction :: EProduction ->-                   T_EProduction-sem_EProduction (EProduction _con _params _constraints _rules _children _visits) =-    (sem_EProduction_EProduction _con _params _constraints (sem_ERules _rules) (sem_EChildren _children) (sem_Visits _visits))--- semantic domain-newtype T_EProduction = T_EProduction ((Map VisitIdentifier (Int,Int)) ->-                                       (Map NontermIdent Attributes) ->-                                       (Map NontermIdent Int) ->-                                       (Map NontermIdent Attributes) ->-                                       (Map VisitIdentifier VisitKind) ->-                                       (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))) ->-                                       (Set StateIdentifier) ->-                                       (Map VisitIdentifier (Set Identifier)) ->-                                       (Map VisitIdentifier (Set Identifier)) ->-                                       ClassContext ->-                                       PP_Doc ->-                                       Attributes ->-                                       StateIdentifier ->-                                       (Map ConstructorIdent (Map Identifier Type)) ->-                                       String ->-                                       String ->-                                       (String -> String -> String -> Bool -> String) ->-                                       (Map StateIdentifier StateCtx) ->-                                       NontermIdent ->-                                       Type ->-                                       Options ->-                                       ([Identifier]) ->-                                       String ->-                                       (Map StateIdentifier StateCtx) ->-                                       Bool ->-                                       Attributes ->-                                       PP_Doc ->-                                       ( ([VisitStateState]),(Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),Int,PP_Doc,(Seq Error),(Map VisitIdentifier (Int,Int)),(IO ()),([PP_Doc]),(Seq PP_Doc),(Seq PP_Doc),PP_Doc,PP_Doc,PP_Doc,(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier))))-data Inh_EProduction = Inh_EProduction {allFromToStates_Inh_EProduction :: (Map VisitIdentifier (Int,Int)),allInhmap_Inh_EProduction :: (Map NontermIdent Attributes),allInitStates_Inh_EProduction :: (Map NontermIdent Int),allSynmap_Inh_EProduction :: (Map NontermIdent Attributes),allVisitKinds_Inh_EProduction :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_EProduction :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),allstates_Inh_EProduction :: (Set StateIdentifier),avisitdefs_Inh_EProduction :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_EProduction :: (Map VisitIdentifier (Set Identifier)),classCtxs_Inh_EProduction :: ClassContext,importBlocks_Inh_EProduction :: PP_Doc,inhmap_Inh_EProduction :: Attributes,initial_Inh_EProduction :: StateIdentifier,localAttrTypes_Inh_EProduction :: (Map ConstructorIdent (Map Identifier Type)),mainFile_Inh_EProduction :: String,mainName_Inh_EProduction :: String,moduleHeader_Inh_EProduction :: (String -> String -> String -> Bool -> String),nextVisits_Inh_EProduction :: (Map StateIdentifier StateCtx),nt_Inh_EProduction :: NontermIdent,ntType_Inh_EProduction :: Type,options_Inh_EProduction :: Options,params_Inh_EProduction :: ([Identifier]),pragmaBlocks_Inh_EProduction :: String,prevVisits_Inh_EProduction :: (Map StateIdentifier StateCtx),rename_Inh_EProduction :: Bool,synmap_Inh_EProduction :: Attributes,textBlocks_Inh_EProduction :: PP_Doc}-data Syn_EProduction = Syn_EProduction {allvisits_Syn_EProduction :: ([VisitStateState]),childvisit_Syn_EProduction :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),count_Syn_EProduction :: Int,datatype_Syn_EProduction :: PP_Doc,errors_Syn_EProduction :: (Seq Error),fromToStates_Syn_EProduction :: (Map VisitIdentifier (Int,Int)),genProdIO_Syn_EProduction :: (IO ()),imports_Syn_EProduction :: ([PP_Doc]),semFunBndDefs_Syn_EProduction :: (Seq PP_Doc),semFunBndTps_Syn_EProduction :: (Seq PP_Doc),sem_nt_Syn_EProduction :: PP_Doc,sem_prod_Syn_EProduction :: PP_Doc,t_visits_Syn_EProduction :: PP_Doc,visitKinds_Syn_EProduction :: (Map VisitIdentifier VisitKind),visitdefs_Syn_EProduction :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_EProduction :: (Map VisitIdentifier (Set Identifier))}-wrap_EProduction :: T_EProduction ->-                    Inh_EProduction ->-                    Syn_EProduction-wrap_EProduction (T_EProduction sem) (Inh_EProduction _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIclassCtxs _lhsIimportBlocks _lhsIinhmap _lhsIinitial _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInextVisits _lhsInt _lhsIntType _lhsIoptions _lhsIparams _lhsIpragmaBlocks _lhsIprevVisits _lhsIrename _lhsIsynmap _lhsItextBlocks) =-    (let ( _lhsOallvisits,_lhsOchildvisit,_lhsOcount,_lhsOdatatype,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIclassCtxs _lhsIimportBlocks _lhsIinhmap _lhsIinitial _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInextVisits _lhsInt _lhsIntType _lhsIoptions _lhsIparams _lhsIpragmaBlocks _lhsIprevVisits _lhsIrename _lhsIsynmap _lhsItextBlocks-     in  (Syn_EProduction _lhsOallvisits _lhsOchildvisit _lhsOcount _lhsOdatatype _lhsOerrors _lhsOfromToStates _lhsOgenProdIO _lhsOimports _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOsem_nt _lhsOsem_prod _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses))-sem_EProduction_EProduction :: ConstructorIdent ->-                               ([Identifier]) ->-                               ([Type]) ->-                               T_ERules ->-                               T_EChildren ->-                               T_Visits ->-                               T_EProduction-sem_EProduction_EProduction con_ params_ constraints_ (T_ERules rules_) (T_EChildren children_) (T_Visits visits_) =-    (T_EProduction (\ _lhsIallFromToStates-                      _lhsIallInhmap-                      _lhsIallInitStates-                      _lhsIallSynmap-                      _lhsIallVisitKinds-                      _lhsIallchildvisit-                      _lhsIallstates-                      _lhsIavisitdefs-                      _lhsIavisituses-                      _lhsIclassCtxs-                      _lhsIimportBlocks-                      _lhsIinhmap-                      _lhsIinitial-                      _lhsIlocalAttrTypes-                      _lhsImainFile-                      _lhsImainName-                      _lhsImoduleHeader-                      _lhsInextVisits-                      _lhsInt-                      _lhsIntType-                      _lhsIoptions-                      _lhsIparams-                      _lhsIpragmaBlocks-                      _lhsIprevVisits-                      _lhsIrename-                      _lhsIsynmap-                      _lhsItextBlocks ->-                        (let _childrenOcon :: ConstructorIdent-                             _rulesOcon :: ConstructorIdent-                             _visitsOcon :: ConstructorIdent-                             _lhsOdatatype :: PP_Doc-                             _lhsOcount :: Int-                             _lhsOsem_nt :: PP_Doc-                             _lhsOsemFunBndDefs :: (Seq PP_Doc)-                             _lhsOsemFunBndTps :: (Seq PP_Doc)-                             _visitsOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))-                             _visitsOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))-                             _rulesOusageInfo :: (Map Identifier Int)-                             _rulesOruleKinds :: (Map Identifier (Set VisitKind))-                             _visitsOallintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))-                             _visitsOterminaldefs :: (Set String)-                             _visitsOruledefs :: (Map Identifier (Set String))-                             _visitsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))-                             _lhsOimports :: ([PP_Doc])-                             _lhsOgenProdIO :: (IO ())-                             _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                             _lhsOerrors :: (Seq Error)-                             _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))-                             _lhsOt_visits :: PP_Doc-                             _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)-                             _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))-                             _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))-                             _lhsOallvisits :: ([VisitStateState])-                             _lhsOsem_prod :: PP_Doc-                             _rulesOallInhmap :: (Map NontermIdent Attributes)-                             _rulesOallSynmap :: (Map NontermIdent Attributes)-                             _rulesOchildTypes :: (Map Identifier Type)-                             _rulesOimportBlocks :: PP_Doc-                             _rulesOinhmap :: Attributes-                             _rulesOlazyIntras :: (Set String)-                             _rulesOlocalAttrTypes :: (Map Identifier Type)-                             _rulesOmainFile :: String-                             _rulesOmainName :: String-                             _rulesOmoduleHeader :: (String -> String -> String -> Bool -> String)-                             _rulesOnt :: NontermIdent-                             _rulesOoptions :: Options-                             _rulesOpragmaBlocks :: String-                             _rulesOsynmap :: Attributes-                             _rulesOtextBlocks :: PP_Doc-                             _childrenOallInitStates :: (Map NontermIdent Int)-                             _childrenOimportBlocks :: PP_Doc-                             _childrenOmainFile :: String-                             _childrenOmainName :: String-                             _childrenOmoduleHeader :: (String -> String -> String -> Bool -> String)-                             _childrenOnt :: NontermIdent-                             _childrenOoptions :: Options-                             _childrenOpragmaBlocks :: String-                             _childrenOtextBlocks :: PP_Doc-                             _visitsOallFromToStates :: (Map VisitIdentifier (Int,Int))-                             _visitsOallInhmap :: (Map NontermIdent Attributes)-                             _visitsOallInitStates :: (Map NontermIdent Int)-                             _visitsOallSynmap :: (Map NontermIdent Attributes)-                             _visitsOallVisitKinds :: (Map VisitIdentifier VisitKind)-                             _visitsOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                             _visitsOavisitdefs :: (Map VisitIdentifier (Set Identifier))-                             _visitsOavisituses :: (Map VisitIdentifier (Set Identifier))-                             _visitsOchildTypes :: (Map Identifier Type)-                             _visitsOinhmap :: Attributes-                             _visitsOnextVisits :: (Map StateIdentifier StateCtx)-                             _visitsOnt :: NontermIdent-                             _visitsOoptions :: Options-                             _visitsOparams :: ([Identifier])-                             _visitsOprevVisits :: (Map StateIdentifier StateCtx)-                             _visitsOsynmap :: Attributes-                             _rulesIerrors :: (Seq Error)-                             _rulesImrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))-                             _rulesIruledefs :: (Map Identifier (Set String))-                             _rulesIruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))-                             _rulesIsem_rules :: PP_Doc-                             _childrenIargnamesw :: ([PP_Doc])-                             _childrenIargpats :: ( [PP_Doc] )-                             _childrenIargtps :: ( [PP_Doc] )-                             _childrenIchildTypes :: (Map Identifier Type)-                             _childrenIchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))-                             _childrenIdatatype :: ([PP_Doc])-                             _childrenIterminaldefs :: (Set String)-                             _visitsIallvisits :: ([VisitStateState])-                             _visitsIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                             _visitsIerrors :: (Seq Error)-                             _visitsIfromToStates :: (Map VisitIdentifier (Int,Int))-                             _visitsIintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))-                             _visitsIlazyIntras :: (Set String)-                             _visitsIruleKinds :: (Map Identifier (Set VisitKind))-                             _visitsIruleUsage :: (Map Identifier Int)-                             _visitsIsem_visit :: ( [(StateIdentifier,Bool -> PP_Doc)] )-                             _visitsIt_visits :: PP_Doc-                             _visitsIvisitKinds :: (Map VisitIdentifier VisitKind)-                             _visitsIvisitdefs :: (Map VisitIdentifier (Set Identifier))-                             _visitsIvisituses :: (Map VisitIdentifier (Set Identifier))-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 69, column 17)-                             _childrenOcon =-                                 ({-# LINE 69 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  con_-                                  {-# LINE 2843 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 70, column 17)-                             _rulesOcon =-                                 ({-# LINE 70 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  con_-                                  {-# LINE 2849 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 71, column 17)-                             _visitsOcon =-                                 ({-# LINE 71 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  con_-                                  {-# LINE 2855 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 184, column 17)-                             _lhsOdatatype =-                                 ({-# LINE 184 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _quantPP1     >#< _classPP1-                                  >#< conname _lhsIrename _lhsInt con_-                                  >#< ppConFields (dataRecords _lhsIoptions) _childrenIdatatype-                                  {-# LINE 2863 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 187, column 17)-                             _classPP1 =-                                 ({-# LINE 187 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  ppClasses (classConstrsToDocs constraints_)-                                  {-# LINE 2869 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 188, column 17)-                             _quantPP1 =-                                 ({-# LINE 188 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  ppQuants params_-                                  {-# LINE 2875 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 289, column 32)-                             _lhsOcount =-                                 ({-# LINE 289 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  1-                                  {-# LINE 2881 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 294, column 17)-                             _lhsOsem_nt =-                                 ({-# LINE 294 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  "sem_" >|< _lhsInt >#< "(" >#< conname _lhsIrename _lhsInt con_ >#< ppSpaced _childrenIargpats >#< ")"-                                  >#< "=" >#< "sem_" >|< _lhsInt >|< "_" >|< con_ >#< ppSpaced _childrenIargnamesw-                                  {-# LINE 2888 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 524, column 3)-                             _lhsOsemFunBndDefs =-                                 ({-# LINE 524 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  Seq.singleton _semFunBndDef-                                  {-# LINE 2894 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 525, column 3)-                             _lhsOsemFunBndTps =-                                 ({-# LINE 525 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  Seq.singleton _semFunBndTp-                                  {-# LINE 2900 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 526, column 3)-                             _semFunBndDef =-                                 ({-# LINE 526 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _semFunBndNm     >#< "=" >#< _semname-                                  {-# LINE 2906 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 527, column 3)-                             _semFunBndTp =-                                 ({-# LINE 527 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _semFunBndNm     >#< "::" >#< _sem_tp-                                  {-# LINE 2912 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 528, column 3)-                             _semFunBndNm =-                                 ({-# LINE 528 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  lateSemConLabel _lhsInt con_-                                  {-# LINE 2918 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 586, column 17)-                             _t_type =-                                 ({-# LINE 586 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  "T_" >|< _lhsInt-                                  {-# LINE 2924 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 587, column 17)-                             _t_params =-                                 ({-# LINE 587 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  ppSpaced _lhsIparams-                                  {-# LINE 2930 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 588, column 17)-                             _args =-                                 ({-# LINE 588 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _childrenIargpats-                                  {-# LINE 2936 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 589, column 17)-                             _semname =-                                 ({-# LINE 589 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  "sem_" ++ show _lhsInt ++ "_" ++ show con_-                                  {-# LINE 2942 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 590, column 17)-                             _sem_tp =-                                 ({-# LINE 590 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _quantPP2     >#< _classPP2     >#< ppSpaced _childrenIargtps >#< _t_type     >#< _t_params-                                  {-# LINE 2948 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 591, column 17)-                             _classPP2 =-                                 ({-# LINE 591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  ppClasses (classCtxsToDocs _lhsIclassCtxs ++ classConstrsToDocs constraints_)-                                  {-# LINE 2954 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 592, column 17)-                             _quantPP2 =-                                 ({-# LINE 592 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  ppQuants (_lhsIparams ++ params_)-                                  {-# LINE 2960 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 593, column 17)-                             _sem_prod =-                                 ({-# LINE 593 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _semInlinePragma-                                  >-< _semname     >#< "::" >#< _sem_tp-                                  >-< _mkSemBody     (_semname     >#< ppSpaced _args     >#< "=" >#< _scc     >#< _t_type    )-                                                     _mbInitializer     _outerlet     ("return" >#< "st" >|< _lhsIinitial)-                                  {-# LINE 2969 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 597, column 17)-                             _mkSemBody =-                                 ({-# LINE 597 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  \prefix mbInit outerlet ret ->-                                    case mbInit of-                                      Nothing -> prefix >#< pp_parens ret >#< "where"-                                                 >-< indent 3 outerlet-                                      Just m  -> prefix >#< "(" >#< "do"-                                                 >-< indent 1 (-                                                       m-                                                       >-< "let"-                                                       >-< indent 2 outerlet-                                                       >-< ret )-                                                 >-< indent 1 ")"-                                  {-# LINE 2985 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 609, column 17)-                             _mbInitializer =-                                 ({-# LINE 609 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  if parallelInvoke _lhsIoptions-                                  then (Nothing :: Maybe PP_Doc)-                                  else Nothing-                                  {-# LINE 2993 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 615, column 17)-                             _scc =-                                 ({-# LINE 615 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  if genCostCentres _lhsIoptions-                                  then ppCostCentre _semname-                                  else empty-                                  {-# LINE 3001 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 618, column 17)-                             _semInlinePragma =-                                 ({-# LINE 618 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  if noInlinePragmas _lhsIoptions-                                  then empty-                                  else ppNoInline _semname-                                  {-# LINE 3009 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 621, column 17)-                             _outerlet =-                                 ({-# LINE 621 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  vlist _statefns     >-< _rulesIsem_rules-                                  {-# LINE 3015 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 622, column 17)-                             _statefns =-                                 ({-# LINE 622 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  map _genstfn     $ Set.toList _lhsIallstates-                                  {-# LINE 3021 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 623, column 17)-                             _genstfn =-                                 ({-# LINE 623 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  \st -> let nextVisitInfo = Map.findWithDefault ManyVis st _lhsInextVisits-                                             prevVisitInfo = Map.findWithDefault ManyVis st _lhsIprevVisits-                                             stNm = "st" >|< st-                                             lhs  = pragma >-< bang stNm >#< "=" >#<-                                                    (-                                                      if st == _lhsIinitial-                                                      then empty-                                                      else "\\" >#< _stargs     st >#< "->"-                                                    )-                                             pragma = if noInlinePragmas _lhsIoptions-                                                      then empty-                                                      else if helpInlining _lhsIoptions-                                                           then case prevVisitInfo of-                                                                  ManyVis  -> ppNoInline stNm-                                                                  OneVis _ -> if aggressiveInlinePragmas _lhsIoptions-                                                                              then ppInline stNm-                                                                              else ppInlinable stNm-                                                                  NoneVis  -> if st /= _lhsIinitial-                                                                              then error ("State " ++ show st ++ " is not reachable from the initial state.")-                                                                              else if aggressiveInlinePragmas _lhsIoptions-                                                                                   then ppInline stNm-                                                                                   else ppInlinable stNm-                                                           else ppNoInline stNm-                                             cCon = "C_" >|< _lhsInt >|< "_s" >|< st-                                             bang | st == _lhsIinitial = _addbang-                                                  | otherwise          = id-                                         in case nextVisitInfo of-                                              NoneVis    ->-                                                            if st == _lhsIinitial-                                                            then lhs >#< cCon-                                                            else empty-                                              OneVis vId -> mklet lhs (_stvs     st False) (cCon >#< "v" >|< vId)-                                              ManyVis    -> mklet lhs (_stks     st >-< _stvs     st True) (cCon >#< "k" >|< st)-                                  {-# LINE 3059 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 665, column 17)-                             _stargs =-                                 ({-# LINE 665 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  \st -> let attrs = maybe Map.empty id $ Map.lookup st _visitsIintramap-                                         in ppSpaced [ let match | str `Set.member` _lazyIntras     = pp str-                                                                 | otherwise                        = _addbang     (pp str)-                                                       in case mbAttr of-                                                            Just (AttrSyn child nm) | child == _LOC && not (noPerStateTypeSigs _lhsIoptions) ->-                                                              case Map.lookup nm _localAttrTypes     of-                                                                Just tp -> pp_parens (pp_parens match >#< "::" >#< ppTp tp)-                                                                Nothing -> match-                                                            Just attr | not (noPerStateTypeSigs _lhsIoptions) ->-                                                              case lookupAttrType attr _lhsIallInhmap _lhsIallSynmap _childTypes     of-                                                                Just tpDoc -> pp_parens (pp_parens match >#< "::" >#< tpDoc)-                                                                Nothing    -> match-                                                            _ -> match-                                                    | (str,mbAttr) <- Map.assocs attrs-                                                    ] >#< dummyPat _lhsIoptions (Map.null attrs)-                                  {-# LINE 3079 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 681, column 17)-                             _stks =-                                 ({-# LINE 681 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  \st -> if null (_stvisits     st)-                                         then empty-                                         else ( if not (noInlinePragmas _lhsIoptions) && helpInlining _lhsIoptions-                                                then ppNoInline ("k" >|< st)-                                                else empty-                                              )-                                              >-< "k" >|< st >#< "::" >#< "K_" >|< _lhsInt >|< "_s" >|< st >#< "t" >#< "->" >#< "t"-                                              >-< vlist (map (\(v,f,t) -> "k" >|< st >#< "K_" >|< _lhsInt >|< "_v" >|< v >#< "="-                                                                     >#< "v" >|< v) $ _stvisits     st)-                                  {-# LINE 3093 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 690, column 17)-                             _stvisits =-                                 ({-# LINE 690 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  \st -> filter (\(v,f,t) -> f == st) _visitsIallvisits-                                  {-# LINE 3099 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 691, column 17)-                             _stvs =-                                 ({-# LINE 691 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  \st inlinePragma -> vlist [ppf inlinePragma | (f,ppf) <- _visitsIsem_visit, f == st]-                                  {-# LINE 3105 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 692, column 17)-                             _visitsOmrules =-                                 ({-# LINE 692 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _rulesImrules-                                  {-# LINE 3111 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 896, column 17)-                             _visitsOchildintros =-                                 ({-# LINE 896 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _childrenIchildintros-                                  {-# LINE 3117 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1246, column 32)-                             _rulesOusageInfo =-                                 ({-# LINE 1246 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _visitsIruleUsage-                                  {-# LINE 3123 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1261, column 3)-                             _rulesOruleKinds =-                                 ({-# LINE 1261 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _visitsIruleKinds-                                  {-# LINE 3129 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1290, column 3)-                             _visitsOallintramap =-                                 ({-# LINE 1290 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _visitsIintramap-                                  {-# LINE 3135 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1291, column 3)-                             _visitsOterminaldefs =-                                 ({-# LINE 1291 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _childrenIterminaldefs-                                  {-# LINE 3141 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1315, column 17)-                             _visitsOruledefs =-                                 ({-# LINE 1315 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _rulesIruledefs-                                  {-# LINE 3147 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1316, column 17)-                             _visitsOruleuses =-                                 ({-# LINE 1316 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _rulesIruleuses-                                  {-# LINE 3153 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1370, column 3)-                             _lazyIntras =-                                 ({-# LINE 1370 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _visitsIlazyIntras-                                  {-# LINE 3159 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1467, column 17)-                             _lhsOimports =-                                 ({-# LINE 1467 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  [pp $ "import " ++ _moduleName    ]-                                  {-# LINE 3165 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1468, column 17)-                             _moduleName =-                                 ({-# LINE 1468 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsImainName ++ _suffix-                                  {-# LINE 3171 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1469, column 17)-                             _suffix =-                                 ({-# LINE 1469 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  "_" ++ show _lhsInt ++ "_" ++ show con_-                                  {-# LINE 3177 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1470, column 17)-                             _outputfile =-                                 ({-# LINE 1470 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  replaceBaseName _lhsImainFile (takeBaseName _lhsImainFile ++ _suffix    )-                                  {-# LINE 3183 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1471, column 17)-                             _ppMonadImports =-                                 ({-# LINE 1471 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  if parallelInvoke _lhsIoptions-                                  then pp "import qualified System.IO.Unsafe(unsafePerformIO)"-                                       >-< pp "import System.IO(IO)"-                                       >-< pp "import Control.Concurrent(newEmptyMVar,forkIO,putMVar,takeMVar)"-                                  else pp "import Control.Monad.Identity"-                                  {-# LINE 3193 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1476, column 17)-                             _lhsOgenProdIO =-                                 ({-# LINE 1476 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  writeModule _outputfile-                                      [ warrenFlagsPP _lhsIoptions-                                      , pp $ _lhsIpragmaBlocks-                                      , pp $ _lhsImoduleHeader _lhsImainName _suffix     _semname     True-                                      , _lhsIimportBlocks-                                      , _ppMonadImports-                                      , ( if tupleAsDummyToken _lhsIoptions-                                             then empty-                                             else pp "import GHC.Prim"-                                       )-                                      , pp $ "import " ++ _lhsImainName ++ "_common"-                                      , _sem_prod-                                      ]-                                  {-# LINE 3211 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1517, column 37)-                             _addbang =-                                 ({-# LINE 1517 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  \x -> if bangpats _lhsIoptions then "!" >|< x else x-                                  {-# LINE 3217 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1567, column 3)-                             _childTypes =-                                 ({-# LINE 1567 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  Map.singleton _LHS _lhsIntType `Map.union` _childrenIchildTypes-                                  {-# LINE 3223 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1584, column 3)-                             _localAttrTypes =-                                 ({-# LINE 1584 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  Map.findWithDefault Map.empty con_ _lhsIlocalAttrTypes-                                  {-# LINE 3229 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1187, column 37)-                             _lhsOchildvisit =-                                 ({-# LINE 1187 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _visitsIchildvisit-                                  {-# LINE 3235 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)-                             _lhsOerrors =-                                 ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _rulesIerrors Seq.>< _visitsIerrors-                                  {-# LINE 3241 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1544, column 22)-                             _lhsOfromToStates =-                                 ({-# LINE 1544 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _visitsIfromToStates-                                  {-# LINE 3247 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 394, column 59)-                             _lhsOt_visits =-                                 ({-# LINE 394 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _visitsIt_visits-                                  {-# LINE 3253 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)-                             _lhsOvisitKinds =-                                 ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _visitsIvisitKinds-                                  {-# LINE 3259 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1322, column 36)-                             _lhsOvisitdefs =-                                 ({-# LINE 1322 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _visitsIvisitdefs-                                  {-# LINE 3265 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1323, column 36)-                             _lhsOvisituses =-                                 ({-# LINE 1323 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _visitsIvisituses-                                  {-# LINE 3271 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (up)-                             _lhsOallvisits =-                                 ({-# LINE 338 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _visitsIallvisits-                                  {-# LINE 3277 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (from local)-                             _lhsOsem_prod =-                                 ({-# LINE 553 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _sem_prod-                                  {-# LINE 3283 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _rulesOallInhmap =-                                 ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIallInhmap-                                  {-# LINE 3289 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _rulesOallSynmap =-                                 ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIallSynmap-                                  {-# LINE 3295 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (from local)-                             _rulesOchildTypes =-                                 ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _childTypes-                                  {-# LINE 3301 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _rulesOimportBlocks =-                                 ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIimportBlocks-                                  {-# LINE 3307 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _rulesOinhmap =-                                 ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIinhmap-                                  {-# LINE 3313 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (from local)-                             _rulesOlazyIntras =-                                 ({-# LINE 1356 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lazyIntras-                                  {-# LINE 3319 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (from local)-                             _rulesOlocalAttrTypes =-                                 ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _localAttrTypes-                                  {-# LINE 3325 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _rulesOmainFile =-                                 ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsImainFile-                                  {-# LINE 3331 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _rulesOmainName =-                                 ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsImainName-                                  {-# LINE 3337 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _rulesOmoduleHeader =-                                 ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsImoduleHeader-                                  {-# LINE 3343 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _rulesOnt =-                                 ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsInt-                                  {-# LINE 3349 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _rulesOoptions =-                                 ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIoptions-                                  {-# LINE 3355 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _rulesOpragmaBlocks =-                                 ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIpragmaBlocks-                                  {-# LINE 3361 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _rulesOsynmap =-                                 ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIsynmap-                                  {-# LINE 3367 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _rulesOtextBlocks =-                                 ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsItextBlocks-                                  {-# LINE 3373 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _childrenOallInitStates =-                                 ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIallInitStates-                                  {-# LINE 3379 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _childrenOimportBlocks =-                                 ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIimportBlocks-                                  {-# LINE 3385 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _childrenOmainFile =-                                 ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsImainFile-                                  {-# LINE 3391 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _childrenOmainName =-                                 ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsImainName-                                  {-# LINE 3397 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _childrenOmoduleHeader =-                                 ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsImoduleHeader-                                  {-# LINE 3403 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _childrenOnt =-                                 ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsInt-                                  {-# LINE 3409 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _childrenOoptions =-                                 ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIoptions-                                  {-# LINE 3415 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _childrenOpragmaBlocks =-                                 ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIpragmaBlocks-                                  {-# LINE 3421 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _childrenOtextBlocks =-                                 ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsItextBlocks-                                  {-# LINE 3427 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _visitsOallFromToStates =-                                 ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIallFromToStates-                                  {-# LINE 3433 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _visitsOallInhmap =-                                 ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIallInhmap-                                  {-# LINE 3439 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _visitsOallInitStates =-                                 ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIallInitStates-                                  {-# LINE 3445 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _visitsOallSynmap =-                                 ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIallSynmap-                                  {-# LINE 3451 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _visitsOallVisitKinds =-                                 ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIallVisitKinds-                                  {-# LINE 3457 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _visitsOallchildvisit =-                                 ({-# LINE 1186 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIallchildvisit-                                  {-# LINE 3463 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _visitsOavisitdefs =-                                 ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIavisitdefs-                                  {-# LINE 3469 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _visitsOavisituses =-                                 ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIavisituses-                                  {-# LINE 3475 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (from local)-                             _visitsOchildTypes =-                                 ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _childTypes-                                  {-# LINE 3481 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _visitsOinhmap =-                                 ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIinhmap-                                  {-# LINE 3487 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _visitsOnextVisits =-                                 ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsInextVisits-                                  {-# LINE 3493 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _visitsOnt =-                                 ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsInt-                                  {-# LINE 3499 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _visitsOoptions =-                                 ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIoptions-                                  {-# LINE 3505 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _visitsOparams =-                                 ({-# LINE 73 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIparams-                                  {-# LINE 3511 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _visitsOprevVisits =-                                 ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIprevVisits-                                  {-# LINE 3517 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             -- copy rule (down)-                             _visitsOsynmap =-                                 ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}-                                  _lhsIsynmap-                                  {-# LINE 3523 "dist/build/ExecutionPlan2Hs" #-}-                                  )-                             ( _rulesIerrors,_rulesImrules,_rulesIruledefs,_rulesIruleuses,_rulesIsem_rules) =-                                 rules_ _rulesOallInhmap _rulesOallSynmap _rulesOchildTypes _rulesOcon _rulesOimportBlocks _rulesOinhmap _rulesOlazyIntras _rulesOlocalAttrTypes _rulesOmainFile _rulesOmainName _rulesOmoduleHeader _rulesOnt _rulesOoptions _rulesOpragmaBlocks _rulesOruleKinds _rulesOsynmap _rulesOtextBlocks _rulesOusageInfo-                             ( _childrenIargnamesw,_childrenIargpats,_childrenIargtps,_childrenIchildTypes,_childrenIchildintros,_childrenIdatatype,_childrenIterminaldefs) =-                                 children_ _childrenOallInitStates _childrenOcon _childrenOimportBlocks _childrenOmainFile _childrenOmainName _childrenOmoduleHeader _childrenOnt _childrenOoptions _childrenOpragmaBlocks _childrenOtextBlocks-                             ( _visitsIallvisits,_visitsIchildvisit,_visitsIerrors,_visitsIfromToStates,_visitsIintramap,_visitsIlazyIntras,_visitsIruleKinds,_visitsIruleUsage,_visitsIsem_visit,_visitsIt_visits,_visitsIvisitKinds,_visitsIvisitdefs,_visitsIvisituses) =-                                 visits_ _visitsOallFromToStates _visitsOallInhmap _visitsOallInitStates _visitsOallSynmap _visitsOallVisitKinds _visitsOallchildvisit _visitsOallintramap _visitsOavisitdefs _visitsOavisituses _visitsOchildTypes _visitsOchildintros _visitsOcon _visitsOinhmap _visitsOmrules _visitsOnextVisits _visitsOnt _visitsOoptions _visitsOparams _visitsOprevVisits _visitsOruledefs _visitsOruleuses _visitsOsynmap _visitsOterminaldefs-                         in  ( _lhsOallvisits,_lhsOchildvisit,_lhsOcount,_lhsOdatatype,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))--- EProductions -------------------------------------------------{--   visit 0:-      inherited attributes:-         allFromToStates      : Map VisitIdentifier (Int,Int)-         allInhmap            : Map NontermIdent Attributes-         allInitStates        : Map NontermIdent Int-         allSynmap            : Map NontermIdent Attributes-         allVisitKinds        : Map VisitIdentifier VisitKind-         allchildvisit        : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))-         allstates            : Set StateIdentifier-         avisitdefs           : Map VisitIdentifier (Set Identifier)-         avisituses           : Map VisitIdentifier (Set Identifier)-         classCtxs            : ClassContext-         importBlocks         : PP_Doc-         inhmap               : Attributes-         initial              : StateIdentifier-         localAttrTypes       : Map ConstructorIdent (Map Identifier Type)-         mainFile             : String-         mainName             : String-         moduleHeader         : String -> String -> String -> Bool -> String-         nextVisits           : Map StateIdentifier StateCtx-         nt                   : NontermIdent-         ntType               : Type-         options              : Options-         params               : [Identifier]-         pragmaBlocks         : String-         prevVisits           : Map StateIdentifier StateCtx-         rename               : Bool-         synmap               : Attributes-         textBlocks           : PP_Doc-      synthesized attributes:-         allvisits            : [VisitStateState]-         childvisit           : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))-         count                : Int-         datatype             : [PP_Doc]-         errors               : Seq Error-         fromToStates         : Map VisitIdentifier (Int,Int)-         genProdIO            : IO ()-         imports              : [PP_Doc]-         semFunBndDefs        : Seq PP_Doc-         semFunBndTps         : Seq PP_Doc-         sem_nt               : PP_Doc-         sem_prod             : PP_Doc-         t_visits             : PP_Doc-         visitKinds           : Map VisitIdentifier VisitKind-         visitdefs            : Map VisitIdentifier (Set Identifier)-         visituses            : Map VisitIdentifier (Set Identifier)-   alternatives:-      alternative Cons:-         child hd             : EProduction -         child tl             : EProductions -      alternative Nil:--}--- cata-sem_EProductions :: EProductions ->-                    T_EProductions-sem_EProductions list =-    (Prelude.foldr sem_EProductions_Cons sem_EProductions_Nil (Prelude.map sem_EProduction list))--- semantic domain-newtype T_EProductions = T_EProductions ((Map VisitIdentifier (Int,Int)) ->-                                         (Map NontermIdent Attributes) ->-                                         (Map NontermIdent Int) ->-                                         (Map NontermIdent Attributes) ->-                                         (Map VisitIdentifier VisitKind) ->-                                         (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))) ->-                                         (Set StateIdentifier) ->-                                         (Map VisitIdentifier (Set Identifier)) ->-                                         (Map VisitIdentifier (Set Identifier)) ->-                                         ClassContext ->-                                         PP_Doc ->-                                         Attributes ->-                                         StateIdentifier ->-                                         (Map ConstructorIdent (Map Identifier Type)) ->-                                         String ->-                                         String ->-                                         (String -> String -> String -> Bool -> String) ->-                                         (Map StateIdentifier StateCtx) ->-                                         NontermIdent ->-                                         Type ->-                                         Options ->-                                         ([Identifier]) ->-                                         String ->-                                         (Map StateIdentifier StateCtx) ->-                                         Bool ->-                                         Attributes ->-                                         PP_Doc ->-                                         ( ([VisitStateState]),(Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),Int,([PP_Doc]),(Seq Error),(Map VisitIdentifier (Int,Int)),(IO ()),([PP_Doc]),(Seq PP_Doc),(Seq PP_Doc),PP_Doc,PP_Doc,PP_Doc,(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier))))-data Inh_EProductions = Inh_EProductions {allFromToStates_Inh_EProductions :: (Map VisitIdentifier (Int,Int)),allInhmap_Inh_EProductions :: (Map NontermIdent Attributes),allInitStates_Inh_EProductions :: (Map NontermIdent Int),allSynmap_Inh_EProductions :: (Map NontermIdent Attributes),allVisitKinds_Inh_EProductions :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_EProductions :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),allstates_Inh_EProductions :: (Set StateIdentifier),avisitdefs_Inh_EProductions :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_EProductions :: (Map VisitIdentifier (Set Identifier)),classCtxs_Inh_EProductions :: ClassContext,importBlocks_Inh_EProductions :: PP_Doc,inhmap_Inh_EProductions :: Attributes,initial_Inh_EProductions :: StateIdentifier,localAttrTypes_Inh_EProductions :: (Map ConstructorIdent (Map Identifier Type)),mainFile_Inh_EProductions :: String,mainName_Inh_EProductions :: String,moduleHeader_Inh_EProductions :: (String -> String -> String -> Bool -> String),nextVisits_Inh_EProductions :: (Map StateIdentifier StateCtx),nt_Inh_EProductions :: NontermIdent,ntType_Inh_EProductions :: Type,options_Inh_EProductions :: Options,params_Inh_EProductions :: ([Identifier]),pragmaBlocks_Inh_EProductions :: String,prevVisits_Inh_EProductions :: (Map StateIdentifier StateCtx),rename_Inh_EProductions :: Bool,synmap_Inh_EProductions :: Attributes,textBlocks_Inh_EProductions :: PP_Doc}-data Syn_EProductions = Syn_EProductions {allvisits_Syn_EProductions :: ([VisitStateState]),childvisit_Syn_EProductions :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),count_Syn_EProductions :: Int,datatype_Syn_EProductions :: ([PP_Doc]),errors_Syn_EProductions :: (Seq Error),fromToStates_Syn_EProductions :: (Map VisitIdentifier (Int,Int)),genProdIO_Syn_EProductions :: (IO ()),imports_Syn_EProductions :: ([PP_Doc]),semFunBndDefs_Syn_EProductions :: (Seq PP_Doc),semFunBndTps_Syn_EProductions :: (Seq PP_Doc),sem_nt_Syn_EProductions :: PP_Doc,sem_prod_Syn_EProductions :: PP_Doc,t_visits_Syn_EProductions :: PP_Doc,visitKinds_Syn_EProductions :: (Map VisitIdentifier VisitKind),visitdefs_Syn_EProductions :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_EProductions :: (Map VisitIdentifier (Set Identifier))}-wrap_EProductions :: T_EProductions ->-                     Inh_EProductions ->-                     Syn_EProductions-wrap_EProductions (T_EProductions sem) (Inh_EProductions _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIclassCtxs _lhsIimportBlocks _lhsIinhmap _lhsIinitial _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInextVisits _lhsInt _lhsIntType _lhsIoptions _lhsIparams _lhsIpragmaBlocks _lhsIprevVisits _lhsIrename _lhsIsynmap _lhsItextBlocks) =-    (let ( _lhsOallvisits,_lhsOchildvisit,_lhsOcount,_lhsOdatatype,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIclassCtxs _lhsIimportBlocks _lhsIinhmap _lhsIinitial _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInextVisits _lhsInt _lhsIntType _lhsIoptions _lhsIparams _lhsIpragmaBlocks _lhsIprevVisits _lhsIrename _lhsIsynmap _lhsItextBlocks-     in  (Syn_EProductions _lhsOallvisits _lhsOchildvisit _lhsOcount _lhsOdatatype _lhsOerrors _lhsOfromToStates _lhsOgenProdIO _lhsOimports _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOsem_nt _lhsOsem_prod _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses))-sem_EProductions_Cons :: T_EProduction ->-                         T_EProductions ->-                         T_EProductions-sem_EProductions_Cons (T_EProduction hd_) (T_EProductions tl_) =-    (T_EProductions (\ _lhsIallFromToStates-                       _lhsIallInhmap-                       _lhsIallInitStates-                       _lhsIallSynmap-                       _lhsIallVisitKinds-                       _lhsIallchildvisit-                       _lhsIallstates-                       _lhsIavisitdefs-                       _lhsIavisituses-                       _lhsIclassCtxs-                       _lhsIimportBlocks-                       _lhsIinhmap-                       _lhsIinitial-                       _lhsIlocalAttrTypes-                       _lhsImainFile-                       _lhsImainName-                       _lhsImoduleHeader-                       _lhsInextVisits-                       _lhsInt-                       _lhsIntType-                       _lhsIoptions-                       _lhsIparams-                       _lhsIpragmaBlocks-                       _lhsIprevVisits-                       _lhsIrename-                       _lhsIsynmap-                       _lhsItextBlocks ->-                         (let _lhsOallvisits :: ([VisitStateState])-                              _lhsOt_visits :: PP_Doc-                              _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                              _lhsOcount :: Int-                              _lhsOdatatype :: ([PP_Doc])-                              _lhsOerrors :: (Seq Error)-                              _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))-                              _lhsOgenProdIO :: (IO ())-                              _lhsOimports :: ([PP_Doc])-                              _lhsOsemFunBndDefs :: (Seq PP_Doc)-                              _lhsOsemFunBndTps :: (Seq PP_Doc)-                              _lhsOsem_nt :: PP_Doc-                              _lhsOsem_prod :: PP_Doc-                              _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)-                              _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))-                              _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))-                              _hdOallFromToStates :: (Map VisitIdentifier (Int,Int))-                              _hdOallInhmap :: (Map NontermIdent Attributes)-                              _hdOallInitStates :: (Map NontermIdent Int)-                              _hdOallSynmap :: (Map NontermIdent Attributes)-                              _hdOallVisitKinds :: (Map VisitIdentifier VisitKind)-                              _hdOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                              _hdOallstates :: (Set StateIdentifier)-                              _hdOavisitdefs :: (Map VisitIdentifier (Set Identifier))-                              _hdOavisituses :: (Map VisitIdentifier (Set Identifier))-                              _hdOclassCtxs :: ClassContext-                              _hdOimportBlocks :: PP_Doc-                              _hdOinhmap :: Attributes-                              _hdOinitial :: StateIdentifier-                              _hdOlocalAttrTypes :: (Map ConstructorIdent (Map Identifier Type))-                              _hdOmainFile :: String-                              _hdOmainName :: String-                              _hdOmoduleHeader :: (String -> String -> String -> Bool -> String)-                              _hdOnextVisits :: (Map StateIdentifier StateCtx)-                              _hdOnt :: NontermIdent-                              _hdOntType :: Type-                              _hdOoptions :: Options-                              _hdOparams :: ([Identifier])-                              _hdOpragmaBlocks :: String-                              _hdOprevVisits :: (Map StateIdentifier StateCtx)-                              _hdOrename :: Bool-                              _hdOsynmap :: Attributes-                              _hdOtextBlocks :: PP_Doc-                              _tlOallFromToStates :: (Map VisitIdentifier (Int,Int))-                              _tlOallInhmap :: (Map NontermIdent Attributes)-                              _tlOallInitStates :: (Map NontermIdent Int)-                              _tlOallSynmap :: (Map NontermIdent Attributes)-                              _tlOallVisitKinds :: (Map VisitIdentifier VisitKind)-                              _tlOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                              _tlOallstates :: (Set StateIdentifier)-                              _tlOavisitdefs :: (Map VisitIdentifier (Set Identifier))-                              _tlOavisituses :: (Map VisitIdentifier (Set Identifier))-                              _tlOclassCtxs :: ClassContext-                              _tlOimportBlocks :: PP_Doc-                              _tlOinhmap :: Attributes-                              _tlOinitial :: StateIdentifier-                              _tlOlocalAttrTypes :: (Map ConstructorIdent (Map Identifier Type))-                              _tlOmainFile :: String-                              _tlOmainName :: String-                              _tlOmoduleHeader :: (String -> String -> String -> Bool -> String)-                              _tlOnextVisits :: (Map StateIdentifier StateCtx)-                              _tlOnt :: NontermIdent-                              _tlOntType :: Type-                              _tlOoptions :: Options-                              _tlOparams :: ([Identifier])-                              _tlOpragmaBlocks :: String-                              _tlOprevVisits :: (Map StateIdentifier StateCtx)-                              _tlOrename :: Bool-                              _tlOsynmap :: Attributes-                              _tlOtextBlocks :: PP_Doc-                              _hdIallvisits :: ([VisitStateState])-                              _hdIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                              _hdIcount :: Int-                              _hdIdatatype :: PP_Doc-                              _hdIerrors :: (Seq Error)-                              _hdIfromToStates :: (Map VisitIdentifier (Int,Int))-                              _hdIgenProdIO :: (IO ())-                              _hdIimports :: ([PP_Doc])-                              _hdIsemFunBndDefs :: (Seq PP_Doc)-                              _hdIsemFunBndTps :: (Seq PP_Doc)-                              _hdIsem_nt :: PP_Doc-                              _hdIsem_prod :: PP_Doc-                              _hdIt_visits :: PP_Doc-                              _hdIvisitKinds :: (Map VisitIdentifier VisitKind)-                              _hdIvisitdefs :: (Map VisitIdentifier (Set Identifier))-                              _hdIvisituses :: (Map VisitIdentifier (Set Identifier))-                              _tlIallvisits :: ([VisitStateState])-                              _tlIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                              _tlIcount :: Int-                              _tlIdatatype :: ([PP_Doc])-                              _tlIerrors :: (Seq Error)-                              _tlIfromToStates :: (Map VisitIdentifier (Int,Int))-                              _tlIgenProdIO :: (IO ())-                              _tlIimports :: ([PP_Doc])-                              _tlIsemFunBndDefs :: (Seq PP_Doc)-                              _tlIsemFunBndTps :: (Seq PP_Doc)-                              _tlIsem_nt :: PP_Doc-                              _tlIsem_prod :: PP_Doc-                              _tlIt_visits :: PP_Doc-                              _tlIvisitKinds :: (Map VisitIdentifier VisitKind)-                              _tlIvisitdefs :: (Map VisitIdentifier (Set Identifier))-                              _tlIvisituses :: (Map VisitIdentifier (Set Identifier))-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 344, column 10)-                              _lhsOallvisits =-                                  ({-# LINE 344 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _hdIallvisits-                                   {-# LINE 3765 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 397, column 10)-                              _lhsOt_visits =-                                  ({-# LINE 397 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _hdIt_visits-                                   {-# LINE 3771 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1187, column 37)-                              _lhsOchildvisit =-                                  ({-# LINE 1187 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _hdIchildvisit `Map.union` _tlIchildvisit-                                   {-# LINE 3777 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 288, column 43)-                              _lhsOcount =-                                  ({-# LINE 288 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _hdIcount + _tlIcount-                                   {-# LINE 3783 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 179, column 34)-                              _lhsOdatatype =-                                  ({-# LINE 179 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _hdIdatatype : _tlIdatatype-                                   {-# LINE 3789 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)-                              _lhsOerrors =-                                  ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _hdIerrors Seq.>< _tlIerrors-                                   {-# LINE 3795 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1544, column 22)-                              _lhsOfromToStates =-                                  ({-# LINE 1544 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _hdIfromToStates `mappend` _tlIfromToStates-                                   {-# LINE 3801 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1464, column 49)-                              _lhsOgenProdIO =-                                  ({-# LINE 1464 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _hdIgenProdIO >> _tlIgenProdIO-                                   {-# LINE 3807 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1463, column 47)-                              _lhsOimports =-                                  ({-# LINE 1463 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _hdIimports ++ _tlIimports-                                   {-# LINE 3813 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 515, column 92)-                              _lhsOsemFunBndDefs =-                                  ({-# LINE 515 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _hdIsemFunBndDefs Seq.>< _tlIsemFunBndDefs-                                   {-# LINE 3819 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 515, column 92)-                              _lhsOsemFunBndTps =-                                  ({-# LINE 515 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _hdIsemFunBndTps Seq.>< _tlIsemFunBndTps-                                   {-# LINE 3825 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 292, column 44)-                              _lhsOsem_nt =-                                  ({-# LINE 292 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _hdIsem_nt >-< _tlIsem_nt-                                   {-# LINE 3831 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 554, column 34)-                              _lhsOsem_prod =-                                  ({-# LINE 554 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _hdIsem_prod >-< _tlIsem_prod-                                   {-# LINE 3837 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)-                              _lhsOvisitKinds =-                                  ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _hdIvisitKinds `mappend` _tlIvisitKinds-                                   {-# LINE 3843 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1322, column 36)-                              _lhsOvisitdefs =-                                  ({-# LINE 1322 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _hdIvisitdefs `uwSetUnion` _tlIvisitdefs-                                   {-# LINE 3849 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1323, column 36)-                              _lhsOvisituses =-                                  ({-# LINE 1323 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _hdIvisituses `uwSetUnion` _tlIvisituses-                                   {-# LINE 3855 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOallFromToStates =-                                  ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallFromToStates-                                   {-# LINE 3861 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOallInhmap =-                                  ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallInhmap-                                   {-# LINE 3867 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOallInitStates =-                                  ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallInitStates-                                   {-# LINE 3873 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOallSynmap =-                                  ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallSynmap-                                   {-# LINE 3879 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOallVisitKinds =-                                  ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallVisitKinds-                                   {-# LINE 3885 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOallchildvisit =-                                  ({-# LINE 1186 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallchildvisit-                                   {-# LINE 3891 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOallstates =-                                  ({-# LINE 557 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallstates-                                   {-# LINE 3897 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOavisitdefs =-                                  ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIavisitdefs-                                   {-# LINE 3903 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOavisituses =-                                  ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIavisituses-                                   {-# LINE 3909 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOclassCtxs =-                                  ({-# LINE 77 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIclassCtxs-                                   {-# LINE 3915 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOimportBlocks =-                                  ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIimportBlocks-                                   {-# LINE 3921 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOinhmap =-                                  ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIinhmap-                                   {-# LINE 3927 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOinitial =-                                  ({-# LINE 556 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIinitial-                                   {-# LINE 3933 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOlocalAttrTypes =-                                  ({-# LINE 1577 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIlocalAttrTypes-                                   {-# LINE 3939 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOmainFile =-                                  ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsImainFile-                                   {-# LINE 3945 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOmainName =-                                  ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsImainName-                                   {-# LINE 3951 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOmoduleHeader =-                                  ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsImoduleHeader-                                   {-# LINE 3957 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOnextVisits =-                                  ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsInextVisits-                                   {-# LINE 3963 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOnt =-                                  ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsInt-                                   {-# LINE 3969 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOntType =-                                  ({-# LINE 1620 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIntType-                                   {-# LINE 3975 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOoptions =-                                  ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIoptions-                                   {-# LINE 3981 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOparams =-                                  ({-# LINE 73 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIparams-                                   {-# LINE 3987 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOpragmaBlocks =-                                  ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIpragmaBlocks-                                   {-# LINE 3993 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOprevVisits =-                                  ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIprevVisits-                                   {-# LINE 3999 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOrename =-                                  ({-# LINE 52 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIrename-                                   {-# LINE 4005 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOsynmap =-                                  ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIsynmap-                                   {-# LINE 4011 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _hdOtextBlocks =-                                  ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsItextBlocks-                                   {-# LINE 4017 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOallFromToStates =-                                  ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallFromToStates-                                   {-# LINE 4023 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOallInhmap =-                                  ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallInhmap-                                   {-# LINE 4029 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOallInitStates =-                                  ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallInitStates-                                   {-# LINE 4035 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOallSynmap =-                                  ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallSynmap-                                   {-# LINE 4041 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOallVisitKinds =-                                  ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallVisitKinds-                                   {-# LINE 4047 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOallchildvisit =-                                  ({-# LINE 1186 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallchildvisit-                                   {-# LINE 4053 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOallstates =-                                  ({-# LINE 557 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIallstates-                                   {-# LINE 4059 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOavisitdefs =-                                  ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIavisitdefs-                                   {-# LINE 4065 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOavisituses =-                                  ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIavisituses-                                   {-# LINE 4071 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOclassCtxs =-                                  ({-# LINE 77 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIclassCtxs-                                   {-# LINE 4077 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOimportBlocks =-                                  ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIimportBlocks-                                   {-# LINE 4083 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOinhmap =-                                  ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIinhmap-                                   {-# LINE 4089 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOinitial =-                                  ({-# LINE 556 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIinitial-                                   {-# LINE 4095 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOlocalAttrTypes =-                                  ({-# LINE 1577 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIlocalAttrTypes-                                   {-# LINE 4101 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOmainFile =-                                  ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsImainFile-                                   {-# LINE 4107 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOmainName =-                                  ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsImainName-                                   {-# LINE 4113 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOmoduleHeader =-                                  ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsImoduleHeader-                                   {-# LINE 4119 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOnextVisits =-                                  ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsInextVisits-                                   {-# LINE 4125 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOnt =-                                  ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsInt-                                   {-# LINE 4131 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOntType =-                                  ({-# LINE 1620 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIntType-                                   {-# LINE 4137 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOoptions =-                                  ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIoptions-                                   {-# LINE 4143 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOparams =-                                  ({-# LINE 73 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIparams-                                   {-# LINE 4149 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOpragmaBlocks =-                                  ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIpragmaBlocks-                                   {-# LINE 4155 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOprevVisits =-                                  ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIprevVisits-                                   {-# LINE 4161 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOrename =-                                  ({-# LINE 52 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIrename-                                   {-# LINE 4167 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOsynmap =-                                  ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsIsynmap-                                   {-# LINE 4173 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- copy rule (down)-                              _tlOtextBlocks =-                                  ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   _lhsItextBlocks-                                   {-# LINE 4179 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              ( _hdIallvisits,_hdIchildvisit,_hdIcount,_hdIdatatype,_hdIerrors,_hdIfromToStates,_hdIgenProdIO,_hdIimports,_hdIsemFunBndDefs,_hdIsemFunBndTps,_hdIsem_nt,_hdIsem_prod,_hdIt_visits,_hdIvisitKinds,_hdIvisitdefs,_hdIvisituses) =-                                  hd_ _hdOallFromToStates _hdOallInhmap _hdOallInitStates _hdOallSynmap _hdOallVisitKinds _hdOallchildvisit _hdOallstates _hdOavisitdefs _hdOavisituses _hdOclassCtxs _hdOimportBlocks _hdOinhmap _hdOinitial _hdOlocalAttrTypes _hdOmainFile _hdOmainName _hdOmoduleHeader _hdOnextVisits _hdOnt _hdOntType _hdOoptions _hdOparams _hdOpragmaBlocks _hdOprevVisits _hdOrename _hdOsynmap _hdOtextBlocks-                              ( _tlIallvisits,_tlIchildvisit,_tlIcount,_tlIdatatype,_tlIerrors,_tlIfromToStates,_tlIgenProdIO,_tlIimports,_tlIsemFunBndDefs,_tlIsemFunBndTps,_tlIsem_nt,_tlIsem_prod,_tlIt_visits,_tlIvisitKinds,_tlIvisitdefs,_tlIvisituses) =-                                  tl_ _tlOallFromToStates _tlOallInhmap _tlOallInitStates _tlOallSynmap _tlOallVisitKinds _tlOallchildvisit _tlOallstates _tlOavisitdefs _tlOavisituses _tlOclassCtxs _tlOimportBlocks _tlOinhmap _tlOinitial _tlOlocalAttrTypes _tlOmainFile _tlOmainName _tlOmoduleHeader _tlOnextVisits _tlOnt _tlOntType _tlOoptions _tlOparams _tlOpragmaBlocks _tlOprevVisits _tlOrename _tlOsynmap _tlOtextBlocks-                          in  ( _lhsOallvisits,_lhsOchildvisit,_lhsOcount,_lhsOdatatype,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))-sem_EProductions_Nil :: T_EProductions-sem_EProductions_Nil =-    (T_EProductions (\ _lhsIallFromToStates-                       _lhsIallInhmap-                       _lhsIallInitStates-                       _lhsIallSynmap-                       _lhsIallVisitKinds-                       _lhsIallchildvisit-                       _lhsIallstates-                       _lhsIavisitdefs-                       _lhsIavisituses-                       _lhsIclassCtxs-                       _lhsIimportBlocks-                       _lhsIinhmap-                       _lhsIinitial-                       _lhsIlocalAttrTypes-                       _lhsImainFile-                       _lhsImainName-                       _lhsImoduleHeader-                       _lhsInextVisits-                       _lhsInt-                       _lhsIntType-                       _lhsIoptions-                       _lhsIparams-                       _lhsIpragmaBlocks-                       _lhsIprevVisits-                       _lhsIrename-                       _lhsIsynmap-                       _lhsItextBlocks ->-                         (let _lhsOallvisits :: ([VisitStateState])-                              _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                              _lhsOcount :: Int-                              _lhsOdatatype :: ([PP_Doc])-                              _lhsOerrors :: (Seq Error)-                              _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))-                              _lhsOgenProdIO :: (IO ())-                              _lhsOimports :: ([PP_Doc])-                              _lhsOsemFunBndDefs :: (Seq PP_Doc)-                              _lhsOsemFunBndTps :: (Seq PP_Doc)-                              _lhsOsem_nt :: PP_Doc-                              _lhsOsem_prod :: PP_Doc-                              _lhsOt_visits :: PP_Doc-                              _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)-                              _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))-                              _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))-                              -- "src-ag/ExecutionPlan2Hs.ag"(line 345, column 10)-                              _lhsOallvisits =-                                  ({-# LINE 345 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   error "Every nonterminal should have at least 1 production"-                                   {-# LINE 4235 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1187, column 37)-                              _lhsOchildvisit =-                                  ({-# LINE 1187 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   Map.empty-                                   {-# LINE 4241 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 288, column 43)-                              _lhsOcount =-                                  ({-# LINE 288 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   0-                                   {-# LINE 4247 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 179, column 34)-                              _lhsOdatatype =-                                  ({-# LINE 179 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   []-                                   {-# LINE 4253 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)-                              _lhsOerrors =-                                  ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   Seq.empty-                                   {-# LINE 4259 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1544, column 22)-                              _lhsOfromToStates =-                                  ({-# LINE 1544 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   mempty-                                   {-# LINE 4265 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1464, column 49)-                              _lhsOgenProdIO =-                                  ({-# LINE 1464 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   return ()-                                   {-# LINE 4271 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1463, column 47)-                              _lhsOimports =-                                  ({-# LINE 1463 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   []-                                   {-# LINE 4277 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 515, column 92)-                              _lhsOsemFunBndDefs =-                                  ({-# LINE 515 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   Seq.empty-                                   {-# LINE 4283 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 515, column 92)-                              _lhsOsemFunBndTps =-                                  ({-# LINE 515 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   Seq.empty-                                   {-# LINE 4289 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 292, column 44)-                              _lhsOsem_nt =-                                  ({-# LINE 292 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   empty-                                   {-# LINE 4295 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 554, column 34)-                              _lhsOsem_prod =-                                  ({-# LINE 554 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   empty-                                   {-# LINE 4301 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 394, column 59)-                              _lhsOt_visits =-                                  ({-# LINE 394 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   empty-                                   {-# LINE 4307 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)-                              _lhsOvisitKinds =-                                  ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   mempty-                                   {-# LINE 4313 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1322, column 36)-                              _lhsOvisitdefs =-                                  ({-# LINE 1322 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   Map.empty-                                   {-# LINE 4319 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1323, column 36)-                              _lhsOvisituses =-                                  ({-# LINE 1323 "src-ag/ExecutionPlan2Hs.ag" #-}-                                   Map.empty-                                   {-# LINE 4325 "dist/build/ExecutionPlan2Hs" #-}-                                   )-                          in  ( _lhsOallvisits,_lhsOchildvisit,_lhsOcount,_lhsOdatatype,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))--- ERule --------------------------------------------------------{--   visit 0:-      inherited attributes:-         allInhmap            : Map NontermIdent Attributes-         allSynmap            : Map NontermIdent Attributes-         childTypes           : Map Identifier Type-         con                  : ConstructorIdent-         importBlocks         : PP_Doc-         inhmap               : Attributes-         lazyIntras           : Set String-         localAttrTypes       : Map Identifier Type-         mainFile             : String-         mainName             : String-         moduleHeader         : String -> String -> String -> Bool -> String-         nt                   : NontermIdent-         options              : Options-         pragmaBlocks         : String-         ruleKinds            : Map Identifier (Set VisitKind)-         synmap               : Attributes-         textBlocks           : PP_Doc-         usageInfo            : Map Identifier Int-      synthesized attributes:-         errors               : Seq Error-         mrules               : Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)-         ruledefs             : Map Identifier (Set String)-         ruleuses             : Map Identifier (Map String (Maybe NonLocalAttr))-         sem_rules            : PP_Doc-   alternatives:-      alternative ERule:-         child name           : {Identifier}-         child pattern        : Pattern -         child rhs            : Expression -         child owrt           : {Bool}-         child origin         : {String}-         child explicit       : {Bool}-         child pure           : {Bool}-         child mbError        : {Maybe Error}-         visit 0:-            local rulecode    : _-            local rulePragma  : _-            local scc         : _-            local pragma      : _-            local endpragma   : _-            local genpragma   : _-            local haspos      : _-            local lambda      : _-            local argPats     : _-            local argExprs    : _-            local stepcode    : _-            local used        : _-            local kinds       : _-            local anyLazyKind : _-            local addbang     : _-            local addbang1    : _--}--- cata-sem_ERule :: ERule ->-             T_ERule-sem_ERule (ERule _name _pattern _rhs _owrt _origin _explicit _pure _mbError) =-    (sem_ERule_ERule _name (sem_Pattern _pattern) (sem_Expression _rhs) _owrt _origin _explicit _pure _mbError)--- semantic domain-newtype T_ERule = T_ERule ((Map NontermIdent Attributes) ->-                           (Map NontermIdent Attributes) ->-                           (Map Identifier Type) ->-                           ConstructorIdent ->-                           PP_Doc ->-                           Attributes ->-                           (Set String) ->-                           (Map Identifier Type) ->-                           String ->-                           String ->-                           (String -> String -> String -> Bool -> String) ->-                           NontermIdent ->-                           Options ->-                           String ->-                           (Map Identifier (Set VisitKind)) ->-                           Attributes ->-                           PP_Doc ->-                           (Map Identifier Int) ->-                           ( (Seq Error),(Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)),(Map Identifier (Set String)),(Map Identifier (Map String (Maybe NonLocalAttr))),PP_Doc))-data Inh_ERule = Inh_ERule {allInhmap_Inh_ERule :: (Map NontermIdent Attributes),allSynmap_Inh_ERule :: (Map NontermIdent Attributes),childTypes_Inh_ERule :: (Map Identifier Type),con_Inh_ERule :: ConstructorIdent,importBlocks_Inh_ERule :: PP_Doc,inhmap_Inh_ERule :: Attributes,lazyIntras_Inh_ERule :: (Set String),localAttrTypes_Inh_ERule :: (Map Identifier Type),mainFile_Inh_ERule :: String,mainName_Inh_ERule :: String,moduleHeader_Inh_ERule :: (String -> String -> String -> Bool -> String),nt_Inh_ERule :: NontermIdent,options_Inh_ERule :: Options,pragmaBlocks_Inh_ERule :: String,ruleKinds_Inh_ERule :: (Map Identifier (Set VisitKind)),synmap_Inh_ERule :: Attributes,textBlocks_Inh_ERule :: PP_Doc,usageInfo_Inh_ERule :: (Map Identifier Int)}-data Syn_ERule = Syn_ERule {errors_Syn_ERule :: (Seq Error),mrules_Syn_ERule :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)),ruledefs_Syn_ERule :: (Map Identifier (Set String)),ruleuses_Syn_ERule :: (Map Identifier (Map String (Maybe NonLocalAttr))),sem_rules_Syn_ERule :: PP_Doc}-wrap_ERule :: T_ERule ->-              Inh_ERule ->-              Syn_ERule-wrap_ERule (T_ERule sem) (Inh_ERule _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes _lhsIcon _lhsIimportBlocks _lhsIinhmap _lhsIlazyIntras _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInt _lhsIoptions _lhsIpragmaBlocks _lhsIruleKinds _lhsIsynmap _lhsItextBlocks _lhsIusageInfo) =-    (let ( _lhsOerrors,_lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules) = sem _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes _lhsIcon _lhsIimportBlocks _lhsIinhmap _lhsIlazyIntras _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInt _lhsIoptions _lhsIpragmaBlocks _lhsIruleKinds _lhsIsynmap _lhsItextBlocks _lhsIusageInfo-     in  (Syn_ERule _lhsOerrors _lhsOmrules _lhsOruledefs _lhsOruleuses _lhsOsem_rules))-sem_ERule_ERule :: Identifier ->-                   T_Pattern ->-                   T_Expression ->-                   Bool ->-                   String ->-                   Bool ->-                   Bool ->-                   (Maybe Error) ->-                   T_ERule-sem_ERule_ERule name_ (T_Pattern pattern_) (T_Expression rhs_) owrt_ origin_ explicit_ pure_ mbError_ =-    (T_ERule (\ _lhsIallInhmap-                _lhsIallSynmap-                _lhsIchildTypes-                _lhsIcon-                _lhsIimportBlocks-                _lhsIinhmap-                _lhsIlazyIntras-                _lhsIlocalAttrTypes-                _lhsImainFile-                _lhsImainName-                _lhsImoduleHeader-                _lhsInt-                _lhsIoptions-                _lhsIpragmaBlocks-                _lhsIruleKinds-                _lhsIsynmap-                _lhsItextBlocks-                _lhsIusageInfo ->-                  (let _lhsOsem_rules :: PP_Doc-                       _lhsOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))-                       _lhsOruledefs :: (Map Identifier (Set String))-                       _lhsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))-                       _lhsOerrors :: (Seq Error)-                       _patternOallInhmap :: (Map NontermIdent Attributes)-                       _patternOallSynmap :: (Map NontermIdent Attributes)-                       _patternOanyLazyKind :: Bool-                       _patternOinhmap :: Attributes-                       _patternOlocalAttrTypes :: (Map Identifier Type)-                       _patternOoptions :: Options-                       _patternOsynmap :: Attributes-                       _patternIattrTypes :: PP_Doc-                       _patternIattrs :: (Set String)-                       _patternIcopy :: Pattern-                       _patternIisUnderscore :: Bool-                       _patternIsem_lhs :: ( PP_Doc )-                       _rhsIattrs :: (Map String (Maybe NonLocalAttr))-                       _rhsIpos :: Pos-                       _rhsIsemfunc :: PP_Doc-                       _rhsItks :: ([HsToken])-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 965, column 6)-                       _lhsOsem_rules =-                           ({-# LINE 965 "src-ag/ExecutionPlan2Hs.ag" #-}-                            if _used     == 0-                            then empty-                            else _rulePragma     >-< _rulecode-                            {-# LINE 4472 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 968, column 6)-                       _rulecode =-                           ({-# LINE 968 "src-ag/ExecutionPlan2Hs.ag" #-}-                            ( if _genpragma-                              then _pragma-                              else empty-                            )-                            >-< _lambda     >#< _scc-                            >-< indent ((column _rhsIpos - 2) `max` 2)-                                  ( if _genpragma-                                    then _pragma     >-< _rhsIsemfunc >-< _endpragma-                                    else _rhsIsemfunc-                                  )-                            {-# LINE 4487 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 980, column 7)-                       _rulePragma =-                           ({-# LINE 980 "src-ag/ExecutionPlan2Hs.ag" #-}-                            ( let reallyInlineStr   = "INLINE"-                                  reallyNoInlineStr = "NOINLINE"-                              in  if noInlinePragmas _lhsIoptions-                                  then empty-                                  else if _used     == 1-                                       then ppPragmaBinding reallyInlineStr name_-                                       else if helpInlining _lhsIoptions-                                            then if not explicit_ && _used     <= reallyOftenUsedThreshold-                                                 then ppPragmaBinding "INLINE[1]" name_-                                                 else if _used     > ruleInlineThresholdSoft && explicit_-                                                      then if _used     > ruleInlineThresholdHard-                                                           then ppPragmaBinding reallyNoInlineStr name_-                                                           else if aggressiveInlinePragmas _lhsIoptions-                                                                then ppPragmaBinding "NOINLINE[2]" name_-                                                                else ppNoInline name_-                                                      else if aggressiveInlinePragmas _lhsIoptions-                                                           then ppPragmaBinding "NOINLINE[1]" name_-                                                           else ppNoInline name_-                                            else if not explicit_ || _used     <= ruleInlineThresholdSoft-                                                 then ppPragmaBinding "NOINLINE[1]" name_-                                                 else ppNoInline name_-                                )-                            {-# LINE 4514 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1002, column 7)-                       _scc =-                           ({-# LINE 1002 "src-ag/ExecutionPlan2Hs.ag" #-}-                            if genCostCentres _lhsIoptions && explicit_ && pure_ && not (noPerRuleCostCentres _lhsIoptions)-                            then ppCostCentre (name_ >|< "_" >|< line _rhsIpos >|< "_" >|< _lhsInt >|< "_" >|< _lhsIcon)-                            else empty-                            {-# LINE 4522 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1005, column 7)-                       _pragma =-                           ({-# LINE 1005 "src-ag/ExecutionPlan2Hs.ag" #-}-                            "{-# LINE" >#< show (line _rhsIpos) >#< show (file _rhsIpos) >#< "#-}"-                            {-# LINE 4528 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1006, column 7)-                       _endpragma =-                           ({-# LINE 1006 "src-ag/ExecutionPlan2Hs.ag" #-}-                            ppWithLineNr (\ln -> "{-# LINE " ++ show (ln+1) ++ " " ++ show _lhsImainFile ++ "#-}")-                            {-# LINE 4534 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1007, column 7)-                       _genpragma =-                           ({-# LINE 1007 "src-ag/ExecutionPlan2Hs.ag" #-}-                            genLinePragmas _lhsIoptions && explicit_ && _haspos-                            {-# LINE 4540 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1008, column 7)-                       _haspos =-                           ({-# LINE 1008 "src-ag/ExecutionPlan2Hs.ag" #-}-                            line _rhsIpos > 0 && column _rhsIpos >= 0 && not (null (file _rhsIpos))-                            {-# LINE 4546 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1017, column 7)-                       _lambda =-                           ({-# LINE 1017 "src-ag/ExecutionPlan2Hs.ag" #-}-                            name_ >#< "=" >#< "\\" >#< _argPats     >#< dummyPat _lhsIoptions (Map.null _rhsIattrs) >#< "->"-                            {-# LINE 4552 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1019, column 7)-                       _argPats =-                           ({-# LINE 1019 "src-ag/ExecutionPlan2Hs.ag" #-}-                            ppSpaced [ let match | str `Set.member` _lhsIlazyIntras = pp str-                                                 | otherwise                        = _addbang1     (pp str)-                                       in case mbAttr of-                                            Just (AttrSyn child nm) | child == _LOC && not (noPerStateTypeSigs _lhsIoptions) ->-                                              case Map.lookup nm _lhsIlocalAttrTypes of-                                                Just tp -> pp_parens (pp_parens match >#< "::" >#< ppTp tp)-                                                Nothing -> match-                                            Just attr | not (noPerRuleTypeSigs _lhsIoptions) ->-                                              case lookupAttrType attr _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes of-                                                Just tpDoc -> pp_parens (pp_parens match >#< "::" >#< tpDoc)-                                                Nothing    -> match-                                            _ -> match-                                     | (str,mbAttr) <- Map.assocs _rhsIattrs-                                     ]-                            {-# LINE 4571 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1033, column 7)-                       _argExprs =-                           ({-# LINE 1033 "src-ag/ExecutionPlan2Hs.ag" #-}-                            ppSpaced $ Map.keys _rhsIattrs-                            {-# LINE 4577 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1034, column 7)-                       _stepcode =-                           ({-# LINE 1034 "src-ag/ExecutionPlan2Hs.ag" #-}-                            \kind fmtMode -> if kind `compatibleRule` pure_-                                             then Right $ let oper | pure_     = "="-                                                                   | otherwise = "<-"-                                                              decl = _patternIsem_lhs >#< oper >#< name_ >#< _argExprs     >#< dummyArg _lhsIoptions (Map.null _rhsIattrs)-                                                              tp   = if pure_ && not (noPerRuleTypeSigs _lhsIoptions)-                                                                     then _patternIattrTypes-                                                                     else empty-                                                          in fmtDecl pure_ fmtMode (tp >-< decl)-                                             else Left $ IncompatibleRuleKind name_ kind-                            {-# LINE 4591 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1044, column 7)-                       _lhsOmrules =-                           ({-# LINE 1044 "src-ag/ExecutionPlan2Hs.ag" #-}-                            Map.singleton name_ _stepcode-                            {-# LINE 4597 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1248, column 32)-                       _used =-                           ({-# LINE 1248 "src-ag/ExecutionPlan2Hs.ag" #-}-                            Map.findWithDefault 0 name_ _lhsIusageInfo-                            {-# LINE 4603 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1264, column 3)-                       _kinds =-                           ({-# LINE 1264 "src-ag/ExecutionPlan2Hs.ag" #-}-                            Map.findWithDefault Set.empty name_ _lhsIruleKinds-                            {-# LINE 4609 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1265, column 3)-                       _anyLazyKind =-                           ({-# LINE 1265 "src-ag/ExecutionPlan2Hs.ag" #-}-                            Set.fold (\k r -> isLazyKind k || r) False _kinds-                            {-# LINE 4615 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1311, column 11)-                       _lhsOruledefs =-                           ({-# LINE 1311 "src-ag/ExecutionPlan2Hs.ag" #-}-                            Map.singleton name_ _patternIattrs-                            {-# LINE 4621 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1312, column 11)-                       _lhsOruleuses =-                           ({-# LINE 1312 "src-ag/ExecutionPlan2Hs.ag" #-}-                            Map.singleton name_ _rhsIattrs-                            {-# LINE 4627 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1514, column 37)-                       _addbang =-                           ({-# LINE 1514 "src-ag/ExecutionPlan2Hs.ag" #-}-                            \x -> if bangpats _lhsIoptions then "!" >|< x else x-                            {-# LINE 4633 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1525, column 37)-                       _addbang1 =-                           ({-# LINE 1525 "src-ag/ExecutionPlan2Hs.ag" #-}-                            if _anyLazyKind     then id else _addbang-                            {-# LINE 4639 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1631, column 3)-                       _lhsOerrors =-                           ({-# LINE 1631 "src-ag/ExecutionPlan2Hs.ag" #-}-                            case mbError_ of-                              Just e | _used     > 0 -> Seq.singleton e-                              _                      -> Seq.empty-                            {-# LINE 4647 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _patternOallInhmap =-                           ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsIallInhmap-                            {-# LINE 4653 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _patternOallSynmap =-                           ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsIallSynmap-                            {-# LINE 4659 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (from local)-                       _patternOanyLazyKind =-                           ({-# LINE 1267 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _anyLazyKind-                            {-# LINE 4665 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _patternOinhmap =-                           ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsIinhmap-                            {-# LINE 4671 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _patternOlocalAttrTypes =-                           ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsIlocalAttrTypes-                            {-# LINE 4677 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _patternOoptions =-                           ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsIoptions-                            {-# LINE 4683 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _patternOsynmap =-                           ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsIsynmap-                            {-# LINE 4689 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       ( _patternIattrTypes,_patternIattrs,_patternIcopy,_patternIisUnderscore,_patternIsem_lhs) =-                           pattern_ _patternOallInhmap _patternOallSynmap _patternOanyLazyKind _patternOinhmap _patternOlocalAttrTypes _patternOoptions _patternOsynmap-                       ( _rhsIattrs,_rhsIpos,_rhsIsemfunc,_rhsItks) =-                           rhs_-                   in  ( _lhsOerrors,_lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules))))--- ERules -------------------------------------------------------{--   visit 0:-      inherited attributes:-         allInhmap            : Map NontermIdent Attributes-         allSynmap            : Map NontermIdent Attributes-         childTypes           : Map Identifier Type-         con                  : ConstructorIdent-         importBlocks         : PP_Doc-         inhmap               : Attributes-         lazyIntras           : Set String-         localAttrTypes       : Map Identifier Type-         mainFile             : String-         mainName             : String-         moduleHeader         : String -> String -> String -> Bool -> String-         nt                   : NontermIdent-         options              : Options-         pragmaBlocks         : String-         ruleKinds            : Map Identifier (Set VisitKind)-         synmap               : Attributes-         textBlocks           : PP_Doc-         usageInfo            : Map Identifier Int-      synthesized attributes:-         errors               : Seq Error-         mrules               : Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)-         ruledefs             : Map Identifier (Set String)-         ruleuses             : Map Identifier (Map String (Maybe NonLocalAttr))-         sem_rules            : PP_Doc-   alternatives:-      alternative Cons:-         child hd             : ERule -         child tl             : ERules -      alternative Nil:--}--- cata-sem_ERules :: ERules ->-              T_ERules-sem_ERules list =-    (Prelude.foldr sem_ERules_Cons sem_ERules_Nil (Prelude.map sem_ERule list))--- semantic domain-newtype T_ERules = T_ERules ((Map NontermIdent Attributes) ->-                             (Map NontermIdent Attributes) ->-                             (Map Identifier Type) ->-                             ConstructorIdent ->-                             PP_Doc ->-                             Attributes ->-                             (Set String) ->-                             (Map Identifier Type) ->-                             String ->-                             String ->-                             (String -> String -> String -> Bool -> String) ->-                             NontermIdent ->-                             Options ->-                             String ->-                             (Map Identifier (Set VisitKind)) ->-                             Attributes ->-                             PP_Doc ->-                             (Map Identifier Int) ->-                             ( (Seq Error),(Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)),(Map Identifier (Set String)),(Map Identifier (Map String (Maybe NonLocalAttr))),PP_Doc))-data Inh_ERules = Inh_ERules {allInhmap_Inh_ERules :: (Map NontermIdent Attributes),allSynmap_Inh_ERules :: (Map NontermIdent Attributes),childTypes_Inh_ERules :: (Map Identifier Type),con_Inh_ERules :: ConstructorIdent,importBlocks_Inh_ERules :: PP_Doc,inhmap_Inh_ERules :: Attributes,lazyIntras_Inh_ERules :: (Set String),localAttrTypes_Inh_ERules :: (Map Identifier Type),mainFile_Inh_ERules :: String,mainName_Inh_ERules :: String,moduleHeader_Inh_ERules :: (String -> String -> String -> Bool -> String),nt_Inh_ERules :: NontermIdent,options_Inh_ERules :: Options,pragmaBlocks_Inh_ERules :: String,ruleKinds_Inh_ERules :: (Map Identifier (Set VisitKind)),synmap_Inh_ERules :: Attributes,textBlocks_Inh_ERules :: PP_Doc,usageInfo_Inh_ERules :: (Map Identifier Int)}-data Syn_ERules = Syn_ERules {errors_Syn_ERules :: (Seq Error),mrules_Syn_ERules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)),ruledefs_Syn_ERules :: (Map Identifier (Set String)),ruleuses_Syn_ERules :: (Map Identifier (Map String (Maybe NonLocalAttr))),sem_rules_Syn_ERules :: PP_Doc}-wrap_ERules :: T_ERules ->-               Inh_ERules ->-               Syn_ERules-wrap_ERules (T_ERules sem) (Inh_ERules _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes _lhsIcon _lhsIimportBlocks _lhsIinhmap _lhsIlazyIntras _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInt _lhsIoptions _lhsIpragmaBlocks _lhsIruleKinds _lhsIsynmap _lhsItextBlocks _lhsIusageInfo) =-    (let ( _lhsOerrors,_lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules) = sem _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes _lhsIcon _lhsIimportBlocks _lhsIinhmap _lhsIlazyIntras _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInt _lhsIoptions _lhsIpragmaBlocks _lhsIruleKinds _lhsIsynmap _lhsItextBlocks _lhsIusageInfo-     in  (Syn_ERules _lhsOerrors _lhsOmrules _lhsOruledefs _lhsOruleuses _lhsOsem_rules))-sem_ERules_Cons :: T_ERule ->-                   T_ERules ->-                   T_ERules-sem_ERules_Cons (T_ERule hd_) (T_ERules tl_) =-    (T_ERules (\ _lhsIallInhmap-                 _lhsIallSynmap-                 _lhsIchildTypes-                 _lhsIcon-                 _lhsIimportBlocks-                 _lhsIinhmap-                 _lhsIlazyIntras-                 _lhsIlocalAttrTypes-                 _lhsImainFile-                 _lhsImainName-                 _lhsImoduleHeader-                 _lhsInt-                 _lhsIoptions-                 _lhsIpragmaBlocks-                 _lhsIruleKinds-                 _lhsIsynmap-                 _lhsItextBlocks-                 _lhsIusageInfo ->-                   (let _lhsOerrors :: (Seq Error)-                        _lhsOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))-                        _lhsOruledefs :: (Map Identifier (Set String))-                        _lhsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))-                        _lhsOsem_rules :: PP_Doc-                        _hdOallInhmap :: (Map NontermIdent Attributes)-                        _hdOallSynmap :: (Map NontermIdent Attributes)-                        _hdOchildTypes :: (Map Identifier Type)-                        _hdOcon :: ConstructorIdent-                        _hdOimportBlocks :: PP_Doc-                        _hdOinhmap :: Attributes-                        _hdOlazyIntras :: (Set String)-                        _hdOlocalAttrTypes :: (Map Identifier Type)-                        _hdOmainFile :: String-                        _hdOmainName :: String-                        _hdOmoduleHeader :: (String -> String -> String -> Bool -> String)-                        _hdOnt :: NontermIdent-                        _hdOoptions :: Options-                        _hdOpragmaBlocks :: String-                        _hdOruleKinds :: (Map Identifier (Set VisitKind))-                        _hdOsynmap :: Attributes-                        _hdOtextBlocks :: PP_Doc-                        _hdOusageInfo :: (Map Identifier Int)-                        _tlOallInhmap :: (Map NontermIdent Attributes)-                        _tlOallSynmap :: (Map NontermIdent Attributes)-                        _tlOchildTypes :: (Map Identifier Type)-                        _tlOcon :: ConstructorIdent-                        _tlOimportBlocks :: PP_Doc-                        _tlOinhmap :: Attributes-                        _tlOlazyIntras :: (Set String)-                        _tlOlocalAttrTypes :: (Map Identifier Type)-                        _tlOmainFile :: String-                        _tlOmainName :: String-                        _tlOmoduleHeader :: (String -> String -> String -> Bool -> String)-                        _tlOnt :: NontermIdent-                        _tlOoptions :: Options-                        _tlOpragmaBlocks :: String-                        _tlOruleKinds :: (Map Identifier (Set VisitKind))-                        _tlOsynmap :: Attributes-                        _tlOtextBlocks :: PP_Doc-                        _tlOusageInfo :: (Map Identifier Int)-                        _hdIerrors :: (Seq Error)-                        _hdImrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))-                        _hdIruledefs :: (Map Identifier (Set String))-                        _hdIruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))-                        _hdIsem_rules :: PP_Doc-                        _tlIerrors :: (Seq Error)-                        _tlImrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))-                        _tlIruledefs :: (Map Identifier (Set String))-                        _tlIruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))-                        _tlIsem_rules :: PP_Doc-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)-                        _lhsOerrors =-                            ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdIerrors Seq.>< _tlIerrors-                             {-# LINE 4840 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 962, column 32)-                        _lhsOmrules =-                            ({-# LINE 962 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdImrules `Map.union` _tlImrules-                             {-# LINE 4846 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1304, column 34)-                        _lhsOruledefs =-                            ({-# LINE 1304 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdIruledefs `uwSetUnion` _tlIruledefs-                             {-# LINE 4852 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1305, column 34)-                        _lhsOruleuses =-                            ({-# LINE 1305 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdIruleuses `uwMapUnion` _tlIruleuses-                             {-# LINE 4858 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 961, column 35)-                        _lhsOsem_rules =-                            ({-# LINE 961 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdIsem_rules >-< _tlIsem_rules-                             {-# LINE 4864 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOallInhmap =-                            ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallInhmap-                             {-# LINE 4870 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOallSynmap =-                            ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallSynmap-                             {-# LINE 4876 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOchildTypes =-                            ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIchildTypes-                             {-# LINE 4882 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOcon =-                            ({-# LINE 66 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIcon-                             {-# LINE 4888 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOimportBlocks =-                            ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIimportBlocks-                             {-# LINE 4894 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOinhmap =-                            ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIinhmap-                             {-# LINE 4900 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOlazyIntras =-                            ({-# LINE 1356 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIlazyIntras-                             {-# LINE 4906 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOlocalAttrTypes =-                            ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIlocalAttrTypes-                             {-# LINE 4912 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOmainFile =-                            ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsImainFile-                             {-# LINE 4918 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOmainName =-                            ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsImainName-                             {-# LINE 4924 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOmoduleHeader =-                            ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsImoduleHeader-                             {-# LINE 4930 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOnt =-                            ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsInt-                             {-# LINE 4936 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOoptions =-                            ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIoptions-                             {-# LINE 4942 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOpragmaBlocks =-                            ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIpragmaBlocks-                             {-# LINE 4948 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOruleKinds =-                            ({-# LINE 1259 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIruleKinds-                             {-# LINE 4954 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOsynmap =-                            ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIsynmap-                             {-# LINE 4960 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOtextBlocks =-                            ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsItextBlocks-                             {-# LINE 4966 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOusageInfo =-                            ({-# LINE 1244 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIusageInfo-                             {-# LINE 4972 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOallInhmap =-                            ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallInhmap-                             {-# LINE 4978 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOallSynmap =-                            ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallSynmap-                             {-# LINE 4984 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOchildTypes =-                            ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIchildTypes-                             {-# LINE 4990 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOcon =-                            ({-# LINE 66 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIcon-                             {-# LINE 4996 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOimportBlocks =-                            ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIimportBlocks-                             {-# LINE 5002 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOinhmap =-                            ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIinhmap-                             {-# LINE 5008 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOlazyIntras =-                            ({-# LINE 1356 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIlazyIntras-                             {-# LINE 5014 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOlocalAttrTypes =-                            ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIlocalAttrTypes-                             {-# LINE 5020 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOmainFile =-                            ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsImainFile-                             {-# LINE 5026 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOmainName =-                            ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsImainName-                             {-# LINE 5032 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOmoduleHeader =-                            ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsImoduleHeader-                             {-# LINE 5038 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOnt =-                            ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsInt-                             {-# LINE 5044 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOoptions =-                            ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIoptions-                             {-# LINE 5050 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOpragmaBlocks =-                            ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIpragmaBlocks-                             {-# LINE 5056 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOruleKinds =-                            ({-# LINE 1259 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIruleKinds-                             {-# LINE 5062 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOsynmap =-                            ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIsynmap-                             {-# LINE 5068 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOtextBlocks =-                            ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsItextBlocks-                             {-# LINE 5074 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOusageInfo =-                            ({-# LINE 1244 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIusageInfo-                             {-# LINE 5080 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        ( _hdIerrors,_hdImrules,_hdIruledefs,_hdIruleuses,_hdIsem_rules) =-                            hd_ _hdOallInhmap _hdOallSynmap _hdOchildTypes _hdOcon _hdOimportBlocks _hdOinhmap _hdOlazyIntras _hdOlocalAttrTypes _hdOmainFile _hdOmainName _hdOmoduleHeader _hdOnt _hdOoptions _hdOpragmaBlocks _hdOruleKinds _hdOsynmap _hdOtextBlocks _hdOusageInfo-                        ( _tlIerrors,_tlImrules,_tlIruledefs,_tlIruleuses,_tlIsem_rules) =-                            tl_ _tlOallInhmap _tlOallSynmap _tlOchildTypes _tlOcon _tlOimportBlocks _tlOinhmap _tlOlazyIntras _tlOlocalAttrTypes _tlOmainFile _tlOmainName _tlOmoduleHeader _tlOnt _tlOoptions _tlOpragmaBlocks _tlOruleKinds _tlOsynmap _tlOtextBlocks _tlOusageInfo-                    in  ( _lhsOerrors,_lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules))))-sem_ERules_Nil :: T_ERules-sem_ERules_Nil =-    (T_ERules (\ _lhsIallInhmap-                 _lhsIallSynmap-                 _lhsIchildTypes-                 _lhsIcon-                 _lhsIimportBlocks-                 _lhsIinhmap-                 _lhsIlazyIntras-                 _lhsIlocalAttrTypes-                 _lhsImainFile-                 _lhsImainName-                 _lhsImoduleHeader-                 _lhsInt-                 _lhsIoptions-                 _lhsIpragmaBlocks-                 _lhsIruleKinds-                 _lhsIsynmap-                 _lhsItextBlocks-                 _lhsIusageInfo ->-                   (let _lhsOerrors :: (Seq Error)-                        _lhsOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))-                        _lhsOruledefs :: (Map Identifier (Set String))-                        _lhsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))-                        _lhsOsem_rules :: PP_Doc-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)-                        _lhsOerrors =-                            ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}-                             Seq.empty-                             {-# LINE 5116 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 962, column 32)-                        _lhsOmrules =-                            ({-# LINE 962 "src-ag/ExecutionPlan2Hs.ag" #-}-                             Map.empty-                             {-# LINE 5122 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1304, column 34)-                        _lhsOruledefs =-                            ({-# LINE 1304 "src-ag/ExecutionPlan2Hs.ag" #-}-                             Map.empty-                             {-# LINE 5128 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1305, column 34)-                        _lhsOruleuses =-                            ({-# LINE 1305 "src-ag/ExecutionPlan2Hs.ag" #-}-                             Map.empty-                             {-# LINE 5134 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 961, column 35)-                        _lhsOsem_rules =-                            ({-# LINE 961 "src-ag/ExecutionPlan2Hs.ag" #-}-                             empty-                             {-# LINE 5140 "dist/build/ExecutionPlan2Hs" #-}-                             )-                    in  ( _lhsOerrors,_lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules))))--- ExecutionPlan ------------------------------------------------{--   visit 0:-      inherited attributes:-         importBlocks         : PP_Doc-         inhmap               : Map NontermIdent Attributes-         localAttrTypes       : Map NontermIdent (Map ConstructorIdent (Map Identifier Type))-         mainBlocksDoc        : PP_Doc-         mainFile             : String-         mainName             : String-         moduleHeader         : String -> String -> String -> Bool -> String-         options              : Options-         pragmaBlocks         : String-         synmap               : Map NontermIdent Attributes-         textBlockMap         : Map BlockInfo PP_Doc-         textBlocks           : PP_Doc-      synthesized attributes:-         errors               : Seq Error-         genIO                : IO ()-         output               : PP_Doc-   alternatives:-      alternative ExecutionPlan:-         child nonts          : ENonterminals -         child typeSyns       : {TypeSyns}-         child wrappers       : {Set NontermIdent}-         child derivings      : {Derivings}-         visit 0:-            local wrappersExtra : _-            local commonExtra : _-            local lateSemBndTp : _-            local lateSemBndDef : _-            local mainModuleFile : _-            local ppMonadImports : _-            local genMainModule : _-            local commonFile  : _-            local genCommonModule : _--}--- cata-sem_ExecutionPlan :: ExecutionPlan ->-                     T_ExecutionPlan-sem_ExecutionPlan (ExecutionPlan _nonts _typeSyns _wrappers _derivings) =-    (sem_ExecutionPlan_ExecutionPlan (sem_ENonterminals _nonts) _typeSyns _wrappers _derivings)--- semantic domain-newtype T_ExecutionPlan = T_ExecutionPlan (PP_Doc ->-                                           (Map NontermIdent Attributes) ->-                                           (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))) ->-                                           PP_Doc ->-                                           String ->-                                           String ->-                                           (String -> String -> String -> Bool -> String) ->-                                           Options ->-                                           String ->-                                           (Map NontermIdent Attributes) ->-                                           (Map BlockInfo PP_Doc) ->-                                           PP_Doc ->-                                           ( (Seq Error),(IO ()),PP_Doc))-data Inh_ExecutionPlan = Inh_ExecutionPlan {importBlocks_Inh_ExecutionPlan :: PP_Doc,inhmap_Inh_ExecutionPlan :: (Map NontermIdent Attributes),localAttrTypes_Inh_ExecutionPlan :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))),mainBlocksDoc_Inh_ExecutionPlan :: PP_Doc,mainFile_Inh_ExecutionPlan :: String,mainName_Inh_ExecutionPlan :: String,moduleHeader_Inh_ExecutionPlan :: (String -> String -> String -> Bool -> String),options_Inh_ExecutionPlan :: Options,pragmaBlocks_Inh_ExecutionPlan :: String,synmap_Inh_ExecutionPlan :: (Map NontermIdent Attributes),textBlockMap_Inh_ExecutionPlan :: (Map BlockInfo PP_Doc),textBlocks_Inh_ExecutionPlan :: PP_Doc}-data Syn_ExecutionPlan = Syn_ExecutionPlan {errors_Syn_ExecutionPlan :: (Seq Error),genIO_Syn_ExecutionPlan :: (IO ()),output_Syn_ExecutionPlan :: PP_Doc}-wrap_ExecutionPlan :: T_ExecutionPlan ->-                      Inh_ExecutionPlan ->-                      Syn_ExecutionPlan-wrap_ExecutionPlan (T_ExecutionPlan sem) (Inh_ExecutionPlan _lhsIimportBlocks _lhsIinhmap _lhsIlocalAttrTypes _lhsImainBlocksDoc _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIpragmaBlocks _lhsIsynmap _lhsItextBlockMap _lhsItextBlocks) =-    (let ( _lhsOerrors,_lhsOgenIO,_lhsOoutput) = sem _lhsIimportBlocks _lhsIinhmap _lhsIlocalAttrTypes _lhsImainBlocksDoc _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIpragmaBlocks _lhsIsynmap _lhsItextBlockMap _lhsItextBlocks-     in  (Syn_ExecutionPlan _lhsOerrors _lhsOgenIO _lhsOoutput))-sem_ExecutionPlan_ExecutionPlan :: T_ENonterminals ->-                                   TypeSyns ->-                                   (Set NontermIdent) ->-                                   Derivings ->-                                   T_ExecutionPlan-sem_ExecutionPlan_ExecutionPlan (T_ENonterminals nonts_) typeSyns_ wrappers_ derivings_ =-    (T_ExecutionPlan (\ _lhsIimportBlocks-                        _lhsIinhmap-                        _lhsIlocalAttrTypes-                        _lhsImainBlocksDoc-                        _lhsImainFile-                        _lhsImainName-                        _lhsImoduleHeader-                        _lhsIoptions-                        _lhsIpragmaBlocks-                        _lhsIsynmap-                        _lhsItextBlockMap-                        _lhsItextBlocks ->-                          (let _lhsOoutput :: PP_Doc-                               _nontsOwrappers :: (Set NontermIdent)-                               _nontsOtypeSyns :: TypeSyns-                               _nontsOderivings :: Derivings-                               _nontsOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                               _nontsOavisitdefs :: (Map VisitIdentifier (Set Identifier))-                               _nontsOavisituses :: (Map VisitIdentifier (Set Identifier))-                               _lhsOgenIO :: (IO ())-                               _nontsOallFromToStates :: (Map VisitIdentifier (Int,Int))-                               _nontsOallVisitKinds :: (Map VisitIdentifier VisitKind)-                               _nontsOallInitStates :: (Map NontermIdent Int)-                               _lhsOerrors :: (Seq Error)-                               _nontsOimportBlocks :: PP_Doc-                               _nontsOinhmap :: (Map NontermIdent Attributes)-                               _nontsOlocalAttrTypes :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type)))-                               _nontsOmainFile :: String-                               _nontsOmainName :: String-                               _nontsOmoduleHeader :: (String -> String -> String -> Bool -> String)-                               _nontsOoptions :: Options-                               _nontsOpragmaBlocks :: String-                               _nontsOsynmap :: (Map NontermIdent Attributes)-                               _nontsOtextBlocks :: PP_Doc-                               _nontsIappendCommon :: ([PP_Doc])-                               _nontsIappendMain :: ([PP_Doc])-                               _nontsIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                               _nontsIerrors :: (Seq Error)-                               _nontsIfromToStates :: (Map VisitIdentifier (Int,Int))-                               _nontsIgenProdIO :: (IO ())-                               _nontsIimports :: ([PP_Doc])-                               _nontsIinitStates :: (Map NontermIdent Int)-                               _nontsIoutput :: PP_Doc-                               _nontsIsemFunBndDefs :: (Seq PP_Doc)-                               _nontsIsemFunBndTps :: (Seq PP_Doc)-                               _nontsIvisitKinds :: (Map VisitIdentifier VisitKind)-                               _nontsIvisitdefs :: (Map VisitIdentifier (Set Identifier))-                               _nontsIvisituses :: (Map VisitIdentifier (Set Identifier))-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 87, column 19)-                               _lhsOoutput =-                                   ({-# LINE 87 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _nontsIoutput >-< _commonExtra     >-< _wrappersExtra-                                    {-# LINE 5265 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 93, column 19)-                               _nontsOwrappers =-                                   ({-# LINE 93 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    wrappers_-                                    {-# LINE 5271 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 132, column 19)-                               _nontsOtypeSyns =-                                   ({-# LINE 132 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    typeSyns_-                                    {-# LINE 5277 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 133, column 19)-                               _nontsOderivings =-                                   ({-# LINE 133 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    derivings_-                                    {-# LINE 5283 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 532, column 3)-                               _wrappersExtra =-                                   ({-# LINE 532 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    if kennedyWarren _lhsIoptions && lateHigherOrderBinding _lhsIoptions-                                    then _lateSemBndDef-                                    else empty-                                    {-# LINE 5291 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 535, column 3)-                               _commonExtra =-                                   ({-# LINE 535 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    if kennedyWarren _lhsIoptions && lateHigherOrderBinding _lhsIoptions-                                    then _lateSemBndTp-                                    else empty-                                    {-# LINE 5299 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 538, column 3)-                               _lateSemBndTp =-                                   ({-# LINE 538 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    "data" >#< lateBindingTypeNm _lhsImainName >#< "=" >#< lateBindingTypeNm _lhsImainName-                                     >-< (indent 2 $ pp_block "{" "}" "," $ toList _nontsIsemFunBndTps)-                                    {-# LINE 5306 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 540, column 3)-                               _lateSemBndDef =-                                   ({-# LINE 540 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    ( if noInlinePragmas _lhsIoptions-                                      then empty-                                      else if helpInlining _lhsIoptions && Set.size wrappers_ == 1-                                           then ppInline $ lateBindingFieldNm _lhsImainName-                                           else ppNoInline $ lateBindingFieldNm _lhsImainName-                                    )-                                    >-< lateBindingFieldNm _lhsImainName >#< "::" >#< lateBindingTypeNm _lhsImainName-                                    >-< lateBindingFieldNm _lhsImainName >#< "=" >#< lateBindingTypeNm _lhsImainName-                                    >-< (indent 2 $ pp_block "{" "}" "," $ toList _nontsIsemFunBndDefs )-                                    {-# LINE 5320 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1192, column 19)-                               _nontsOallchildvisit =-                                   ({-# LINE 1192 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _nontsIchildvisit-                                    {-# LINE 5326 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1336, column 19)-                               _nontsOavisitdefs =-                                   ({-# LINE 1336 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _nontsIvisitdefs-                                    {-# LINE 5332 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1337, column 19)-                               _nontsOavisituses =-                                   ({-# LINE 1337 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _nontsIvisituses-                                    {-# LINE 5338 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1408, column 19)-                               _lhsOgenIO =-                                   ({-# LINE 1408 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    do _genMainModule-                                       _genCommonModule-                                       _nontsIgenProdIO-                                    {-# LINE 5346 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1411, column 19)-                               _mainModuleFile =-                                   ({-# LINE 1411 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsImainFile-                                    {-# LINE 5352 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1412, column 19)-                               _ppMonadImports =-                                   ({-# LINE 1412 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    ( if tupleAsDummyToken _lhsIoptions-                                      then empty-                                      else pp "import GHC.Prim"-                                    )-                                    >-< if parallelInvoke _lhsIoptions-                                        then pp "import qualified System.IO.Unsafe(unsafePerformIO)"-                                             >-< pp "import System.IO(IO)"-                                             >-< pp "import Control.Concurrent(newEmptyMVar,forkIO,putMVar,takeMVar)"-                                        else pp "import Control.Monad.Identity"-                                    {-# LINE 5366 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1421, column 19)-                               _genMainModule =-                                   ({-# LINE 1421 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    writeModule _mainModuleFile-                                      ( [ warrenFlagsPP _lhsIoptions-                                        , pp $ _lhsIpragmaBlocks-                                        , pp $ _lhsImoduleHeader _lhsImainName "" "" False-                                        , _ppMonadImports-                                        , pp $ "import " ++ _lhsImainName ++ "_common"-                                        ]-                                        ++ _nontsIimports-                                        ++ [_lhsImainBlocksDoc]-                                        ++ [_wrappersExtra    ]-                                        ++ _nontsIappendMain-                                      )-                                    {-# LINE 5383 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1433, column 19)-                               _commonFile =-                                   ({-# LINE 1433 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    replaceBaseName _lhsImainFile (takeBaseName _lhsImainFile ++ "_common")-                                    {-# LINE 5389 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1434, column 19)-                               _genCommonModule =-                                   ({-# LINE 1434 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    writeModule _commonFile-                                      ( [ pp $ "{-# LANGUAGE Rank2Types, GADTs #-}"-                                        , pp $ _lhsIpragmaBlocks-                                        , pp $ _lhsImoduleHeader _lhsImainName "_common" "" True-                                        , _ppMonadImports-                                        , _lhsIimportBlocks-                                        , _lhsItextBlocks-                                        , _commonExtra-                                        ]-                                        ++ _nontsIappendCommon-                                      )-                                    {-# LINE 5405 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1553, column 3)-                               _nontsOallFromToStates =-                                   ({-# LINE 1553 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _nontsIfromToStates-                                    {-# LINE 5411 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1597, column 3)-                               _nontsOallVisitKinds =-                                   ({-# LINE 1597 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _nontsIvisitKinds-                                    {-# LINE 5417 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1611, column 3)-                               _nontsOallInitStates =-                                   ({-# LINE 1611 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _nontsIinitStates-                                    {-# LINE 5423 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)-                               _lhsOerrors =-                                   ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _nontsIerrors-                                    {-# LINE 5429 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _nontsOimportBlocks =-                                   ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIimportBlocks-                                    {-# LINE 5435 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _nontsOinhmap =-                                   ({-# LINE 312 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIinhmap-                                    {-# LINE 5441 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _nontsOlocalAttrTypes =-                                   ({-# LINE 1576 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIlocalAttrTypes-                                    {-# LINE 5447 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _nontsOmainFile =-                                   ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsImainFile-                                    {-# LINE 5453 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _nontsOmainName =-                                   ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsImainName-                                    {-# LINE 5459 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _nontsOmoduleHeader =-                                   ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsImoduleHeader-                                    {-# LINE 5465 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _nontsOoptions =-                                   ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIoptions-                                    {-# LINE 5471 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _nontsOpragmaBlocks =-                                   ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIpragmaBlocks-                                    {-# LINE 5477 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _nontsOsynmap =-                                   ({-# LINE 313 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsIsynmap-                                    {-# LINE 5483 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               -- copy rule (down)-                               _nontsOtextBlocks =-                                   ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}-                                    _lhsItextBlocks-                                    {-# LINE 5489 "dist/build/ExecutionPlan2Hs" #-}-                                    )-                               ( _nontsIappendCommon,_nontsIappendMain,_nontsIchildvisit,_nontsIerrors,_nontsIfromToStates,_nontsIgenProdIO,_nontsIimports,_nontsIinitStates,_nontsIoutput,_nontsIsemFunBndDefs,_nontsIsemFunBndTps,_nontsIvisitKinds,_nontsIvisitdefs,_nontsIvisituses) =-                                   nonts_ _nontsOallFromToStates _nontsOallInitStates _nontsOallVisitKinds _nontsOallchildvisit _nontsOavisitdefs _nontsOavisituses _nontsOderivings _nontsOimportBlocks _nontsOinhmap _nontsOlocalAttrTypes _nontsOmainFile _nontsOmainName _nontsOmoduleHeader _nontsOoptions _nontsOpragmaBlocks _nontsOsynmap _nontsOtextBlocks _nontsOtypeSyns _nontsOwrappers-                           in  ( _lhsOerrors,_lhsOgenIO,_lhsOoutput))))--- Expression ---------------------------------------------------{--   visit 0:-      synthesized attributes:-         attrs                : Map String (Maybe NonLocalAttr)-         pos                  : Pos-         semfunc              : PP_Doc-         tks                  : [HsToken]-   alternatives:-      alternative Expression:-         child pos            : {Pos}-         child tks            : {[HsToken]}--}--- cata-sem_Expression :: Expression ->-                  T_Expression-sem_Expression (Expression _pos _tks) =-    (sem_Expression_Expression _pos _tks)--- semantic domain-newtype T_Expression = T_Expression (( (Map String (Maybe NonLocalAttr)),Pos,PP_Doc,([HsToken])))-data Inh_Expression = Inh_Expression {}-data Syn_Expression = Syn_Expression {attrs_Syn_Expression :: (Map String (Maybe NonLocalAttr)),pos_Syn_Expression :: Pos,semfunc_Syn_Expression :: PP_Doc,tks_Syn_Expression :: ([HsToken])}-wrap_Expression :: T_Expression ->-                   Inh_Expression ->-                   Syn_Expression-wrap_Expression (T_Expression sem) (Inh_Expression) =-    (let ( _lhsOattrs,_lhsOpos,_lhsOsemfunc,_lhsOtks) = sem-     in  (Syn_Expression _lhsOattrs _lhsOpos _lhsOsemfunc _lhsOtks))-sem_Expression_Expression :: Pos ->-                             ([HsToken]) ->-                             T_Expression-sem_Expression_Expression pos_ tks_ =-    (T_Expression (let _lhsOtks :: ([HsToken])-                       _lhsOpos :: Pos-                       _lhsOattrs :: (Map String (Maybe NonLocalAttr))-                       _lhsOsemfunc :: PP_Doc-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1048, column 16)-                       _lhsOtks =-                           ({-# LINE 1048 "src-ag/ExecutionPlan2Hs.ag" #-}-                            tks_-                            {-# LINE 5534 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1091, column 29)-                       _lhsOpos =-                           ({-# LINE 1091 "src-ag/ExecutionPlan2Hs.ag" #-}-                            pos_-                            {-# LINE 5540 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1177, column 16)-                       _lhsOattrs =-                           ({-# LINE 1177 "src-ag/ExecutionPlan2Hs.ag" #-}-                            Map.unions $ map (\tok -> attrs_Syn_HsToken (wrap_HsToken (sem_HsToken tok) Inh_HsToken)) tks_-                            {-# LINE 5546 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1178, column 16)-                       _lhsOsemfunc =-                           ({-# LINE 1178 "src-ag/ExecutionPlan2Hs.ag" #-}-                            vlist $ showTokens $ map (\tok -> tok_Syn_HsToken (wrap_HsToken (sem_HsToken tok) Inh_HsToken)) tks_-                            {-# LINE 5552 "dist/build/ExecutionPlan2Hs" #-}-                            )-                   in  ( _lhsOattrs,_lhsOpos,_lhsOsemfunc,_lhsOtks)))--- HsToken ------------------------------------------------------{--   visit 0:-      synthesized attributes:-         attrs                : Map String (Maybe NonLocalAttr)-         tok                  : (Pos,String)-   alternatives:-      alternative AGField:-         child field          : {Identifier}-         child attr           : {Identifier}-         child pos            : {Pos}-         child rdesc          : {Maybe String}-         visit 0:-            local mbAttr      : _-            local addTrace    : _-      alternative AGLocal:-         child var            : {Identifier}-         child pos            : {Pos}-         child rdesc          : {Maybe String}-         visit 0:-            local tok         : _-      alternative CharToken:-         child value          : {String}-         child pos            : {Pos}-      alternative Err:-         child mesg           : {String}-         child pos            : {Pos}-      alternative HsToken:-         child value          : {String}-         child pos            : {Pos}-      alternative StrToken:-         child value          : {String}-         child pos            : {Pos}--}--- cata-sem_HsToken :: HsToken ->-               T_HsToken-sem_HsToken (AGField _field _attr _pos _rdesc) =-    (sem_HsToken_AGField _field _attr _pos _rdesc)-sem_HsToken (AGLocal _var _pos _rdesc) =-    (sem_HsToken_AGLocal _var _pos _rdesc)-sem_HsToken (CharToken _value _pos) =-    (sem_HsToken_CharToken _value _pos)-sem_HsToken (Err _mesg _pos) =-    (sem_HsToken_Err _mesg _pos)-sem_HsToken (HsToken _value _pos) =-    (sem_HsToken_HsToken _value _pos)-sem_HsToken (StrToken _value _pos) =-    (sem_HsToken_StrToken _value _pos)--- semantic domain-newtype T_HsToken = T_HsToken (( (Map String (Maybe NonLocalAttr)),((Pos,String))))-data Inh_HsToken = Inh_HsToken {}-data Syn_HsToken = Syn_HsToken {attrs_Syn_HsToken :: (Map String (Maybe NonLocalAttr)),tok_Syn_HsToken :: ((Pos,String))}-wrap_HsToken :: T_HsToken ->-                Inh_HsToken ->-                Syn_HsToken-wrap_HsToken (T_HsToken sem) (Inh_HsToken) =-    (let ( _lhsOattrs,_lhsOtok) = sem-     in  (Syn_HsToken _lhsOattrs _lhsOtok))-sem_HsToken_AGField :: Identifier ->-                       Identifier ->-                       Pos ->-                       (Maybe String) ->-                       T_HsToken-sem_HsToken_AGField field_ attr_ pos_ rdesc_ =-    (T_HsToken (let _lhsOattrs :: (Map String (Maybe NonLocalAttr))-                    _lhsOtok :: ((Pos,String))-                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1137, column 15)-                    _mbAttr =-                        ({-# LINE 1137 "src-ag/ExecutionPlan2Hs.ag" #-}-                         if field_ == _INST || field_ == _FIELD || field_ == _INST'-                         then Nothing-                         else Just $ mkNonLocalAttr (field_ == _LHS) field_ attr_-                         {-# LINE 5628 "dist/build/ExecutionPlan2Hs" #-}-                         )-                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1140, column 15)-                    _lhsOattrs =-                        ({-# LINE 1140 "src-ag/ExecutionPlan2Hs.ag" #-}-                         Map.singleton (attrname True field_ attr_) _mbAttr-                         {-# LINE 5634 "dist/build/ExecutionPlan2Hs" #-}-                         )-                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1385, column 8)-                    _addTrace =-                        ({-# LINE 1385 "src-ag/ExecutionPlan2Hs.ag" #-}-                         case rdesc_ of-                           Just d  -> \x -> "(trace " ++ show (d ++ " -> " ++ show field_ ++ "." ++ show attr_) ++ " (" ++ x ++ "))"-                           Nothing -> id-                         {-# LINE 5642 "dist/build/ExecutionPlan2Hs" #-}-                         )-                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1388, column 8)-                    _lhsOtok =-                        ({-# LINE 1388 "src-ag/ExecutionPlan2Hs.ag" #-}-                         (pos_, _addTrace     $ attrname True field_ attr_)-                         {-# LINE 5648 "dist/build/ExecutionPlan2Hs" #-}-                         )-                in  ( _lhsOattrs,_lhsOtok)))-sem_HsToken_AGLocal :: Identifier ->-                       Pos ->-                       (Maybe String) ->-                       T_HsToken-sem_HsToken_AGLocal var_ pos_ rdesc_ =-    (T_HsToken (let _lhsOattrs :: (Map String (Maybe NonLocalAttr))-                    _lhsOtok :: ((Pos,String))-                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1136, column 15)-                    _lhsOattrs =-                        ({-# LINE 1136 "src-ag/ExecutionPlan2Hs.ag" #-}-                         Map.singleton (fieldname var_) Nothing-                         {-# LINE 5662 "dist/build/ExecutionPlan2Hs" #-}-                         )-                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1381, column 15)-                    _tok =-                        ({-# LINE 1381 "src-ag/ExecutionPlan2Hs.ag" #-}-                         (pos_,fieldname var_)-                         {-# LINE 5668 "dist/build/ExecutionPlan2Hs" #-}-                         )-                    -- copy rule (from local)-                    _lhsOtok =-                        ({-# LINE 1383 "src-ag/ExecutionPlan2Hs.ag" #-}-                         _tok-                         {-# LINE 5674 "dist/build/ExecutionPlan2Hs" #-}-                         )-                in  ( _lhsOattrs,_lhsOtok)))-sem_HsToken_CharToken :: String ->-                         Pos ->-                         T_HsToken-sem_HsToken_CharToken value_ pos_ =-    (T_HsToken (let _lhsOtok :: ((Pos,String))-                    _lhsOattrs :: (Map String (Maybe NonLocalAttr))-                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1392, column 16)-                    _lhsOtok =-                        ({-# LINE 1392 "src-ag/ExecutionPlan2Hs.ag" #-}-                         (pos_, if null value_-                                   then ""-                                   else showCharShort (head value_)-                         )-                         {-# LINE 5690 "dist/build/ExecutionPlan2Hs" #-}-                         )-                    -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1134, column 37)-                    _lhsOattrs =-                        ({-# LINE 1134 "src-ag/ExecutionPlan2Hs.ag" #-}-                         Map.empty-                         {-# LINE 5696 "dist/build/ExecutionPlan2Hs" #-}-                         )-                in  ( _lhsOattrs,_lhsOtok)))-sem_HsToken_Err :: String ->-                   Pos ->-                   T_HsToken-sem_HsToken_Err mesg_ pos_ =-    (T_HsToken (let _lhsOtok :: ((Pos,String))-                    _lhsOattrs :: (Map String (Maybe NonLocalAttr))-                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1398, column 16)-                    _lhsOtok =-                        ({-# LINE 1398 "src-ag/ExecutionPlan2Hs.ag" #-}-                         (pos_, "")-                         {-# LINE 5709 "dist/build/ExecutionPlan2Hs" #-}-                         )-                    -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1134, column 37)-                    _lhsOattrs =-                        ({-# LINE 1134 "src-ag/ExecutionPlan2Hs.ag" #-}-                         Map.empty-                         {-# LINE 5715 "dist/build/ExecutionPlan2Hs" #-}-                         )-                in  ( _lhsOattrs,_lhsOtok)))-sem_HsToken_HsToken :: String ->-                       Pos ->-                       T_HsToken-sem_HsToken_HsToken value_ pos_ =-    (T_HsToken (let _lhsOtok :: ((Pos,String))-                    _lhsOattrs :: (Map String (Maybe NonLocalAttr))-                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1390, column 14)-                    _lhsOtok =-                        ({-# LINE 1390 "src-ag/ExecutionPlan2Hs.ag" #-}-                         (pos_, value_)-                         {-# LINE 5728 "dist/build/ExecutionPlan2Hs" #-}-                         )-                    -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1134, column 37)-                    _lhsOattrs =-                        ({-# LINE 1134 "src-ag/ExecutionPlan2Hs.ag" #-}-                         Map.empty-                         {-# LINE 5734 "dist/build/ExecutionPlan2Hs" #-}-                         )-                in  ( _lhsOattrs,_lhsOtok)))-sem_HsToken_StrToken :: String ->-                        Pos ->-                        T_HsToken-sem_HsToken_StrToken value_ pos_ =-    (T_HsToken (let _lhsOtok :: ((Pos,String))-                    _lhsOattrs :: (Map String (Maybe NonLocalAttr))-                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1397, column 16)-                    _lhsOtok =-                        ({-# LINE 1397 "src-ag/ExecutionPlan2Hs.ag" #-}-                         (pos_, showStrShort value_)-                         {-# LINE 5747 "dist/build/ExecutionPlan2Hs" #-}-                         )-                    -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1134, column 37)-                    _lhsOattrs =-                        ({-# LINE 1134 "src-ag/ExecutionPlan2Hs.ag" #-}-                         Map.empty-                         {-# LINE 5753 "dist/build/ExecutionPlan2Hs" #-}-                         )-                in  ( _lhsOattrs,_lhsOtok)))--- HsTokens -----------------------------------------------------{--   visit 0:-      synthesized attribute:-         tks                  : [(Pos,String)]-   alternatives:-      alternative Cons:-         child hd             : HsToken -         child tl             : HsTokens -      alternative Nil:--}--- cata-sem_HsTokens :: HsTokens ->-                T_HsTokens-sem_HsTokens list =-    (Prelude.foldr sem_HsTokens_Cons sem_HsTokens_Nil (Prelude.map sem_HsToken list))--- semantic domain-newtype T_HsTokens = T_HsTokens (( ([(Pos,String)])))-data Inh_HsTokens = Inh_HsTokens {}-data Syn_HsTokens = Syn_HsTokens {tks_Syn_HsTokens :: ([(Pos,String)])}-wrap_HsTokens :: T_HsTokens ->-                 Inh_HsTokens ->-                 Syn_HsTokens-wrap_HsTokens (T_HsTokens sem) (Inh_HsTokens) =-    (let ( _lhsOtks) = sem-     in  (Syn_HsTokens _lhsOtks))-sem_HsTokens_Cons :: T_HsToken ->-                     T_HsTokens ->-                     T_HsTokens-sem_HsTokens_Cons (T_HsToken hd_) (T_HsTokens tl_) =-    (T_HsTokens (let _lhsOtks :: ([(Pos,String)])-                     _hdIattrs :: (Map String (Maybe NonLocalAttr))-                     _hdItok :: ((Pos,String))-                     _tlItks :: ([(Pos,String)])-                     -- "src-ag/ExecutionPlan2Hs.ag"(line 1377, column 10)-                     _lhsOtks =-                         ({-# LINE 1377 "src-ag/ExecutionPlan2Hs.ag" #-}-                          _hdItok : _tlItks-                          {-# LINE 5794 "dist/build/ExecutionPlan2Hs" #-}-                          )-                     ( _hdIattrs,_hdItok) =-                         hd_-                     ( _tlItks) =-                         tl_-                 in  ( _lhsOtks)))-sem_HsTokens_Nil :: T_HsTokens-sem_HsTokens_Nil =-    (T_HsTokens (let _lhsOtks :: ([(Pos,String)])-                     -- "src-ag/ExecutionPlan2Hs.ag"(line 1378, column 10)-                     _lhsOtks =-                         ({-# LINE 1378 "src-ag/ExecutionPlan2Hs.ag" #-}-                          []-                          {-# LINE 5808 "dist/build/ExecutionPlan2Hs" #-}-                          )-                 in  ( _lhsOtks)))--- HsTokensRoot -------------------------------------------------{--   alternatives:-      alternative HsTokensRoot:-         child tokens         : HsTokens --}--- cata-sem_HsTokensRoot :: HsTokensRoot ->-                    T_HsTokensRoot-sem_HsTokensRoot (HsTokensRoot _tokens) =-    (sem_HsTokensRoot_HsTokensRoot (sem_HsTokens _tokens))--- semantic domain-newtype T_HsTokensRoot = T_HsTokensRoot (( ))-data Inh_HsTokensRoot = Inh_HsTokensRoot {}-data Syn_HsTokensRoot = Syn_HsTokensRoot {}-wrap_HsTokensRoot :: T_HsTokensRoot ->-                     Inh_HsTokensRoot ->-                     Syn_HsTokensRoot-wrap_HsTokensRoot (T_HsTokensRoot sem) (Inh_HsTokensRoot) =-    (let ( ) = sem-     in  (Syn_HsTokensRoot))-sem_HsTokensRoot_HsTokensRoot :: T_HsTokens ->-                                 T_HsTokensRoot-sem_HsTokensRoot_HsTokensRoot (T_HsTokens tokens_) =-    (T_HsTokensRoot (let _tokensItks :: ([(Pos,String)])-                         ( _tokensItks) =-                             tokens_-                     in  ( )))--- Pattern ------------------------------------------------------{--   visit 0:-      inherited attributes:-         allInhmap            : Map NontermIdent Attributes-         allSynmap            : Map NontermIdent Attributes-         anyLazyKind          : Bool-         inhmap               : Attributes-         localAttrTypes       : Map Identifier Type-         options              : Options-         synmap               : Attributes-      synthesized attributes:-         attrTypes            : PP_Doc-         attrs                : Set String-         copy                 : Pattern -         isUnderscore         : Bool-         sem_lhs              :  PP_Doc -   alternatives:-      alternative Alias:-         child field          : {Identifier}-         child attr           : {Identifier}-         child pat            : Pattern -         visit 0:-            local varPat      : _-            local patExpr     : _-            local mbTp        : _-            local addbang     : _-            local addbang1    : _-            local copy        : _-      alternative Constr:-         child name           : {ConstructorIdent}-         child pats           : Patterns -         visit 0:-            local addbang     : _-            local addbang1    : _-            local copy        : _-      alternative Irrefutable:-         child pat            : Pattern -         visit 0:-            local copy        : _-      alternative Product:-         child pos            : {Pos}-         child pats           : Patterns -         visit 0:-            local addbang     : _-            local addbang1    : _-            local copy        : _-      alternative Underscore:-         child pos            : {Pos}-         visit 0:-            local copy        : _--}--- cata-sem_Pattern :: Pattern ->-               T_Pattern-sem_Pattern (Alias _field _attr _pat) =-    (sem_Pattern_Alias _field _attr (sem_Pattern _pat))-sem_Pattern (Constr _name _pats) =-    (sem_Pattern_Constr _name (sem_Patterns _pats))-sem_Pattern (Irrefutable _pat) =-    (sem_Pattern_Irrefutable (sem_Pattern _pat))-sem_Pattern (Product _pos _pats) =-    (sem_Pattern_Product _pos (sem_Patterns _pats))-sem_Pattern (Underscore _pos) =-    (sem_Pattern_Underscore _pos)--- semantic domain-newtype T_Pattern = T_Pattern ((Map NontermIdent Attributes) ->-                               (Map NontermIdent Attributes) ->-                               Bool ->-                               Attributes ->-                               (Map Identifier Type) ->-                               Options ->-                               Attributes ->-                               ( PP_Doc,(Set String),Pattern,Bool,( PP_Doc )))-data Inh_Pattern = Inh_Pattern {allInhmap_Inh_Pattern :: (Map NontermIdent Attributes),allSynmap_Inh_Pattern :: (Map NontermIdent Attributes),anyLazyKind_Inh_Pattern :: Bool,inhmap_Inh_Pattern :: Attributes,localAttrTypes_Inh_Pattern :: (Map Identifier Type),options_Inh_Pattern :: Options,synmap_Inh_Pattern :: Attributes}-data Syn_Pattern = Syn_Pattern {attrTypes_Syn_Pattern :: PP_Doc,attrs_Syn_Pattern :: (Set String),copy_Syn_Pattern :: Pattern,isUnderscore_Syn_Pattern :: Bool,sem_lhs_Syn_Pattern :: ( PP_Doc )}-wrap_Pattern :: T_Pattern ->-                Inh_Pattern ->-                Syn_Pattern-wrap_Pattern (T_Pattern sem) (Inh_Pattern _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap) =-    (let ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOisUnderscore,_lhsOsem_lhs) = sem _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap-     in  (Syn_Pattern _lhsOattrTypes _lhsOattrs _lhsOcopy _lhsOisUnderscore _lhsOsem_lhs))-sem_Pattern_Alias :: Identifier ->-                     Identifier ->-                     T_Pattern ->-                     T_Pattern-sem_Pattern_Alias field_ attr_ (T_Pattern pat_) =-    (T_Pattern (\ _lhsIallInhmap-                  _lhsIallSynmap-                  _lhsIanyLazyKind-                  _lhsIinhmap-                  _lhsIlocalAttrTypes-                  _lhsIoptions-                  _lhsIsynmap ->-                    (let _lhsOsem_lhs :: ( PP_Doc )-                         _lhsOisUnderscore :: Bool-                         _lhsOattrs :: (Set String)-                         _lhsOattrTypes :: PP_Doc-                         _lhsOcopy :: Pattern-                         _patOallInhmap :: (Map NontermIdent Attributes)-                         _patOallSynmap :: (Map NontermIdent Attributes)-                         _patOanyLazyKind :: Bool-                         _patOinhmap :: Attributes-                         _patOlocalAttrTypes :: (Map Identifier Type)-                         _patOoptions :: Options-                         _patOsynmap :: Attributes-                         _patIattrTypes :: PP_Doc-                         _patIattrs :: (Set String)-                         _patIcopy :: Pattern-                         _patIisUnderscore :: Bool-                         _patIsem_lhs :: ( PP_Doc )-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1099, column 17)-                         _varPat =-                             ({-# LINE 1099 "src-ag/ExecutionPlan2Hs.ag" #-}-                              text $ attrname False field_ attr_-                              {-# LINE 5954 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1100, column 17)-                         _patExpr =-                             ({-# LINE 1100 "src-ag/ExecutionPlan2Hs.ag" #-}-                              if _patIisUnderscore-                              then _varPat-                              else _varPat     >|< "@" >|< _patIsem_lhs-                              {-# LINE 5962 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1103, column 17)-                         _lhsOsem_lhs =-                             ({-# LINE 1103 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _addbang1     _patExpr-                              {-# LINE 5968 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1114, column 16)-                         _lhsOisUnderscore =-                             ({-# LINE 1114 "src-ag/ExecutionPlan2Hs.ag" #-}-                              False-                              {-# LINE 5974 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1120, column 3)-                         _lhsOattrs =-                             ({-# LINE 1120 "src-ag/ExecutionPlan2Hs.ag" #-}-                              Set.insert (attrname False field_ attr_) _patIattrs-                              {-# LINE 5980 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1125, column 3)-                         _mbTp =-                             ({-# LINE 1125 "src-ag/ExecutionPlan2Hs.ag" #-}-                              if field_ == _LHS-                              then Map.lookup attr_ _lhsIsynmap-                              else if field_ == _LOC-                                   then Map.lookup attr_ _lhsIlocalAttrTypes-                                   else Nothing-                              {-# LINE 5990 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1130, column 3)-                         _lhsOattrTypes =-                             ({-# LINE 1130 "src-ag/ExecutionPlan2Hs.ag" #-}-                              maybe empty (\tp -> (attrname False field_ attr_) >#< "::" >#< ppTp tp) _mbTp-                              >-< _patIattrTypes-                              {-# LINE 5997 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1521, column 37)-                         _addbang =-                             ({-# LINE 1521 "src-ag/ExecutionPlan2Hs.ag" #-}-                              \x -> if bangpats _lhsIoptions then "!" >|< x else x-                              {-# LINE 6003 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1526, column 37)-                         _addbang1 =-                             ({-# LINE 1526 "src-ag/ExecutionPlan2Hs.ag" #-}-                              if _lhsIanyLazyKind then id else _addbang-                              {-# LINE 6009 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- self rule-                         _copy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              Alias field_ attr_ _patIcopy-                              {-# LINE 6015 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- self rule-                         _lhsOcopy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              _copy-                              {-# LINE 6021 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patOallInhmap =-                             ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIallInhmap-                              {-# LINE 6027 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patOallSynmap =-                             ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIallSynmap-                              {-# LINE 6033 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patOanyLazyKind =-                             ({-# LINE 1267 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIanyLazyKind-                              {-# LINE 6039 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patOinhmap =-                             ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIinhmap-                              {-# LINE 6045 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patOlocalAttrTypes =-                             ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIlocalAttrTypes-                              {-# LINE 6051 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patOoptions =-                             ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIoptions-                              {-# LINE 6057 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patOsynmap =-                             ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIsynmap-                              {-# LINE 6063 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         ( _patIattrTypes,_patIattrs,_patIcopy,_patIisUnderscore,_patIsem_lhs) =-                             pat_ _patOallInhmap _patOallSynmap _patOanyLazyKind _patOinhmap _patOlocalAttrTypes _patOoptions _patOsynmap-                     in  ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOisUnderscore,_lhsOsem_lhs))))-sem_Pattern_Constr :: ConstructorIdent ->-                      T_Patterns ->-                      T_Pattern-sem_Pattern_Constr name_ (T_Patterns pats_) =-    (T_Pattern (\ _lhsIallInhmap-                  _lhsIallSynmap-                  _lhsIanyLazyKind-                  _lhsIinhmap-                  _lhsIlocalAttrTypes-                  _lhsIoptions-                  _lhsIsynmap ->-                    (let _lhsOsem_lhs :: ( PP_Doc )-                         _lhsOisUnderscore :: Bool-                         _lhsOattrTypes :: PP_Doc-                         _lhsOattrs :: (Set String)-                         _lhsOcopy :: Pattern-                         _patsOallInhmap :: (Map NontermIdent Attributes)-                         _patsOallSynmap :: (Map NontermIdent Attributes)-                         _patsOanyLazyKind :: Bool-                         _patsOinhmap :: Attributes-                         _patsOlocalAttrTypes :: (Map Identifier Type)-                         _patsOoptions :: Options-                         _patsOsynmap :: Attributes-                         _patsIattrTypes :: PP_Doc-                         _patsIattrs :: (Set String)-                         _patsIcopy :: Patterns-                         _patsIsem_lhs :: ([PP_Doc])-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1105, column 17)-                         _lhsOsem_lhs =-                             ({-# LINE 1105 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _addbang1     $ pp_parens $ name_ >#< hv_sp _patsIsem_lhs-                              {-# LINE 6099 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1112, column 16)-                         _lhsOisUnderscore =-                             ({-# LINE 1112 "src-ag/ExecutionPlan2Hs.ag" #-}-                              False-                              {-# LINE 6105 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1521, column 37)-                         _addbang =-                             ({-# LINE 1521 "src-ag/ExecutionPlan2Hs.ag" #-}-                              \x -> if bangpats _lhsIoptions then "!" >|< x else x-                              {-# LINE 6111 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1526, column 37)-                         _addbang1 =-                             ({-# LINE 1526 "src-ag/ExecutionPlan2Hs.ag" #-}-                              if _lhsIanyLazyKind then id else _addbang-                              {-# LINE 6117 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1123, column 40)-                         _lhsOattrTypes =-                             ({-# LINE 1123 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _patsIattrTypes-                              {-# LINE 6123 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1118, column 36)-                         _lhsOattrs =-                             ({-# LINE 1118 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _patsIattrs-                              {-# LINE 6129 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- self rule-                         _copy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              Constr name_ _patsIcopy-                              {-# LINE 6135 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- self rule-                         _lhsOcopy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              _copy-                              {-# LINE 6141 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patsOallInhmap =-                             ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIallInhmap-                              {-# LINE 6147 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patsOallSynmap =-                             ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIallSynmap-                              {-# LINE 6153 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patsOanyLazyKind =-                             ({-# LINE 1267 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIanyLazyKind-                              {-# LINE 6159 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patsOinhmap =-                             ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIinhmap-                              {-# LINE 6165 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patsOlocalAttrTypes =-                             ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIlocalAttrTypes-                              {-# LINE 6171 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patsOoptions =-                             ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIoptions-                              {-# LINE 6177 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patsOsynmap =-                             ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIsynmap-                              {-# LINE 6183 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         ( _patsIattrTypes,_patsIattrs,_patsIcopy,_patsIsem_lhs) =-                             pats_ _patsOallInhmap _patsOallSynmap _patsOanyLazyKind _patsOinhmap _patsOlocalAttrTypes _patsOoptions _patsOsynmap-                     in  ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOisUnderscore,_lhsOsem_lhs))))-sem_Pattern_Irrefutable :: T_Pattern ->-                           T_Pattern-sem_Pattern_Irrefutable (T_Pattern pat_) =-    (T_Pattern (\ _lhsIallInhmap-                  _lhsIallSynmap-                  _lhsIanyLazyKind-                  _lhsIinhmap-                  _lhsIlocalAttrTypes-                  _lhsIoptions-                  _lhsIsynmap ->-                    (let _lhsOsem_lhs :: ( PP_Doc )-                         _lhsOattrTypes :: PP_Doc-                         _lhsOattrs :: (Set String)-                         _lhsOcopy :: Pattern-                         _lhsOisUnderscore :: Bool-                         _patOallInhmap :: (Map NontermIdent Attributes)-                         _patOallSynmap :: (Map NontermIdent Attributes)-                         _patOanyLazyKind :: Bool-                         _patOinhmap :: Attributes-                         _patOlocalAttrTypes :: (Map Identifier Type)-                         _patOoptions :: Options-                         _patOsynmap :: Attributes-                         _patIattrTypes :: PP_Doc-                         _patIattrs :: (Set String)-                         _patIcopy :: Pattern-                         _patIisUnderscore :: Bool-                         _patIsem_lhs :: ( PP_Doc )-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1107, column 17)-                         _lhsOsem_lhs =-                             ({-# LINE 1107 "src-ag/ExecutionPlan2Hs.ag" #-}-                              text "~" >|< pp_parens _patIsem_lhs-                              {-# LINE 6219 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1123, column 40)-                         _lhsOattrTypes =-                             ({-# LINE 1123 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _patIattrTypes-                              {-# LINE 6225 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1118, column 36)-                         _lhsOattrs =-                             ({-# LINE 1118 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _patIattrs-                              {-# LINE 6231 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- self rule-                         _copy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              Irrefutable _patIcopy-                              {-# LINE 6237 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- self rule-                         _lhsOcopy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              _copy-                              {-# LINE 6243 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (up)-                         _lhsOisUnderscore =-                             ({-# LINE 1110 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _patIisUnderscore-                              {-# LINE 6249 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patOallInhmap =-                             ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIallInhmap-                              {-# LINE 6255 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patOallSynmap =-                             ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIallSynmap-                              {-# LINE 6261 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patOanyLazyKind =-                             ({-# LINE 1267 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIanyLazyKind-                              {-# LINE 6267 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patOinhmap =-                             ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIinhmap-                              {-# LINE 6273 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patOlocalAttrTypes =-                             ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIlocalAttrTypes-                              {-# LINE 6279 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patOoptions =-                             ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIoptions-                              {-# LINE 6285 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patOsynmap =-                             ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIsynmap-                              {-# LINE 6291 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         ( _patIattrTypes,_patIattrs,_patIcopy,_patIisUnderscore,_patIsem_lhs) =-                             pat_ _patOallInhmap _patOallSynmap _patOanyLazyKind _patOinhmap _patOlocalAttrTypes _patOoptions _patOsynmap-                     in  ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOisUnderscore,_lhsOsem_lhs))))-sem_Pattern_Product :: Pos ->-                       T_Patterns ->-                       T_Pattern-sem_Pattern_Product pos_ (T_Patterns pats_) =-    (T_Pattern (\ _lhsIallInhmap-                  _lhsIallSynmap-                  _lhsIanyLazyKind-                  _lhsIinhmap-                  _lhsIlocalAttrTypes-                  _lhsIoptions-                  _lhsIsynmap ->-                    (let _lhsOsem_lhs :: ( PP_Doc )-                         _lhsOisUnderscore :: Bool-                         _lhsOattrTypes :: PP_Doc-                         _lhsOattrs :: (Set String)-                         _lhsOcopy :: Pattern-                         _patsOallInhmap :: (Map NontermIdent Attributes)-                         _patsOallSynmap :: (Map NontermIdent Attributes)-                         _patsOanyLazyKind :: Bool-                         _patsOinhmap :: Attributes-                         _patsOlocalAttrTypes :: (Map Identifier Type)-                         _patsOoptions :: Options-                         _patsOsynmap :: Attributes-                         _patsIattrTypes :: PP_Doc-                         _patsIattrs :: (Set String)-                         _patsIcopy :: Patterns-                         _patsIsem_lhs :: ([PP_Doc])-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1104, column 17)-                         _lhsOsem_lhs =-                             ({-# LINE 1104 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _addbang1     $ pp_block "(" ")" "," _patsIsem_lhs-                              {-# LINE 6327 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1113, column 16)-                         _lhsOisUnderscore =-                             ({-# LINE 1113 "src-ag/ExecutionPlan2Hs.ag" #-}-                              False-                              {-# LINE 6333 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1521, column 37)-                         _addbang =-                             ({-# LINE 1521 "src-ag/ExecutionPlan2Hs.ag" #-}-                              \x -> if bangpats _lhsIoptions then "!" >|< x else x-                              {-# LINE 6339 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1526, column 37)-                         _addbang1 =-                             ({-# LINE 1526 "src-ag/ExecutionPlan2Hs.ag" #-}-                              if _lhsIanyLazyKind then id else _addbang-                              {-# LINE 6345 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1123, column 40)-                         _lhsOattrTypes =-                             ({-# LINE 1123 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _patsIattrTypes-                              {-# LINE 6351 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1118, column 36)-                         _lhsOattrs =-                             ({-# LINE 1118 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _patsIattrs-                              {-# LINE 6357 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- self rule-                         _copy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              Product pos_ _patsIcopy-                              {-# LINE 6363 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- self rule-                         _lhsOcopy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              _copy-                              {-# LINE 6369 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patsOallInhmap =-                             ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIallInhmap-                              {-# LINE 6375 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patsOallSynmap =-                             ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIallSynmap-                              {-# LINE 6381 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patsOanyLazyKind =-                             ({-# LINE 1267 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIanyLazyKind-                              {-# LINE 6387 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patsOinhmap =-                             ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIinhmap-                              {-# LINE 6393 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patsOlocalAttrTypes =-                             ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIlocalAttrTypes-                              {-# LINE 6399 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patsOoptions =-                             ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIoptions-                              {-# LINE 6405 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- copy rule (down)-                         _patsOsynmap =-                             ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}-                              _lhsIsynmap-                              {-# LINE 6411 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         ( _patsIattrTypes,_patsIattrs,_patsIcopy,_patsIsem_lhs) =-                             pats_ _patsOallInhmap _patsOallSynmap _patsOanyLazyKind _patsOinhmap _patsOlocalAttrTypes _patsOoptions _patsOsynmap-                     in  ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOisUnderscore,_lhsOsem_lhs))))-sem_Pattern_Underscore :: Pos ->-                          T_Pattern-sem_Pattern_Underscore pos_ =-    (T_Pattern (\ _lhsIallInhmap-                  _lhsIallSynmap-                  _lhsIanyLazyKind-                  _lhsIinhmap-                  _lhsIlocalAttrTypes-                  _lhsIoptions-                  _lhsIsynmap ->-                    (let _lhsOsem_lhs :: ( PP_Doc )-                         _lhsOisUnderscore :: Bool-                         _lhsOattrTypes :: PP_Doc-                         _lhsOattrs :: (Set String)-                         _lhsOcopy :: Pattern-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1106, column 17)-                         _lhsOsem_lhs =-                             ({-# LINE 1106 "src-ag/ExecutionPlan2Hs.ag" #-}-                              text "_"-                              {-# LINE 6435 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1115, column 16)-                         _lhsOisUnderscore =-                             ({-# LINE 1115 "src-ag/ExecutionPlan2Hs.ag" #-}-                              True-                              {-# LINE 6441 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1123, column 40)-                         _lhsOattrTypes =-                             ({-# LINE 1123 "src-ag/ExecutionPlan2Hs.ag" #-}-                              empty-                              {-# LINE 6447 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1118, column 36)-                         _lhsOattrs =-                             ({-# LINE 1118 "src-ag/ExecutionPlan2Hs.ag" #-}-                              Set.empty-                              {-# LINE 6453 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- self rule-                         _copy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              Underscore pos_-                              {-# LINE 6459 "dist/build/ExecutionPlan2Hs" #-}-                              )-                         -- self rule-                         _lhsOcopy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              _copy-                              {-# LINE 6465 "dist/build/ExecutionPlan2Hs" #-}-                              )-                     in  ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOisUnderscore,_lhsOsem_lhs))))--- Patterns -----------------------------------------------------{--   visit 0:-      inherited attributes:-         allInhmap            : Map NontermIdent Attributes-         allSynmap            : Map NontermIdent Attributes-         anyLazyKind          : Bool-         inhmap               : Attributes-         localAttrTypes       : Map Identifier Type-         options              : Options-         synmap               : Attributes-      synthesized attributes:-         attrTypes            : PP_Doc-         attrs                : Set String-         copy                 : Patterns -         sem_lhs              : [PP_Doc]-   alternatives:-      alternative Cons:-         child hd             : Pattern -         child tl             : Patterns -         visit 0:-            local copy        : _-      alternative Nil:-         visit 0:-            local copy        : _--}--- cata-sem_Patterns :: Patterns ->-                T_Patterns-sem_Patterns list =-    (Prelude.foldr sem_Patterns_Cons sem_Patterns_Nil (Prelude.map sem_Pattern list))--- semantic domain-newtype T_Patterns = T_Patterns ((Map NontermIdent Attributes) ->-                                 (Map NontermIdent Attributes) ->-                                 Bool ->-                                 Attributes ->-                                 (Map Identifier Type) ->-                                 Options ->-                                 Attributes ->-                                 ( PP_Doc,(Set String),Patterns,([PP_Doc])))-data Inh_Patterns = Inh_Patterns {allInhmap_Inh_Patterns :: (Map NontermIdent Attributes),allSynmap_Inh_Patterns :: (Map NontermIdent Attributes),anyLazyKind_Inh_Patterns :: Bool,inhmap_Inh_Patterns :: Attributes,localAttrTypes_Inh_Patterns :: (Map Identifier Type),options_Inh_Patterns :: Options,synmap_Inh_Patterns :: Attributes}-data Syn_Patterns = Syn_Patterns {attrTypes_Syn_Patterns :: PP_Doc,attrs_Syn_Patterns :: (Set String),copy_Syn_Patterns :: Patterns,sem_lhs_Syn_Patterns :: ([PP_Doc])}-wrap_Patterns :: T_Patterns ->-                 Inh_Patterns ->-                 Syn_Patterns-wrap_Patterns (T_Patterns sem) (Inh_Patterns _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap) =-    (let ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOsem_lhs) = sem _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap-     in  (Syn_Patterns _lhsOattrTypes _lhsOattrs _lhsOcopy _lhsOsem_lhs))-sem_Patterns_Cons :: T_Pattern ->-                     T_Patterns ->-                     T_Patterns-sem_Patterns_Cons (T_Pattern hd_) (T_Patterns tl_) =-    (T_Patterns (\ _lhsIallInhmap-                   _lhsIallSynmap-                   _lhsIanyLazyKind-                   _lhsIinhmap-                   _lhsIlocalAttrTypes-                   _lhsIoptions-                   _lhsIsynmap ->-                     (let _lhsOattrTypes :: PP_Doc-                          _lhsOattrs :: (Set String)-                          _lhsOsem_lhs :: ([PP_Doc])-                          _lhsOcopy :: Patterns-                          _hdOallInhmap :: (Map NontermIdent Attributes)-                          _hdOallSynmap :: (Map NontermIdent Attributes)-                          _hdOanyLazyKind :: Bool-                          _hdOinhmap :: Attributes-                          _hdOlocalAttrTypes :: (Map Identifier Type)-                          _hdOoptions :: Options-                          _hdOsynmap :: Attributes-                          _tlOallInhmap :: (Map NontermIdent Attributes)-                          _tlOallSynmap :: (Map NontermIdent Attributes)-                          _tlOanyLazyKind :: Bool-                          _tlOinhmap :: Attributes-                          _tlOlocalAttrTypes :: (Map Identifier Type)-                          _tlOoptions :: Options-                          _tlOsynmap :: Attributes-                          _hdIattrTypes :: PP_Doc-                          _hdIattrs :: (Set String)-                          _hdIcopy :: Pattern-                          _hdIisUnderscore :: Bool-                          _hdIsem_lhs :: ( PP_Doc )-                          _tlIattrTypes :: PP_Doc-                          _tlIattrs :: (Set String)-                          _tlIcopy :: Patterns-                          _tlIsem_lhs :: ([PP_Doc])-                          -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1123, column 40)-                          _lhsOattrTypes =-                              ({-# LINE 1123 "src-ag/ExecutionPlan2Hs.ag" #-}-                               _hdIattrTypes >-< _tlIattrTypes-                               {-# LINE 6558 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1118, column 36)-                          _lhsOattrs =-                              ({-# LINE 1118 "src-ag/ExecutionPlan2Hs.ag" #-}-                               _hdIattrs `Set.union` _tlIattrs-                               {-# LINE 6564 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1095, column 29)-                          _lhsOsem_lhs =-                              ({-# LINE 1095 "src-ag/ExecutionPlan2Hs.ag" #-}-                               _hdIsem_lhs : _tlIsem_lhs-                               {-# LINE 6570 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- self rule-                          _copy =-                              ({-# LINE 22 "src-ag/Patterns.ag" #-}-                               (:) _hdIcopy _tlIcopy-                               {-# LINE 6576 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- self rule-                          _lhsOcopy =-                              ({-# LINE 22 "src-ag/Patterns.ag" #-}-                               _copy-                               {-# LINE 6582 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- copy rule (down)-                          _hdOallInhmap =-                              ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}-                               _lhsIallInhmap-                               {-# LINE 6588 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- copy rule (down)-                          _hdOallSynmap =-                              ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}-                               _lhsIallSynmap-                               {-# LINE 6594 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- copy rule (down)-                          _hdOanyLazyKind =-                              ({-# LINE 1267 "src-ag/ExecutionPlan2Hs.ag" #-}-                               _lhsIanyLazyKind-                               {-# LINE 6600 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- copy rule (down)-                          _hdOinhmap =-                              ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}-                               _lhsIinhmap-                               {-# LINE 6606 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- copy rule (down)-                          _hdOlocalAttrTypes =-                              ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}-                               _lhsIlocalAttrTypes-                               {-# LINE 6612 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- copy rule (down)-                          _hdOoptions =-                              ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                               _lhsIoptions-                               {-# LINE 6618 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- copy rule (down)-                          _hdOsynmap =-                              ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}-                               _lhsIsynmap-                               {-# LINE 6624 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- copy rule (down)-                          _tlOallInhmap =-                              ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}-                               _lhsIallInhmap-                               {-# LINE 6630 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- copy rule (down)-                          _tlOallSynmap =-                              ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}-                               _lhsIallSynmap-                               {-# LINE 6636 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- copy rule (down)-                          _tlOanyLazyKind =-                              ({-# LINE 1267 "src-ag/ExecutionPlan2Hs.ag" #-}-                               _lhsIanyLazyKind-                               {-# LINE 6642 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- copy rule (down)-                          _tlOinhmap =-                              ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}-                               _lhsIinhmap-                               {-# LINE 6648 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- copy rule (down)-                          _tlOlocalAttrTypes =-                              ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}-                               _lhsIlocalAttrTypes-                               {-# LINE 6654 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- copy rule (down)-                          _tlOoptions =-                              ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                               _lhsIoptions-                               {-# LINE 6660 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- copy rule (down)-                          _tlOsynmap =-                              ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}-                               _lhsIsynmap-                               {-# LINE 6666 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          ( _hdIattrTypes,_hdIattrs,_hdIcopy,_hdIisUnderscore,_hdIsem_lhs) =-                              hd_ _hdOallInhmap _hdOallSynmap _hdOanyLazyKind _hdOinhmap _hdOlocalAttrTypes _hdOoptions _hdOsynmap-                          ( _tlIattrTypes,_tlIattrs,_tlIcopy,_tlIsem_lhs) =-                              tl_ _tlOallInhmap _tlOallSynmap _tlOanyLazyKind _tlOinhmap _tlOlocalAttrTypes _tlOoptions _tlOsynmap-                      in  ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOsem_lhs))))-sem_Patterns_Nil :: T_Patterns-sem_Patterns_Nil =-    (T_Patterns (\ _lhsIallInhmap-                   _lhsIallSynmap-                   _lhsIanyLazyKind-                   _lhsIinhmap-                   _lhsIlocalAttrTypes-                   _lhsIoptions-                   _lhsIsynmap ->-                     (let _lhsOattrTypes :: PP_Doc-                          _lhsOattrs :: (Set String)-                          _lhsOsem_lhs :: ([PP_Doc])-                          _lhsOcopy :: Patterns-                          -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1123, column 40)-                          _lhsOattrTypes =-                              ({-# LINE 1123 "src-ag/ExecutionPlan2Hs.ag" #-}-                               empty-                               {-# LINE 6690 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1118, column 36)-                          _lhsOattrs =-                              ({-# LINE 1118 "src-ag/ExecutionPlan2Hs.ag" #-}-                               Set.empty-                               {-# LINE 6696 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1095, column 29)-                          _lhsOsem_lhs =-                              ({-# LINE 1095 "src-ag/ExecutionPlan2Hs.ag" #-}-                               []-                               {-# LINE 6702 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- self rule-                          _copy =-                              ({-# LINE 22 "src-ag/Patterns.ag" #-}-                               []-                               {-# LINE 6708 "dist/build/ExecutionPlan2Hs" #-}-                               )-                          -- self rule-                          _lhsOcopy =-                              ({-# LINE 22 "src-ag/Patterns.ag" #-}-                               _copy-                               {-# LINE 6714 "dist/build/ExecutionPlan2Hs" #-}-                               )-                      in  ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOsem_lhs))))--- Visit --------------------------------------------------------{--   visit 0:-      inherited attributes:-         allFromToStates      : Map VisitIdentifier (Int,Int)-         allInhmap            : Map NontermIdent Attributes-         allInitStates        : Map NontermIdent Int-         allSynmap            : Map NontermIdent Attributes-         allVisitKinds        : Map VisitIdentifier VisitKind-         allchildvisit        : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))-         allintramap          : Map StateIdentifier (Map String (Maybe NonLocalAttr))-         avisitdefs           : Map VisitIdentifier (Set Identifier)-         avisituses           : Map VisitIdentifier (Set Identifier)-         childTypes           : Map Identifier Type-         childintros          : Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))-         con                  : ConstructorIdent-         inhmap               : Attributes-         mrules               : Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)-         nextVisits           : Map StateIdentifier StateCtx-         nt                   : NontermIdent-         options              : Options-         params               : [Identifier]-         prevVisits           : Map StateIdentifier StateCtx-         ruledefs             : Map Identifier (Set String)-         ruleuses             : Map Identifier (Map String (Maybe NonLocalAttr))-         synmap               : Attributes-         terminaldefs         : Set String-      synthesized attributes:-         allvisits            :  VisitStateState -         childvisit           : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))-         errors               : Seq Error-         fromToStates         : Map VisitIdentifier (Int,Int)-         intramap             : Map StateIdentifier (Map String (Maybe NonLocalAttr))-         lazyIntras           : Set String-         ruleKinds            : Map Identifier (Set VisitKind)-         ruleUsage            : Map Identifier Int-         sem_visit            :   (StateIdentifier,Bool -> PP_Doc)  -         t_visits             : PP_Doc-         visitKinds           : Map VisitIdentifier VisitKind-         visitdefs            : Map VisitIdentifier (Set Identifier)-         visituses            : Map VisitIdentifier (Set Identifier)-   alternatives:-      alternative Visit:-         child ident          : {VisitIdentifier}-         child from           : {StateIdentifier}-         child to             : {StateIdentifier}-         child inh            : {Set Identifier}-         child syn            : {Set Identifier}-         child steps          : VisitSteps -         child kind           : {VisitKind}-         visit 0:-            local nameT_visit : _-            local nameTIn_visit : _-            local nameTOut_visit : _-            local nameTNext_visit : _-            local nextVisitInfo : _-            local typecon     : _-            local t_params    : _-            local inhpart     : _-            local synpart     : _-            local ppTypeList  : _-            local stepsInitial : _-            local stepsClosing : _-            local vname       : _-            local inhpats     : _-            local inhargs     : _-            local synargs     : _-            local nextargsMp  : _-            local nextargs    : _-            local nextst      : _-            local resultval   : _-            local nextStBuild : _-            local nextStRef   : _-            local prevVisitInfo : _-            local invokecode  : _-            local thisintra   : _-            local nextintra   : _-            local uses        : _-            local inhVarNms   : _-            local defs        : _-            local defsAsMap   : _-            local lazyIntrasInh : _-            local addbang     : _-            local addbang1    : _--}--- cata-sem_Visit :: Visit ->-             T_Visit-sem_Visit (Visit _ident _from _to _inh _syn _steps _kind) =-    (sem_Visit_Visit _ident _from _to _inh _syn (sem_VisitSteps _steps) _kind)--- semantic domain-newtype T_Visit = T_Visit ((Map VisitIdentifier (Int,Int)) ->-                           (Map NontermIdent Attributes) ->-                           (Map NontermIdent Int) ->-                           (Map NontermIdent Attributes) ->-                           (Map VisitIdentifier VisitKind) ->-                           (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))) ->-                           (Map StateIdentifier (Map String (Maybe NonLocalAttr))) ->-                           (Map VisitIdentifier (Set Identifier)) ->-                           (Map VisitIdentifier (Set Identifier)) ->-                           (Map Identifier Type) ->-                           (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) ->-                           ConstructorIdent ->-                           Attributes ->-                           (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)) ->-                           (Map StateIdentifier StateCtx) ->-                           NontermIdent ->-                           Options ->-                           ([Identifier]) ->-                           (Map StateIdentifier StateCtx) ->-                           (Map Identifier (Set String)) ->-                           (Map Identifier (Map String (Maybe NonLocalAttr))) ->-                           Attributes ->-                           (Set String) ->-                           ( ( VisitStateState ),(Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),(Seq Error),(Map VisitIdentifier (Int,Int)),(Map StateIdentifier (Map String (Maybe NonLocalAttr))),(Set String),(Map Identifier (Set VisitKind)),(Map Identifier Int),(  (StateIdentifier,Bool -> PP_Doc)  ),PP_Doc,(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier))))-data Inh_Visit = Inh_Visit {allFromToStates_Inh_Visit :: (Map VisitIdentifier (Int,Int)),allInhmap_Inh_Visit :: (Map NontermIdent Attributes),allInitStates_Inh_Visit :: (Map NontermIdent Int),allSynmap_Inh_Visit :: (Map NontermIdent Attributes),allVisitKinds_Inh_Visit :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_Visit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),allintramap_Inh_Visit :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))),avisitdefs_Inh_Visit :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_Visit :: (Map VisitIdentifier (Set Identifier)),childTypes_Inh_Visit :: (Map Identifier Type),childintros_Inh_Visit :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),con_Inh_Visit :: ConstructorIdent,inhmap_Inh_Visit :: Attributes,mrules_Inh_Visit :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)),nextVisits_Inh_Visit :: (Map StateIdentifier StateCtx),nt_Inh_Visit :: NontermIdent,options_Inh_Visit :: Options,params_Inh_Visit :: ([Identifier]),prevVisits_Inh_Visit :: (Map StateIdentifier StateCtx),ruledefs_Inh_Visit :: (Map Identifier (Set String)),ruleuses_Inh_Visit :: (Map Identifier (Map String (Maybe NonLocalAttr))),synmap_Inh_Visit :: Attributes,terminaldefs_Inh_Visit :: (Set String)}-data Syn_Visit = Syn_Visit {allvisits_Syn_Visit :: ( VisitStateState ),childvisit_Syn_Visit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),errors_Syn_Visit :: (Seq Error),fromToStates_Syn_Visit :: (Map VisitIdentifier (Int,Int)),intramap_Syn_Visit :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))),lazyIntras_Syn_Visit :: (Set String),ruleKinds_Syn_Visit :: (Map Identifier (Set VisitKind)),ruleUsage_Syn_Visit :: (Map Identifier Int),sem_visit_Syn_Visit :: (  (StateIdentifier,Bool -> PP_Doc)  ),t_visits_Syn_Visit :: PP_Doc,visitKinds_Syn_Visit :: (Map VisitIdentifier VisitKind),visitdefs_Syn_Visit :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_Visit :: (Map VisitIdentifier (Set Identifier))}-wrap_Visit :: T_Visit ->-              Inh_Visit ->-              Syn_Visit-wrap_Visit (T_Visit sem) (Inh_Visit _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIcon _lhsIinhmap _lhsImrules _lhsInextVisits _lhsInt _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs) =-    (let ( _lhsOallvisits,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOintramap,_lhsOlazyIntras,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_visit,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIcon _lhsIinhmap _lhsImrules _lhsInextVisits _lhsInt _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs-     in  (Syn_Visit _lhsOallvisits _lhsOchildvisit _lhsOerrors _lhsOfromToStates _lhsOintramap _lhsOlazyIntras _lhsOruleKinds _lhsOruleUsage _lhsOsem_visit _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses))-sem_Visit_Visit :: VisitIdentifier ->-                   StateIdentifier ->-                   StateIdentifier ->-                   (Set Identifier) ->-                   (Set Identifier) ->-                   T_VisitSteps ->-                   VisitKind ->-                   T_Visit-sem_Visit_Visit ident_ from_ to_ inh_ syn_ (T_VisitSteps steps_) kind_ =-    (T_Visit (\ _lhsIallFromToStates-                _lhsIallInhmap-                _lhsIallInitStates-                _lhsIallSynmap-                _lhsIallVisitKinds-                _lhsIallchildvisit-                _lhsIallintramap-                _lhsIavisitdefs-                _lhsIavisituses-                _lhsIchildTypes-                _lhsIchildintros-                _lhsIcon-                _lhsIinhmap-                _lhsImrules-                _lhsInextVisits-                _lhsInt-                _lhsIoptions-                _lhsIparams-                _lhsIprevVisits-                _lhsIruledefs-                _lhsIruleuses-                _lhsIsynmap-                _lhsIterminaldefs ->-                  (let _lhsOallvisits :: ( VisitStateState )-                       _lhsOt_visits :: PP_Doc-                       _lhsOsem_visit :: (  (StateIdentifier,Bool -> PP_Doc)  )-                       _stepsOkind :: VisitKind-                       _stepsOfmtMode :: FormatMode-                       _stepsOindex :: Int-                       _stepsOprevMaxSimRefs :: Int-                       _stepsOuseParallel :: Bool-                       _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                       _lhsOintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))-                       _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))-                       _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))-                       _lhsOlazyIntras :: (Set String)-                       _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))-                       _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)-                       _lhsOerrors :: (Seq Error)-                       _lhsOruleKinds :: (Map Identifier (Set VisitKind))-                       _lhsOruleUsage :: (Map Identifier Int)-                       _stepsOallFromToStates :: (Map VisitIdentifier (Int,Int))-                       _stepsOallInitStates :: (Map NontermIdent Int)-                       _stepsOallVisitKinds :: (Map VisitIdentifier VisitKind)-                       _stepsOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                       _stepsOavisitdefs :: (Map VisitIdentifier (Set Identifier))-                       _stepsOavisituses :: (Map VisitIdentifier (Set Identifier))-                       _stepsOchildTypes :: (Map Identifier Type)-                       _stepsOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))-                       _stepsOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))-                       _stepsOoptions :: Options-                       _stepsOruledefs :: (Map Identifier (Set String))-                       _stepsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))-                       _stepsIdefs :: (Set String)-                       _stepsIerrors :: (Seq Error)-                       _stepsIindex :: Int-                       _stepsIisLast :: Bool-                       _stepsIlazyIntras :: (Set String)-                       _stepsIprevMaxSimRefs :: Int-                       _stepsIruleKinds :: (Map Identifier (Set VisitKind))-                       _stepsIruleUsage :: (Map Identifier Int)-                       _stepsIsem_steps :: PP_Doc-                       _stepsIsize :: Int-                       _stepsIsync_steps :: PP_Doc-                       _stepsIuses :: (Map String (Maybe NonLocalAttr))-                       _stepsIvisitKinds :: (Map VisitIdentifier VisitKind)-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 341, column 11)-                       _lhsOallvisits =-                           ({-# LINE 341 "src-ag/ExecutionPlan2Hs.ag" #-}-                            (ident_, from_, to_)-                            {-# LINE 6919 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 400, column 11)-                       _nameT_visit =-                           ({-# LINE 400 "src-ag/ExecutionPlan2Hs.ag" #-}-                            conNmTVisit _lhsInt ident_-                            {-# LINE 6925 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 401, column 11)-                       _nameTIn_visit =-                           ({-# LINE 401 "src-ag/ExecutionPlan2Hs.ag" #-}-                            conNmTVisitIn _lhsInt ident_-                            {-# LINE 6931 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 402, column 11)-                       _nameTOut_visit =-                           ({-# LINE 402 "src-ag/ExecutionPlan2Hs.ag" #-}-                            conNmTVisitOut _lhsInt ident_-                            {-# LINE 6937 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 403, column 11)-                       _nameTNext_visit =-                           ({-# LINE 403 "src-ag/ExecutionPlan2Hs.ag" #-}-                            conNmTNextVisit _lhsInt to_-                            {-# LINE 6943 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 405, column 11)-                       _nextVisitInfo =-                           ({-# LINE 405 "src-ag/ExecutionPlan2Hs.ag" #-}-                            Map.findWithDefault ManyVis to_ _lhsInextVisits-                            {-# LINE 6949 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 406, column 11)-                       _typecon =-                           ({-# LINE 406 "src-ag/ExecutionPlan2Hs.ag" #-}-                            case kind_ of-                              VisitPure _  -> empty-                              VisitMonadic -> ppMonadType _lhsIoptions-                            {-# LINE 6957 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 410, column 11)-                       _t_params =-                           ({-# LINE 410 "src-ag/ExecutionPlan2Hs.ag" #-}-                            ppSpaced _lhsIparams-                            {-# LINE 6963 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 411, column 11)-                       _lhsOt_visits =-                           ({-# LINE 411 "src-ag/ExecutionPlan2Hs.ag" #-}-                            "type" >#< _nameT_visit     >#< _t_params     >#< "=" >#<-                              pp_parens (_nameTIn_visit     >#< _t_params    )-                                >#< ( if dummyTokenVisit _lhsIoptions-                                      then "->" >#< dummyType _lhsIoptions True-                                      else empty-                                    )-                                >#< "->" >#< _typecon     >#< pp_parens (_nameTOut_visit     >#< _t_params    )-                            >-< "data" >#< _nameTIn_visit     >#< _t_params     >#< "=" >#< _nameTIn_visit     >#<-                                 _inhpart-                            >-< "data" >#< _nameTOut_visit     >#< _t_params     >#< "=" >#< _nameTOut_visit     >#<-                                 _synpart     >#< case _nextVisitInfo     of-                                                    NoneVis    -> empty-                                                    _          -> _addbang1     $ pp_parens (_nameTNext_visit     >#< _t_params    )-                            {-# LINE 6981 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 424, column 11)-                       _inhpart =-                           ({-# LINE 424 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _ppTypeList     inh_ _lhsIinhmap-                            {-# LINE 6987 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 425, column 11)-                       _synpart =-                           ({-# LINE 425 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _ppTypeList     syn_ _lhsIsynmap-                            {-# LINE 6993 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 426, column 11)-                       _ppTypeList =-                           ({-# LINE 426 "src-ag/ExecutionPlan2Hs.ag" #-}-                            \s m -> ppSpaced $ map (\i -> _addbang1     $ pp_parens $ case Map.lookup i m of-                                                                                       Just tp -> ppTp tp ) $ Set.toList s-                            {-# LINE 7000 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 709, column 11)-                       _lhsOsem_visit =-                           ({-# LINE 709 "src-ag/ExecutionPlan2Hs.ag" #-}-                            ( from_-                            , \addInlinePragma ->-                                 ( if noInlinePragmas _lhsIoptions-                                   then empty-                                   else if addInlinePragma && aggressiveInlinePragmas _lhsIoptions-                                        then ppInline _vname-                                        else if helpInlining _lhsIoptions-                                             then ppNoInline _vname-                                             else empty-                                 )-                                 >-< "v" >|< ident_ >#< "::" >#< _nameT_visit     >#< _t_params-                                 >-< "v" >|< ident_ >#< "=" >#< "\\" >#< (_addbang     $ pp_parens (_nameTIn_visit     >#< _inhpats    ))-                                 >#< ( if dummyTokenVisit _lhsIoptions-                                       then pp $ dummyPat _lhsIoptions True-                                       else empty-                                     )-                                 >#< "->"-                                 >#< ( if genCostCentres _lhsIoptions-                                       then ppCostCentre (_vname     >|< "_" >|< _lhsInt >|< "_" >|< _lhsIcon)-                                       else empty-                                     ) >#< "(" >#< _stepsInitial-                                 >-< indent 3 (_stepsIsem_steps >-< _stepsClosing     >#< ")")-                            )-                            {-# LINE 7028 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 734, column 11)-                       _stepsInitial =-                           ({-# LINE 734 "src-ag/ExecutionPlan2Hs.ag" #-}-                            case kind_ of-                              VisitPure False -> text "let"-                              VisitPure True  -> empty-                              VisitMonadic    -> text "do"-                            {-# LINE 7037 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 738, column 11)-                       _stepsClosing =-                           ({-# LINE 738 "src-ag/ExecutionPlan2Hs.ag" #-}-                            let decls =  _nextStBuild-                                         >-<  _addbang     (pp resultValName) >#< "=" >#< _resultval-                            in case kind_ of-                                 VisitPure False -> decls-                                                    >-< "in" >#< resultValName-                                 VisitPure True  -> "let" >#< decls-                                                    >-< indent 1 ("in" >#< resultValName)-                                 VisitMonadic    -> "let" >#< decls-                                                    >-< "return" >#< resultValName-                            {-# LINE 7051 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 747, column 11)-                       _vname =-                           ({-# LINE 747 "src-ag/ExecutionPlan2Hs.ag" #-}-                            "v" >|< ident_-                            {-# LINE 7057 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 748, column 11)-                       _inhpats =-                           ({-# LINE 748 "src-ag/ExecutionPlan2Hs.ag" #-}-                            ppSpaced $ map (\arg -> _addbang     $ pp $ attrname True _LHS arg) $ Set.toList inh_-                            {-# LINE 7063 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 749, column 11)-                       _inhargs =-                           ({-# LINE 749 "src-ag/ExecutionPlan2Hs.ag" #-}-                            \chn -> ppSpaced $ map (attrname False chn) $ Set.toList inh_-                            {-# LINE 7069 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 750, column 11)-                       _synargs =-                           ({-# LINE 750 "src-ag/ExecutionPlan2Hs.ag" #-}-                            ppSpaced $ map (\arg -> attrname False _LHS arg) $ Set.toList syn_-                            {-# LINE 7075 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 751, column 11)-                       _nextargsMp =-                           ({-# LINE 751 "src-ag/ExecutionPlan2Hs.ag" #-}-                            maybe Map.empty id $ Map.lookup to_ _lhsIallintramap-                            {-# LINE 7081 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 752, column 11)-                       _nextargs =-                           ({-# LINE 752 "src-ag/ExecutionPlan2Hs.ag" #-}-                            ppSpaced $ Map.keys $ _nextargsMp-                            {-# LINE 7087 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 753, column 11)-                       _nextst =-                           ({-# LINE 753 "src-ag/ExecutionPlan2Hs.ag" #-}-                            "st" >|< to_ >#< _nextargs     >#< dummyArg _lhsIoptions (Map.null _nextargsMp    )-                            {-# LINE 7093 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 754, column 11)-                       _resultval =-                           ({-# LINE 754 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _nameTOut_visit     >#< _synargs     >#< _nextStRef-                            {-# LINE 7099 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 755, column 11)-                       (_nextStBuild,_nextStRef) =-                           ({-# LINE 755 "src-ag/ExecutionPlan2Hs.ag" #-}-                            case _nextVisitInfo     of-                              NoneVis  -> (empty, empty)-                              _        -> (_addbang     (pp nextStName) >#< "=" >#< _nextst    , pp nextStName)-                            {-# LINE 7107 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 770, column 20)-                       _stepsOkind =-                           ({-# LINE 770 "src-ag/ExecutionPlan2Hs.ag" #-}-                            kind_-                            {-# LINE 7113 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 821, column 3)-                       _stepsOfmtMode =-                           ({-# LINE 821 "src-ag/ExecutionPlan2Hs.ag" #-}-                            case kind_ of-                              VisitPure False -> FormatLetDecl-                              VisitPure True  -> FormatLetLine-                              VisitMonadic    -> FormatDo-                            {-# LINE 7122 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 859, column 22)-                       _stepsOindex =-                           ({-# LINE 859 "src-ag/ExecutionPlan2Hs.ag" #-}-                            0-                            {-# LINE 7128 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 866, column 22)-                       _stepsOprevMaxSimRefs =-                           ({-# LINE 866 "src-ag/ExecutionPlan2Hs.ag" #-}-                            0-                            {-# LINE 7134 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 882, column 22)-                       _stepsOuseParallel =-                           ({-# LINE 882 "src-ag/ExecutionPlan2Hs.ag" #-}-                            False-                            {-# LINE 7140 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1196, column 6)-                       _prevVisitInfo =-                           ({-# LINE 1196 "src-ag/ExecutionPlan2Hs.ag" #-}-                            Map.findWithDefault ManyVis from_ _lhsInextVisits-                            {-# LINE 7146 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1197, column 6)-                       _lhsOchildvisit =-                           ({-# LINE 1197 "src-ag/ExecutionPlan2Hs.ag" #-}-                            Map.singleton ident_ _invokecode-                            {-# LINE 7152 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1198, column 6)-                       _invokecode =-                           ({-# LINE 1198 "src-ag/ExecutionPlan2Hs.ag" #-}-                            \chn kind ->-                              if kind `compatibleKind` kind_-                              then Right $-                                let pat | isLazyKind kind_ = pat0-                                        | otherwise        = _addbang     pat0-                                    pat0  = pp_parens pat1-                                    pat1  = _nameTOut_visit     >#< (ppSpaced $ map (attrname True chn) $ Set.toList syn_)-                                                                >#< cont-                                    cont  = case _nextVisitInfo     of-                                              NoneVis  -> empty-                                              _        -> ch1-                                    ch0   = text $ stname chn from_-                                    ch1   = text $ stname chn to_-                                    expr  = case (kind, kind_) of-                                              (VisitPure _,  VisitPure _)  -> expr0-                                              (VisitPure _,  VisitMonadic) -> unMon _lhsIoptions >#< expr0-                                              (VisitMonadic, VisitPure _)  -> "return" >#< expr0-                                              (VisitMonadic, VisitMonadic) -> expr0-                                    expr0 = case _prevVisitInfo     of-                                              NoneVis  -> error "error: invocation of a visit from a state that has no next visits"-                                              OneVis _ -> "inv_" >|< _lhsInt >|< "_s" >|< from_ >#< ch0 >#< args-                                              ManyVis  -> "inv_" >|< _lhsInt >|< "_s" >|< from_ >#< ch0-                                                          >#< "K_" >|< _lhsInt >|< "_v" >|< ident_ >#< args-                                    args  = pp_parens args0 >#< args1-                                    args0 = _nameTIn_visit     >#< _inhargs     chn-                                    args1 | dummyTokenVisit _lhsIoptions = pp $ dummyArg _lhsIoptions True-                                          | otherwise                    = empty-                                in (pat, expr)-                              else Left $ IncompatibleVisitKind chn ident_ kind kind_-                            {-# LINE 7186 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1294, column 11)-                       _thisintra =-                           ({-# LINE 1294 "src-ag/ExecutionPlan2Hs.ag" #-}-                            (_uses     `Map.union` _nextintra    ) `Map.difference` _defsAsMap-                            {-# LINE 7192 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1295, column 11)-                       _lhsOintramap =-                           ({-# LINE 1295 "src-ag/ExecutionPlan2Hs.ag" #-}-                            Map.singleton from_ _thisintra-                            {-# LINE 7198 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1296, column 11)-                       _nextintra =-                           ({-# LINE 1296 "src-ag/ExecutionPlan2Hs.ag" #-}-                            maybe Map.empty id $ Map.lookup to_ _lhsIallintramap-                            {-# LINE 7204 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1297, column 11)-                       _uses =-                           ({-# LINE 1297 "src-ag/ExecutionPlan2Hs.ag" #-}-                            let mp1 = _stepsIuses-                                mp2 = Map.fromList [ (lhsname False i, Just (AttrSyn _LHS i)) | i <- Set.elems syn_ ]-                            in mp1 `Map.union` mp2-                            {-# LINE 7212 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1300, column 11)-                       _inhVarNms =-                           ({-# LINE 1300 "src-ag/ExecutionPlan2Hs.ag" #-}-                            Set.map (lhsname True) inh_-                            {-# LINE 7218 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1301, column 11)-                       _defs =-                           ({-# LINE 1301 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _stepsIdefs `Set.union` _inhVarNms     `Set.union` _lhsIterminaldefs-                            {-# LINE 7224 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1302, column 11)-                       _defsAsMap =-                           ({-# LINE 1302 "src-ag/ExecutionPlan2Hs.ag" #-}-                            Map.fromList [ (a, Nothing) | a <- Set.elems _defs     ]-                            {-# LINE 7230 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1326, column 11)-                       _lhsOvisitdefs =-                           ({-# LINE 1326 "src-ag/ExecutionPlan2Hs.ag" #-}-                            Map.singleton ident_ syn_-                            {-# LINE 7236 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1327, column 11)-                       _lhsOvisituses =-                           ({-# LINE 1327 "src-ag/ExecutionPlan2Hs.ag" #-}-                            Map.singleton ident_ inh_-                            {-# LINE 7242 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1359, column 3)-                       _lazyIntrasInh =-                           ({-# LINE 1359 "src-ag/ExecutionPlan2Hs.ag" #-}-                            case kind_ of-                              VisitPure False -> _inhVarNms     `Set.union` _stepsIdefs-                              _               -> Set.empty-                            {-# LINE 7250 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1362, column 3)-                       _lhsOlazyIntras =-                           ({-# LINE 1362 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lazyIntrasInh     `Set.union` _stepsIlazyIntras-                            {-# LINE 7256 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1515, column 37)-                       _addbang =-                           ({-# LINE 1515 "src-ag/ExecutionPlan2Hs.ag" #-}-                            \x -> if bangpats _lhsIoptions then "!" >|< x else x-                            {-# LINE 7262 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1523, column 37)-                       _addbang1 =-                           ({-# LINE 1523 "src-ag/ExecutionPlan2Hs.ag" #-}-                            if isLazyKind kind_ then id else _addbang-                            {-# LINE 7268 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1550, column 3)-                       _lhsOfromToStates =-                           ({-# LINE 1550 "src-ag/ExecutionPlan2Hs.ag" #-}-                            Map.singleton ident_ (from_, to_)-                            {-# LINE 7274 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1594, column 3)-                       _lhsOvisitKinds =-                           ({-# LINE 1594 "src-ag/ExecutionPlan2Hs.ag" #-}-                            Map.singleton ident_ kind_-                            {-# LINE 7280 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)-                       _lhsOerrors =-                           ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _stepsIerrors-                            {-# LINE 7286 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)-                       _lhsOruleKinds =-                           ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _stepsIruleKinds-                            {-# LINE 7292 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)-                       _lhsOruleUsage =-                           ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _stepsIruleUsage-                            {-# LINE 7298 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _stepsOallFromToStates =-                           ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsIallFromToStates-                            {-# LINE 7304 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _stepsOallInitStates =-                           ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsIallInitStates-                            {-# LINE 7310 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _stepsOallVisitKinds =-                           ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsIallVisitKinds-                            {-# LINE 7316 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _stepsOallchildvisit =-                           ({-# LINE 1189 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsIallchildvisit-                            {-# LINE 7322 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _stepsOavisitdefs =-                           ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsIavisitdefs-                            {-# LINE 7328 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _stepsOavisituses =-                           ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsIavisituses-                            {-# LINE 7334 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _stepsOchildTypes =-                           ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsIchildTypes-                            {-# LINE 7340 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _stepsOchildintros =-                           ({-# LINE 893 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsIchildintros-                            {-# LINE 7346 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _stepsOmrules =-                           ({-# LINE 776 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsImrules-                            {-# LINE 7352 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _stepsOoptions =-                           ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsIoptions-                            {-# LINE 7358 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _stepsOruledefs =-                           ({-# LINE 1307 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsIruledefs-                            {-# LINE 7364 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       -- copy rule (down)-                       _stepsOruleuses =-                           ({-# LINE 1308 "src-ag/ExecutionPlan2Hs.ag" #-}-                            _lhsIruleuses-                            {-# LINE 7370 "dist/build/ExecutionPlan2Hs" #-}-                            )-                       ( _stepsIdefs,_stepsIerrors,_stepsIindex,_stepsIisLast,_stepsIlazyIntras,_stepsIprevMaxSimRefs,_stepsIruleKinds,_stepsIruleUsage,_stepsIsem_steps,_stepsIsize,_stepsIsync_steps,_stepsIuses,_stepsIvisitKinds) =-                           steps_ _stepsOallFromToStates _stepsOallInitStates _stepsOallVisitKinds _stepsOallchildvisit _stepsOavisitdefs _stepsOavisituses _stepsOchildTypes _stepsOchildintros _stepsOfmtMode _stepsOindex _stepsOkind _stepsOmrules _stepsOoptions _stepsOprevMaxSimRefs _stepsOruledefs _stepsOruleuses _stepsOuseParallel-                   in  ( _lhsOallvisits,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOintramap,_lhsOlazyIntras,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_visit,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))--- VisitStep ----------------------------------------------------{--   visit 0:-      inherited attributes:-         allFromToStates      : Map VisitIdentifier (Int,Int)-         allInitStates        : Map NontermIdent Int-         allVisitKinds        : Map VisitIdentifier VisitKind-         allchildvisit        : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))-         avisitdefs           : Map VisitIdentifier (Set Identifier)-         avisituses           : Map VisitIdentifier (Set Identifier)-         childTypes           : Map Identifier Type-         childintros          : Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))-         fmtMode              : FormatMode-         kind                 : VisitKind-         mrules               : Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)-         options              : Options-         ruledefs             : Map Identifier (Set String)-         ruleuses             : Map Identifier (Map String (Maybe NonLocalAttr))-         useParallel          : Bool-      chained attributes:-         index                : Int-         isLast               : Bool-         prevMaxSimRefs       : Int-      synthesized attributes:-         defs                 : Set String-         errors               : Seq Error-         lazyIntras           : Set String-         ruleKinds            : Map Identifier (Set VisitKind)-         ruleUsage            : Map Identifier Int-         sem_steps            : PP_Doc-         sync_steps           : PP_Doc-         uses                 : Map String (Maybe NonLocalAttr)-         visitKinds           : Map VisitIdentifier VisitKind-   alternatives:-      alternative ChildIntro:-         child child          : {Identifier}-         visit 0:-            local attachItf   : _-      alternative ChildVisit:-         child child          : {Identifier}-         child nonterm        : {NontermIdent}-         child visit          : {VisitIdentifier}-         visit 0:-            local visitItf    : _-            local patPP       : _-            local exprPP      : _-            local useParallel : _-            local convToMonad : _-            local callKind    : _-            local addbang     : _-            local from        : _-            local to          : _-      alternative PureGroup:-         child steps          : VisitSteps -         child ordered        : {Bool}-      alternative Sem:-         child name           : {Identifier}-         visit 0:-            local ruleItf     : _-            local sem_steps   : _-      alternative Sim:-         child steps          : VisitSteps -         visit 0:-            local useParallel : _-            local isMonadic   : _--}--- cata-sem_VisitStep :: VisitStep ->-                 T_VisitStep-sem_VisitStep (ChildIntro _child) =-    (sem_VisitStep_ChildIntro _child)-sem_VisitStep (ChildVisit _child _nonterm _visit) =-    (sem_VisitStep_ChildVisit _child _nonterm _visit)-sem_VisitStep (PureGroup _steps _ordered) =-    (sem_VisitStep_PureGroup (sem_VisitSteps _steps) _ordered)-sem_VisitStep (Sem _name) =-    (sem_VisitStep_Sem _name)-sem_VisitStep (Sim _steps) =-    (sem_VisitStep_Sim (sem_VisitSteps _steps))--- semantic domain-newtype T_VisitStep = T_VisitStep ((Map VisitIdentifier (Int,Int)) ->-                                   (Map NontermIdent Int) ->-                                   (Map VisitIdentifier VisitKind) ->-                                   (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))) ->-                                   (Map VisitIdentifier (Set Identifier)) ->-                                   (Map VisitIdentifier (Set Identifier)) ->-                                   (Map Identifier Type) ->-                                   (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) ->-                                   FormatMode ->-                                   Int ->-                                   Bool ->-                                   VisitKind ->-                                   (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)) ->-                                   Options ->-                                   Int ->-                                   (Map Identifier (Set String)) ->-                                   (Map Identifier (Map String (Maybe NonLocalAttr))) ->-                                   Bool ->-                                   ( (Set String),(Seq Error),Int,Bool,(Set String),Int,(Map Identifier (Set VisitKind)),(Map Identifier Int),PP_Doc,PP_Doc,(Map String (Maybe NonLocalAttr)),(Map VisitIdentifier VisitKind)))-data Inh_VisitStep = Inh_VisitStep {allFromToStates_Inh_VisitStep :: (Map VisitIdentifier (Int,Int)),allInitStates_Inh_VisitStep :: (Map NontermIdent Int),allVisitKinds_Inh_VisitStep :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_VisitStep :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),avisitdefs_Inh_VisitStep :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_VisitStep :: (Map VisitIdentifier (Set Identifier)),childTypes_Inh_VisitStep :: (Map Identifier Type),childintros_Inh_VisitStep :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),fmtMode_Inh_VisitStep :: FormatMode,index_Inh_VisitStep :: Int,isLast_Inh_VisitStep :: Bool,kind_Inh_VisitStep :: VisitKind,mrules_Inh_VisitStep :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)),options_Inh_VisitStep :: Options,prevMaxSimRefs_Inh_VisitStep :: Int,ruledefs_Inh_VisitStep :: (Map Identifier (Set String)),ruleuses_Inh_VisitStep :: (Map Identifier (Map String (Maybe NonLocalAttr))),useParallel_Inh_VisitStep :: Bool}-data Syn_VisitStep = Syn_VisitStep {defs_Syn_VisitStep :: (Set String),errors_Syn_VisitStep :: (Seq Error),index_Syn_VisitStep :: Int,isLast_Syn_VisitStep :: Bool,lazyIntras_Syn_VisitStep :: (Set String),prevMaxSimRefs_Syn_VisitStep :: Int,ruleKinds_Syn_VisitStep :: (Map Identifier (Set VisitKind)),ruleUsage_Syn_VisitStep :: (Map Identifier Int),sem_steps_Syn_VisitStep :: PP_Doc,sync_steps_Syn_VisitStep :: PP_Doc,uses_Syn_VisitStep :: (Map String (Maybe NonLocalAttr)),visitKinds_Syn_VisitStep :: (Map VisitIdentifier VisitKind)}-wrap_VisitStep :: T_VisitStep ->-                  Inh_VisitStep ->-                  Syn_VisitStep-wrap_VisitStep (T_VisitStep sem) (Inh_VisitStep _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfmtMode _lhsIindex _lhsIisLast _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel) =-    (let ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds) = sem _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfmtMode _lhsIindex _lhsIisLast _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel-     in  (Syn_VisitStep _lhsOdefs _lhsOerrors _lhsOindex _lhsOisLast _lhsOlazyIntras _lhsOprevMaxSimRefs _lhsOruleKinds _lhsOruleUsage _lhsOsem_steps _lhsOsync_steps _lhsOuses _lhsOvisitKinds))-sem_VisitStep_ChildIntro :: Identifier ->-                            T_VisitStep-sem_VisitStep_ChildIntro child_ =-    (T_VisitStep (\ _lhsIallFromToStates-                    _lhsIallInitStates-                    _lhsIallVisitKinds-                    _lhsIallchildvisit-                    _lhsIavisitdefs-                    _lhsIavisituses-                    _lhsIchildTypes-                    _lhsIchildintros-                    _lhsIfmtMode-                    _lhsIindex-                    _lhsIisLast-                    _lhsIkind-                    _lhsImrules-                    _lhsIoptions-                    _lhsIprevMaxSimRefs-                    _lhsIruledefs-                    _lhsIruleuses-                    _lhsIuseParallel ->-                      (let _lhsOerrors :: (Seq Error)-                           _lhsOsem_steps :: PP_Doc-                           _lhsOdefs :: (Set String)-                           _lhsOuses :: (Map String (Maybe NonLocalAttr))-                           _lhsOlazyIntras :: (Set String)-                           _lhsOruleKinds :: (Map Identifier (Set VisitKind))-                           _lhsOruleUsage :: (Map Identifier Int)-                           _lhsOsync_steps :: PP_Doc-                           _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)-                           _lhsOindex :: Int-                           _lhsOisLast :: Bool-                           _lhsOprevMaxSimRefs :: Int-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 783, column 16)-                           _attachItf =-                               ({-# LINE 783 "src-ag/ExecutionPlan2Hs.ag" #-}-                                Map.findWithDefault (error $ "Child " ++ show child_ ++ " not found") child_ _lhsIchildintros-                                {-# LINE 7519 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 784, column 16)-                           (_lhsOerrors,_lhsOsem_steps,_lhsOdefs,_lhsOuses) =-                               ({-# LINE 784 "src-ag/ExecutionPlan2Hs.ag" #-}-                                case _attachItf     _lhsIkind _lhsIfmtMode of-                                  Left e                   -> (Seq.singleton e, empty, Set.empty, Map.empty)-                                  Right (code, defs, uses) -> (Seq.empty, code, defs, uses)-                                {-# LINE 7527 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1355, column 57)-                           _lhsOlazyIntras =-                               ({-# LINE 1355 "src-ag/ExecutionPlan2Hs.ag" #-}-                                Set.empty-                                {-# LINE 7533 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)-                           _lhsOruleKinds =-                               ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}-                                Map.empty-                                {-# LINE 7539 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)-                           _lhsOruleUsage =-                               ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}-                                Map.empty-                                {-# LINE 7545 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 810, column 44)-                           _lhsOsync_steps =-                               ({-# LINE 810 "src-ag/ExecutionPlan2Hs.ag" #-}-                                empty-                                {-# LINE 7551 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)-                           _lhsOvisitKinds =-                               ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                mempty-                                {-# LINE 7557 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (chain)-                           _lhsOindex =-                               ({-# LINE 854 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIindex-                                {-# LINE 7563 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (chain)-                           _lhsOisLast =-                               ({-# LINE 873 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIisLast-                                {-# LINE 7569 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (chain)-                           _lhsOprevMaxSimRefs =-                               ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIprevMaxSimRefs-                                {-# LINE 7575 "dist/build/ExecutionPlan2Hs" #-}-                                )-                       in  ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds))))-sem_VisitStep_ChildVisit :: Identifier ->-                            NontermIdent ->-                            VisitIdentifier ->-                            T_VisitStep-sem_VisitStep_ChildVisit child_ nonterm_ visit_ =-    (T_VisitStep (\ _lhsIallFromToStates-                    _lhsIallInitStates-                    _lhsIallVisitKinds-                    _lhsIallchildvisit-                    _lhsIavisitdefs-                    _lhsIavisituses-                    _lhsIchildTypes-                    _lhsIchildintros-                    _lhsIfmtMode-                    _lhsIindex-                    _lhsIisLast-                    _lhsIkind-                    _lhsImrules-                    _lhsIoptions-                    _lhsIprevMaxSimRefs-                    _lhsIruledefs-                    _lhsIruleuses-                    _lhsIuseParallel ->-                      (let _lhsOerrors :: (Seq Error)-                           _lhsOsem_steps :: PP_Doc-                           _lhsOsync_steps :: PP_Doc-                           _lhsOdefs :: (Set String)-                           _lhsOuses :: (Map String (Maybe NonLocalAttr))-                           _lhsOlazyIntras :: (Set String)-                           _lhsOruleKinds :: (Map Identifier (Set VisitKind))-                           _lhsOruleUsage :: (Map Identifier Int)-                           _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)-                           _lhsOindex :: Int-                           _lhsOisLast :: Bool-                           _lhsOprevMaxSimRefs :: Int-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 788, column 16)-                           _visitItf =-                               ({-# LINE 788 "src-ag/ExecutionPlan2Hs.ag" #-}-                                Map.findWithDefault (error $ "Visit " ++ show visit_ ++ " not found") visit_ _lhsIallchildvisit-                                {-# LINE 7617 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 789, column 16)-                           (_lhsOerrors,_patPP,_exprPP) =-                               ({-# LINE 789 "src-ag/ExecutionPlan2Hs.ag" #-}-                                case _visitItf     child_ _lhsIkind of-                                  Left e           -> (Seq.singleton e, empty, empty)-                                  Right (pat,expr) -> (Seq.empty, pat, expr)-                                {-# LINE 7625 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 793, column 16)-                           _useParallel =-                               ({-# LINE 793 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIuseParallel && not _lhsIisLast-                                {-# LINE 7631 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 794, column 16)-                           _lhsOsem_steps =-                               ({-# LINE 794 "src-ag/ExecutionPlan2Hs.ag" #-}-                                if _useParallel-                                then _addbang     ("sync_" >|< _lhsIindex) >#< "<- newEmptyMVar"-                                     >-< "forkIO" >#< pp_parens (_convToMonad     >#< pp_parens _exprPP     >#< ">>= \\" >#< _addbang     (pp parResultName) >#< " -> putMVar sync_" >|< _lhsIindex >#< parResultName)-                                else let decl = case _lhsIkind of-                                                  VisitPure _  -> _patPP     >#< "=" >#< _exprPP-                                                  VisitMonadic -> _patPP     >#< "<-" >#< _exprPP-                                     in fmtDecl False _lhsIfmtMode decl-                                {-# LINE 7643 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 801, column 16)-                           _convToMonad =-                               ({-# LINE 801 "src-ag/ExecutionPlan2Hs.ag" #-}-                                case _callKind     of-                                  VisitPure _  -> text "return"-                                  VisitMonadic -> empty-                                {-# LINE 7651 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 804, column 16)-                           _callKind =-                               ({-# LINE 804 "src-ag/ExecutionPlan2Hs.ag" #-}-                                Map.findWithDefault (error "visit kind should be in the map") visit_ _lhsIallVisitKinds-                                {-# LINE 7657 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 812, column 3)-                           _lhsOsync_steps =-                               ({-# LINE 812 "src-ag/ExecutionPlan2Hs.ag" #-}-                                if _useParallel-                                then _patPP     >#< "<-" >#< "takeMVar sync_" >|< _lhsIindex-                                else empty-                                {-# LINE 7665 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1344, column 16)-                           _lhsOdefs =-                               ({-# LINE 1344 "src-ag/ExecutionPlan2Hs.ag" #-}-                                Set.insert (stname child_ _to) $ maybe (error "Visit not found") (Set.map $ attrname True child_) $ Map.lookup visit_ _lhsIavisitdefs-                                {-# LINE 7671 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1345, column 16)-                           _lhsOuses =-                               ({-# LINE 1345 "src-ag/ExecutionPlan2Hs.ag" #-}-                                let convert attrs = Map.fromList [ (attrname False child_ attr, Just $ mkNonLocalAttr True child_ attr) | attr <- Set.elems attrs ]-                                in Map.insert (stname child_ _from) Nothing $ convert $-                                     maybe (error "Visit not found") id $ Map.lookup visit_ _lhsIavisituses-                                {-# LINE 7679 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1520, column 37)-                           _addbang =-                               ({-# LINE 1520 "src-ag/ExecutionPlan2Hs.ag" #-}-                                \x -> if bangpats _lhsIoptions then "!" >|< x else x-                                {-# LINE 7685 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1556, column 3)-                           (_from,_to) =-                               ({-# LINE 1556 "src-ag/ExecutionPlan2Hs.ag" #-}-                                Map.findWithDefault (error "visit not in allFromToStates") visit_ _lhsIallFromToStates-                                {-# LINE 7691 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1355, column 57)-                           _lhsOlazyIntras =-                               ({-# LINE 1355 "src-ag/ExecutionPlan2Hs.ag" #-}-                                Set.empty-                                {-# LINE 7697 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)-                           _lhsOruleKinds =-                               ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}-                                Map.empty-                                {-# LINE 7703 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)-                           _lhsOruleUsage =-                               ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}-                                Map.empty-                                {-# LINE 7709 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)-                           _lhsOvisitKinds =-                               ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                mempty-                                {-# LINE 7715 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (chain)-                           _lhsOindex =-                               ({-# LINE 854 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIindex-                                {-# LINE 7721 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (chain)-                           _lhsOisLast =-                               ({-# LINE 873 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIisLast-                                {-# LINE 7727 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (chain)-                           _lhsOprevMaxSimRefs =-                               ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIprevMaxSimRefs-                                {-# LINE 7733 "dist/build/ExecutionPlan2Hs" #-}-                                )-                       in  ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds))))-sem_VisitStep_PureGroup :: T_VisitSteps ->-                           Bool ->-                           T_VisitStep-sem_VisitStep_PureGroup (T_VisitSteps steps_) ordered_ =-    (T_VisitStep (\ _lhsIallFromToStates-                    _lhsIallInitStates-                    _lhsIallVisitKinds-                    _lhsIallchildvisit-                    _lhsIavisitdefs-                    _lhsIavisituses-                    _lhsIchildTypes-                    _lhsIchildintros-                    _lhsIfmtMode-                    _lhsIindex-                    _lhsIisLast-                    _lhsIkind-                    _lhsImrules-                    _lhsIoptions-                    _lhsIprevMaxSimRefs-                    _lhsIruledefs-                    _lhsIruleuses-                    _lhsIuseParallel ->-                      (let _stepsOkind :: VisitKind-                           _lhsOsem_steps :: PP_Doc-                           _stepsOfmtMode :: FormatMode-                           _lhsOlazyIntras :: (Set String)-                           _lhsOdefs :: (Set String)-                           _lhsOerrors :: (Seq Error)-                           _lhsOruleKinds :: (Map Identifier (Set VisitKind))-                           _lhsOruleUsage :: (Map Identifier Int)-                           _lhsOsync_steps :: PP_Doc-                           _lhsOuses :: (Map String (Maybe NonLocalAttr))-                           _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)-                           _lhsOindex :: Int-                           _lhsOisLast :: Bool-                           _lhsOprevMaxSimRefs :: Int-                           _stepsOallFromToStates :: (Map VisitIdentifier (Int,Int))-                           _stepsOallInitStates :: (Map NontermIdent Int)-                           _stepsOallVisitKinds :: (Map VisitIdentifier VisitKind)-                           _stepsOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                           _stepsOavisitdefs :: (Map VisitIdentifier (Set Identifier))-                           _stepsOavisituses :: (Map VisitIdentifier (Set Identifier))-                           _stepsOchildTypes :: (Map Identifier Type)-                           _stepsOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))-                           _stepsOindex :: Int-                           _stepsOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))-                           _stepsOoptions :: Options-                           _stepsOprevMaxSimRefs :: Int-                           _stepsOruledefs :: (Map Identifier (Set String))-                           _stepsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))-                           _stepsOuseParallel :: Bool-                           _stepsIdefs :: (Set String)-                           _stepsIerrors :: (Seq Error)-                           _stepsIindex :: Int-                           _stepsIisLast :: Bool-                           _stepsIlazyIntras :: (Set String)-                           _stepsIprevMaxSimRefs :: Int-                           _stepsIruleKinds :: (Map Identifier (Set VisitKind))-                           _stepsIruleUsage :: (Map Identifier Int)-                           _stepsIsem_steps :: PP_Doc-                           _stepsIsize :: Int-                           _stepsIsync_steps :: PP_Doc-                           _stepsIuses :: (Map String (Maybe NonLocalAttr))-                           _stepsIvisitKinds :: (Map VisitIdentifier VisitKind)-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 774, column 3)-                           _stepsOkind =-                               ({-# LINE 774 "src-ag/ExecutionPlan2Hs.ag" #-}-                                VisitPure ordered_-                                {-# LINE 7804 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 806, column 16)-                           _lhsOsem_steps =-                               ({-# LINE 806 "src-ag/ExecutionPlan2Hs.ag" #-}-                                case _lhsIfmtMode of-                                  FormatDo -> "let" >#< _stepsIsem_steps-                                  _        -> _stepsIsem_steps-                                {-# LINE 7812 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 827, column 3)-                           _stepsOfmtMode =-                               ({-# LINE 827 "src-ag/ExecutionPlan2Hs.ag" #-}-                                case _lhsIfmtMode of-                                  FormatDo      -> FormatLetDecl-                                  mode          -> mode-                                {-# LINE 7820 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1365, column 3)-                           _lhsOlazyIntras =-                               ({-# LINE 1365 "src-ag/ExecutionPlan2Hs.ag" #-}-                                if ordered_-                                then _stepsIlazyIntras-                                else _stepsIdefs-                                {-# LINE 7828 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1339, column 38)-                           _lhsOdefs =-                               ({-# LINE 1339 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIdefs-                                {-# LINE 7834 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)-                           _lhsOerrors =-                               ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIerrors-                                {-# LINE 7840 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)-                           _lhsOruleKinds =-                               ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIruleKinds-                                {-# LINE 7846 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)-                           _lhsOruleUsage =-                               ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIruleUsage-                                {-# LINE 7852 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 810, column 44)-                           _lhsOsync_steps =-                               ({-# LINE 810 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIsync_steps-                                {-# LINE 7858 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1340, column 38)-                           _lhsOuses =-                               ({-# LINE 1340 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIuses-                                {-# LINE 7864 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)-                           _lhsOvisitKinds =-                               ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIvisitKinds-                                {-# LINE 7870 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (up)-                           _lhsOindex =-                               ({-# LINE 854 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIindex-                                {-# LINE 7876 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (up)-                           _lhsOisLast =-                               ({-# LINE 873 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIisLast-                                {-# LINE 7882 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (up)-                           _lhsOprevMaxSimRefs =-                               ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIprevMaxSimRefs-                                {-# LINE 7888 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOallFromToStates =-                               ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIallFromToStates-                                {-# LINE 7894 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOallInitStates =-                               ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIallInitStates-                                {-# LINE 7900 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOallVisitKinds =-                               ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIallVisitKinds-                                {-# LINE 7906 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOallchildvisit =-                               ({-# LINE 1189 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIallchildvisit-                                {-# LINE 7912 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOavisitdefs =-                               ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIavisitdefs-                                {-# LINE 7918 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOavisituses =-                               ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIavisituses-                                {-# LINE 7924 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOchildTypes =-                               ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIchildTypes-                                {-# LINE 7930 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOchildintros =-                               ({-# LINE 893 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIchildintros-                                {-# LINE 7936 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOindex =-                               ({-# LINE 854 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIindex-                                {-# LINE 7942 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOmrules =-                               ({-# LINE 776 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsImrules-                                {-# LINE 7948 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOoptions =-                               ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIoptions-                                {-# LINE 7954 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOprevMaxSimRefs =-                               ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIprevMaxSimRefs-                                {-# LINE 7960 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOruledefs =-                               ({-# LINE 1307 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIruledefs-                                {-# LINE 7966 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOruleuses =-                               ({-# LINE 1308 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIruleuses-                                {-# LINE 7972 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOuseParallel =-                               ({-# LINE 881 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIuseParallel-                                {-# LINE 7978 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           ( _stepsIdefs,_stepsIerrors,_stepsIindex,_stepsIisLast,_stepsIlazyIntras,_stepsIprevMaxSimRefs,_stepsIruleKinds,_stepsIruleUsage,_stepsIsem_steps,_stepsIsize,_stepsIsync_steps,_stepsIuses,_stepsIvisitKinds) =-                               steps_ _stepsOallFromToStates _stepsOallInitStates _stepsOallVisitKinds _stepsOallchildvisit _stepsOavisitdefs _stepsOavisituses _stepsOchildTypes _stepsOchildintros _stepsOfmtMode _stepsOindex _stepsOkind _stepsOmrules _stepsOoptions _stepsOprevMaxSimRefs _stepsOruledefs _stepsOruleuses _stepsOuseParallel-                       in  ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds))))-sem_VisitStep_Sem :: Identifier ->-                     T_VisitStep-sem_VisitStep_Sem name_ =-    (T_VisitStep (\ _lhsIallFromToStates-                    _lhsIallInitStates-                    _lhsIallVisitKinds-                    _lhsIallchildvisit-                    _lhsIavisitdefs-                    _lhsIavisituses-                    _lhsIchildTypes-                    _lhsIchildintros-                    _lhsIfmtMode-                    _lhsIindex-                    _lhsIisLast-                    _lhsIkind-                    _lhsImrules-                    _lhsIoptions-                    _lhsIprevMaxSimRefs-                    _lhsIruledefs-                    _lhsIruleuses-                    _lhsIuseParallel ->-                      (let _lhsOerrors :: (Seq Error)-                           _lhsOruleUsage :: (Map Identifier Int)-                           _lhsOruleKinds :: (Map Identifier (Set VisitKind))-                           _lhsOdefs :: (Set String)-                           _lhsOuses :: (Map String (Maybe NonLocalAttr))-                           _lhsOlazyIntras :: (Set String)-                           _lhsOsem_steps :: PP_Doc-                           _lhsOsync_steps :: PP_Doc-                           _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)-                           _lhsOindex :: Int-                           _lhsOisLast :: Bool-                           _lhsOprevMaxSimRefs :: Int-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 779, column 16)-                           _ruleItf =-                               ({-# LINE 779 "src-ag/ExecutionPlan2Hs.ag" #-}-                                Map.findWithDefault (error $ "Rule "  ++ show name_  ++ " not found") name_ _lhsImrules-                                {-# LINE 8020 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 780, column 16)-                           (_lhsOerrors,_sem_steps) =-                               ({-# LINE 780 "src-ag/ExecutionPlan2Hs.ag" #-}-                                case _ruleItf     _lhsIkind _lhsIfmtMode of-                                  Left e     -> (Seq.singleton e, empty)-                                  Right stmt -> (Seq.empty, stmt)-                                {-# LINE 8028 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1247, column 32)-                           _lhsOruleUsage =-                               ({-# LINE 1247 "src-ag/ExecutionPlan2Hs.ag" #-}-                                Map.singleton name_ 1-                                {-# LINE 8034 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1257, column 3)-                           _lhsOruleKinds =-                               ({-# LINE 1257 "src-ag/ExecutionPlan2Hs.ag" #-}-                                Map.singleton name_ (Set.singleton _lhsIkind)-                                {-# LINE 8040 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1342, column 16)-                           _lhsOdefs =-                               ({-# LINE 1342 "src-ag/ExecutionPlan2Hs.ag" #-}-                                maybe (error "Rule not found") id $ Map.lookup name_ _lhsIruledefs-                                {-# LINE 8046 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1343, column 16)-                           _lhsOuses =-                               ({-# LINE 1343 "src-ag/ExecutionPlan2Hs.ag" #-}-                                maybe (error "Rule not found") id $ Map.lookup name_ _lhsIruleuses-                                {-# LINE 8052 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1355, column 57)-                           _lhsOlazyIntras =-                               ({-# LINE 1355 "src-ag/ExecutionPlan2Hs.ag" #-}-                                Set.empty-                                {-# LINE 8058 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 777, column 43)-                           _lhsOsem_steps =-                               ({-# LINE 777 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _sem_steps-                                {-# LINE 8064 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 810, column 44)-                           _lhsOsync_steps =-                               ({-# LINE 810 "src-ag/ExecutionPlan2Hs.ag" #-}-                                empty-                                {-# LINE 8070 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)-                           _lhsOvisitKinds =-                               ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                mempty-                                {-# LINE 8076 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (chain)-                           _lhsOindex =-                               ({-# LINE 854 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIindex-                                {-# LINE 8082 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (chain)-                           _lhsOisLast =-                               ({-# LINE 873 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIisLast-                                {-# LINE 8088 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (chain)-                           _lhsOprevMaxSimRefs =-                               ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIprevMaxSimRefs-                                {-# LINE 8094 "dist/build/ExecutionPlan2Hs" #-}-                                )-                       in  ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds))))-sem_VisitStep_Sim :: T_VisitSteps ->-                     T_VisitStep-sem_VisitStep_Sim (T_VisitSteps steps_) =-    (T_VisitStep (\ _lhsIallFromToStates-                    _lhsIallInitStates-                    _lhsIallVisitKinds-                    _lhsIallchildvisit-                    _lhsIavisitdefs-                    _lhsIavisituses-                    _lhsIchildTypes-                    _lhsIchildintros-                    _lhsIfmtMode-                    _lhsIindex-                    _lhsIisLast-                    _lhsIkind-                    _lhsImrules-                    _lhsIoptions-                    _lhsIprevMaxSimRefs-                    _lhsIruledefs-                    _lhsIruleuses-                    _lhsIuseParallel ->-                      (let _lhsOsem_steps :: PP_Doc-                           _stepsOindex :: Int-                           _lhsOindex :: Int-                           _lhsOprevMaxSimRefs :: Int-                           _lhsOdefs :: (Set String)-                           _lhsOerrors :: (Seq Error)-                           _lhsOlazyIntras :: (Set String)-                           _lhsOruleKinds :: (Map Identifier (Set VisitKind))-                           _lhsOruleUsage :: (Map Identifier Int)-                           _lhsOsync_steps :: PP_Doc-                           _lhsOuses :: (Map String (Maybe NonLocalAttr))-                           _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)-                           _lhsOisLast :: Bool-                           _stepsOallFromToStates :: (Map VisitIdentifier (Int,Int))-                           _stepsOallInitStates :: (Map NontermIdent Int)-                           _stepsOallVisitKinds :: (Map VisitIdentifier VisitKind)-                           _stepsOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                           _stepsOavisitdefs :: (Map VisitIdentifier (Set Identifier))-                           _stepsOavisituses :: (Map VisitIdentifier (Set Identifier))-                           _stepsOchildTypes :: (Map Identifier Type)-                           _stepsOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))-                           _stepsOfmtMode :: FormatMode-                           _stepsOkind :: VisitKind-                           _stepsOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))-                           _stepsOoptions :: Options-                           _stepsOprevMaxSimRefs :: Int-                           _stepsOruledefs :: (Map Identifier (Set String))-                           _stepsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))-                           _stepsOuseParallel :: Bool-                           _stepsIdefs :: (Set String)-                           _stepsIerrors :: (Seq Error)-                           _stepsIindex :: Int-                           _stepsIisLast :: Bool-                           _stepsIlazyIntras :: (Set String)-                           _stepsIprevMaxSimRefs :: Int-                           _stepsIruleKinds :: (Map Identifier (Set VisitKind))-                           _stepsIruleUsage :: (Map Identifier Int)-                           _stepsIsem_steps :: PP_Doc-                           _stepsIsize :: Int-                           _stepsIsync_steps :: PP_Doc-                           _stepsIuses :: (Map String (Maybe NonLocalAttr))-                           _stepsIvisitKinds :: (Map VisitIdentifier VisitKind)-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 805, column 16)-                           _lhsOsem_steps =-                               ({-# LINE 805 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIsem_steps >-< _stepsIsync_steps-                                {-# LINE 8164 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 860, column 22)-                           _stepsOindex =-                               ({-# LINE 860 "src-ag/ExecutionPlan2Hs.ag" #-}-                                0-                                {-# LINE 8170 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 861, column 22)-                           _lhsOindex =-                               ({-# LINE 861 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIindex-                                {-# LINE 8176 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 868, column 3)-                           _lhsOprevMaxSimRefs =-                               ({-# LINE 868 "src-ag/ExecutionPlan2Hs.ag" #-}-                                if _useParallel-                                then _lhsIprevMaxSimRefs `max` (_stepsIindex - 1)-                                else _lhsIprevMaxSimRefs-                                {-# LINE 8184 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 883, column 22)-                           _useParallel =-                               ({-# LINE 883 "src-ag/ExecutionPlan2Hs.ag" #-}-                                parallelInvoke _lhsIoptions && _stepsIsize > 1 && _isMonadic-                                {-# LINE 8190 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- "src-ag/ExecutionPlan2Hs.ag"(line 884, column 22)-                           _isMonadic =-                               ({-# LINE 884 "src-ag/ExecutionPlan2Hs.ag" #-}-                                case _lhsIkind of-                                  VisitMonadic -> True-                                  _            -> False-                                {-# LINE 8198 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1339, column 38)-                           _lhsOdefs =-                               ({-# LINE 1339 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIdefs-                                {-# LINE 8204 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)-                           _lhsOerrors =-                               ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIerrors-                                {-# LINE 8210 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1355, column 57)-                           _lhsOlazyIntras =-                               ({-# LINE 1355 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIlazyIntras-                                {-# LINE 8216 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)-                           _lhsOruleKinds =-                               ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIruleKinds-                                {-# LINE 8222 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)-                           _lhsOruleUsage =-                               ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIruleUsage-                                {-# LINE 8228 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 810, column 44)-                           _lhsOsync_steps =-                               ({-# LINE 810 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIsync_steps-                                {-# LINE 8234 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1340, column 38)-                           _lhsOuses =-                               ({-# LINE 1340 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIuses-                                {-# LINE 8240 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)-                           _lhsOvisitKinds =-                               ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIvisitKinds-                                {-# LINE 8246 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (up)-                           _lhsOisLast =-                               ({-# LINE 873 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _stepsIisLast-                                {-# LINE 8252 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOallFromToStates =-                               ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIallFromToStates-                                {-# LINE 8258 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOallInitStates =-                               ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIallInitStates-                                {-# LINE 8264 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOallVisitKinds =-                               ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIallVisitKinds-                                {-# LINE 8270 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOallchildvisit =-                               ({-# LINE 1189 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIallchildvisit-                                {-# LINE 8276 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOavisitdefs =-                               ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIavisitdefs-                                {-# LINE 8282 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOavisituses =-                               ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIavisituses-                                {-# LINE 8288 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOchildTypes =-                               ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIchildTypes-                                {-# LINE 8294 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOchildintros =-                               ({-# LINE 893 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIchildintros-                                {-# LINE 8300 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOfmtMode =-                               ({-# LINE 819 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIfmtMode-                                {-# LINE 8306 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOkind =-                               ({-# LINE 769 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIkind-                                {-# LINE 8312 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOmrules =-                               ({-# LINE 776 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsImrules-                                {-# LINE 8318 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOoptions =-                               ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIoptions-                                {-# LINE 8324 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOprevMaxSimRefs =-                               ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIprevMaxSimRefs-                                {-# LINE 8330 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOruledefs =-                               ({-# LINE 1307 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIruledefs-                                {-# LINE 8336 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (down)-                           _stepsOruleuses =-                               ({-# LINE 1308 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _lhsIruleuses-                                {-# LINE 8342 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           -- copy rule (from local)-                           _stepsOuseParallel =-                               ({-# LINE 881 "src-ag/ExecutionPlan2Hs.ag" #-}-                                _useParallel-                                {-# LINE 8348 "dist/build/ExecutionPlan2Hs" #-}-                                )-                           ( _stepsIdefs,_stepsIerrors,_stepsIindex,_stepsIisLast,_stepsIlazyIntras,_stepsIprevMaxSimRefs,_stepsIruleKinds,_stepsIruleUsage,_stepsIsem_steps,_stepsIsize,_stepsIsync_steps,_stepsIuses,_stepsIvisitKinds) =-                               steps_ _stepsOallFromToStates _stepsOallInitStates _stepsOallVisitKinds _stepsOallchildvisit _stepsOavisitdefs _stepsOavisituses _stepsOchildTypes _stepsOchildintros _stepsOfmtMode _stepsOindex _stepsOkind _stepsOmrules _stepsOoptions _stepsOprevMaxSimRefs _stepsOruledefs _stepsOruleuses _stepsOuseParallel-                       in  ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds))))--- VisitSteps ---------------------------------------------------{--   visit 0:-      inherited attributes:-         allFromToStates      : Map VisitIdentifier (Int,Int)-         allInitStates        : Map NontermIdent Int-         allVisitKinds        : Map VisitIdentifier VisitKind-         allchildvisit        : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))-         avisitdefs           : Map VisitIdentifier (Set Identifier)-         avisituses           : Map VisitIdentifier (Set Identifier)-         childTypes           : Map Identifier Type-         childintros          : Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))-         fmtMode              : FormatMode-         kind                 : VisitKind-         mrules               : Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)-         options              : Options-         ruledefs             : Map Identifier (Set String)-         ruleuses             : Map Identifier (Map String (Maybe NonLocalAttr))-         useParallel          : Bool-      chained attributes:-         index                : Int-         prevMaxSimRefs       : Int-      synthesized attributes:-         defs                 : Set String-         errors               : Seq Error-         isLast               : Bool-         lazyIntras           : Set String-         ruleKinds            : Map Identifier (Set VisitKind)-         ruleUsage            : Map Identifier Int-         sem_steps            : PP_Doc-         size                 : Int-         sync_steps           : PP_Doc-         uses                 : Map String (Maybe NonLocalAttr)-         visitKinds           : Map VisitIdentifier VisitKind-   alternatives:-      alternative Cons:-         child hd             : VisitStep -         child tl             : VisitSteps -      alternative Nil:--}--- cata-sem_VisitSteps :: VisitSteps ->-                  T_VisitSteps-sem_VisitSteps list =-    (Prelude.foldr sem_VisitSteps_Cons sem_VisitSteps_Nil (Prelude.map sem_VisitStep list))--- semantic domain-newtype T_VisitSteps = T_VisitSteps ((Map VisitIdentifier (Int,Int)) ->-                                     (Map NontermIdent Int) ->-                                     (Map VisitIdentifier VisitKind) ->-                                     (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))) ->-                                     (Map VisitIdentifier (Set Identifier)) ->-                                     (Map VisitIdentifier (Set Identifier)) ->-                                     (Map Identifier Type) ->-                                     (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) ->-                                     FormatMode ->-                                     Int ->-                                     VisitKind ->-                                     (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)) ->-                                     Options ->-                                     Int ->-                                     (Map Identifier (Set String)) ->-                                     (Map Identifier (Map String (Maybe NonLocalAttr))) ->-                                     Bool ->-                                     ( (Set String),(Seq Error),Int,Bool,(Set String),Int,(Map Identifier (Set VisitKind)),(Map Identifier Int),PP_Doc,Int,PP_Doc,(Map String (Maybe NonLocalAttr)),(Map VisitIdentifier VisitKind)))-data Inh_VisitSteps = Inh_VisitSteps {allFromToStates_Inh_VisitSteps :: (Map VisitIdentifier (Int,Int)),allInitStates_Inh_VisitSteps :: (Map NontermIdent Int),allVisitKinds_Inh_VisitSteps :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_VisitSteps :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),avisitdefs_Inh_VisitSteps :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_VisitSteps :: (Map VisitIdentifier (Set Identifier)),childTypes_Inh_VisitSteps :: (Map Identifier Type),childintros_Inh_VisitSteps :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),fmtMode_Inh_VisitSteps :: FormatMode,index_Inh_VisitSteps :: Int,kind_Inh_VisitSteps :: VisitKind,mrules_Inh_VisitSteps :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)),options_Inh_VisitSteps :: Options,prevMaxSimRefs_Inh_VisitSteps :: Int,ruledefs_Inh_VisitSteps :: (Map Identifier (Set String)),ruleuses_Inh_VisitSteps :: (Map Identifier (Map String (Maybe NonLocalAttr))),useParallel_Inh_VisitSteps :: Bool}-data Syn_VisitSteps = Syn_VisitSteps {defs_Syn_VisitSteps :: (Set String),errors_Syn_VisitSteps :: (Seq Error),index_Syn_VisitSteps :: Int,isLast_Syn_VisitSteps :: Bool,lazyIntras_Syn_VisitSteps :: (Set String),prevMaxSimRefs_Syn_VisitSteps :: Int,ruleKinds_Syn_VisitSteps :: (Map Identifier (Set VisitKind)),ruleUsage_Syn_VisitSteps :: (Map Identifier Int),sem_steps_Syn_VisitSteps :: PP_Doc,size_Syn_VisitSteps :: Int,sync_steps_Syn_VisitSteps :: PP_Doc,uses_Syn_VisitSteps :: (Map String (Maybe NonLocalAttr)),visitKinds_Syn_VisitSteps :: (Map VisitIdentifier VisitKind)}-wrap_VisitSteps :: T_VisitSteps ->-                   Inh_VisitSteps ->-                   Syn_VisitSteps-wrap_VisitSteps (T_VisitSteps sem) (Inh_VisitSteps _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfmtMode _lhsIindex _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel) =-    (let ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsize,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds) = sem _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfmtMode _lhsIindex _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel-     in  (Syn_VisitSteps _lhsOdefs _lhsOerrors _lhsOindex _lhsOisLast _lhsOlazyIntras _lhsOprevMaxSimRefs _lhsOruleKinds _lhsOruleUsage _lhsOsem_steps _lhsOsize _lhsOsync_steps _lhsOuses _lhsOvisitKinds))-sem_VisitSteps_Cons :: T_VisitStep ->-                       T_VisitSteps ->-                       T_VisitSteps-sem_VisitSteps_Cons (T_VisitStep hd_) (T_VisitSteps tl_) =-    (T_VisitSteps (\ _lhsIallFromToStates-                     _lhsIallInitStates-                     _lhsIallVisitKinds-                     _lhsIallchildvisit-                     _lhsIavisitdefs-                     _lhsIavisituses-                     _lhsIchildTypes-                     _lhsIchildintros-                     _lhsIfmtMode-                     _lhsIindex-                     _lhsIkind-                     _lhsImrules-                     _lhsIoptions-                     _lhsIprevMaxSimRefs-                     _lhsIruledefs-                     _lhsIruleuses-                     _lhsIuseParallel ->-                       (let _lhsOsize :: Int-                            _hdOindex :: Int-                            _tlOindex :: Int-                            _lhsOindex :: Int-                            _lhsOisLast :: Bool-                            _hdOisLast :: Bool-                            _lhsOdefs :: (Set String)-                            _lhsOerrors :: (Seq Error)-                            _lhsOlazyIntras :: (Set String)-                            _lhsOruleKinds :: (Map Identifier (Set VisitKind))-                            _lhsOruleUsage :: (Map Identifier Int)-                            _lhsOsem_steps :: PP_Doc-                            _lhsOsync_steps :: PP_Doc-                            _lhsOuses :: (Map String (Maybe NonLocalAttr))-                            _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)-                            _lhsOprevMaxSimRefs :: Int-                            _hdOallFromToStates :: (Map VisitIdentifier (Int,Int))-                            _hdOallInitStates :: (Map NontermIdent Int)-                            _hdOallVisitKinds :: (Map VisitIdentifier VisitKind)-                            _hdOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                            _hdOavisitdefs :: (Map VisitIdentifier (Set Identifier))-                            _hdOavisituses :: (Map VisitIdentifier (Set Identifier))-                            _hdOchildTypes :: (Map Identifier Type)-                            _hdOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))-                            _hdOfmtMode :: FormatMode-                            _hdOkind :: VisitKind-                            _hdOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))-                            _hdOoptions :: Options-                            _hdOprevMaxSimRefs :: Int-                            _hdOruledefs :: (Map Identifier (Set String))-                            _hdOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))-                            _hdOuseParallel :: Bool-                            _tlOallFromToStates :: (Map VisitIdentifier (Int,Int))-                            _tlOallInitStates :: (Map NontermIdent Int)-                            _tlOallVisitKinds :: (Map VisitIdentifier VisitKind)-                            _tlOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                            _tlOavisitdefs :: (Map VisitIdentifier (Set Identifier))-                            _tlOavisituses :: (Map VisitIdentifier (Set Identifier))-                            _tlOchildTypes :: (Map Identifier Type)-                            _tlOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))-                            _tlOfmtMode :: FormatMode-                            _tlOkind :: VisitKind-                            _tlOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))-                            _tlOoptions :: Options-                            _tlOprevMaxSimRefs :: Int-                            _tlOruledefs :: (Map Identifier (Set String))-                            _tlOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))-                            _tlOuseParallel :: Bool-                            _hdIdefs :: (Set String)-                            _hdIerrors :: (Seq Error)-                            _hdIindex :: Int-                            _hdIisLast :: Bool-                            _hdIlazyIntras :: (Set String)-                            _hdIprevMaxSimRefs :: Int-                            _hdIruleKinds :: (Map Identifier (Set VisitKind))-                            _hdIruleUsage :: (Map Identifier Int)-                            _hdIsem_steps :: PP_Doc-                            _hdIsync_steps :: PP_Doc-                            _hdIuses :: (Map String (Maybe NonLocalAttr))-                            _hdIvisitKinds :: (Map VisitIdentifier VisitKind)-                            _tlIdefs :: (Set String)-                            _tlIerrors :: (Seq Error)-                            _tlIindex :: Int-                            _tlIisLast :: Bool-                            _tlIlazyIntras :: (Set String)-                            _tlIprevMaxSimRefs :: Int-                            _tlIruleKinds :: (Map Identifier (Set VisitKind))-                            _tlIruleUsage :: (Map Identifier Int)-                            _tlIsem_steps :: PP_Doc-                            _tlIsize :: Int-                            _tlIsync_steps :: PP_Doc-                            _tlIuses :: (Map String (Maybe NonLocalAttr))-                            _tlIvisitKinds :: (Map VisitIdentifier VisitKind)-                            -- "src-ag/ExecutionPlan2Hs.ag"(line 851, column 10)-                            _lhsOsize =-                                ({-# LINE 851 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 1 + _tlIsize-                                 {-# LINE 8523 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- "src-ag/ExecutionPlan2Hs.ag"(line 856, column 3)-                            _hdOindex =-                                ({-# LINE 856 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIindex-                                 {-# LINE 8529 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- "src-ag/ExecutionPlan2Hs.ag"(line 857, column 3)-                            _tlOindex =-                                ({-# LINE 857 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 1 + _lhsIindex-                                 {-# LINE 8535 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- "src-ag/ExecutionPlan2Hs.ag"(line 858, column 3)-                            _lhsOindex =-                                ({-# LINE 858 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _tlIindex-                                 {-# LINE 8541 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- "src-ag/ExecutionPlan2Hs.ag"(line 877, column 11)-                            _lhsOisLast =-                                ({-# LINE 877 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 False-                                 {-# LINE 8547 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- "src-ag/ExecutionPlan2Hs.ag"(line 878, column 11)-                            _hdOisLast =-                                ({-# LINE 878 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _tlIisLast-                                 {-# LINE 8553 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1339, column 38)-                            _lhsOdefs =-                                ({-# LINE 1339 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _hdIdefs `Set.union` _tlIdefs-                                 {-# LINE 8559 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)-                            _lhsOerrors =-                                ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _hdIerrors Seq.>< _tlIerrors-                                 {-# LINE 8565 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1355, column 57)-                            _lhsOlazyIntras =-                                ({-# LINE 1355 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _hdIlazyIntras `Set.union` _tlIlazyIntras-                                 {-# LINE 8571 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)-                            _lhsOruleKinds =-                                ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _hdIruleKinds `unionWithMappend` _tlIruleKinds-                                 {-# LINE 8577 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)-                            _lhsOruleUsage =-                                ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _hdIruleUsage `unionWithSum` _tlIruleUsage-                                 {-# LINE 8583 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 777, column 43)-                            _lhsOsem_steps =-                                ({-# LINE 777 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _hdIsem_steps >-< _tlIsem_steps-                                 {-# LINE 8589 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 810, column 44)-                            _lhsOsync_steps =-                                ({-# LINE 810 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _hdIsync_steps >-< _tlIsync_steps-                                 {-# LINE 8595 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1340, column 38)-                            _lhsOuses =-                                ({-# LINE 1340 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _hdIuses `Map.union` _tlIuses-                                 {-# LINE 8601 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)-                            _lhsOvisitKinds =-                                ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _hdIvisitKinds `mappend` _tlIvisitKinds-                                 {-# LINE 8607 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (up)-                            _lhsOprevMaxSimRefs =-                                ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _tlIprevMaxSimRefs-                                 {-# LINE 8613 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _hdOallFromToStates =-                                ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIallFromToStates-                                 {-# LINE 8619 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _hdOallInitStates =-                                ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIallInitStates-                                 {-# LINE 8625 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _hdOallVisitKinds =-                                ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIallVisitKinds-                                 {-# LINE 8631 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _hdOallchildvisit =-                                ({-# LINE 1189 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIallchildvisit-                                 {-# LINE 8637 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _hdOavisitdefs =-                                ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIavisitdefs-                                 {-# LINE 8643 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _hdOavisituses =-                                ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIavisituses-                                 {-# LINE 8649 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _hdOchildTypes =-                                ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIchildTypes-                                 {-# LINE 8655 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _hdOchildintros =-                                ({-# LINE 893 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIchildintros-                                 {-# LINE 8661 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _hdOfmtMode =-                                ({-# LINE 819 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIfmtMode-                                 {-# LINE 8667 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _hdOkind =-                                ({-# LINE 769 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIkind-                                 {-# LINE 8673 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _hdOmrules =-                                ({-# LINE 776 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsImrules-                                 {-# LINE 8679 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _hdOoptions =-                                ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIoptions-                                 {-# LINE 8685 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _hdOprevMaxSimRefs =-                                ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIprevMaxSimRefs-                                 {-# LINE 8691 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _hdOruledefs =-                                ({-# LINE 1307 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIruledefs-                                 {-# LINE 8697 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _hdOruleuses =-                                ({-# LINE 1308 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIruleuses-                                 {-# LINE 8703 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _hdOuseParallel =-                                ({-# LINE 881 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIuseParallel-                                 {-# LINE 8709 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _tlOallFromToStates =-                                ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIallFromToStates-                                 {-# LINE 8715 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _tlOallInitStates =-                                ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIallInitStates-                                 {-# LINE 8721 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _tlOallVisitKinds =-                                ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIallVisitKinds-                                 {-# LINE 8727 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _tlOallchildvisit =-                                ({-# LINE 1189 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIallchildvisit-                                 {-# LINE 8733 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _tlOavisitdefs =-                                ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIavisitdefs-                                 {-# LINE 8739 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _tlOavisituses =-                                ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIavisituses-                                 {-# LINE 8745 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _tlOchildTypes =-                                ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIchildTypes-                                 {-# LINE 8751 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _tlOchildintros =-                                ({-# LINE 893 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIchildintros-                                 {-# LINE 8757 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _tlOfmtMode =-                                ({-# LINE 819 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIfmtMode-                                 {-# LINE 8763 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _tlOkind =-                                ({-# LINE 769 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIkind-                                 {-# LINE 8769 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _tlOmrules =-                                ({-# LINE 776 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsImrules-                                 {-# LINE 8775 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _tlOoptions =-                                ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIoptions-                                 {-# LINE 8781 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (chain)-                            _tlOprevMaxSimRefs =-                                ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _hdIprevMaxSimRefs-                                 {-# LINE 8787 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _tlOruledefs =-                                ({-# LINE 1307 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIruledefs-                                 {-# LINE 8793 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _tlOruleuses =-                                ({-# LINE 1308 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIruleuses-                                 {-# LINE 8799 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (down)-                            _tlOuseParallel =-                                ({-# LINE 881 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIuseParallel-                                 {-# LINE 8805 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            ( _hdIdefs,_hdIerrors,_hdIindex,_hdIisLast,_hdIlazyIntras,_hdIprevMaxSimRefs,_hdIruleKinds,_hdIruleUsage,_hdIsem_steps,_hdIsync_steps,_hdIuses,_hdIvisitKinds) =-                                hd_ _hdOallFromToStates _hdOallInitStates _hdOallVisitKinds _hdOallchildvisit _hdOavisitdefs _hdOavisituses _hdOchildTypes _hdOchildintros _hdOfmtMode _hdOindex _hdOisLast _hdOkind _hdOmrules _hdOoptions _hdOprevMaxSimRefs _hdOruledefs _hdOruleuses _hdOuseParallel-                            ( _tlIdefs,_tlIerrors,_tlIindex,_tlIisLast,_tlIlazyIntras,_tlIprevMaxSimRefs,_tlIruleKinds,_tlIruleUsage,_tlIsem_steps,_tlIsize,_tlIsync_steps,_tlIuses,_tlIvisitKinds) =-                                tl_ _tlOallFromToStates _tlOallInitStates _tlOallVisitKinds _tlOallchildvisit _tlOavisitdefs _tlOavisituses _tlOchildTypes _tlOchildintros _tlOfmtMode _tlOindex _tlOkind _tlOmrules _tlOoptions _tlOprevMaxSimRefs _tlOruledefs _tlOruleuses _tlOuseParallel-                        in  ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsize,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds))))-sem_VisitSteps_Nil :: T_VisitSteps-sem_VisitSteps_Nil =-    (T_VisitSteps (\ _lhsIallFromToStates-                     _lhsIallInitStates-                     _lhsIallVisitKinds-                     _lhsIallchildvisit-                     _lhsIavisitdefs-                     _lhsIavisituses-                     _lhsIchildTypes-                     _lhsIchildintros-                     _lhsIfmtMode-                     _lhsIindex-                     _lhsIkind-                     _lhsImrules-                     _lhsIoptions-                     _lhsIprevMaxSimRefs-                     _lhsIruledefs-                     _lhsIruleuses-                     _lhsIuseParallel ->-                       (let _lhsOsize :: Int-                            _lhsOisLast :: Bool-                            _lhsOdefs :: (Set String)-                            _lhsOerrors :: (Seq Error)-                            _lhsOlazyIntras :: (Set String)-                            _lhsOruleKinds :: (Map Identifier (Set VisitKind))-                            _lhsOruleUsage :: (Map Identifier Int)-                            _lhsOsem_steps :: PP_Doc-                            _lhsOsync_steps :: PP_Doc-                            _lhsOuses :: (Map String (Maybe NonLocalAttr))-                            _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)-                            _lhsOindex :: Int-                            _lhsOprevMaxSimRefs :: Int-                            -- "src-ag/ExecutionPlan2Hs.ag"(line 850, column 10)-                            _lhsOsize =-                                ({-# LINE 850 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 0-                                 {-# LINE 8848 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- "src-ag/ExecutionPlan2Hs.ag"(line 876, column 11)-                            _lhsOisLast =-                                ({-# LINE 876 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 True-                                 {-# LINE 8854 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1339, column 38)-                            _lhsOdefs =-                                ({-# LINE 1339 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 Set.empty-                                 {-# LINE 8860 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)-                            _lhsOerrors =-                                ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 Seq.empty-                                 {-# LINE 8866 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1355, column 57)-                            _lhsOlazyIntras =-                                ({-# LINE 1355 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 Set.empty-                                 {-# LINE 8872 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)-                            _lhsOruleKinds =-                                ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 Map.empty-                                 {-# LINE 8878 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)-                            _lhsOruleUsage =-                                ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 Map.empty-                                 {-# LINE 8884 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 777, column 43)-                            _lhsOsem_steps =-                                ({-# LINE 777 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 empty-                                 {-# LINE 8890 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 810, column 44)-                            _lhsOsync_steps =-                                ({-# LINE 810 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 empty-                                 {-# LINE 8896 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1340, column 38)-                            _lhsOuses =-                                ({-# LINE 1340 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 Map.empty-                                 {-# LINE 8902 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)-                            _lhsOvisitKinds =-                                ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 mempty-                                 {-# LINE 8908 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (chain)-                            _lhsOindex =-                                ({-# LINE 854 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIindex-                                 {-# LINE 8914 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                            -- copy rule (chain)-                            _lhsOprevMaxSimRefs =-                                ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}-                                 _lhsIprevMaxSimRefs-                                 {-# LINE 8920 "dist/build/ExecutionPlan2Hs" #-}-                                 )-                        in  ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsize,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds))))--- Visits -------------------------------------------------------{--   visit 0:-      inherited attributes:-         allFromToStates      : Map VisitIdentifier (Int,Int)-         allInhmap            : Map NontermIdent Attributes-         allInitStates        : Map NontermIdent Int-         allSynmap            : Map NontermIdent Attributes-         allVisitKinds        : Map VisitIdentifier VisitKind-         allchildvisit        : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))-         allintramap          : Map StateIdentifier (Map String (Maybe NonLocalAttr))-         avisitdefs           : Map VisitIdentifier (Set Identifier)-         avisituses           : Map VisitIdentifier (Set Identifier)-         childTypes           : Map Identifier Type-         childintros          : Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))-         con                  : ConstructorIdent-         inhmap               : Attributes-         mrules               : Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)-         nextVisits           : Map StateIdentifier StateCtx-         nt                   : NontermIdent-         options              : Options-         params               : [Identifier]-         prevVisits           : Map StateIdentifier StateCtx-         ruledefs             : Map Identifier (Set String)-         ruleuses             : Map Identifier (Map String (Maybe NonLocalAttr))-         synmap               : Attributes-         terminaldefs         : Set String-      synthesized attributes:-         allvisits            : [VisitStateState]-         childvisit           : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))-         errors               : Seq Error-         fromToStates         : Map VisitIdentifier (Int,Int)-         intramap             : Map StateIdentifier (Map String (Maybe NonLocalAttr))-         lazyIntras           : Set String-         ruleKinds            : Map Identifier (Set VisitKind)-         ruleUsage            : Map Identifier Int-         sem_visit            :  [(StateIdentifier,Bool -> PP_Doc)] -         t_visits             : PP_Doc-         visitKinds           : Map VisitIdentifier VisitKind-         visitdefs            : Map VisitIdentifier (Set Identifier)-         visituses            : Map VisitIdentifier (Set Identifier)-   alternatives:-      alternative Cons:-         child hd             : Visit -         child tl             : Visits -      alternative Nil:--}--- cata-sem_Visits :: Visits ->-              T_Visits-sem_Visits list =-    (Prelude.foldr sem_Visits_Cons sem_Visits_Nil (Prelude.map sem_Visit list))--- semantic domain-newtype T_Visits = T_Visits ((Map VisitIdentifier (Int,Int)) ->-                             (Map NontermIdent Attributes) ->-                             (Map NontermIdent Int) ->-                             (Map NontermIdent Attributes) ->-                             (Map VisitIdentifier VisitKind) ->-                             (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))) ->-                             (Map StateIdentifier (Map String (Maybe NonLocalAttr))) ->-                             (Map VisitIdentifier (Set Identifier)) ->-                             (Map VisitIdentifier (Set Identifier)) ->-                             (Map Identifier Type) ->-                             (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) ->-                             ConstructorIdent ->-                             Attributes ->-                             (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)) ->-                             (Map StateIdentifier StateCtx) ->-                             NontermIdent ->-                             Options ->-                             ([Identifier]) ->-                             (Map StateIdentifier StateCtx) ->-                             (Map Identifier (Set String)) ->-                             (Map Identifier (Map String (Maybe NonLocalAttr))) ->-                             Attributes ->-                             (Set String) ->-                             ( ([VisitStateState]),(Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),(Seq Error),(Map VisitIdentifier (Int,Int)),(Map StateIdentifier (Map String (Maybe NonLocalAttr))),(Set String),(Map Identifier (Set VisitKind)),(Map Identifier Int),( [(StateIdentifier,Bool -> PP_Doc)] ),PP_Doc,(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier))))-data Inh_Visits = Inh_Visits {allFromToStates_Inh_Visits :: (Map VisitIdentifier (Int,Int)),allInhmap_Inh_Visits :: (Map NontermIdent Attributes),allInitStates_Inh_Visits :: (Map NontermIdent Int),allSynmap_Inh_Visits :: (Map NontermIdent Attributes),allVisitKinds_Inh_Visits :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_Visits :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),allintramap_Inh_Visits :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))),avisitdefs_Inh_Visits :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_Visits :: (Map VisitIdentifier (Set Identifier)),childTypes_Inh_Visits :: (Map Identifier Type),childintros_Inh_Visits :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),con_Inh_Visits :: ConstructorIdent,inhmap_Inh_Visits :: Attributes,mrules_Inh_Visits :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)),nextVisits_Inh_Visits :: (Map StateIdentifier StateCtx),nt_Inh_Visits :: NontermIdent,options_Inh_Visits :: Options,params_Inh_Visits :: ([Identifier]),prevVisits_Inh_Visits :: (Map StateIdentifier StateCtx),ruledefs_Inh_Visits :: (Map Identifier (Set String)),ruleuses_Inh_Visits :: (Map Identifier (Map String (Maybe NonLocalAttr))),synmap_Inh_Visits :: Attributes,terminaldefs_Inh_Visits :: (Set String)}-data Syn_Visits = Syn_Visits {allvisits_Syn_Visits :: ([VisitStateState]),childvisit_Syn_Visits :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),errors_Syn_Visits :: (Seq Error),fromToStates_Syn_Visits :: (Map VisitIdentifier (Int,Int)),intramap_Syn_Visits :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))),lazyIntras_Syn_Visits :: (Set String),ruleKinds_Syn_Visits :: (Map Identifier (Set VisitKind)),ruleUsage_Syn_Visits :: (Map Identifier Int),sem_visit_Syn_Visits :: ( [(StateIdentifier,Bool -> PP_Doc)] ),t_visits_Syn_Visits :: PP_Doc,visitKinds_Syn_Visits :: (Map VisitIdentifier VisitKind),visitdefs_Syn_Visits :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_Visits :: (Map VisitIdentifier (Set Identifier))}-wrap_Visits :: T_Visits ->-               Inh_Visits ->-               Syn_Visits-wrap_Visits (T_Visits sem) (Inh_Visits _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIcon _lhsIinhmap _lhsImrules _lhsInextVisits _lhsInt _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs) =-    (let ( _lhsOallvisits,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOintramap,_lhsOlazyIntras,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_visit,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIcon _lhsIinhmap _lhsImrules _lhsInextVisits _lhsInt _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs-     in  (Syn_Visits _lhsOallvisits _lhsOchildvisit _lhsOerrors _lhsOfromToStates _lhsOintramap _lhsOlazyIntras _lhsOruleKinds _lhsOruleUsage _lhsOsem_visit _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses))-sem_Visits_Cons :: T_Visit ->-                   T_Visits ->-                   T_Visits-sem_Visits_Cons (T_Visit hd_) (T_Visits tl_) =-    (T_Visits (\ _lhsIallFromToStates-                 _lhsIallInhmap-                 _lhsIallInitStates-                 _lhsIallSynmap-                 _lhsIallVisitKinds-                 _lhsIallchildvisit-                 _lhsIallintramap-                 _lhsIavisitdefs-                 _lhsIavisituses-                 _lhsIchildTypes-                 _lhsIchildintros-                 _lhsIcon-                 _lhsIinhmap-                 _lhsImrules-                 _lhsInextVisits-                 _lhsInt-                 _lhsIoptions-                 _lhsIparams-                 _lhsIprevVisits-                 _lhsIruledefs-                 _lhsIruleuses-                 _lhsIsynmap-                 _lhsIterminaldefs ->-                   (let _lhsOallvisits :: ([VisitStateState])-                        _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                        _lhsOerrors :: (Seq Error)-                        _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))-                        _lhsOintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))-                        _lhsOlazyIntras :: (Set String)-                        _lhsOruleKinds :: (Map Identifier (Set VisitKind))-                        _lhsOruleUsage :: (Map Identifier Int)-                        _lhsOsem_visit :: ( [(StateIdentifier,Bool -> PP_Doc)] )-                        _lhsOt_visits :: PP_Doc-                        _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)-                        _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))-                        _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))-                        _hdOallFromToStates :: (Map VisitIdentifier (Int,Int))-                        _hdOallInhmap :: (Map NontermIdent Attributes)-                        _hdOallInitStates :: (Map NontermIdent Int)-                        _hdOallSynmap :: (Map NontermIdent Attributes)-                        _hdOallVisitKinds :: (Map VisitIdentifier VisitKind)-                        _hdOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                        _hdOallintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))-                        _hdOavisitdefs :: (Map VisitIdentifier (Set Identifier))-                        _hdOavisituses :: (Map VisitIdentifier (Set Identifier))-                        _hdOchildTypes :: (Map Identifier Type)-                        _hdOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))-                        _hdOcon :: ConstructorIdent-                        _hdOinhmap :: Attributes-                        _hdOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))-                        _hdOnextVisits :: (Map StateIdentifier StateCtx)-                        _hdOnt :: NontermIdent-                        _hdOoptions :: Options-                        _hdOparams :: ([Identifier])-                        _hdOprevVisits :: (Map StateIdentifier StateCtx)-                        _hdOruledefs :: (Map Identifier (Set String))-                        _hdOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))-                        _hdOsynmap :: Attributes-                        _hdOterminaldefs :: (Set String)-                        _tlOallFromToStates :: (Map VisitIdentifier (Int,Int))-                        _tlOallInhmap :: (Map NontermIdent Attributes)-                        _tlOallInitStates :: (Map NontermIdent Int)-                        _tlOallSynmap :: (Map NontermIdent Attributes)-                        _tlOallVisitKinds :: (Map VisitIdentifier VisitKind)-                        _tlOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                        _tlOallintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))-                        _tlOavisitdefs :: (Map VisitIdentifier (Set Identifier))-                        _tlOavisituses :: (Map VisitIdentifier (Set Identifier))-                        _tlOchildTypes :: (Map Identifier Type)-                        _tlOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))-                        _tlOcon :: ConstructorIdent-                        _tlOinhmap :: Attributes-                        _tlOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))-                        _tlOnextVisits :: (Map StateIdentifier StateCtx)-                        _tlOnt :: NontermIdent-                        _tlOoptions :: Options-                        _tlOparams :: ([Identifier])-                        _tlOprevVisits :: (Map StateIdentifier StateCtx)-                        _tlOruledefs :: (Map Identifier (Set String))-                        _tlOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))-                        _tlOsynmap :: Attributes-                        _tlOterminaldefs :: (Set String)-                        _hdIallvisits :: ( VisitStateState )-                        _hdIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                        _hdIerrors :: (Seq Error)-                        _hdIfromToStates :: (Map VisitIdentifier (Int,Int))-                        _hdIintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))-                        _hdIlazyIntras :: (Set String)-                        _hdIruleKinds :: (Map Identifier (Set VisitKind))-                        _hdIruleUsage :: (Map Identifier Int)-                        _hdIsem_visit :: (  (StateIdentifier,Bool -> PP_Doc)  )-                        _hdIt_visits :: PP_Doc-                        _hdIvisitKinds :: (Map VisitIdentifier VisitKind)-                        _hdIvisitdefs :: (Map VisitIdentifier (Set Identifier))-                        _hdIvisituses :: (Map VisitIdentifier (Set Identifier))-                        _tlIallvisits :: ([VisitStateState])-                        _tlIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                        _tlIerrors :: (Seq Error)-                        _tlIfromToStates :: (Map VisitIdentifier (Int,Int))-                        _tlIintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))-                        _tlIlazyIntras :: (Set String)-                        _tlIruleKinds :: (Map Identifier (Set VisitKind))-                        _tlIruleUsage :: (Map Identifier Int)-                        _tlIsem_visit :: ( [(StateIdentifier,Bool -> PP_Doc)] )-                        _tlIt_visits :: PP_Doc-                        _tlIvisitKinds :: (Map VisitIdentifier VisitKind)-                        _tlIvisitdefs :: (Map VisitIdentifier (Set Identifier))-                        _tlIvisituses :: (Map VisitIdentifier (Set Identifier))-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 336, column 29)-                        _lhsOallvisits =-                            ({-# LINE 336 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdIallvisits : _tlIallvisits-                             {-# LINE 9124 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1187, column 37)-                        _lhsOchildvisit =-                            ({-# LINE 1187 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdIchildvisit `Map.union` _tlIchildvisit-                             {-# LINE 9130 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)-                        _lhsOerrors =-                            ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdIerrors Seq.>< _tlIerrors-                             {-# LINE 9136 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1544, column 22)-                        _lhsOfromToStates =-                            ({-# LINE 1544 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdIfromToStates `mappend` _tlIfromToStates-                             {-# LINE 9142 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1281, column 34)-                        _lhsOintramap =-                            ({-# LINE 1281 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdIintramap `uwMapUnion` _tlIintramap-                             {-# LINE 9148 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1355, column 57)-                        _lhsOlazyIntras =-                            ({-# LINE 1355 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdIlazyIntras `Set.union` _tlIlazyIntras-                             {-# LINE 9154 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)-                        _lhsOruleKinds =-                            ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdIruleKinds `unionWithMappend` _tlIruleKinds-                             {-# LINE 9160 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)-                        _lhsOruleUsage =-                            ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdIruleUsage `unionWithSum` _tlIruleUsage-                             {-# LINE 9166 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 706, column 29)-                        _lhsOsem_visit =-                            ({-# LINE 706 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdIsem_visit : _tlIsem_visit-                             {-# LINE 9172 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 394, column 59)-                        _lhsOt_visits =-                            ({-# LINE 394 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdIt_visits >-< _tlIt_visits-                             {-# LINE 9178 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)-                        _lhsOvisitKinds =-                            ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdIvisitKinds `mappend` _tlIvisitKinds-                             {-# LINE 9184 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1322, column 36)-                        _lhsOvisitdefs =-                            ({-# LINE 1322 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdIvisitdefs `uwSetUnion` _tlIvisitdefs-                             {-# LINE 9190 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1323, column 36)-                        _lhsOvisituses =-                            ({-# LINE 1323 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _hdIvisituses `uwSetUnion` _tlIvisituses-                             {-# LINE 9196 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOallFromToStates =-                            ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallFromToStates-                             {-# LINE 9202 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOallInhmap =-                            ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallInhmap-                             {-# LINE 9208 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOallInitStates =-                            ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallInitStates-                             {-# LINE 9214 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOallSynmap =-                            ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallSynmap-                             {-# LINE 9220 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOallVisitKinds =-                            ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallVisitKinds-                             {-# LINE 9226 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOallchildvisit =-                            ({-# LINE 1186 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallchildvisit-                             {-# LINE 9232 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOallintramap =-                            ({-# LINE 1280 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallintramap-                             {-# LINE 9238 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOavisitdefs =-                            ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIavisitdefs-                             {-# LINE 9244 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOavisituses =-                            ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIavisituses-                             {-# LINE 9250 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOchildTypes =-                            ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIchildTypes-                             {-# LINE 9256 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOchildintros =-                            ({-# LINE 893 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIchildintros-                             {-# LINE 9262 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOcon =-                            ({-# LINE 66 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIcon-                             {-# LINE 9268 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOinhmap =-                            ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIinhmap-                             {-# LINE 9274 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOmrules =-                            ({-# LINE 776 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsImrules-                             {-# LINE 9280 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOnextVisits =-                            ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsInextVisits-                             {-# LINE 9286 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOnt =-                            ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsInt-                             {-# LINE 9292 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOoptions =-                            ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIoptions-                             {-# LINE 9298 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOparams =-                            ({-# LINE 73 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIparams-                             {-# LINE 9304 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOprevVisits =-                            ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIprevVisits-                             {-# LINE 9310 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOruledefs =-                            ({-# LINE 1307 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIruledefs-                             {-# LINE 9316 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOruleuses =-                            ({-# LINE 1308 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIruleuses-                             {-# LINE 9322 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOsynmap =-                            ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIsynmap-                             {-# LINE 9328 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _hdOterminaldefs =-                            ({-# LINE 1283 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIterminaldefs-                             {-# LINE 9334 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOallFromToStates =-                            ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallFromToStates-                             {-# LINE 9340 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOallInhmap =-                            ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallInhmap-                             {-# LINE 9346 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOallInitStates =-                            ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallInitStates-                             {-# LINE 9352 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOallSynmap =-                            ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallSynmap-                             {-# LINE 9358 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOallVisitKinds =-                            ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallVisitKinds-                             {-# LINE 9364 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOallchildvisit =-                            ({-# LINE 1186 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallchildvisit-                             {-# LINE 9370 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOallintramap =-                            ({-# LINE 1280 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIallintramap-                             {-# LINE 9376 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOavisitdefs =-                            ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIavisitdefs-                             {-# LINE 9382 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOavisituses =-                            ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIavisituses-                             {-# LINE 9388 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOchildTypes =-                            ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIchildTypes-                             {-# LINE 9394 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOchildintros =-                            ({-# LINE 893 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIchildintros-                             {-# LINE 9400 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOcon =-                            ({-# LINE 66 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIcon-                             {-# LINE 9406 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOinhmap =-                            ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIinhmap-                             {-# LINE 9412 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOmrules =-                            ({-# LINE 776 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsImrules-                             {-# LINE 9418 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOnextVisits =-                            ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsInextVisits-                             {-# LINE 9424 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOnt =-                            ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsInt-                             {-# LINE 9430 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOoptions =-                            ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIoptions-                             {-# LINE 9436 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOparams =-                            ({-# LINE 73 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIparams-                             {-# LINE 9442 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOprevVisits =-                            ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIprevVisits-                             {-# LINE 9448 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOruledefs =-                            ({-# LINE 1307 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIruledefs-                             {-# LINE 9454 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOruleuses =-                            ({-# LINE 1308 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIruleuses-                             {-# LINE 9460 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOsynmap =-                            ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIsynmap-                             {-# LINE 9466 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- copy rule (down)-                        _tlOterminaldefs =-                            ({-# LINE 1283 "src-ag/ExecutionPlan2Hs.ag" #-}-                             _lhsIterminaldefs-                             {-# LINE 9472 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        ( _hdIallvisits,_hdIchildvisit,_hdIerrors,_hdIfromToStates,_hdIintramap,_hdIlazyIntras,_hdIruleKinds,_hdIruleUsage,_hdIsem_visit,_hdIt_visits,_hdIvisitKinds,_hdIvisitdefs,_hdIvisituses) =-                            hd_ _hdOallFromToStates _hdOallInhmap _hdOallInitStates _hdOallSynmap _hdOallVisitKinds _hdOallchildvisit _hdOallintramap _hdOavisitdefs _hdOavisituses _hdOchildTypes _hdOchildintros _hdOcon _hdOinhmap _hdOmrules _hdOnextVisits _hdOnt _hdOoptions _hdOparams _hdOprevVisits _hdOruledefs _hdOruleuses _hdOsynmap _hdOterminaldefs-                        ( _tlIallvisits,_tlIchildvisit,_tlIerrors,_tlIfromToStates,_tlIintramap,_tlIlazyIntras,_tlIruleKinds,_tlIruleUsage,_tlIsem_visit,_tlIt_visits,_tlIvisitKinds,_tlIvisitdefs,_tlIvisituses) =-                            tl_ _tlOallFromToStates _tlOallInhmap _tlOallInitStates _tlOallSynmap _tlOallVisitKinds _tlOallchildvisit _tlOallintramap _tlOavisitdefs _tlOavisituses _tlOchildTypes _tlOchildintros _tlOcon _tlOinhmap _tlOmrules _tlOnextVisits _tlOnt _tlOoptions _tlOparams _tlOprevVisits _tlOruledefs _tlOruleuses _tlOsynmap _tlOterminaldefs-                    in  ( _lhsOallvisits,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOintramap,_lhsOlazyIntras,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_visit,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))-sem_Visits_Nil :: T_Visits-sem_Visits_Nil =-    (T_Visits (\ _lhsIallFromToStates-                 _lhsIallInhmap-                 _lhsIallInitStates-                 _lhsIallSynmap-                 _lhsIallVisitKinds-                 _lhsIallchildvisit-                 _lhsIallintramap-                 _lhsIavisitdefs-                 _lhsIavisituses-                 _lhsIchildTypes-                 _lhsIchildintros-                 _lhsIcon-                 _lhsIinhmap-                 _lhsImrules-                 _lhsInextVisits-                 _lhsInt-                 _lhsIoptions-                 _lhsIparams-                 _lhsIprevVisits-                 _lhsIruledefs-                 _lhsIruleuses-                 _lhsIsynmap-                 _lhsIterminaldefs ->-                   (let _lhsOallvisits :: ([VisitStateState])-                        _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))-                        _lhsOerrors :: (Seq Error)-                        _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))-                        _lhsOintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))-                        _lhsOlazyIntras :: (Set String)-                        _lhsOruleKinds :: (Map Identifier (Set VisitKind))-                        _lhsOruleUsage :: (Map Identifier Int)-                        _lhsOsem_visit :: ( [(StateIdentifier,Bool -> PP_Doc)] )-                        _lhsOt_visits :: PP_Doc-                        _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)-                        _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))-                        _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 336, column 29)-                        _lhsOallvisits =-                            ({-# LINE 336 "src-ag/ExecutionPlan2Hs.ag" #-}-                             []-                             {-# LINE 9521 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1187, column 37)-                        _lhsOchildvisit =-                            ({-# LINE 1187 "src-ag/ExecutionPlan2Hs.ag" #-}-                             Map.empty-                             {-# LINE 9527 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)-                        _lhsOerrors =-                            ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}-                             Seq.empty-                             {-# LINE 9533 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1544, column 22)-                        _lhsOfromToStates =-                            ({-# LINE 1544 "src-ag/ExecutionPlan2Hs.ag" #-}-                             mempty-                             {-# LINE 9539 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1281, column 34)-                        _lhsOintramap =-                            ({-# LINE 1281 "src-ag/ExecutionPlan2Hs.ag" #-}-                             Map.empty-                             {-# LINE 9545 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1355, column 57)-                        _lhsOlazyIntras =-                            ({-# LINE 1355 "src-ag/ExecutionPlan2Hs.ag" #-}-                             Set.empty-                             {-# LINE 9551 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)-                        _lhsOruleKinds =-                            ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}-                             Map.empty-                             {-# LINE 9557 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)-                        _lhsOruleUsage =-                            ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}-                             Map.empty-                             {-# LINE 9563 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 706, column 29)-                        _lhsOsem_visit =-                            ({-# LINE 706 "src-ag/ExecutionPlan2Hs.ag" #-}-                             []-                             {-# LINE 9569 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 394, column 59)-                        _lhsOt_visits =-                            ({-# LINE 394 "src-ag/ExecutionPlan2Hs.ag" #-}-                             empty-                             {-# LINE 9575 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)-                        _lhsOvisitKinds =-                            ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}-                             mempty-                             {-# LINE 9581 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1322, column 36)-                        _lhsOvisitdefs =-                            ({-# LINE 1322 "src-ag/ExecutionPlan2Hs.ag" #-}-                             Map.empty-                             {-# LINE 9587 "dist/build/ExecutionPlan2Hs" #-}-                             )-                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1323, column 36)-                        _lhsOvisituses =-                            ({-# LINE 1323 "src-ag/ExecutionPlan2Hs.ag" #-}-                             Map.empty-                             {-# LINE 9593 "dist/build/ExecutionPlan2Hs" #-}-                             )+                        ___node =+                            (Syn_EChild _lhsOargnamesw _lhsOargpats _lhsOargtps _lhsOchildTypes _lhsOchildintros _lhsOdatatype _lhsOterminaldefs)+                    in  ( _lhsOargnamesw,_lhsOargpats,_lhsOargtps,_lhsOchildTypes,_lhsOchildintros,_lhsOdatatype,_lhsOterminaldefs))))+sem_EChild_ETerm :: Identifier ->+                    Type ->+                    T_EChild+sem_EChild_ETerm name_ tp_ =+    (T_EChild (\ _lhsIallInitStates+                 _lhsIcon+                 _lhsIimportBlocks+                 _lhsImainFile+                 _lhsImainName+                 _lhsImoduleHeader+                 _lhsInt+                 _lhsIoptions+                 _lhsIpragmaBlocks+                 _lhsItextBlocks ->+                   (let _lhsOdatatype :: PP_Doc+                        _lhsOargnamesw :: ( PP_Doc )+                        _lhsOargtps :: (  PP_Doc  )+                        _lhsOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))+                        _lhsOterminaldefs :: (Set String)+                        _lhsOchildTypes :: (Map Identifier Type)+                        _lhsOargpats :: (  PP_Doc  )+                        -- "src-ag/ExecutionPlan2Hs.ag"(line 204, column 7)+                        _tpDoc =+                            ({-# LINE 204 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _addStrict     $ pp_parens $ ppTp $ removeDeforested tp_+                             {-# LINE 630 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- "src-ag/ExecutionPlan2Hs.ag"(line 205, column 7)+                        _strNm =+                            ({-# LINE 205 "src-ag/ExecutionPlan2Hs.ag" #-}+                             recordFieldname _lhsInt _lhsIcon name_+                             {-# LINE 636 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- "src-ag/ExecutionPlan2Hs.ag"(line 206, column 7)+                        _field =+                            ({-# LINE 206 "src-ag/ExecutionPlan2Hs.ag" #-}+                             if dataRecords _lhsIoptions+                             then _strNm     >#< "::" >#< _tpDoc+                             else _tpDoc+                             {-# LINE 644 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- "src-ag/ExecutionPlan2Hs.ag"(line 209, column 7)+                        _addStrict =+                            ({-# LINE 209 "src-ag/ExecutionPlan2Hs.ag" #-}+                             \x -> if strictData _lhsIoptions then "!" >|< x else x+                             {-# LINE 650 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- "src-ag/ExecutionPlan2Hs.ag"(line 214, column 13)+                        _lhsOdatatype =+                            ({-# LINE 214 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _field+                             {-# LINE 656 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- "src-ag/ExecutionPlan2Hs.ag"(line 305, column 12)+                        _lhsOargnamesw =+                            ({-# LINE 305 "src-ag/ExecutionPlan2Hs.ag" #-}+                             text $ fieldname name_+                             {-# LINE 662 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- "src-ag/ExecutionPlan2Hs.ag"(line 576, column 12)+                        _lhsOargtps =+                            ({-# LINE 576 "src-ag/ExecutionPlan2Hs.ag" #-}+                             (pp_parens $ show tp_) >#< "->"+                             {-# LINE 668 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- "src-ag/ExecutionPlan2Hs.ag"(line 577, column 12)+                        _argpats =+                            ({-# LINE 577 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _addbang     $ text $ fieldname name_+                             {-# LINE 674 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- "src-ag/ExecutionPlan2Hs.ag"(line 899, column 12)+                        _lhsOchildintros =+                            ({-# LINE 899 "src-ag/ExecutionPlan2Hs.ag" #-}+                             Map.singleton name_ (\_ _ -> Right (empty, Set.empty, Map.empty))+                             {-# LINE 680 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- "src-ag/ExecutionPlan2Hs.ag"(line 1287, column 3)+                        _lhsOterminaldefs =+                            ({-# LINE 1287 "src-ag/ExecutionPlan2Hs.ag" #-}+                             Set.singleton $ fieldname name_+                             {-# LINE 686 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- "src-ag/ExecutionPlan2Hs.ag"(line 1519, column 37)+                        _addbang =+                            ({-# LINE 1519 "src-ag/ExecutionPlan2Hs.ag" #-}+                             \x -> if bangpats _lhsIoptions then "!" >|< x else x+                             {-# LINE 692 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- "src-ag/ExecutionPlan2Hs.ag"(line 1570, column 3)+                        _lhsOchildTypes =+                            ({-# LINE 1570 "src-ag/ExecutionPlan2Hs.ag" #-}+                             Map.singleton name_ tp_+                             {-# LINE 698 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (from local)+                        _lhsOargpats =+                            ({-# LINE 563 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _argpats+                             {-# LINE 704 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        ___node =+                            (Syn_EChild _lhsOargnamesw _lhsOargpats _lhsOargtps _lhsOchildTypes _lhsOchildintros _lhsOdatatype _lhsOterminaldefs)+                    in  ( _lhsOargnamesw,_lhsOargpats,_lhsOargtps,_lhsOchildTypes,_lhsOchildintros,_lhsOdatatype,_lhsOterminaldefs))))+-- EChildren ---------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allInitStates        : Map NontermIdent Int+         con                  : ConstructorIdent+         importBlocks         : PP_Doc+         mainFile             : String+         mainName             : String+         moduleHeader         : String -> String -> String -> Bool -> String+         nt                   : NontermIdent+         options              : Options+         pragmaBlocks         : String+         textBlocks           : PP_Doc+      synthesized attributes:+         argnamesw            : [PP_Doc]+         argpats              :  [PP_Doc] +         argtps               :  [PP_Doc] +         childTypes           : Map Identifier Type+         childintros          : Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))+         datatype             : [PP_Doc]+         terminaldefs         : Set String+   alternatives:+      alternative Cons:+         child hd             : EChild +         child tl             : EChildren +      alternative Nil:+-}+-- cata+sem_EChildren :: EChildren ->+                 T_EChildren+sem_EChildren list =+    (Prelude.foldr sem_EChildren_Cons sem_EChildren_Nil (Prelude.map sem_EChild list))+-- semantic domain+newtype T_EChildren = T_EChildren ((Map NontermIdent Int) ->+                                   ConstructorIdent ->+                                   PP_Doc ->+                                   String ->+                                   String ->+                                   (String -> String -> String -> Bool -> String) ->+                                   NontermIdent ->+                                   Options ->+                                   String ->+                                   PP_Doc ->+                                   ( ([PP_Doc]),( [PP_Doc] ),( [PP_Doc] ),(Map Identifier Type),(Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),([PP_Doc]),(Set String)))+data Inh_EChildren = Inh_EChildren {allInitStates_Inh_EChildren :: (Map NontermIdent Int),con_Inh_EChildren :: ConstructorIdent,importBlocks_Inh_EChildren :: PP_Doc,mainFile_Inh_EChildren :: String,mainName_Inh_EChildren :: String,moduleHeader_Inh_EChildren :: (String -> String -> String -> Bool -> String),nt_Inh_EChildren :: NontermIdent,options_Inh_EChildren :: Options,pragmaBlocks_Inh_EChildren :: String,textBlocks_Inh_EChildren :: PP_Doc}+data Syn_EChildren = Syn_EChildren {argnamesw_Syn_EChildren :: ([PP_Doc]),argpats_Syn_EChildren :: ( [PP_Doc] ),argtps_Syn_EChildren :: ( [PP_Doc] ),childTypes_Syn_EChildren :: (Map Identifier Type),childintros_Syn_EChildren :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),datatype_Syn_EChildren :: ([PP_Doc]),terminaldefs_Syn_EChildren :: (Set String)}+wrap_EChildren :: T_EChildren ->+                  Inh_EChildren ->+                  Syn_EChildren+wrap_EChildren (T_EChildren sem) (Inh_EChildren _lhsIallInitStates _lhsIcon _lhsIimportBlocks _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInt _lhsIoptions _lhsIpragmaBlocks _lhsItextBlocks) =+    (let ( _lhsOargnamesw,_lhsOargpats,_lhsOargtps,_lhsOchildTypes,_lhsOchildintros,_lhsOdatatype,_lhsOterminaldefs) = sem _lhsIallInitStates _lhsIcon _lhsIimportBlocks _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInt _lhsIoptions _lhsIpragmaBlocks _lhsItextBlocks+     in  (Syn_EChildren _lhsOargnamesw _lhsOargpats _lhsOargtps _lhsOchildTypes _lhsOchildintros _lhsOdatatype _lhsOterminaldefs))+sem_EChildren_Cons :: T_EChild ->+                      T_EChildren ->+                      T_EChildren+sem_EChildren_Cons (T_EChild hd_) (T_EChildren tl_) =+    (T_EChildren (\ _lhsIallInitStates+                    _lhsIcon+                    _lhsIimportBlocks+                    _lhsImainFile+                    _lhsImainName+                    _lhsImoduleHeader+                    _lhsInt+                    _lhsIoptions+                    _lhsIpragmaBlocks+                    _lhsItextBlocks ->+                      (let _lhsOargnamesw :: ([PP_Doc])+                           _lhsOargpats :: ( [PP_Doc] )+                           _lhsOargtps :: ( [PP_Doc] )+                           _lhsOchildTypes :: (Map Identifier Type)+                           _lhsOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))+                           _lhsOdatatype :: ([PP_Doc])+                           _lhsOterminaldefs :: (Set String)+                           _hdOallInitStates :: (Map NontermIdent Int)+                           _hdOcon :: ConstructorIdent+                           _hdOimportBlocks :: PP_Doc+                           _hdOmainFile :: String+                           _hdOmainName :: String+                           _hdOmoduleHeader :: (String -> String -> String -> Bool -> String)+                           _hdOnt :: NontermIdent+                           _hdOoptions :: Options+                           _hdOpragmaBlocks :: String+                           _hdOtextBlocks :: PP_Doc+                           _tlOallInitStates :: (Map NontermIdent Int)+                           _tlOcon :: ConstructorIdent+                           _tlOimportBlocks :: PP_Doc+                           _tlOmainFile :: String+                           _tlOmainName :: String+                           _tlOmoduleHeader :: (String -> String -> String -> Bool -> String)+                           _tlOnt :: NontermIdent+                           _tlOoptions :: Options+                           _tlOpragmaBlocks :: String+                           _tlOtextBlocks :: PP_Doc+                           _hdIargnamesw :: ( PP_Doc )+                           _hdIargpats :: (  PP_Doc  )+                           _hdIargtps :: (  PP_Doc  )+                           _hdIchildTypes :: (Map Identifier Type)+                           _hdIchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))+                           _hdIdatatype :: PP_Doc+                           _hdIterminaldefs :: (Set String)+                           _tlIargnamesw :: ([PP_Doc])+                           _tlIargpats :: ( [PP_Doc] )+                           _tlIargtps :: ( [PP_Doc] )+                           _tlIchildTypes :: (Map Identifier Type)+                           _tlIchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))+                           _tlIdatatype :: ([PP_Doc])+                           _tlIterminaldefs :: (Set String)+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 298, column 32)+                           _lhsOargnamesw =+                               ({-# LINE 298 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _hdIargnamesw : _tlIargnamesw+                                {-# LINE 821 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 565, column 30)+                           _lhsOargpats =+                               ({-# LINE 565 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _hdIargpats : _tlIargpats+                                {-# LINE 827 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 564, column 30)+                           _lhsOargtps =+                               ({-# LINE 564 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _hdIargtps : _tlIargtps+                                {-# LINE 833 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1563, column 40)+                           _lhsOchildTypes =+                               ({-# LINE 1563 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _hdIchildTypes `mappend` _tlIchildTypes+                                {-# LINE 839 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 890, column 41)+                           _lhsOchildintros =+                               ({-# LINE 890 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _hdIchildintros `Map.union` _tlIchildintros+                                {-# LINE 845 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 199, column 31)+                           _lhsOdatatype =+                               ({-# LINE 199 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _hdIdatatype : _tlIdatatype+                                {-# LINE 851 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1284, column 42)+                           _lhsOterminaldefs =+                               ({-# LINE 1284 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _hdIterminaldefs `Set.union` _tlIterminaldefs+                                {-# LINE 857 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _hdOallInitStates =+                               ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIallInitStates+                                {-# LINE 863 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _hdOcon =+                               ({-# LINE 66 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIcon+                                {-# LINE 869 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _hdOimportBlocks =+                               ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIimportBlocks+                                {-# LINE 875 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _hdOmainFile =+                               ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsImainFile+                                {-# LINE 881 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _hdOmainName =+                               ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsImainName+                                {-# LINE 887 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _hdOmoduleHeader =+                               ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsImoduleHeader+                                {-# LINE 893 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _hdOnt =+                               ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsInt+                                {-# LINE 899 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _hdOoptions =+                               ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIoptions+                                {-# LINE 905 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _hdOpragmaBlocks =+                               ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIpragmaBlocks+                                {-# LINE 911 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _hdOtextBlocks =+                               ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsItextBlocks+                                {-# LINE 917 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _tlOallInitStates =+                               ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIallInitStates+                                {-# LINE 923 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _tlOcon =+                               ({-# LINE 66 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIcon+                                {-# LINE 929 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _tlOimportBlocks =+                               ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIimportBlocks+                                {-# LINE 935 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _tlOmainFile =+                               ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsImainFile+                                {-# LINE 941 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _tlOmainName =+                               ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsImainName+                                {-# LINE 947 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _tlOmoduleHeader =+                               ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsImoduleHeader+                                {-# LINE 953 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _tlOnt =+                               ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsInt+                                {-# LINE 959 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _tlOoptions =+                               ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIoptions+                                {-# LINE 965 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _tlOpragmaBlocks =+                               ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIpragmaBlocks+                                {-# LINE 971 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _tlOtextBlocks =+                               ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsItextBlocks+                                {-# LINE 977 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           ( _hdIargnamesw,_hdIargpats,_hdIargtps,_hdIchildTypes,_hdIchildintros,_hdIdatatype,_hdIterminaldefs) =+                               hd_ _hdOallInitStates _hdOcon _hdOimportBlocks _hdOmainFile _hdOmainName _hdOmoduleHeader _hdOnt _hdOoptions _hdOpragmaBlocks _hdOtextBlocks+                           ( _tlIargnamesw,_tlIargpats,_tlIargtps,_tlIchildTypes,_tlIchildintros,_tlIdatatype,_tlIterminaldefs) =+                               tl_ _tlOallInitStates _tlOcon _tlOimportBlocks _tlOmainFile _tlOmainName _tlOmoduleHeader _tlOnt _tlOoptions _tlOpragmaBlocks _tlOtextBlocks+                           ___node =+                               (Syn_EChildren _lhsOargnamesw _lhsOargpats _lhsOargtps _lhsOchildTypes _lhsOchildintros _lhsOdatatype _lhsOterminaldefs)+                       in  ( _lhsOargnamesw,_lhsOargpats,_lhsOargtps,_lhsOchildTypes,_lhsOchildintros,_lhsOdatatype,_lhsOterminaldefs))))+sem_EChildren_Nil :: T_EChildren+sem_EChildren_Nil =+    (T_EChildren (\ _lhsIallInitStates+                    _lhsIcon+                    _lhsIimportBlocks+                    _lhsImainFile+                    _lhsImainName+                    _lhsImoduleHeader+                    _lhsInt+                    _lhsIoptions+                    _lhsIpragmaBlocks+                    _lhsItextBlocks ->+                      (let _lhsOargnamesw :: ([PP_Doc])+                           _lhsOargpats :: ( [PP_Doc] )+                           _lhsOargtps :: ( [PP_Doc] )+                           _lhsOchildTypes :: (Map Identifier Type)+                           _lhsOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))+                           _lhsOdatatype :: ([PP_Doc])+                           _lhsOterminaldefs :: (Set String)+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 298, column 32)+                           _lhsOargnamesw =+                               ({-# LINE 298 "src-ag/ExecutionPlan2Hs.ag" #-}+                                []+                                {-# LINE 1009 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 565, column 30)+                           _lhsOargpats =+                               ({-# LINE 565 "src-ag/ExecutionPlan2Hs.ag" #-}+                                []+                                {-# LINE 1015 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 564, column 30)+                           _lhsOargtps =+                               ({-# LINE 564 "src-ag/ExecutionPlan2Hs.ag" #-}+                                []+                                {-# LINE 1021 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1563, column 40)+                           _lhsOchildTypes =+                               ({-# LINE 1563 "src-ag/ExecutionPlan2Hs.ag" #-}+                                mempty+                                {-# LINE 1027 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 890, column 41)+                           _lhsOchildintros =+                               ({-# LINE 890 "src-ag/ExecutionPlan2Hs.ag" #-}+                                Map.empty+                                {-# LINE 1033 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 199, column 31)+                           _lhsOdatatype =+                               ({-# LINE 199 "src-ag/ExecutionPlan2Hs.ag" #-}+                                []+                                {-# LINE 1039 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1284, column 42)+                           _lhsOterminaldefs =+                               ({-# LINE 1284 "src-ag/ExecutionPlan2Hs.ag" #-}+                                Set.empty+                                {-# LINE 1045 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           ___node =+                               (Syn_EChildren _lhsOargnamesw _lhsOargpats _lhsOargtps _lhsOchildTypes _lhsOchildintros _lhsOdatatype _lhsOterminaldefs)+                       in  ( _lhsOargnamesw,_lhsOargpats,_lhsOargtps,_lhsOchildTypes,_lhsOchildintros,_lhsOdatatype,_lhsOterminaldefs))))+-- ENonterminal ------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allFromToStates      : Map VisitIdentifier (Int,Int)+         allInitStates        : Map NontermIdent Int+         allVisitKinds        : Map VisitIdentifier VisitKind+         allchildvisit        : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))+         avisitdefs           : Map VisitIdentifier (Set Identifier)+         avisituses           : Map VisitIdentifier (Set Identifier)+         derivings            : Derivings+         importBlocks         : PP_Doc+         inhmap               : Map NontermIdent Attributes+         localAttrTypes       : Map NontermIdent (Map ConstructorIdent (Map Identifier Type))+         mainFile             : String+         mainName             : String+         moduleHeader         : String -> String -> String -> Bool -> String+         options              : Options+         pragmaBlocks         : String+         synmap               : Map NontermIdent Attributes+         textBlocks           : PP_Doc+         typeSyns             : TypeSyns+         wrappers             : Set NontermIdent+      synthesized attributes:+         appendCommon         :  PP_Doc +         appendMain           :  PP_Doc +         childvisit           : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))+         errors               : Seq Error+         fromToStates         : Map VisitIdentifier (Int,Int)+         genProdIO            : IO ()+         imports              : [PP_Doc]+         initStates           : Map NontermIdent Int+         output               : PP_Doc+         semFunBndDefs        : Seq PP_Doc+         semFunBndTps         : Seq PP_Doc+         visitKinds           : Map VisitIdentifier VisitKind+         visitdefs            : Map VisitIdentifier (Set Identifier)+         visituses            : Map VisitIdentifier (Set Identifier)+   alternatives:+      alternative ENonterminal:+         child nt             : {NontermIdent}+         child params         : {[Identifier]}+         child classCtxs      : {ClassContext}+         child initial        : {StateIdentifier}+         child initialv       : {Maybe VisitIdentifier}+         child nextVisits     : {Map StateIdentifier StateCtx}+         child prevVisits     : {Map StateIdentifier StateCtx}+         child prods          : EProductions +         child recursive      : {Bool}+         child hoInfo         : {HigherOrderInfo}+         visit 0:+            local hasWrapper  : _+            local classPP     : _+            local aliasPre    : _+            local datatype    : _+            local derivings   : _+            local fsemname    : _+            local semname     : _+            local frecarg     : _+            local sem_tp      : _+            local quantPP     : _+            local sem_nt      : _+            local inlineNt    : _+            local semPragma   : _+            local outedges    : _+            local inedges     : _+            local allstates   : _+            local stvisits    : _+            local t_type      : _+            local t_params    : _+            local t_init      : _+            local t_states    : _+            local k_type      : _+            local k_states    : _+            local wr_inh      : _+            local wr_syn      : _+            local genwrap     : _+            local synAttrs    : _+            local wr_inhs     : _+            local wr_inhs1    : _+            local wr_filter   : _+            local wr_syns     : _+            local inhlist     : _+            local inhlist1    : _+            local synlist     : _+            local wrapname    : _+            local inhname     : _+            local synname     : _+            local firstVisitInfo : _+            local wrapper     : _+            local wrapPragma  : _+            local semFunBndDef : _+            local semFunBndTp : _+            local semFunBndNm : _+            local addbang     : _+            local addbangWrap : _+            local ntType      : _+-}+-- cata+sem_ENonterminal :: ENonterminal ->+                    T_ENonterminal+sem_ENonterminal (ENonterminal _nt _params _classCtxs _initial _initialv _nextVisits _prevVisits _prods _recursive _hoInfo) =+    (sem_ENonterminal_ENonterminal _nt _params _classCtxs _initial _initialv _nextVisits _prevVisits (sem_EProductions _prods) _recursive _hoInfo)+-- semantic domain+newtype T_ENonterminal = T_ENonterminal ((Map VisitIdentifier (Int,Int)) ->+                                         (Map NontermIdent Int) ->+                                         (Map VisitIdentifier VisitKind) ->+                                         (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))) ->+                                         (Map VisitIdentifier (Set Identifier)) ->+                                         (Map VisitIdentifier (Set Identifier)) ->+                                         Derivings ->+                                         PP_Doc ->+                                         (Map NontermIdent Attributes) ->+                                         (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))) ->+                                         String ->+                                         String ->+                                         (String -> String -> String -> Bool -> String) ->+                                         Options ->+                                         String ->+                                         (Map NontermIdent Attributes) ->+                                         PP_Doc ->+                                         TypeSyns ->+                                         (Set NontermIdent) ->+                                         ( ( PP_Doc ),( PP_Doc ),(Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),(Seq Error),(Map VisitIdentifier (Int,Int)),(IO ()),([PP_Doc]),(Map NontermIdent Int),PP_Doc,(Seq PP_Doc),(Seq PP_Doc),(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier))))+data Inh_ENonterminal = Inh_ENonterminal {allFromToStates_Inh_ENonterminal :: (Map VisitIdentifier (Int,Int)),allInitStates_Inh_ENonterminal :: (Map NontermIdent Int),allVisitKinds_Inh_ENonterminal :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_ENonterminal :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),avisitdefs_Inh_ENonterminal :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_ENonterminal :: (Map VisitIdentifier (Set Identifier)),derivings_Inh_ENonterminal :: Derivings,importBlocks_Inh_ENonterminal :: PP_Doc,inhmap_Inh_ENonterminal :: (Map NontermIdent Attributes),localAttrTypes_Inh_ENonterminal :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))),mainFile_Inh_ENonterminal :: String,mainName_Inh_ENonterminal :: String,moduleHeader_Inh_ENonterminal :: (String -> String -> String -> Bool -> String),options_Inh_ENonterminal :: Options,pragmaBlocks_Inh_ENonterminal :: String,synmap_Inh_ENonterminal :: (Map NontermIdent Attributes),textBlocks_Inh_ENonterminal :: PP_Doc,typeSyns_Inh_ENonterminal :: TypeSyns,wrappers_Inh_ENonterminal :: (Set NontermIdent)}+data Syn_ENonterminal = Syn_ENonterminal {appendCommon_Syn_ENonterminal :: ( PP_Doc ),appendMain_Syn_ENonterminal :: ( PP_Doc ),childvisit_Syn_ENonterminal :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),errors_Syn_ENonterminal :: (Seq Error),fromToStates_Syn_ENonterminal :: (Map VisitIdentifier (Int,Int)),genProdIO_Syn_ENonterminal :: (IO ()),imports_Syn_ENonterminal :: ([PP_Doc]),initStates_Syn_ENonterminal :: (Map NontermIdent Int),output_Syn_ENonterminal :: PP_Doc,semFunBndDefs_Syn_ENonterminal :: (Seq PP_Doc),semFunBndTps_Syn_ENonterminal :: (Seq PP_Doc),visitKinds_Syn_ENonterminal :: (Map VisitIdentifier VisitKind),visitdefs_Syn_ENonterminal :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_ENonterminal :: (Map VisitIdentifier (Set Identifier))}+wrap_ENonterminal :: T_ENonterminal ->+                     Inh_ENonterminal ->+                     Syn_ENonterminal+wrap_ENonterminal (T_ENonterminal sem) (Inh_ENonterminal _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIderivings _lhsIimportBlocks _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIpragmaBlocks _lhsIsynmap _lhsItextBlocks _lhsItypeSyns _lhsIwrappers) =+    (let ( _lhsOappendCommon,_lhsOappendMain,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOinitStates,_lhsOoutput,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIderivings _lhsIimportBlocks _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIpragmaBlocks _lhsIsynmap _lhsItextBlocks _lhsItypeSyns _lhsIwrappers+     in  (Syn_ENonterminal _lhsOappendCommon _lhsOappendMain _lhsOchildvisit _lhsOerrors _lhsOfromToStates _lhsOgenProdIO _lhsOimports _lhsOinitStates _lhsOoutput _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses))+sem_ENonterminal_ENonterminal :: NontermIdent ->+                                 ([Identifier]) ->+                                 ClassContext ->+                                 StateIdentifier ->+                                 (Maybe VisitIdentifier) ->+                                 (Map StateIdentifier StateCtx) ->+                                 (Map StateIdentifier StateCtx) ->+                                 T_EProductions ->+                                 Bool ->+                                 HigherOrderInfo ->+                                 T_ENonterminal+sem_ENonterminal_ENonterminal nt_ params_ classCtxs_ initial_ initialv_ nextVisits_ prevVisits_ (T_EProductions prods_) recursive_ hoInfo_ =+    (T_ENonterminal (\ _lhsIallFromToStates+                       _lhsIallInitStates+                       _lhsIallVisitKinds+                       _lhsIallchildvisit+                       _lhsIavisitdefs+                       _lhsIavisituses+                       _lhsIderivings+                       _lhsIimportBlocks+                       _lhsIinhmap+                       _lhsIlocalAttrTypes+                       _lhsImainFile+                       _lhsImainName+                       _lhsImoduleHeader+                       _lhsIoptions+                       _lhsIpragmaBlocks+                       _lhsIsynmap+                       _lhsItextBlocks+                       _lhsItypeSyns+                       _lhsIwrappers ->+                         (let _prodsOrename :: Bool+                              _prodsOnt :: NontermIdent+                              _prodsOparams :: ([Identifier])+                              _prodsOclassCtxs :: ClassContext+                              _lhsOoutput :: PP_Doc+                              _prodsOinhmap :: Attributes+                              _prodsOsynmap :: Attributes+                              _prodsOallInhmap :: (Map NontermIdent Attributes)+                              _prodsOallSynmap :: (Map NontermIdent Attributes)+                              _lhsOsemFunBndDefs :: (Seq PP_Doc)+                              _lhsOsemFunBndTps :: (Seq PP_Doc)+                              _prodsOinitial :: StateIdentifier+                              _prodsOallstates :: (Set StateIdentifier)+                              _lhsOappendMain :: ( PP_Doc )+                              _lhsOappendCommon :: ( PP_Doc )+                              _prodsOnextVisits :: (Map StateIdentifier StateCtx)+                              _prodsOprevVisits :: (Map StateIdentifier StateCtx)+                              _prodsOlocalAttrTypes :: (Map ConstructorIdent (Map Identifier Type))+                              _lhsOinitStates :: (Map NontermIdent Int)+                              _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                              _lhsOerrors :: (Seq Error)+                              _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))+                              _lhsOgenProdIO :: (IO ())+                              _lhsOimports :: ([PP_Doc])+                              _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)+                              _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))+                              _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))+                              _prodsOallFromToStates :: (Map VisitIdentifier (Int,Int))+                              _prodsOallInitStates :: (Map NontermIdent Int)+                              _prodsOallVisitKinds :: (Map VisitIdentifier VisitKind)+                              _prodsOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                              _prodsOavisitdefs :: (Map VisitIdentifier (Set Identifier))+                              _prodsOavisituses :: (Map VisitIdentifier (Set Identifier))+                              _prodsOimportBlocks :: PP_Doc+                              _prodsOmainFile :: String+                              _prodsOmainName :: String+                              _prodsOmoduleHeader :: (String -> String -> String -> Bool -> String)+                              _prodsOntType :: Type+                              _prodsOoptions :: Options+                              _prodsOpragmaBlocks :: String+                              _prodsOtextBlocks :: PP_Doc+                              _prodsIallvisits :: ([VisitStateState])+                              _prodsIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                              _prodsIcount :: Int+                              _prodsIdatatype :: ([PP_Doc])+                              _prodsIerrors :: (Seq Error)+                              _prodsIfromToStates :: (Map VisitIdentifier (Int,Int))+                              _prodsIgenProdIO :: (IO ())+                              _prodsIimports :: ([PP_Doc])+                              _prodsIsemFunBndDefs :: (Seq PP_Doc)+                              _prodsIsemFunBndTps :: (Seq PP_Doc)+                              _prodsIsem_nt :: PP_Doc+                              _prodsIsem_prod :: PP_Doc+                              _prodsIt_visits :: PP_Doc+                              _prodsIvisitKinds :: (Map VisitIdentifier VisitKind)+                              _prodsIvisitdefs :: (Map VisitIdentifier (Set Identifier))+                              _prodsIvisituses :: (Map VisitIdentifier (Set Identifier))+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 55, column 18)+                              _prodsOrename =+                                  ({-# LINE 55 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   rename _lhsIoptions+                                   {-# LINE 1274 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 63, column 18)+                              _prodsOnt =+                                  ({-# LINE 63 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   nt_+                                   {-# LINE 1280 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 75, column 3)+                              _prodsOparams =+                                  ({-# LINE 75 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   params_+                                   {-# LINE 1286 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 79, column 3)+                              _prodsOclassCtxs =+                                  ({-# LINE 79 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   classCtxs_+                                   {-# LINE 1292 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 96, column 18)+                              _lhsOoutput =+                                  ({-# LINE 96 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   ("-- " ++ getName nt_ ++ " " ++ replicate (60 - length (getName nt_)) '-')+                                   >-< (if dataTypes _lhsIoptions+                                        then "-- data"+                                             >-< _datatype+                                             >-< ""+                                        else empty)+                                   >-< (if _hasWrapper+                                        then "-- wrapper"+                                             >-< _wr_inh+                                             >-< _wr_syn+                                             >-< _wrapper+                                             >-< ""+                                        else empty)+                                   >-< (if   folds _lhsIoptions+                                        then "-- cata"+                                             >-< _sem_nt+                                             >-< ""+                                        else empty)+                                   >-< (if   semfuns _lhsIoptions+                                        then "-- semantic domain"+                                             >-< _t_init+                                             >-< _t_states+                                             >-< _k_states+                                             >-< _prodsIt_visits+                                             >-< _prodsIsem_prod+                                             >-< ""+                                        else empty)+                                   {-# LINE 1324 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 123, column 18)+                              _hasWrapper =+                                  ({-# LINE 123 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   nt_ `Set.member` _lhsIwrappers+                                   {-# LINE 1330 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 136, column 18)+                              _classPP =+                                  ({-# LINE 136 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   ppClasses $ classCtxsToDocs classCtxs_+                                   {-# LINE 1336 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 137, column 18)+                              _aliasPre =+                                  ({-# LINE 137 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   "type" >#< _classPP     >#< nt_ >#< _t_params     >#< "="+                                   {-# LINE 1342 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 138, column 18)+                              _datatype =+                                  ({-# LINE 138 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   case lookup nt_ _lhsItypeSyns of+                                      Nothing -> "data" >#< _classPP     >#< nt_ >#< _t_params+                                                 >-< ( if null _prodsIdatatype+                                                       then empty+                                                       else indent 2 $ vlist $ ( ("=" >#< head _prodsIdatatype)+                                                                               : (map ("|" >#<) $ tail _prodsIdatatype))+                                                     )+                                                 >-< indent 2 _derivings+                                      Just (List t)     -> _aliasPre     >#< "[" >#< show t >#< "]"+                                      Just (Maybe t)    -> _aliasPre     >#< "Maybe" >#< show t+                                      Just (Tuple ts)   -> _aliasPre     >#< pp_parens (ppCommas $ map (show . snd) ts)+                                      Just (Either l r) -> _aliasPre     >#< "Either" >#< show l >#< show r+                                      Just (Map k v)    -> _aliasPre     >#< "Data.Map" >#< pp_parens (show k) >#< show v+                                      Just (IntMap t)   -> _aliasPre     >#< "Data.IntMap.IntMap" >#< show t+                                      Just (OrdSet t)   -> _aliasPre     >#< "Data.Set.Set" >#< show t+                                      Just IntSet       -> _aliasPre     >#< "Data.IntSet.IntSet"+                                   {-# LINE 1363 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 155, column 18)+                              _derivings =+                                  ({-# LINE 155 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   case Map.lookup nt_ _lhsIderivings of+                                      Nothing -> empty+                                      Just s  -> if   Set.null s+                                                 then empty+                                                 else "deriving" >#< (pp_parens $ ppCommas $ map pp $ Set.toList s)+                                   {-# LINE 1373 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 228, column 18)+                              _fsemname =+                                  ({-# LINE 228 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   \x -> "sem_" ++ show x+                                   {-# LINE 1379 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 229, column 18)+                              _semname =+                                  ({-# LINE 229 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _fsemname     nt_+                                   {-# LINE 1385 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 230, column 18)+                              _frecarg =+                                  ({-# LINE 230 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   \t x -> case t of+                                              NT nt _ _ -> pp_parens (_fsemname nt >#< x)+                                              _         -> pp x+                                   {-# LINE 1393 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 236, column 18)+                              _sem_tp =+                                  ({-# LINE 236 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _quantPP     >#< _classPP     >#< nt_ >#< _t_params     >#< "->" >#< _t_type     >#< _t_params+                                   {-# LINE 1399 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 237, column 18)+                              _quantPP =+                                  ({-# LINE 237 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   ppQuants params_+                                   {-# LINE 1405 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 238, column 18)+                              _sem_nt =+                                  ({-# LINE 238 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _semPragma+                                   >-< _semname     >#< "::" >#< _sem_tp+                                   >-< case lookup nt_ _lhsItypeSyns of+                                          Nothing -> _prodsIsem_nt+                                          Just (List t) -> _semname     >#< "list" >#< "=" >#< "Prelude.foldr" >#< _semname     >|< "_Cons"+                                                           >#< _semname     >|< "_Nil"+                                                           >#< case t of+                                                                  NT nt _ _ -> pp_parens ("Prelude.map" >#< _fsemname nt >#< "list")+                                                                  _         -> pp "list"+                                          Just (Maybe t) -> _semname     >#< "Prelude.Nothing" >#< "=" >#< _semname     >|< "_Nothing"+                                                            >-< _semname     >#< pp_parens ("Prelude.Just just") >#< "="+                                                            >#< _semname     >|< "_Just" >#< _frecarg t "just"+                                          Just (Tuple ts) -> _semname     >#< pp_parens (ppCommas $ map fst ts) >#< "="+                                                             >#< _semname     >|< "_Tuple" >#< ppSpaced (map (\t -> _frecarg (snd t) (show $ fst t)) ts)+                                          Just (Either l r) -> _semname     >#< "(Prelude.Left left)" >#< "=" >#< _semname     >|< "_Left" >#< _frecarg l "left"+                                                               >-< _semname     >#< "(Prelude.Right right)" >#< "=" >#< _semname     >|< "_Right" >#< _frecarg r "right"+                                          Just (Map k v) -> _semname     >#< "m" >#< "=" >#< "Data.Map.foldrWithKey"+                                                            >#< _semname     >|< "_Entry" >#< _semname     >|< "_Nil"+                                                            >#< case v of+                                                                   NT nt _ _ -> pp_parens ("Data.Map.map" >#< _fsemname nt >#< "m")+                                                                   _         -> pp "m"+                                          Just (IntMap v) -> _semname     >#< "m" >#< "=" >#< "Data.IntMap.foldWithKey"+                                                             >#< _semname     >|< "_Entry" >#< _semname     >|< "_Nil"+                                                             >#< case v of+                                                                    NT nt _ _ -> pp_parens ("Data.IntMap.map" >#< _fsemname nt >#< "m")+                                                                    _         -> pp "m"+                                          Just (OrdSet t) -> _semname     >#< "s" >#< "=" >#< "Prelude.foldr" >#< _semname     >|< "_Entry"+                                                             >#< _semname     >|< "_Nil"+                                                             >#< pp_parens (+                                                                   ( case t of+                                                                       NT nt _ _ -> pp_parens ("Prelude.map" >#< _fsemname nt)+                                                                       _         -> empty+                                                                   ) >#< pp_parens ("Data.IntSet.elems" >#< "s")+                                                                 )+                                          Just IntSet     -> _semname     >#< "s" >#< "=" >#< "Prelude.foldr" >#< _semname     >|< "_Entry"+                                                             >#< _semname     >|< "_Nil"+                                                             >#< pp_parens ("Data.IntSet.elems" >#< "s")+                                   {-# LINE 1447 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 278, column 17)+                              _inlineNt =+                                  ({-# LINE 278 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   not (lateHigherOrderBinding _lhsIoptions) && not recursive_ && (_prodsIcount == 1 || (aggressiveInlinePragmas _lhsIoptions && not _hasWrapper    ))+                                   {-# LINE 1453 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 279, column 17)+                              _semPragma =+                                  ({-# LINE 279 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   if noInlinePragmas _lhsIoptions+                                   then empty+                                   else if _inlineNt+                                        then ppInline _semname+                                        else if helpInlining _lhsIoptions && not (lateHigherOrderBinding _lhsIoptions)+                                             then ppInlinable _semname+                                             else ppNoInline _semname+                                   {-# LINE 1465 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 325, column 19)+                              (Just _prodsOinhmap) =+                                  ({-# LINE 325 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   Map.lookup nt_ _lhsIinhmap+                                   {-# LINE 1471 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 326, column 19)+                              (Just _prodsOsynmap) =+                                  ({-# LINE 326 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   Map.lookup nt_ _lhsIsynmap+                                   {-# LINE 1477 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 327, column 18)+                              _prodsOallInhmap =+                                  ({-# LINE 327 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIinhmap+                                   {-# LINE 1483 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 328, column 18)+                              _prodsOallSynmap =+                                  ({-# LINE 328 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIsynmap+                                   {-# LINE 1489 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 349, column 18)+                              _outedges =+                                  ({-# LINE 349 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   Set.fromList $ map (\(_,f,_) -> f) _prodsIallvisits+                                   {-# LINE 1495 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 350, column 18)+                              _inedges =+                                  ({-# LINE 350 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   Set.fromList $ map (\(_,_,t) -> t) _prodsIallvisits+                                   {-# LINE 1501 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 351, column 18)+                              _allstates =+                                  ({-# LINE 351 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   Set.insert initial_ $ _inedges     `Set.union` _outedges+                                   {-# LINE 1507 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 352, column 18)+                              _stvisits =+                                  ({-# LINE 352 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   \st -> filter (\(v,f,t) -> f == st) _prodsIallvisits+                                   {-# LINE 1513 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 353, column 18)+                              _t_type =+                                  ({-# LINE 353 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   "T_" >|< nt_+                                   {-# LINE 1519 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 354, column 18)+                              _t_params =+                                  ({-# LINE 354 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   ppSpaced params_+                                   {-# LINE 1525 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 355, column 18)+                              _t_init =+                                  ({-# LINE 355 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   "newtype" >#< _t_type     >#< _t_params     >#< "=" >#< _t_type     >#<+                                     pp_braces (+                                       "attach_">|< _t_type     >#< "::"+                                         >#< ppMonadType _lhsIoptions >#< pp_parens (_t_type     >|< "_s" >|< initial_ >#< _t_params    ))+                                   {-# LINE 1534 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 359, column 18)+                              _t_states =+                                  ({-# LINE 359 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   vlist $ map (\st ->+                                      let nt_st = nt_ >|< "_s" >|< st+                                          t_st  = "T_" >|< nt_st+                                          k_st  = "K_" >|< nt_st+                                          c_st  = "C_" >|< nt_st+                                          inv_st  = "inv_" >|< nt_st+                                          nextVisit = Map.findWithDefault ManyVis st nextVisits_+                                      in  case nextVisit of+                                            NoneVis    -> "data" >#< t_st >#< _t_params     >#< "=" >#< c_st+                                            OneVis vId -> "newtype" >#< t_st >#< _t_params     >#< "=" >#< c_st+                                                           >#< (pp_braces $ inv_st >#< "::" >#< pp_parens (conNmTVisit nt_ vId >#< _t_params    ))+                                            ManyVis    -> "data" >#< t_st >#< _t_params     >#< "where" >#< c_st >#< "::"+                                                            >#< (pp_braces $ inv_st >#< "::" >#< "!" >|< pp_parens ("forall t." >#< k_st >#< _t_params     >#< "t" >#< "->" >#< "t"))+                                                            >#< "->" >#< t_st >#< _t_params+                                          ) $ Set.toList _allstates+                                   {-# LINE 1554 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 377, column 18)+                              _k_type =+                                  ({-# LINE 377 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   "K_" ++ show nt_+                                   {-# LINE 1560 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 378, column 18)+                              _k_states =+                                  ({-# LINE 378 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   vlist $ map (\st ->+                                      let nt_st = nt_ >|< "_s" >|< st+                                          k_st  = "K_" >|< nt_st+                                          outg  = filter (\(v,f,t) -> f == st) _prodsIallvisits+                                          visitlist = vlist $ map (\(v,f,t) ->+                                              _k_type     >|< "_v" >|< v >#< "::" >#< k_st >#< _t_params     >#< pp_parens (_t_type     >|< "_v" >|< v >#< _t_params    )+                                               ) outg+                                          nextVisit = Map.findWithDefault ManyVis st nextVisits_+                                          decl = "data" >#< k_st >#< "k" >#< _t_params     >#< "where" >-< indent 3 visitlist+                                      in  case nextVisit of+                                            NoneVis  -> empty+                                            OneVis _ -> empty+                                            ManyVis  -> decl+                                      ) $ Set.toList _allstates+                                   {-# LINE 1579 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 445, column 18)+                              _wr_inh =+                                  ({-# LINE 445 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _genwrap     "Inh" _wr_inhs+                                   {-# LINE 1585 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 446, column 18)+                              _wr_syn =+                                  ({-# LINE 446 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _genwrap     "Syn" _wr_syns+                                   {-# LINE 1591 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 447, column 18)+                              _genwrap =+                                  ({-# LINE 447 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   \nm attr -> "data" >#< nm >|< "_" >|< nt_ >#< _t_params     >#< "=" >#< nm >|< "_" >|< nt_ >#< "{"+                                               >#< (ppCommas $ map (\(i,t) -> i >|< "_" >|< nm >|< "_" >|< nt_ >#< "::"+                                               >#< (_addbang     $ pp_parens $ typeToHaskellString (Just nt_) [] t)) attr) >#< "}"+                                   {-# LINE 1599 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 450, column 18)+                              _synAttrs =+                                  ({-# LINE 450 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   fromJust $ Map.lookup nt_ _lhsIinhmap+                                   {-# LINE 1605 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 451, column 18)+                              _wr_inhs =+                                  ({-# LINE 451 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   Map.toList $ _wr_filter     $ _synAttrs+                                   {-# LINE 1611 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 452, column 18)+                              _wr_inhs1 =+                                  ({-# LINE 452 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   Map.toList _synAttrs+                                   {-# LINE 1617 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 453, column 18)+                              _wr_filter =+                                  ({-# LINE 453 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   if kennedyWarren _lhsIoptions && lateHigherOrderBinding _lhsIoptions+                                   then Map.delete idLateBindingAttr+                                   else id+                                   {-# LINE 1625 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 456, column 18)+                              _wr_syns =+                                  ({-# LINE 456 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   Map.toList $ fromJust $ Map.lookup nt_ _lhsIsynmap+                                   {-# LINE 1631 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 457, column 18)+                              _inhlist =+                                  ({-# LINE 457 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   map (lhsname True . fst) _wr_inhs+                                   {-# LINE 1637 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 458, column 18)+                              _inhlist1 =+                                  ({-# LINE 458 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   map (lhsname True . fst) _wr_inhs1+                                   {-# LINE 1643 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 459, column 18)+                              _synlist =+                                  ({-# LINE 459 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   map (lhsname False . fst) _wr_syns+                                   {-# LINE 1649 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 460, column 18)+                              _wrapname =+                                  ({-# LINE 460 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   "wrap_" ++ show nt_+                                   {-# LINE 1655 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 461, column 18)+                              _inhname =+                                  ({-# LINE 461 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   "Inh_" ++ show nt_+                                   {-# LINE 1661 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 462, column 18)+                              _synname =+                                  ({-# LINE 462 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   "Syn_" ++ show nt_+                                   {-# LINE 1667 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 463, column 18)+                              _firstVisitInfo =+                                  ({-# LINE 463 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   Map.findWithDefault ManyVis initial_ nextVisits_+                                   {-# LINE 1673 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 464, column 18)+                              _wrapper =+                                  ({-# LINE 464 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _wrapPragma+                                   >-< (_wrapname     >#< "::" >#< _quantPP     >#< _classPP     >#< _t_type     >#< _t_params     >#< "->"+                                         >#< _inhname     >#< _t_params     >#< "->" >#< ( if monadicWrappers _lhsIoptions then ppMonadType _lhsIoptions else empty) >#< pp_parens (_synname     >#< _t_params    ))+                                   >-< (_wrapname     >#< (_addbang     $ pp_parens (_t_type     >#< pp "act"))+                                       >#< (_addbang     $ pp_parens (_inhname+                                              >#< (ppSpaced $ map (_addbangWrap     . pp) _inhlist    )) >#< "="))+                                   >-<+                                   indent 3 (case initialv_ of+                                     Nothing -> _synname     >#< " { }"+                                     Just initv ->+                                       let inCon  = conNmTVisitIn nt_ initv+                                           outCon = conNmTVisitOut nt_ initv+                                           pat    = _addbang     $ pp_parens $ pat0+                                           pat0   = outCon >#< ppSpaced _synlist+                                           arg    = inCon >#< ppSpaced _inhlist1+                                           ind    = case _firstVisitInfo     of+                                                      NoneVis  -> error "wrapper: initial state should have a next visit but it has none"+                                                      OneVis _ -> empty+                                                      ManyVis  -> _k_type     >|< "_v" >|< initv+                                           extra  = if dummyTokenVisit _lhsIoptions+                                                    then pp $ dummyArg _lhsIoptions True+                                                    else empty+                                           convert = case Map.lookup initv _lhsIallVisitKinds of+                                                       Just kind -> case kind of+                                                                      VisitPure _  -> text "return"+                                                                      VisitMonadic -> empty+                                           unMonad | monadicWrappers _lhsIoptions = empty+                                                   | otherwise                    = unMon _lhsIoptions+                                       in unMonad >#< "("+                                          >-< indent 2 (+                                                 "do" >#< ( _addbang     (pp "sem") >#< "<-" >#< "act"+                                                          >-< "let" >#< _addbangWrap     (pp "arg") >#< "=" >#< arg+                                                          >-< pat >#< "<-" >#< convert >#< pp_parens ("inv_" >|< nt_ >|< "_s" >|< initial_ >#< "sem" >#< ind >#< "arg" >#< extra)+                                                          >-< "return" >#< pp_parens (_synname     >#< ppSpaced _synlist    )+                                                          )+                                               )+                                          >-< ")" )+                                   >-< if kennedyWarren _lhsIoptions && lateHigherOrderBinding _lhsIoptions+                                       then indent 2 ("where" >#< lhsname True idLateBindingAttr >#< "=" >#< lateBindingFieldNm _lhsImainName)+                                       else empty+                                   {-# LINE 1718 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 505, column 18)+                              _wrapPragma =+                                  ({-# LINE 505 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   if parallelInvoke _lhsIoptions && not (monadicWrappers _lhsIoptions)+                                   then ppNoInline _wrapname+                                   else if noInlinePragmas _lhsIoptions+                                        then empty+                                        else ppInlinable _wrapname+                                   {-# LINE 1728 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 517, column 3)+                              _lhsOsemFunBndDefs =+                                  ({-# LINE 517 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _semFunBndDef     Seq.<| _prodsIsemFunBndDefs+                                   {-# LINE 1734 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 518, column 3)+                              _lhsOsemFunBndTps =+                                  ({-# LINE 518 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _semFunBndTp     Seq.<| _prodsIsemFunBndTps+                                   {-# LINE 1740 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 519, column 3)+                              _semFunBndDef =+                                  ({-# LINE 519 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _semFunBndNm     >#< "=" >#< _semname+                                   {-# LINE 1746 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 520, column 3)+                              _semFunBndTp =+                                  ({-# LINE 520 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _semFunBndNm     >#< "::" >#< _sem_tp+                                   {-# LINE 1752 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 521, column 3)+                              _semFunBndNm =+                                  ({-# LINE 521 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   lateSemNtLabel nt_+                                   {-# LINE 1758 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 559, column 18)+                              _prodsOinitial =+                                  ({-# LINE 559 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   initial_+                                   {-# LINE 1764 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 560, column 18)+                              _prodsOallstates =+                                  ({-# LINE 560 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _allstates+                                   {-# LINE 1770 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1450, column 18)+                              _lhsOappendMain =+                                  ({-# LINE 1450 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   (if nt_ `Set.member` _lhsIwrappers+                                    then     _wr_inh+                                         >-< _wr_syn+                                         >-< _wrapper+                                    else empty)+                                   >-< _sem_nt+                                   {-# LINE 1781 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1456, column 18)+                              _lhsOappendCommon =+                                  ({-# LINE 1456 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   (if dataTypes _lhsIoptions then _datatype     else empty)+                                   >-< _t_init+                                   >-< _t_states+                                   >-< _k_states+                                   >-< _prodsIt_visits+                                   {-# LINE 1791 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1516, column 37)+                              _addbang =+                                  ({-# LINE 1516 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   \x -> if bangpats _lhsIoptions then "!" >|< x else x+                                   {-# LINE 1797 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1524, column 37)+                              _addbangWrap =+                                  ({-# LINE 1524 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   if strictWrap _lhsIoptions then _addbang     else id+                                   {-# LINE 1803 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1536, column 3)+                              _prodsOnextVisits =+                                  ({-# LINE 1536 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   nextVisits_+                                   {-# LINE 1809 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1537, column 3)+                              _prodsOprevVisits =+                                  ({-# LINE 1537 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   prevVisits_+                                   {-# LINE 1815 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1581, column 3)+                              _prodsOlocalAttrTypes =+                                  ({-# LINE 1581 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   Map.findWithDefault Map.empty nt_ _lhsIlocalAttrTypes+                                   {-# LINE 1821 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1608, column 3)+                              _lhsOinitStates =+                                  ({-# LINE 1608 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   Map.singleton nt_ initial_+                                   {-# LINE 1827 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 1622, column 3)+                              _ntType =+                                  ({-# LINE 1622 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   NT nt_ (map show params_) False+                                   {-# LINE 1833 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1187, column 37)+                              _lhsOchildvisit =+                                  ({-# LINE 1187 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _prodsIchildvisit+                                   {-# LINE 1839 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)+                              _lhsOerrors =+                                  ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _prodsIerrors+                                   {-# LINE 1845 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1544, column 22)+                              _lhsOfromToStates =+                                  ({-# LINE 1544 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _prodsIfromToStates+                                   {-# LINE 1851 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1464, column 49)+                              _lhsOgenProdIO =+                                  ({-# LINE 1464 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _prodsIgenProdIO+                                   {-# LINE 1857 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1463, column 47)+                              _lhsOimports =+                                  ({-# LINE 1463 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _prodsIimports+                                   {-# LINE 1863 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)+                              _lhsOvisitKinds =+                                  ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _prodsIvisitKinds+                                   {-# LINE 1869 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1322, column 36)+                              _lhsOvisitdefs =+                                  ({-# LINE 1322 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _prodsIvisitdefs+                                   {-# LINE 1875 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1323, column 36)+                              _lhsOvisituses =+                                  ({-# LINE 1323 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _prodsIvisituses+                                   {-# LINE 1881 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _prodsOallFromToStates =+                                  ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallFromToStates+                                   {-# LINE 1887 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _prodsOallInitStates =+                                  ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallInitStates+                                   {-# LINE 1893 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _prodsOallVisitKinds =+                                  ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallVisitKinds+                                   {-# LINE 1899 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _prodsOallchildvisit =+                                  ({-# LINE 1186 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallchildvisit+                                   {-# LINE 1905 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _prodsOavisitdefs =+                                  ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIavisitdefs+                                   {-# LINE 1911 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _prodsOavisituses =+                                  ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIavisituses+                                   {-# LINE 1917 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _prodsOimportBlocks =+                                  ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIimportBlocks+                                   {-# LINE 1923 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _prodsOmainFile =+                                  ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsImainFile+                                   {-# LINE 1929 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _prodsOmainName =+                                  ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsImainName+                                   {-# LINE 1935 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _prodsOmoduleHeader =+                                  ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsImoduleHeader+                                   {-# LINE 1941 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (from local)+                              _prodsOntType =+                                  ({-# LINE 1620 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _ntType+                                   {-# LINE 1947 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _prodsOoptions =+                                  ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIoptions+                                   {-# LINE 1953 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _prodsOpragmaBlocks =+                                  ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIpragmaBlocks+                                   {-# LINE 1959 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _prodsOtextBlocks =+                                  ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsItextBlocks+                                   {-# LINE 1965 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              ( _prodsIallvisits,_prodsIchildvisit,_prodsIcount,_prodsIdatatype,_prodsIerrors,_prodsIfromToStates,_prodsIgenProdIO,_prodsIimports,_prodsIsemFunBndDefs,_prodsIsemFunBndTps,_prodsIsem_nt,_prodsIsem_prod,_prodsIt_visits,_prodsIvisitKinds,_prodsIvisitdefs,_prodsIvisituses) =+                                  prods_ _prodsOallFromToStates _prodsOallInhmap _prodsOallInitStates _prodsOallSynmap _prodsOallVisitKinds _prodsOallchildvisit _prodsOallstates _prodsOavisitdefs _prodsOavisituses _prodsOclassCtxs _prodsOimportBlocks _prodsOinhmap _prodsOinitial _prodsOlocalAttrTypes _prodsOmainFile _prodsOmainName _prodsOmoduleHeader _prodsOnextVisits _prodsOnt _prodsOntType _prodsOoptions _prodsOparams _prodsOpragmaBlocks _prodsOprevVisits _prodsOrename _prodsOsynmap _prodsOtextBlocks+                              ___node =+                                  (Syn_ENonterminal _lhsOappendCommon _lhsOappendMain _lhsOchildvisit _lhsOerrors _lhsOfromToStates _lhsOgenProdIO _lhsOimports _lhsOinitStates _lhsOoutput _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses)+                          in  ( _lhsOappendCommon,_lhsOappendMain,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOinitStates,_lhsOoutput,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))+-- ENonterminals -----------------------------------------------+{-+   visit 0:+      inherited attributes:+         allFromToStates      : Map VisitIdentifier (Int,Int)+         allInitStates        : Map NontermIdent Int+         allVisitKinds        : Map VisitIdentifier VisitKind+         allchildvisit        : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))+         avisitdefs           : Map VisitIdentifier (Set Identifier)+         avisituses           : Map VisitIdentifier (Set Identifier)+         derivings            : Derivings+         importBlocks         : PP_Doc+         inhmap               : Map NontermIdent Attributes+         localAttrTypes       : Map NontermIdent (Map ConstructorIdent (Map Identifier Type))+         mainFile             : String+         mainName             : String+         moduleHeader         : String -> String -> String -> Bool -> String+         options              : Options+         pragmaBlocks         : String+         synmap               : Map NontermIdent Attributes+         textBlocks           : PP_Doc+         typeSyns             : TypeSyns+         wrappers             : Set NontermIdent+      synthesized attributes:+         appendCommon         : [PP_Doc]+         appendMain           : [PP_Doc]+         childvisit           : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))+         errors               : Seq Error+         fromToStates         : Map VisitIdentifier (Int,Int)+         genProdIO            : IO ()+         imports              : [PP_Doc]+         initStates           : Map NontermIdent Int+         output               : PP_Doc+         semFunBndDefs        : Seq PP_Doc+         semFunBndTps         : Seq PP_Doc+         visitKinds           : Map VisitIdentifier VisitKind+         visitdefs            : Map VisitIdentifier (Set Identifier)+         visituses            : Map VisitIdentifier (Set Identifier)+   alternatives:+      alternative Cons:+         child hd             : ENonterminal +         child tl             : ENonterminals +      alternative Nil:+-}+-- cata+sem_ENonterminals :: ENonterminals ->+                     T_ENonterminals+sem_ENonterminals list =+    (Prelude.foldr sem_ENonterminals_Cons sem_ENonterminals_Nil (Prelude.map sem_ENonterminal list))+-- semantic domain+newtype T_ENonterminals = T_ENonterminals ((Map VisitIdentifier (Int,Int)) ->+                                           (Map NontermIdent Int) ->+                                           (Map VisitIdentifier VisitKind) ->+                                           (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))) ->+                                           (Map VisitIdentifier (Set Identifier)) ->+                                           (Map VisitIdentifier (Set Identifier)) ->+                                           Derivings ->+                                           PP_Doc ->+                                           (Map NontermIdent Attributes) ->+                                           (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))) ->+                                           String ->+                                           String ->+                                           (String -> String -> String -> Bool -> String) ->+                                           Options ->+                                           String ->+                                           (Map NontermIdent Attributes) ->+                                           PP_Doc ->+                                           TypeSyns ->+                                           (Set NontermIdent) ->+                                           ( ([PP_Doc]),([PP_Doc]),(Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),(Seq Error),(Map VisitIdentifier (Int,Int)),(IO ()),([PP_Doc]),(Map NontermIdent Int),PP_Doc,(Seq PP_Doc),(Seq PP_Doc),(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier))))+data Inh_ENonterminals = Inh_ENonterminals {allFromToStates_Inh_ENonterminals :: (Map VisitIdentifier (Int,Int)),allInitStates_Inh_ENonterminals :: (Map NontermIdent Int),allVisitKinds_Inh_ENonterminals :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_ENonterminals :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),avisitdefs_Inh_ENonterminals :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_ENonterminals :: (Map VisitIdentifier (Set Identifier)),derivings_Inh_ENonterminals :: Derivings,importBlocks_Inh_ENonterminals :: PP_Doc,inhmap_Inh_ENonterminals :: (Map NontermIdent Attributes),localAttrTypes_Inh_ENonterminals :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))),mainFile_Inh_ENonterminals :: String,mainName_Inh_ENonterminals :: String,moduleHeader_Inh_ENonterminals :: (String -> String -> String -> Bool -> String),options_Inh_ENonterminals :: Options,pragmaBlocks_Inh_ENonterminals :: String,synmap_Inh_ENonterminals :: (Map NontermIdent Attributes),textBlocks_Inh_ENonterminals :: PP_Doc,typeSyns_Inh_ENonterminals :: TypeSyns,wrappers_Inh_ENonterminals :: (Set NontermIdent)}+data Syn_ENonterminals = Syn_ENonterminals {appendCommon_Syn_ENonterminals :: ([PP_Doc]),appendMain_Syn_ENonterminals :: ([PP_Doc]),childvisit_Syn_ENonterminals :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),errors_Syn_ENonterminals :: (Seq Error),fromToStates_Syn_ENonterminals :: (Map VisitIdentifier (Int,Int)),genProdIO_Syn_ENonterminals :: (IO ()),imports_Syn_ENonterminals :: ([PP_Doc]),initStates_Syn_ENonterminals :: (Map NontermIdent Int),output_Syn_ENonterminals :: PP_Doc,semFunBndDefs_Syn_ENonterminals :: (Seq PP_Doc),semFunBndTps_Syn_ENonterminals :: (Seq PP_Doc),visitKinds_Syn_ENonterminals :: (Map VisitIdentifier VisitKind),visitdefs_Syn_ENonterminals :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_ENonterminals :: (Map VisitIdentifier (Set Identifier))}+wrap_ENonterminals :: T_ENonterminals ->+                      Inh_ENonterminals ->+                      Syn_ENonterminals+wrap_ENonterminals (T_ENonterminals sem) (Inh_ENonterminals _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIderivings _lhsIimportBlocks _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIpragmaBlocks _lhsIsynmap _lhsItextBlocks _lhsItypeSyns _lhsIwrappers) =+    (let ( _lhsOappendCommon,_lhsOappendMain,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOinitStates,_lhsOoutput,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIderivings _lhsIimportBlocks _lhsIinhmap _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIpragmaBlocks _lhsIsynmap _lhsItextBlocks _lhsItypeSyns _lhsIwrappers+     in  (Syn_ENonterminals _lhsOappendCommon _lhsOappendMain _lhsOchildvisit _lhsOerrors _lhsOfromToStates _lhsOgenProdIO _lhsOimports _lhsOinitStates _lhsOoutput _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses))+sem_ENonterminals_Cons :: T_ENonterminal ->+                          T_ENonterminals ->+                          T_ENonterminals+sem_ENonterminals_Cons (T_ENonterminal hd_) (T_ENonterminals tl_) =+    (T_ENonterminals (\ _lhsIallFromToStates+                        _lhsIallInitStates+                        _lhsIallVisitKinds+                        _lhsIallchildvisit+                        _lhsIavisitdefs+                        _lhsIavisituses+                        _lhsIderivings+                        _lhsIimportBlocks+                        _lhsIinhmap+                        _lhsIlocalAttrTypes+                        _lhsImainFile+                        _lhsImainName+                        _lhsImoduleHeader+                        _lhsIoptions+                        _lhsIpragmaBlocks+                        _lhsIsynmap+                        _lhsItextBlocks+                        _lhsItypeSyns+                        _lhsIwrappers ->+                          (let _lhsOappendCommon :: ([PP_Doc])+                               _lhsOappendMain :: ([PP_Doc])+                               _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                               _lhsOerrors :: (Seq Error)+                               _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))+                               _lhsOgenProdIO :: (IO ())+                               _lhsOimports :: ([PP_Doc])+                               _lhsOinitStates :: (Map NontermIdent Int)+                               _lhsOoutput :: PP_Doc+                               _lhsOsemFunBndDefs :: (Seq PP_Doc)+                               _lhsOsemFunBndTps :: (Seq PP_Doc)+                               _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)+                               _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))+                               _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))+                               _hdOallFromToStates :: (Map VisitIdentifier (Int,Int))+                               _hdOallInitStates :: (Map NontermIdent Int)+                               _hdOallVisitKinds :: (Map VisitIdentifier VisitKind)+                               _hdOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                               _hdOavisitdefs :: (Map VisitIdentifier (Set Identifier))+                               _hdOavisituses :: (Map VisitIdentifier (Set Identifier))+                               _hdOderivings :: Derivings+                               _hdOimportBlocks :: PP_Doc+                               _hdOinhmap :: (Map NontermIdent Attributes)+                               _hdOlocalAttrTypes :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type)))+                               _hdOmainFile :: String+                               _hdOmainName :: String+                               _hdOmoduleHeader :: (String -> String -> String -> Bool -> String)+                               _hdOoptions :: Options+                               _hdOpragmaBlocks :: String+                               _hdOsynmap :: (Map NontermIdent Attributes)+                               _hdOtextBlocks :: PP_Doc+                               _hdOtypeSyns :: TypeSyns+                               _hdOwrappers :: (Set NontermIdent)+                               _tlOallFromToStates :: (Map VisitIdentifier (Int,Int))+                               _tlOallInitStates :: (Map NontermIdent Int)+                               _tlOallVisitKinds :: (Map VisitIdentifier VisitKind)+                               _tlOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                               _tlOavisitdefs :: (Map VisitIdentifier (Set Identifier))+                               _tlOavisituses :: (Map VisitIdentifier (Set Identifier))+                               _tlOderivings :: Derivings+                               _tlOimportBlocks :: PP_Doc+                               _tlOinhmap :: (Map NontermIdent Attributes)+                               _tlOlocalAttrTypes :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type)))+                               _tlOmainFile :: String+                               _tlOmainName :: String+                               _tlOmoduleHeader :: (String -> String -> String -> Bool -> String)+                               _tlOoptions :: Options+                               _tlOpragmaBlocks :: String+                               _tlOsynmap :: (Map NontermIdent Attributes)+                               _tlOtextBlocks :: PP_Doc+                               _tlOtypeSyns :: TypeSyns+                               _tlOwrappers :: (Set NontermIdent)+                               _hdIappendCommon :: ( PP_Doc )+                               _hdIappendMain :: ( PP_Doc )+                               _hdIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                               _hdIerrors :: (Seq Error)+                               _hdIfromToStates :: (Map VisitIdentifier (Int,Int))+                               _hdIgenProdIO :: (IO ())+                               _hdIimports :: ([PP_Doc])+                               _hdIinitStates :: (Map NontermIdent Int)+                               _hdIoutput :: PP_Doc+                               _hdIsemFunBndDefs :: (Seq PP_Doc)+                               _hdIsemFunBndTps :: (Seq PP_Doc)+                               _hdIvisitKinds :: (Map VisitIdentifier VisitKind)+                               _hdIvisitdefs :: (Map VisitIdentifier (Set Identifier))+                               _hdIvisituses :: (Map VisitIdentifier (Set Identifier))+                               _tlIappendCommon :: ([PP_Doc])+                               _tlIappendMain :: ([PP_Doc])+                               _tlIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                               _tlIerrors :: (Seq Error)+                               _tlIfromToStates :: (Map VisitIdentifier (Int,Int))+                               _tlIgenProdIO :: (IO ())+                               _tlIimports :: ([PP_Doc])+                               _tlIinitStates :: (Map NontermIdent Int)+                               _tlIoutput :: PP_Doc+                               _tlIsemFunBndDefs :: (Seq PP_Doc)+                               _tlIsemFunBndTps :: (Seq PP_Doc)+                               _tlIvisitKinds :: (Map VisitIdentifier VisitKind)+                               _tlIvisitdefs :: (Map VisitIdentifier (Set Identifier))+                               _tlIvisituses :: (Map VisitIdentifier (Set Identifier))+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1447, column 51)+                               _lhsOappendCommon =+                                   ({-# LINE 1447 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _hdIappendCommon : _tlIappendCommon+                                    {-# LINE 2157 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1447, column 51)+                               _lhsOappendMain =+                                   ({-# LINE 1447 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _hdIappendMain : _tlIappendMain+                                    {-# LINE 2163 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1187, column 37)+                               _lhsOchildvisit =+                                   ({-# LINE 1187 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _hdIchildvisit `Map.union` _tlIchildvisit+                                    {-# LINE 2169 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)+                               _lhsOerrors =+                                   ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _hdIerrors Seq.>< _tlIerrors+                                    {-# LINE 2175 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1544, column 22)+                               _lhsOfromToStates =+                                   ({-# LINE 1544 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _hdIfromToStates `mappend` _tlIfromToStates+                                    {-# LINE 2181 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1464, column 49)+                               _lhsOgenProdIO =+                                   ({-# LINE 1464 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _hdIgenProdIO >> _tlIgenProdIO+                                    {-# LINE 2187 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1463, column 47)+                               _lhsOimports =+                                   ({-# LINE 1463 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _hdIimports ++ _tlIimports+                                    {-# LINE 2193 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1603, column 50)+                               _lhsOinitStates =+                                   ({-# LINE 1603 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _hdIinitStates `mappend` _tlIinitStates+                                    {-# LINE 2199 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 90, column 45)+                               _lhsOoutput =+                                   ({-# LINE 90 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _hdIoutput >-< _tlIoutput+                                    {-# LINE 2205 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 515, column 92)+                               _lhsOsemFunBndDefs =+                                   ({-# LINE 515 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _hdIsemFunBndDefs Seq.>< _tlIsemFunBndDefs+                                    {-# LINE 2211 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 515, column 92)+                               _lhsOsemFunBndTps =+                                   ({-# LINE 515 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _hdIsemFunBndTps Seq.>< _tlIsemFunBndTps+                                    {-# LINE 2217 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)+                               _lhsOvisitKinds =+                                   ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _hdIvisitKinds `mappend` _tlIvisitKinds+                                    {-# LINE 2223 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1322, column 36)+                               _lhsOvisitdefs =+                                   ({-# LINE 1322 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _hdIvisitdefs `uwSetUnion` _tlIvisitdefs+                                    {-# LINE 2229 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1323, column 36)+                               _lhsOvisituses =+                                   ({-# LINE 1323 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _hdIvisituses `uwSetUnion` _tlIvisituses+                                    {-# LINE 2235 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOallFromToStates =+                                   ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIallFromToStates+                                    {-# LINE 2241 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOallInitStates =+                                   ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIallInitStates+                                    {-# LINE 2247 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOallVisitKinds =+                                   ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIallVisitKinds+                                    {-# LINE 2253 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOallchildvisit =+                                   ({-# LINE 1186 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIallchildvisit+                                    {-# LINE 2259 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOavisitdefs =+                                   ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIavisitdefs+                                    {-# LINE 2265 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOavisituses =+                                   ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIavisituses+                                    {-# LINE 2271 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOderivings =+                                   ({-# LINE 129 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIderivings+                                    {-# LINE 2277 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOimportBlocks =+                                   ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIimportBlocks+                                    {-# LINE 2283 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOinhmap =+                                   ({-# LINE 312 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIinhmap+                                    {-# LINE 2289 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOlocalAttrTypes =+                                   ({-# LINE 1576 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIlocalAttrTypes+                                    {-# LINE 2295 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOmainFile =+                                   ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsImainFile+                                    {-# LINE 2301 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOmainName =+                                   ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsImainName+                                    {-# LINE 2307 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOmoduleHeader =+                                   ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsImoduleHeader+                                    {-# LINE 2313 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOoptions =+                                   ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIoptions+                                    {-# LINE 2319 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOpragmaBlocks =+                                   ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIpragmaBlocks+                                    {-# LINE 2325 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOsynmap =+                                   ({-# LINE 313 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIsynmap+                                    {-# LINE 2331 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOtextBlocks =+                                   ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsItextBlocks+                                    {-# LINE 2337 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOtypeSyns =+                                   ({-# LINE 128 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsItypeSyns+                                    {-# LINE 2343 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _hdOwrappers =+                                   ({-# LINE 89 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIwrappers+                                    {-# LINE 2349 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOallFromToStates =+                                   ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIallFromToStates+                                    {-# LINE 2355 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOallInitStates =+                                   ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIallInitStates+                                    {-# LINE 2361 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOallVisitKinds =+                                   ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIallVisitKinds+                                    {-# LINE 2367 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOallchildvisit =+                                   ({-# LINE 1186 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIallchildvisit+                                    {-# LINE 2373 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOavisitdefs =+                                   ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIavisitdefs+                                    {-# LINE 2379 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOavisituses =+                                   ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIavisituses+                                    {-# LINE 2385 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOderivings =+                                   ({-# LINE 129 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIderivings+                                    {-# LINE 2391 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOimportBlocks =+                                   ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIimportBlocks+                                    {-# LINE 2397 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOinhmap =+                                   ({-# LINE 312 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIinhmap+                                    {-# LINE 2403 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOlocalAttrTypes =+                                   ({-# LINE 1576 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIlocalAttrTypes+                                    {-# LINE 2409 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOmainFile =+                                   ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsImainFile+                                    {-# LINE 2415 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOmainName =+                                   ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsImainName+                                    {-# LINE 2421 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOmoduleHeader =+                                   ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsImoduleHeader+                                    {-# LINE 2427 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOoptions =+                                   ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIoptions+                                    {-# LINE 2433 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOpragmaBlocks =+                                   ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIpragmaBlocks+                                    {-# LINE 2439 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOsynmap =+                                   ({-# LINE 313 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIsynmap+                                    {-# LINE 2445 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOtextBlocks =+                                   ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsItextBlocks+                                    {-# LINE 2451 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOtypeSyns =+                                   ({-# LINE 128 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsItypeSyns+                                    {-# LINE 2457 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _tlOwrappers =+                                   ({-# LINE 89 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIwrappers+                                    {-# LINE 2463 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               ( _hdIappendCommon,_hdIappendMain,_hdIchildvisit,_hdIerrors,_hdIfromToStates,_hdIgenProdIO,_hdIimports,_hdIinitStates,_hdIoutput,_hdIsemFunBndDefs,_hdIsemFunBndTps,_hdIvisitKinds,_hdIvisitdefs,_hdIvisituses) =+                                   hd_ _hdOallFromToStates _hdOallInitStates _hdOallVisitKinds _hdOallchildvisit _hdOavisitdefs _hdOavisituses _hdOderivings _hdOimportBlocks _hdOinhmap _hdOlocalAttrTypes _hdOmainFile _hdOmainName _hdOmoduleHeader _hdOoptions _hdOpragmaBlocks _hdOsynmap _hdOtextBlocks _hdOtypeSyns _hdOwrappers+                               ( _tlIappendCommon,_tlIappendMain,_tlIchildvisit,_tlIerrors,_tlIfromToStates,_tlIgenProdIO,_tlIimports,_tlIinitStates,_tlIoutput,_tlIsemFunBndDefs,_tlIsemFunBndTps,_tlIvisitKinds,_tlIvisitdefs,_tlIvisituses) =+                                   tl_ _tlOallFromToStates _tlOallInitStates _tlOallVisitKinds _tlOallchildvisit _tlOavisitdefs _tlOavisituses _tlOderivings _tlOimportBlocks _tlOinhmap _tlOlocalAttrTypes _tlOmainFile _tlOmainName _tlOmoduleHeader _tlOoptions _tlOpragmaBlocks _tlOsynmap _tlOtextBlocks _tlOtypeSyns _tlOwrappers+                               ___node =+                                   (Syn_ENonterminals _lhsOappendCommon _lhsOappendMain _lhsOchildvisit _lhsOerrors _lhsOfromToStates _lhsOgenProdIO _lhsOimports _lhsOinitStates _lhsOoutput _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses)+                           in  ( _lhsOappendCommon,_lhsOappendMain,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOinitStates,_lhsOoutput,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))+sem_ENonterminals_Nil :: T_ENonterminals+sem_ENonterminals_Nil =+    (T_ENonterminals (\ _lhsIallFromToStates+                        _lhsIallInitStates+                        _lhsIallVisitKinds+                        _lhsIallchildvisit+                        _lhsIavisitdefs+                        _lhsIavisituses+                        _lhsIderivings+                        _lhsIimportBlocks+                        _lhsIinhmap+                        _lhsIlocalAttrTypes+                        _lhsImainFile+                        _lhsImainName+                        _lhsImoduleHeader+                        _lhsIoptions+                        _lhsIpragmaBlocks+                        _lhsIsynmap+                        _lhsItextBlocks+                        _lhsItypeSyns+                        _lhsIwrappers ->+                          (let _lhsOappendCommon :: ([PP_Doc])+                               _lhsOappendMain :: ([PP_Doc])+                               _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                               _lhsOerrors :: (Seq Error)+                               _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))+                               _lhsOgenProdIO :: (IO ())+                               _lhsOimports :: ([PP_Doc])+                               _lhsOinitStates :: (Map NontermIdent Int)+                               _lhsOoutput :: PP_Doc+                               _lhsOsemFunBndDefs :: (Seq PP_Doc)+                               _lhsOsemFunBndTps :: (Seq PP_Doc)+                               _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)+                               _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))+                               _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1447, column 51)+                               _lhsOappendCommon =+                                   ({-# LINE 1447 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    []+                                    {-# LINE 2511 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1447, column 51)+                               _lhsOappendMain =+                                   ({-# LINE 1447 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    []+                                    {-# LINE 2517 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1187, column 37)+                               _lhsOchildvisit =+                                   ({-# LINE 1187 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    Map.empty+                                    {-# LINE 2523 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)+                               _lhsOerrors =+                                   ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    Seq.empty+                                    {-# LINE 2529 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1544, column 22)+                               _lhsOfromToStates =+                                   ({-# LINE 1544 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    mempty+                                    {-# LINE 2535 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1464, column 49)+                               _lhsOgenProdIO =+                                   ({-# LINE 1464 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    return ()+                                    {-# LINE 2541 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1463, column 47)+                               _lhsOimports =+                                   ({-# LINE 1463 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    []+                                    {-# LINE 2547 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1603, column 50)+                               _lhsOinitStates =+                                   ({-# LINE 1603 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    mempty+                                    {-# LINE 2553 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 90, column 45)+                               _lhsOoutput =+                                   ({-# LINE 90 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    empty+                                    {-# LINE 2559 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 515, column 92)+                               _lhsOsemFunBndDefs =+                                   ({-# LINE 515 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    Seq.empty+                                    {-# LINE 2565 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 515, column 92)+                               _lhsOsemFunBndTps =+                                   ({-# LINE 515 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    Seq.empty+                                    {-# LINE 2571 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)+                               _lhsOvisitKinds =+                                   ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    mempty+                                    {-# LINE 2577 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1322, column 36)+                               _lhsOvisitdefs =+                                   ({-# LINE 1322 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    Map.empty+                                    {-# LINE 2583 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1323, column 36)+                               _lhsOvisituses =+                                   ({-# LINE 1323 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    Map.empty+                                    {-# LINE 2589 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               ___node =+                                   (Syn_ENonterminals _lhsOappendCommon _lhsOappendMain _lhsOchildvisit _lhsOerrors _lhsOfromToStates _lhsOgenProdIO _lhsOimports _lhsOinitStates _lhsOoutput _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses)+                           in  ( _lhsOappendCommon,_lhsOappendMain,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOinitStates,_lhsOoutput,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))+-- EProduction -------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allFromToStates      : Map VisitIdentifier (Int,Int)+         allInhmap            : Map NontermIdent Attributes+         allInitStates        : Map NontermIdent Int+         allSynmap            : Map NontermIdent Attributes+         allVisitKinds        : Map VisitIdentifier VisitKind+         allchildvisit        : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))+         allstates            : Set StateIdentifier+         avisitdefs           : Map VisitIdentifier (Set Identifier)+         avisituses           : Map VisitIdentifier (Set Identifier)+         classCtxs            : ClassContext+         importBlocks         : PP_Doc+         inhmap               : Attributes+         initial              : StateIdentifier+         localAttrTypes       : Map ConstructorIdent (Map Identifier Type)+         mainFile             : String+         mainName             : String+         moduleHeader         : String -> String -> String -> Bool -> String+         nextVisits           : Map StateIdentifier StateCtx+         nt                   : NontermIdent+         ntType               : Type+         options              : Options+         params               : [Identifier]+         pragmaBlocks         : String+         prevVisits           : Map StateIdentifier StateCtx+         rename               : Bool+         synmap               : Attributes+         textBlocks           : PP_Doc+      synthesized attributes:+         allvisits            : [VisitStateState]+         childvisit           : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))+         count                : Int+         datatype             : PP_Doc+         errors               : Seq Error+         fromToStates         : Map VisitIdentifier (Int,Int)+         genProdIO            : IO ()+         imports              : [PP_Doc]+         semFunBndDefs        : Seq PP_Doc+         semFunBndTps         : Seq PP_Doc+         sem_nt               : PP_Doc+         sem_prod             : PP_Doc+         t_visits             : PP_Doc+         visitKinds           : Map VisitIdentifier VisitKind+         visitdefs            : Map VisitIdentifier (Set Identifier)+         visituses            : Map VisitIdentifier (Set Identifier)+   alternatives:+      alternative EProduction:+         child con            : {ConstructorIdent}+         child params         : {[Identifier]}+         child constraints    : {[Type]}+         child rules          : ERules +         child children       : EChildren +         child visits         : Visits +         visit 0:+            local classPP1    : _+            local quantPP1    : _+            local semFunBndDef : _+            local semFunBndTp : _+            local semFunBndNm : _+            local t_type      : _+            local t_params    : _+            local args        : _+            local semname     : _+            local sem_tp      : _+            local classPP2    : _+            local quantPP2    : _+            local sem_prod    : _+            local mkSemBody   : _+            local mbInitializer : _+            local scc         : _+            local semInlinePragma : _+            local outerlet    : _+            local statefns    : _+            local genstfn     : _+            local stargs      : _+            local stks        : _+            local stvisits    : _+            local stvs        : _+            local lazyIntras  : _+            local moduleName  : _+            local suffix      : _+            local outputfile  : _+            local ppMonadImports : _+            local addbang     : _+            local childTypes  : _+            local localAttrTypes : _+-}+-- cata+sem_EProduction :: EProduction ->+                   T_EProduction+sem_EProduction (EProduction _con _params _constraints _rules _children _visits) =+    (sem_EProduction_EProduction _con _params _constraints (sem_ERules _rules) (sem_EChildren _children) (sem_Visits _visits))+-- semantic domain+newtype T_EProduction = T_EProduction ((Map VisitIdentifier (Int,Int)) ->+                                       (Map NontermIdent Attributes) ->+                                       (Map NontermIdent Int) ->+                                       (Map NontermIdent Attributes) ->+                                       (Map VisitIdentifier VisitKind) ->+                                       (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))) ->+                                       (Set StateIdentifier) ->+                                       (Map VisitIdentifier (Set Identifier)) ->+                                       (Map VisitIdentifier (Set Identifier)) ->+                                       ClassContext ->+                                       PP_Doc ->+                                       Attributes ->+                                       StateIdentifier ->+                                       (Map ConstructorIdent (Map Identifier Type)) ->+                                       String ->+                                       String ->+                                       (String -> String -> String -> Bool -> String) ->+                                       (Map StateIdentifier StateCtx) ->+                                       NontermIdent ->+                                       Type ->+                                       Options ->+                                       ([Identifier]) ->+                                       String ->+                                       (Map StateIdentifier StateCtx) ->+                                       Bool ->+                                       Attributes ->+                                       PP_Doc ->+                                       ( ([VisitStateState]),(Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),Int,PP_Doc,(Seq Error),(Map VisitIdentifier (Int,Int)),(IO ()),([PP_Doc]),(Seq PP_Doc),(Seq PP_Doc),PP_Doc,PP_Doc,PP_Doc,(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier))))+data Inh_EProduction = Inh_EProduction {allFromToStates_Inh_EProduction :: (Map VisitIdentifier (Int,Int)),allInhmap_Inh_EProduction :: (Map NontermIdent Attributes),allInitStates_Inh_EProduction :: (Map NontermIdent Int),allSynmap_Inh_EProduction :: (Map NontermIdent Attributes),allVisitKinds_Inh_EProduction :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_EProduction :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),allstates_Inh_EProduction :: (Set StateIdentifier),avisitdefs_Inh_EProduction :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_EProduction :: (Map VisitIdentifier (Set Identifier)),classCtxs_Inh_EProduction :: ClassContext,importBlocks_Inh_EProduction :: PP_Doc,inhmap_Inh_EProduction :: Attributes,initial_Inh_EProduction :: StateIdentifier,localAttrTypes_Inh_EProduction :: (Map ConstructorIdent (Map Identifier Type)),mainFile_Inh_EProduction :: String,mainName_Inh_EProduction :: String,moduleHeader_Inh_EProduction :: (String -> String -> String -> Bool -> String),nextVisits_Inh_EProduction :: (Map StateIdentifier StateCtx),nt_Inh_EProduction :: NontermIdent,ntType_Inh_EProduction :: Type,options_Inh_EProduction :: Options,params_Inh_EProduction :: ([Identifier]),pragmaBlocks_Inh_EProduction :: String,prevVisits_Inh_EProduction :: (Map StateIdentifier StateCtx),rename_Inh_EProduction :: Bool,synmap_Inh_EProduction :: Attributes,textBlocks_Inh_EProduction :: PP_Doc}+data Syn_EProduction = Syn_EProduction {allvisits_Syn_EProduction :: ([VisitStateState]),childvisit_Syn_EProduction :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),count_Syn_EProduction :: Int,datatype_Syn_EProduction :: PP_Doc,errors_Syn_EProduction :: (Seq Error),fromToStates_Syn_EProduction :: (Map VisitIdentifier (Int,Int)),genProdIO_Syn_EProduction :: (IO ()),imports_Syn_EProduction :: ([PP_Doc]),semFunBndDefs_Syn_EProduction :: (Seq PP_Doc),semFunBndTps_Syn_EProduction :: (Seq PP_Doc),sem_nt_Syn_EProduction :: PP_Doc,sem_prod_Syn_EProduction :: PP_Doc,t_visits_Syn_EProduction :: PP_Doc,visitKinds_Syn_EProduction :: (Map VisitIdentifier VisitKind),visitdefs_Syn_EProduction :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_EProduction :: (Map VisitIdentifier (Set Identifier))}+wrap_EProduction :: T_EProduction ->+                    Inh_EProduction ->+                    Syn_EProduction+wrap_EProduction (T_EProduction sem) (Inh_EProduction _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIclassCtxs _lhsIimportBlocks _lhsIinhmap _lhsIinitial _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInextVisits _lhsInt _lhsIntType _lhsIoptions _lhsIparams _lhsIpragmaBlocks _lhsIprevVisits _lhsIrename _lhsIsynmap _lhsItextBlocks) =+    (let ( _lhsOallvisits,_lhsOchildvisit,_lhsOcount,_lhsOdatatype,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIclassCtxs _lhsIimportBlocks _lhsIinhmap _lhsIinitial _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInextVisits _lhsInt _lhsIntType _lhsIoptions _lhsIparams _lhsIpragmaBlocks _lhsIprevVisits _lhsIrename _lhsIsynmap _lhsItextBlocks+     in  (Syn_EProduction _lhsOallvisits _lhsOchildvisit _lhsOcount _lhsOdatatype _lhsOerrors _lhsOfromToStates _lhsOgenProdIO _lhsOimports _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOsem_nt _lhsOsem_prod _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses))+sem_EProduction_EProduction :: ConstructorIdent ->+                               ([Identifier]) ->+                               ([Type]) ->+                               T_ERules ->+                               T_EChildren ->+                               T_Visits ->+                               T_EProduction+sem_EProduction_EProduction con_ params_ constraints_ (T_ERules rules_) (T_EChildren children_) (T_Visits visits_) =+    (T_EProduction (\ _lhsIallFromToStates+                      _lhsIallInhmap+                      _lhsIallInitStates+                      _lhsIallSynmap+                      _lhsIallVisitKinds+                      _lhsIallchildvisit+                      _lhsIallstates+                      _lhsIavisitdefs+                      _lhsIavisituses+                      _lhsIclassCtxs+                      _lhsIimportBlocks+                      _lhsIinhmap+                      _lhsIinitial+                      _lhsIlocalAttrTypes+                      _lhsImainFile+                      _lhsImainName+                      _lhsImoduleHeader+                      _lhsInextVisits+                      _lhsInt+                      _lhsIntType+                      _lhsIoptions+                      _lhsIparams+                      _lhsIpragmaBlocks+                      _lhsIprevVisits+                      _lhsIrename+                      _lhsIsynmap+                      _lhsItextBlocks ->+                        (let _childrenOcon :: ConstructorIdent+                             _rulesOcon :: ConstructorIdent+                             _visitsOcon :: ConstructorIdent+                             _lhsOdatatype :: PP_Doc+                             _lhsOcount :: Int+                             _lhsOsem_nt :: PP_Doc+                             _lhsOsemFunBndDefs :: (Seq PP_Doc)+                             _lhsOsemFunBndTps :: (Seq PP_Doc)+                             _visitsOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))+                             _visitsOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))+                             _rulesOusageInfo :: (Map Identifier Int)+                             _rulesOruleKinds :: (Map Identifier (Set VisitKind))+                             _visitsOallintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))+                             _visitsOterminaldefs :: (Set String)+                             _visitsOruledefs :: (Map Identifier (Set String))+                             _visitsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))+                             _lhsOimports :: ([PP_Doc])+                             _lhsOgenProdIO :: (IO ())+                             _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                             _lhsOerrors :: (Seq Error)+                             _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))+                             _lhsOt_visits :: PP_Doc+                             _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)+                             _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))+                             _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))+                             _lhsOallvisits :: ([VisitStateState])+                             _lhsOsem_prod :: PP_Doc+                             _rulesOallInhmap :: (Map NontermIdent Attributes)+                             _rulesOallSynmap :: (Map NontermIdent Attributes)+                             _rulesOchildTypes :: (Map Identifier Type)+                             _rulesOimportBlocks :: PP_Doc+                             _rulesOinhmap :: Attributes+                             _rulesOlazyIntras :: (Set String)+                             _rulesOlocalAttrTypes :: (Map Identifier Type)+                             _rulesOmainFile :: String+                             _rulesOmainName :: String+                             _rulesOmoduleHeader :: (String -> String -> String -> Bool -> String)+                             _rulesOnt :: NontermIdent+                             _rulesOoptions :: Options+                             _rulesOpragmaBlocks :: String+                             _rulesOsynmap :: Attributes+                             _rulesOtextBlocks :: PP_Doc+                             _childrenOallInitStates :: (Map NontermIdent Int)+                             _childrenOimportBlocks :: PP_Doc+                             _childrenOmainFile :: String+                             _childrenOmainName :: String+                             _childrenOmoduleHeader :: (String -> String -> String -> Bool -> String)+                             _childrenOnt :: NontermIdent+                             _childrenOoptions :: Options+                             _childrenOpragmaBlocks :: String+                             _childrenOtextBlocks :: PP_Doc+                             _visitsOallFromToStates :: (Map VisitIdentifier (Int,Int))+                             _visitsOallInhmap :: (Map NontermIdent Attributes)+                             _visitsOallInitStates :: (Map NontermIdent Int)+                             _visitsOallSynmap :: (Map NontermIdent Attributes)+                             _visitsOallVisitKinds :: (Map VisitIdentifier VisitKind)+                             _visitsOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                             _visitsOavisitdefs :: (Map VisitIdentifier (Set Identifier))+                             _visitsOavisituses :: (Map VisitIdentifier (Set Identifier))+                             _visitsOchildTypes :: (Map Identifier Type)+                             _visitsOinhmap :: Attributes+                             _visitsOnextVisits :: (Map StateIdentifier StateCtx)+                             _visitsOnt :: NontermIdent+                             _visitsOoptions :: Options+                             _visitsOparams :: ([Identifier])+                             _visitsOprevVisits :: (Map StateIdentifier StateCtx)+                             _visitsOsynmap :: Attributes+                             _rulesIerrors :: (Seq Error)+                             _rulesImrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))+                             _rulesIruledefs :: (Map Identifier (Set String))+                             _rulesIruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))+                             _rulesIsem_rules :: PP_Doc+                             _childrenIargnamesw :: ([PP_Doc])+                             _childrenIargpats :: ( [PP_Doc] )+                             _childrenIargtps :: ( [PP_Doc] )+                             _childrenIchildTypes :: (Map Identifier Type)+                             _childrenIchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))+                             _childrenIdatatype :: ([PP_Doc])+                             _childrenIterminaldefs :: (Set String)+                             _visitsIallvisits :: ([VisitStateState])+                             _visitsIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                             _visitsIerrors :: (Seq Error)+                             _visitsIfromToStates :: (Map VisitIdentifier (Int,Int))+                             _visitsIintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))+                             _visitsIlazyIntras :: (Set String)+                             _visitsIruleKinds :: (Map Identifier (Set VisitKind))+                             _visitsIruleUsage :: (Map Identifier Int)+                             _visitsIsem_visit :: ( [(StateIdentifier,Bool -> PP_Doc)] )+                             _visitsIt_visits :: PP_Doc+                             _visitsIvisitKinds :: (Map VisitIdentifier VisitKind)+                             _visitsIvisitdefs :: (Map VisitIdentifier (Set Identifier))+                             _visitsIvisituses :: (Map VisitIdentifier (Set Identifier))+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 69, column 17)+                             _childrenOcon =+                                 ({-# LINE 69 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  con_+                                  {-# LINE 2857 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 70, column 17)+                             _rulesOcon =+                                 ({-# LINE 70 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  con_+                                  {-# LINE 2863 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 71, column 17)+                             _visitsOcon =+                                 ({-# LINE 71 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  con_+                                  {-# LINE 2869 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 184, column 17)+                             _lhsOdatatype =+                                 ({-# LINE 184 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _quantPP1     >#< _classPP1+                                  >#< conname _lhsIrename _lhsInt con_+                                  >#< ppConFields (dataRecords _lhsIoptions) _childrenIdatatype+                                  {-# LINE 2877 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 187, column 17)+                             _classPP1 =+                                 ({-# LINE 187 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  ppClasses (classConstrsToDocs constraints_)+                                  {-# LINE 2883 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 188, column 17)+                             _quantPP1 =+                                 ({-# LINE 188 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  ppQuants params_+                                  {-# LINE 2889 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 289, column 32)+                             _lhsOcount =+                                 ({-# LINE 289 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  1+                                  {-# LINE 2895 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 294, column 17)+                             _lhsOsem_nt =+                                 ({-# LINE 294 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  "sem_" >|< _lhsInt >#< "(" >#< conname _lhsIrename _lhsInt con_ >#< ppSpaced _childrenIargpats >#< ")"+                                  >#< "=" >#< "sem_" >|< _lhsInt >|< "_" >|< con_ >#< ppSpaced _childrenIargnamesw+                                  {-# LINE 2902 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 524, column 3)+                             _lhsOsemFunBndDefs =+                                 ({-# LINE 524 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  Seq.singleton _semFunBndDef+                                  {-# LINE 2908 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 525, column 3)+                             _lhsOsemFunBndTps =+                                 ({-# LINE 525 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  Seq.singleton _semFunBndTp+                                  {-# LINE 2914 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 526, column 3)+                             _semFunBndDef =+                                 ({-# LINE 526 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _semFunBndNm     >#< "=" >#< _semname+                                  {-# LINE 2920 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 527, column 3)+                             _semFunBndTp =+                                 ({-# LINE 527 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _semFunBndNm     >#< "::" >#< _sem_tp+                                  {-# LINE 2926 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 528, column 3)+                             _semFunBndNm =+                                 ({-# LINE 528 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  lateSemConLabel _lhsInt con_+                                  {-# LINE 2932 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 586, column 17)+                             _t_type =+                                 ({-# LINE 586 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  "T_" >|< _lhsInt+                                  {-# LINE 2938 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 587, column 17)+                             _t_params =+                                 ({-# LINE 587 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  ppSpaced _lhsIparams+                                  {-# LINE 2944 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 588, column 17)+                             _args =+                                 ({-# LINE 588 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _childrenIargpats+                                  {-# LINE 2950 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 589, column 17)+                             _semname =+                                 ({-# LINE 589 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  "sem_" ++ show _lhsInt ++ "_" ++ show con_+                                  {-# LINE 2956 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 590, column 17)+                             _sem_tp =+                                 ({-# LINE 590 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _quantPP2     >#< _classPP2     >#< ppSpaced _childrenIargtps >#< _t_type     >#< _t_params+                                  {-# LINE 2962 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 591, column 17)+                             _classPP2 =+                                 ({-# LINE 591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  ppClasses (classCtxsToDocs _lhsIclassCtxs ++ classConstrsToDocs constraints_)+                                  {-# LINE 2968 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 592, column 17)+                             _quantPP2 =+                                 ({-# LINE 592 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  ppQuants (_lhsIparams ++ params_)+                                  {-# LINE 2974 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 593, column 17)+                             _sem_prod =+                                 ({-# LINE 593 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _semInlinePragma+                                  >-< _semname     >#< "::" >#< _sem_tp+                                  >-< _mkSemBody     (_semname     >#< ppSpaced _args     >#< "=" >#< _scc     >#< _t_type    )+                                                     _mbInitializer     _outerlet     ("return" >#< "st" >|< _lhsIinitial)+                                  {-# LINE 2983 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 597, column 17)+                             _mkSemBody =+                                 ({-# LINE 597 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  \prefix mbInit outerlet ret ->+                                    case mbInit of+                                      Nothing -> prefix >#< pp_parens ret >#< "where"+                                                 >-< indent 3 outerlet+                                      Just m  -> prefix >#< "(" >#< "do"+                                                 >-< indent 1 (+                                                       m+                                                       >-< "let"+                                                       >-< indent 2 outerlet+                                                       >-< ret )+                                                 >-< indent 1 ")"+                                  {-# LINE 2999 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 609, column 17)+                             _mbInitializer =+                                 ({-# LINE 609 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  if parallelInvoke _lhsIoptions+                                  then (Nothing :: Maybe PP_Doc)+                                  else Nothing+                                  {-# LINE 3007 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 615, column 17)+                             _scc =+                                 ({-# LINE 615 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  if genCostCentres _lhsIoptions+                                  then ppCostCentre _semname+                                  else empty+                                  {-# LINE 3015 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 618, column 17)+                             _semInlinePragma =+                                 ({-# LINE 618 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  if noInlinePragmas _lhsIoptions+                                  then empty+                                  else ppNoInline _semname+                                  {-# LINE 3023 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 621, column 17)+                             _outerlet =+                                 ({-# LINE 621 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  vlist _statefns     >-< _rulesIsem_rules+                                  {-# LINE 3029 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 622, column 17)+                             _statefns =+                                 ({-# LINE 622 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  map _genstfn     $ Set.toList _lhsIallstates+                                  {-# LINE 3035 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 623, column 17)+                             _genstfn =+                                 ({-# LINE 623 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  \st -> let nextVisitInfo = Map.findWithDefault ManyVis st _lhsInextVisits+                                             prevVisitInfo = Map.findWithDefault ManyVis st _lhsIprevVisits+                                             stNm = "st" >|< st+                                             lhs  = pragma >-< bang stNm >#< "=" >#<+                                                    (+                                                      if st == _lhsIinitial+                                                      then empty+                                                      else "\\" >#< _stargs     st >#< "->"+                                                    )+                                             pragma = if noInlinePragmas _lhsIoptions+                                                      then empty+                                                      else if helpInlining _lhsIoptions+                                                           then case prevVisitInfo of+                                                                  ManyVis  -> ppNoInline stNm+                                                                  OneVis _ -> if aggressiveInlinePragmas _lhsIoptions+                                                                              then ppInline stNm+                                                                              else ppInlinable stNm+                                                                  NoneVis  -> if st /= _lhsIinitial+                                                                              then error ("State " ++ show st ++ " is not reachable from the initial state.")+                                                                              else if aggressiveInlinePragmas _lhsIoptions+                                                                                   then ppInline stNm+                                                                                   else ppInlinable stNm+                                                           else ppNoInline stNm+                                             cCon = "C_" >|< _lhsInt >|< "_s" >|< st+                                             bang | st == _lhsIinitial = _addbang+                                                  | otherwise          = id+                                         in case nextVisitInfo of+                                              NoneVis    ->+                                                            if st == _lhsIinitial+                                                            then lhs >#< cCon+                                                            else empty+                                              OneVis vId -> mklet lhs (_stvs     st False) (cCon >#< "v" >|< vId)+                                              ManyVis    -> mklet lhs (_stks     st >-< _stvs     st True) (cCon >#< "k" >|< st)+                                  {-# LINE 3073 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 665, column 17)+                             _stargs =+                                 ({-# LINE 665 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  \st -> let attrs = maybe Map.empty id $ Map.lookup st _visitsIintramap+                                         in ppSpaced [ let match | str `Set.member` _lazyIntras     = pp str+                                                                 | otherwise                        = _addbang     (pp str)+                                                       in case mbAttr of+                                                            Just (AttrSyn child nm) | child == _LOC && not (noPerStateTypeSigs _lhsIoptions) ->+                                                              case Map.lookup nm _localAttrTypes     of+                                                                Just tp -> pp_parens (pp_parens match >#< "::" >#< ppTp tp)+                                                                Nothing -> match+                                                            Just attr | not (noPerStateTypeSigs _lhsIoptions) ->+                                                              case lookupAttrType attr _lhsIallInhmap _lhsIallSynmap _childTypes     of+                                                                Just tpDoc -> pp_parens (pp_parens match >#< "::" >#< tpDoc)+                                                                Nothing    -> match+                                                            _ -> match+                                                    | (str,mbAttr) <- Map.assocs attrs+                                                    ] >#< dummyPat _lhsIoptions (Map.null attrs)+                                  {-# LINE 3093 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 681, column 17)+                             _stks =+                                 ({-# LINE 681 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  \st -> if null (_stvisits     st)+                                         then empty+                                         else ( if not (noInlinePragmas _lhsIoptions) && helpInlining _lhsIoptions+                                                then ppNoInline ("k" >|< st)+                                                else empty+                                              )+                                              >-< "k" >|< st >#< "::" >#< "K_" >|< _lhsInt >|< "_s" >|< st >#< "t" >#< "->" >#< "t"+                                              >-< vlist (map (\(v,f,t) -> "k" >|< st >#< "K_" >|< _lhsInt >|< "_v" >|< v >#< "="+                                                                     >#< "v" >|< v) $ _stvisits     st)+                                  {-# LINE 3107 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 690, column 17)+                             _stvisits =+                                 ({-# LINE 690 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  \st -> filter (\(v,f,t) -> f == st) _visitsIallvisits+                                  {-# LINE 3113 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 691, column 17)+                             _stvs =+                                 ({-# LINE 691 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  \st inlinePragma -> vlist [ppf inlinePragma | (f,ppf) <- _visitsIsem_visit, f == st]+                                  {-# LINE 3119 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 692, column 17)+                             _visitsOmrules =+                                 ({-# LINE 692 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _rulesImrules+                                  {-# LINE 3125 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 896, column 17)+                             _visitsOchildintros =+                                 ({-# LINE 896 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _childrenIchildintros+                                  {-# LINE 3131 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1246, column 32)+                             _rulesOusageInfo =+                                 ({-# LINE 1246 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _visitsIruleUsage+                                  {-# LINE 3137 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1261, column 3)+                             _rulesOruleKinds =+                                 ({-# LINE 1261 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _visitsIruleKinds+                                  {-# LINE 3143 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1290, column 3)+                             _visitsOallintramap =+                                 ({-# LINE 1290 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _visitsIintramap+                                  {-# LINE 3149 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1291, column 3)+                             _visitsOterminaldefs =+                                 ({-# LINE 1291 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _childrenIterminaldefs+                                  {-# LINE 3155 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1315, column 17)+                             _visitsOruledefs =+                                 ({-# LINE 1315 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _rulesIruledefs+                                  {-# LINE 3161 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1316, column 17)+                             _visitsOruleuses =+                                 ({-# LINE 1316 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _rulesIruleuses+                                  {-# LINE 3167 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1370, column 3)+                             _lazyIntras =+                                 ({-# LINE 1370 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _visitsIlazyIntras+                                  {-# LINE 3173 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1467, column 17)+                             _lhsOimports =+                                 ({-# LINE 1467 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  [pp $ "import " ++ _moduleName    ]+                                  {-# LINE 3179 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1468, column 17)+                             _moduleName =+                                 ({-# LINE 1468 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsImainName ++ _suffix+                                  {-# LINE 3185 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1469, column 17)+                             _suffix =+                                 ({-# LINE 1469 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  "_" ++ show _lhsInt ++ "_" ++ show con_+                                  {-# LINE 3191 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1470, column 17)+                             _outputfile =+                                 ({-# LINE 1470 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  replaceBaseName _lhsImainFile (takeBaseName _lhsImainFile ++ _suffix    )+                                  {-# LINE 3197 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1471, column 17)+                             _ppMonadImports =+                                 ({-# LINE 1471 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  if parallelInvoke _lhsIoptions+                                  then pp "import qualified System.IO.Unsafe(unsafePerformIO)"+                                       >-< pp "import System.IO(IO)"+                                       >-< pp "import Control.Concurrent(newEmptyMVar,forkIO,putMVar,takeMVar)"+                                  else pp "import Control.Monad.Identity"+                                  {-# LINE 3207 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1476, column 17)+                             _lhsOgenProdIO =+                                 ({-# LINE 1476 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  writeModule _outputfile+                                      [ warrenFlagsPP _lhsIoptions+                                      , pp $ _lhsIpragmaBlocks+                                      , pp $ _lhsImoduleHeader _lhsImainName _suffix     _semname     True+                                      , _lhsIimportBlocks+                                      , _ppMonadImports+                                      , ( if tupleAsDummyToken _lhsIoptions+                                             then empty+                                             else pp "import GHC.Prim"+                                       )+                                      , pp $ "import " ++ _lhsImainName ++ "_common"+                                      , _sem_prod+                                      ]+                                  {-# LINE 3225 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1517, column 37)+                             _addbang =+                                 ({-# LINE 1517 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  \x -> if bangpats _lhsIoptions then "!" >|< x else x+                                  {-# LINE 3231 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1567, column 3)+                             _childTypes =+                                 ({-# LINE 1567 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  Map.singleton _LHS _lhsIntType `Map.union` _childrenIchildTypes+                                  {-# LINE 3237 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- "src-ag/ExecutionPlan2Hs.ag"(line 1584, column 3)+                             _localAttrTypes =+                                 ({-# LINE 1584 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  Map.findWithDefault Map.empty con_ _lhsIlocalAttrTypes+                                  {-# LINE 3243 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1187, column 37)+                             _lhsOchildvisit =+                                 ({-# LINE 1187 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _visitsIchildvisit+                                  {-# LINE 3249 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)+                             _lhsOerrors =+                                 ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _rulesIerrors Seq.>< _visitsIerrors+                                  {-# LINE 3255 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1544, column 22)+                             _lhsOfromToStates =+                                 ({-# LINE 1544 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _visitsIfromToStates+                                  {-# LINE 3261 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 394, column 59)+                             _lhsOt_visits =+                                 ({-# LINE 394 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _visitsIt_visits+                                  {-# LINE 3267 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)+                             _lhsOvisitKinds =+                                 ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _visitsIvisitKinds+                                  {-# LINE 3273 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1322, column 36)+                             _lhsOvisitdefs =+                                 ({-# LINE 1322 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _visitsIvisitdefs+                                  {-# LINE 3279 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1323, column 36)+                             _lhsOvisituses =+                                 ({-# LINE 1323 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _visitsIvisituses+                                  {-# LINE 3285 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (up)+                             _lhsOallvisits =+                                 ({-# LINE 338 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _visitsIallvisits+                                  {-# LINE 3291 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (from local)+                             _lhsOsem_prod =+                                 ({-# LINE 553 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _sem_prod+                                  {-# LINE 3297 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _rulesOallInhmap =+                                 ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIallInhmap+                                  {-# LINE 3303 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _rulesOallSynmap =+                                 ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIallSynmap+                                  {-# LINE 3309 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (from local)+                             _rulesOchildTypes =+                                 ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _childTypes+                                  {-# LINE 3315 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _rulesOimportBlocks =+                                 ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIimportBlocks+                                  {-# LINE 3321 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _rulesOinhmap =+                                 ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIinhmap+                                  {-# LINE 3327 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (from local)+                             _rulesOlazyIntras =+                                 ({-# LINE 1356 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lazyIntras+                                  {-# LINE 3333 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (from local)+                             _rulesOlocalAttrTypes =+                                 ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _localAttrTypes+                                  {-# LINE 3339 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _rulesOmainFile =+                                 ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsImainFile+                                  {-# LINE 3345 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _rulesOmainName =+                                 ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsImainName+                                  {-# LINE 3351 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _rulesOmoduleHeader =+                                 ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsImoduleHeader+                                  {-# LINE 3357 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _rulesOnt =+                                 ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsInt+                                  {-# LINE 3363 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _rulesOoptions =+                                 ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIoptions+                                  {-# LINE 3369 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _rulesOpragmaBlocks =+                                 ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIpragmaBlocks+                                  {-# LINE 3375 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _rulesOsynmap =+                                 ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIsynmap+                                  {-# LINE 3381 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _rulesOtextBlocks =+                                 ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsItextBlocks+                                  {-# LINE 3387 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _childrenOallInitStates =+                                 ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIallInitStates+                                  {-# LINE 3393 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _childrenOimportBlocks =+                                 ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIimportBlocks+                                  {-# LINE 3399 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _childrenOmainFile =+                                 ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsImainFile+                                  {-# LINE 3405 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _childrenOmainName =+                                 ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsImainName+                                  {-# LINE 3411 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _childrenOmoduleHeader =+                                 ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsImoduleHeader+                                  {-# LINE 3417 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _childrenOnt =+                                 ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsInt+                                  {-# LINE 3423 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _childrenOoptions =+                                 ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIoptions+                                  {-# LINE 3429 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _childrenOpragmaBlocks =+                                 ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIpragmaBlocks+                                  {-# LINE 3435 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _childrenOtextBlocks =+                                 ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsItextBlocks+                                  {-# LINE 3441 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _visitsOallFromToStates =+                                 ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIallFromToStates+                                  {-# LINE 3447 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _visitsOallInhmap =+                                 ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIallInhmap+                                  {-# LINE 3453 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _visitsOallInitStates =+                                 ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIallInitStates+                                  {-# LINE 3459 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _visitsOallSynmap =+                                 ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIallSynmap+                                  {-# LINE 3465 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _visitsOallVisitKinds =+                                 ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIallVisitKinds+                                  {-# LINE 3471 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _visitsOallchildvisit =+                                 ({-# LINE 1186 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIallchildvisit+                                  {-# LINE 3477 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _visitsOavisitdefs =+                                 ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIavisitdefs+                                  {-# LINE 3483 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _visitsOavisituses =+                                 ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIavisituses+                                  {-# LINE 3489 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (from local)+                             _visitsOchildTypes =+                                 ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _childTypes+                                  {-# LINE 3495 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _visitsOinhmap =+                                 ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIinhmap+                                  {-# LINE 3501 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _visitsOnextVisits =+                                 ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsInextVisits+                                  {-# LINE 3507 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _visitsOnt =+                                 ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsInt+                                  {-# LINE 3513 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _visitsOoptions =+                                 ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIoptions+                                  {-# LINE 3519 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _visitsOparams =+                                 ({-# LINE 73 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIparams+                                  {-# LINE 3525 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _visitsOprevVisits =+                                 ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIprevVisits+                                  {-# LINE 3531 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             -- copy rule (down)+                             _visitsOsynmap =+                                 ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}+                                  _lhsIsynmap+                                  {-# LINE 3537 "dist/build/ExecutionPlan2Hs" #-}+                                  )+                             ( _rulesIerrors,_rulesImrules,_rulesIruledefs,_rulesIruleuses,_rulesIsem_rules) =+                                 rules_ _rulesOallInhmap _rulesOallSynmap _rulesOchildTypes _rulesOcon _rulesOimportBlocks _rulesOinhmap _rulesOlazyIntras _rulesOlocalAttrTypes _rulesOmainFile _rulesOmainName _rulesOmoduleHeader _rulesOnt _rulesOoptions _rulesOpragmaBlocks _rulesOruleKinds _rulesOsynmap _rulesOtextBlocks _rulesOusageInfo+                             ( _childrenIargnamesw,_childrenIargpats,_childrenIargtps,_childrenIchildTypes,_childrenIchildintros,_childrenIdatatype,_childrenIterminaldefs) =+                                 children_ _childrenOallInitStates _childrenOcon _childrenOimportBlocks _childrenOmainFile _childrenOmainName _childrenOmoduleHeader _childrenOnt _childrenOoptions _childrenOpragmaBlocks _childrenOtextBlocks+                             ( _visitsIallvisits,_visitsIchildvisit,_visitsIerrors,_visitsIfromToStates,_visitsIintramap,_visitsIlazyIntras,_visitsIruleKinds,_visitsIruleUsage,_visitsIsem_visit,_visitsIt_visits,_visitsIvisitKinds,_visitsIvisitdefs,_visitsIvisituses) =+                                 visits_ _visitsOallFromToStates _visitsOallInhmap _visitsOallInitStates _visitsOallSynmap _visitsOallVisitKinds _visitsOallchildvisit _visitsOallintramap _visitsOavisitdefs _visitsOavisituses _visitsOchildTypes _visitsOchildintros _visitsOcon _visitsOinhmap _visitsOmrules _visitsOnextVisits _visitsOnt _visitsOoptions _visitsOparams _visitsOprevVisits _visitsOruledefs _visitsOruleuses _visitsOsynmap _visitsOterminaldefs+                             ___node =+                                 (Syn_EProduction _lhsOallvisits _lhsOchildvisit _lhsOcount _lhsOdatatype _lhsOerrors _lhsOfromToStates _lhsOgenProdIO _lhsOimports _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOsem_nt _lhsOsem_prod _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses)+                         in  ( _lhsOallvisits,_lhsOchildvisit,_lhsOcount,_lhsOdatatype,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))+-- EProductions ------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allFromToStates      : Map VisitIdentifier (Int,Int)+         allInhmap            : Map NontermIdent Attributes+         allInitStates        : Map NontermIdent Int+         allSynmap            : Map NontermIdent Attributes+         allVisitKinds        : Map VisitIdentifier VisitKind+         allchildvisit        : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))+         allstates            : Set StateIdentifier+         avisitdefs           : Map VisitIdentifier (Set Identifier)+         avisituses           : Map VisitIdentifier (Set Identifier)+         classCtxs            : ClassContext+         importBlocks         : PP_Doc+         inhmap               : Attributes+         initial              : StateIdentifier+         localAttrTypes       : Map ConstructorIdent (Map Identifier Type)+         mainFile             : String+         mainName             : String+         moduleHeader         : String -> String -> String -> Bool -> String+         nextVisits           : Map StateIdentifier StateCtx+         nt                   : NontermIdent+         ntType               : Type+         options              : Options+         params               : [Identifier]+         pragmaBlocks         : String+         prevVisits           : Map StateIdentifier StateCtx+         rename               : Bool+         synmap               : Attributes+         textBlocks           : PP_Doc+      synthesized attributes:+         allvisits            : [VisitStateState]+         childvisit           : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))+         count                : Int+         datatype             : [PP_Doc]+         errors               : Seq Error+         fromToStates         : Map VisitIdentifier (Int,Int)+         genProdIO            : IO ()+         imports              : [PP_Doc]+         semFunBndDefs        : Seq PP_Doc+         semFunBndTps         : Seq PP_Doc+         sem_nt               : PP_Doc+         sem_prod             : PP_Doc+         t_visits             : PP_Doc+         visitKinds           : Map VisitIdentifier VisitKind+         visitdefs            : Map VisitIdentifier (Set Identifier)+         visituses            : Map VisitIdentifier (Set Identifier)+   alternatives:+      alternative Cons:+         child hd             : EProduction +         child tl             : EProductions +      alternative Nil:+-}+-- cata+sem_EProductions :: EProductions ->+                    T_EProductions+sem_EProductions list =+    (Prelude.foldr sem_EProductions_Cons sem_EProductions_Nil (Prelude.map sem_EProduction list))+-- semantic domain+newtype T_EProductions = T_EProductions ((Map VisitIdentifier (Int,Int)) ->+                                         (Map NontermIdent Attributes) ->+                                         (Map NontermIdent Int) ->+                                         (Map NontermIdent Attributes) ->+                                         (Map VisitIdentifier VisitKind) ->+                                         (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))) ->+                                         (Set StateIdentifier) ->+                                         (Map VisitIdentifier (Set Identifier)) ->+                                         (Map VisitIdentifier (Set Identifier)) ->+                                         ClassContext ->+                                         PP_Doc ->+                                         Attributes ->+                                         StateIdentifier ->+                                         (Map ConstructorIdent (Map Identifier Type)) ->+                                         String ->+                                         String ->+                                         (String -> String -> String -> Bool -> String) ->+                                         (Map StateIdentifier StateCtx) ->+                                         NontermIdent ->+                                         Type ->+                                         Options ->+                                         ([Identifier]) ->+                                         String ->+                                         (Map StateIdentifier StateCtx) ->+                                         Bool ->+                                         Attributes ->+                                         PP_Doc ->+                                         ( ([VisitStateState]),(Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),Int,([PP_Doc]),(Seq Error),(Map VisitIdentifier (Int,Int)),(IO ()),([PP_Doc]),(Seq PP_Doc),(Seq PP_Doc),PP_Doc,PP_Doc,PP_Doc,(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier))))+data Inh_EProductions = Inh_EProductions {allFromToStates_Inh_EProductions :: (Map VisitIdentifier (Int,Int)),allInhmap_Inh_EProductions :: (Map NontermIdent Attributes),allInitStates_Inh_EProductions :: (Map NontermIdent Int),allSynmap_Inh_EProductions :: (Map NontermIdent Attributes),allVisitKinds_Inh_EProductions :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_EProductions :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),allstates_Inh_EProductions :: (Set StateIdentifier),avisitdefs_Inh_EProductions :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_EProductions :: (Map VisitIdentifier (Set Identifier)),classCtxs_Inh_EProductions :: ClassContext,importBlocks_Inh_EProductions :: PP_Doc,inhmap_Inh_EProductions :: Attributes,initial_Inh_EProductions :: StateIdentifier,localAttrTypes_Inh_EProductions :: (Map ConstructorIdent (Map Identifier Type)),mainFile_Inh_EProductions :: String,mainName_Inh_EProductions :: String,moduleHeader_Inh_EProductions :: (String -> String -> String -> Bool -> String),nextVisits_Inh_EProductions :: (Map StateIdentifier StateCtx),nt_Inh_EProductions :: NontermIdent,ntType_Inh_EProductions :: Type,options_Inh_EProductions :: Options,params_Inh_EProductions :: ([Identifier]),pragmaBlocks_Inh_EProductions :: String,prevVisits_Inh_EProductions :: (Map StateIdentifier StateCtx),rename_Inh_EProductions :: Bool,synmap_Inh_EProductions :: Attributes,textBlocks_Inh_EProductions :: PP_Doc}+data Syn_EProductions = Syn_EProductions {allvisits_Syn_EProductions :: ([VisitStateState]),childvisit_Syn_EProductions :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),count_Syn_EProductions :: Int,datatype_Syn_EProductions :: ([PP_Doc]),errors_Syn_EProductions :: (Seq Error),fromToStates_Syn_EProductions :: (Map VisitIdentifier (Int,Int)),genProdIO_Syn_EProductions :: (IO ()),imports_Syn_EProductions :: ([PP_Doc]),semFunBndDefs_Syn_EProductions :: (Seq PP_Doc),semFunBndTps_Syn_EProductions :: (Seq PP_Doc),sem_nt_Syn_EProductions :: PP_Doc,sem_prod_Syn_EProductions :: PP_Doc,t_visits_Syn_EProductions :: PP_Doc,visitKinds_Syn_EProductions :: (Map VisitIdentifier VisitKind),visitdefs_Syn_EProductions :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_EProductions :: (Map VisitIdentifier (Set Identifier))}+wrap_EProductions :: T_EProductions ->+                     Inh_EProductions ->+                     Syn_EProductions+wrap_EProductions (T_EProductions sem) (Inh_EProductions _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIclassCtxs _lhsIimportBlocks _lhsIinhmap _lhsIinitial _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInextVisits _lhsInt _lhsIntType _lhsIoptions _lhsIparams _lhsIpragmaBlocks _lhsIprevVisits _lhsIrename _lhsIsynmap _lhsItextBlocks) =+    (let ( _lhsOallvisits,_lhsOchildvisit,_lhsOcount,_lhsOdatatype,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallstates _lhsIavisitdefs _lhsIavisituses _lhsIclassCtxs _lhsIimportBlocks _lhsIinhmap _lhsIinitial _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInextVisits _lhsInt _lhsIntType _lhsIoptions _lhsIparams _lhsIpragmaBlocks _lhsIprevVisits _lhsIrename _lhsIsynmap _lhsItextBlocks+     in  (Syn_EProductions _lhsOallvisits _lhsOchildvisit _lhsOcount _lhsOdatatype _lhsOerrors _lhsOfromToStates _lhsOgenProdIO _lhsOimports _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOsem_nt _lhsOsem_prod _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses))+sem_EProductions_Cons :: T_EProduction ->+                         T_EProductions ->+                         T_EProductions+sem_EProductions_Cons (T_EProduction hd_) (T_EProductions tl_) =+    (T_EProductions (\ _lhsIallFromToStates+                       _lhsIallInhmap+                       _lhsIallInitStates+                       _lhsIallSynmap+                       _lhsIallVisitKinds+                       _lhsIallchildvisit+                       _lhsIallstates+                       _lhsIavisitdefs+                       _lhsIavisituses+                       _lhsIclassCtxs+                       _lhsIimportBlocks+                       _lhsIinhmap+                       _lhsIinitial+                       _lhsIlocalAttrTypes+                       _lhsImainFile+                       _lhsImainName+                       _lhsImoduleHeader+                       _lhsInextVisits+                       _lhsInt+                       _lhsIntType+                       _lhsIoptions+                       _lhsIparams+                       _lhsIpragmaBlocks+                       _lhsIprevVisits+                       _lhsIrename+                       _lhsIsynmap+                       _lhsItextBlocks ->+                         (let _lhsOallvisits :: ([VisitStateState])+                              _lhsOt_visits :: PP_Doc+                              _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                              _lhsOcount :: Int+                              _lhsOdatatype :: ([PP_Doc])+                              _lhsOerrors :: (Seq Error)+                              _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))+                              _lhsOgenProdIO :: (IO ())+                              _lhsOimports :: ([PP_Doc])+                              _lhsOsemFunBndDefs :: (Seq PP_Doc)+                              _lhsOsemFunBndTps :: (Seq PP_Doc)+                              _lhsOsem_nt :: PP_Doc+                              _lhsOsem_prod :: PP_Doc+                              _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)+                              _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))+                              _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))+                              _hdOallFromToStates :: (Map VisitIdentifier (Int,Int))+                              _hdOallInhmap :: (Map NontermIdent Attributes)+                              _hdOallInitStates :: (Map NontermIdent Int)+                              _hdOallSynmap :: (Map NontermIdent Attributes)+                              _hdOallVisitKinds :: (Map VisitIdentifier VisitKind)+                              _hdOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                              _hdOallstates :: (Set StateIdentifier)+                              _hdOavisitdefs :: (Map VisitIdentifier (Set Identifier))+                              _hdOavisituses :: (Map VisitIdentifier (Set Identifier))+                              _hdOclassCtxs :: ClassContext+                              _hdOimportBlocks :: PP_Doc+                              _hdOinhmap :: Attributes+                              _hdOinitial :: StateIdentifier+                              _hdOlocalAttrTypes :: (Map ConstructorIdent (Map Identifier Type))+                              _hdOmainFile :: String+                              _hdOmainName :: String+                              _hdOmoduleHeader :: (String -> String -> String -> Bool -> String)+                              _hdOnextVisits :: (Map StateIdentifier StateCtx)+                              _hdOnt :: NontermIdent+                              _hdOntType :: Type+                              _hdOoptions :: Options+                              _hdOparams :: ([Identifier])+                              _hdOpragmaBlocks :: String+                              _hdOprevVisits :: (Map StateIdentifier StateCtx)+                              _hdOrename :: Bool+                              _hdOsynmap :: Attributes+                              _hdOtextBlocks :: PP_Doc+                              _tlOallFromToStates :: (Map VisitIdentifier (Int,Int))+                              _tlOallInhmap :: (Map NontermIdent Attributes)+                              _tlOallInitStates :: (Map NontermIdent Int)+                              _tlOallSynmap :: (Map NontermIdent Attributes)+                              _tlOallVisitKinds :: (Map VisitIdentifier VisitKind)+                              _tlOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                              _tlOallstates :: (Set StateIdentifier)+                              _tlOavisitdefs :: (Map VisitIdentifier (Set Identifier))+                              _tlOavisituses :: (Map VisitIdentifier (Set Identifier))+                              _tlOclassCtxs :: ClassContext+                              _tlOimportBlocks :: PP_Doc+                              _tlOinhmap :: Attributes+                              _tlOinitial :: StateIdentifier+                              _tlOlocalAttrTypes :: (Map ConstructorIdent (Map Identifier Type))+                              _tlOmainFile :: String+                              _tlOmainName :: String+                              _tlOmoduleHeader :: (String -> String -> String -> Bool -> String)+                              _tlOnextVisits :: (Map StateIdentifier StateCtx)+                              _tlOnt :: NontermIdent+                              _tlOntType :: Type+                              _tlOoptions :: Options+                              _tlOparams :: ([Identifier])+                              _tlOpragmaBlocks :: String+                              _tlOprevVisits :: (Map StateIdentifier StateCtx)+                              _tlOrename :: Bool+                              _tlOsynmap :: Attributes+                              _tlOtextBlocks :: PP_Doc+                              _hdIallvisits :: ([VisitStateState])+                              _hdIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                              _hdIcount :: Int+                              _hdIdatatype :: PP_Doc+                              _hdIerrors :: (Seq Error)+                              _hdIfromToStates :: (Map VisitIdentifier (Int,Int))+                              _hdIgenProdIO :: (IO ())+                              _hdIimports :: ([PP_Doc])+                              _hdIsemFunBndDefs :: (Seq PP_Doc)+                              _hdIsemFunBndTps :: (Seq PP_Doc)+                              _hdIsem_nt :: PP_Doc+                              _hdIsem_prod :: PP_Doc+                              _hdIt_visits :: PP_Doc+                              _hdIvisitKinds :: (Map VisitIdentifier VisitKind)+                              _hdIvisitdefs :: (Map VisitIdentifier (Set Identifier))+                              _hdIvisituses :: (Map VisitIdentifier (Set Identifier))+                              _tlIallvisits :: ([VisitStateState])+                              _tlIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                              _tlIcount :: Int+                              _tlIdatatype :: ([PP_Doc])+                              _tlIerrors :: (Seq Error)+                              _tlIfromToStates :: (Map VisitIdentifier (Int,Int))+                              _tlIgenProdIO :: (IO ())+                              _tlIimports :: ([PP_Doc])+                              _tlIsemFunBndDefs :: (Seq PP_Doc)+                              _tlIsemFunBndTps :: (Seq PP_Doc)+                              _tlIsem_nt :: PP_Doc+                              _tlIsem_prod :: PP_Doc+                              _tlIt_visits :: PP_Doc+                              _tlIvisitKinds :: (Map VisitIdentifier VisitKind)+                              _tlIvisitdefs :: (Map VisitIdentifier (Set Identifier))+                              _tlIvisituses :: (Map VisitIdentifier (Set Identifier))+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 344, column 10)+                              _lhsOallvisits =+                                  ({-# LINE 344 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _hdIallvisits+                                   {-# LINE 3781 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 397, column 10)+                              _lhsOt_visits =+                                  ({-# LINE 397 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _hdIt_visits+                                   {-# LINE 3787 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1187, column 37)+                              _lhsOchildvisit =+                                  ({-# LINE 1187 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _hdIchildvisit `Map.union` _tlIchildvisit+                                   {-# LINE 3793 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 288, column 43)+                              _lhsOcount =+                                  ({-# LINE 288 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _hdIcount + _tlIcount+                                   {-# LINE 3799 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 179, column 34)+                              _lhsOdatatype =+                                  ({-# LINE 179 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _hdIdatatype : _tlIdatatype+                                   {-# LINE 3805 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)+                              _lhsOerrors =+                                  ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _hdIerrors Seq.>< _tlIerrors+                                   {-# LINE 3811 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1544, column 22)+                              _lhsOfromToStates =+                                  ({-# LINE 1544 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _hdIfromToStates `mappend` _tlIfromToStates+                                   {-# LINE 3817 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1464, column 49)+                              _lhsOgenProdIO =+                                  ({-# LINE 1464 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _hdIgenProdIO >> _tlIgenProdIO+                                   {-# LINE 3823 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1463, column 47)+                              _lhsOimports =+                                  ({-# LINE 1463 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _hdIimports ++ _tlIimports+                                   {-# LINE 3829 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 515, column 92)+                              _lhsOsemFunBndDefs =+                                  ({-# LINE 515 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _hdIsemFunBndDefs Seq.>< _tlIsemFunBndDefs+                                   {-# LINE 3835 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 515, column 92)+                              _lhsOsemFunBndTps =+                                  ({-# LINE 515 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _hdIsemFunBndTps Seq.>< _tlIsemFunBndTps+                                   {-# LINE 3841 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 292, column 44)+                              _lhsOsem_nt =+                                  ({-# LINE 292 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _hdIsem_nt >-< _tlIsem_nt+                                   {-# LINE 3847 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 554, column 34)+                              _lhsOsem_prod =+                                  ({-# LINE 554 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _hdIsem_prod >-< _tlIsem_prod+                                   {-# LINE 3853 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)+                              _lhsOvisitKinds =+                                  ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _hdIvisitKinds `mappend` _tlIvisitKinds+                                   {-# LINE 3859 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1322, column 36)+                              _lhsOvisitdefs =+                                  ({-# LINE 1322 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _hdIvisitdefs `uwSetUnion` _tlIvisitdefs+                                   {-# LINE 3865 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1323, column 36)+                              _lhsOvisituses =+                                  ({-# LINE 1323 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _hdIvisituses `uwSetUnion` _tlIvisituses+                                   {-# LINE 3871 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOallFromToStates =+                                  ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallFromToStates+                                   {-# LINE 3877 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOallInhmap =+                                  ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallInhmap+                                   {-# LINE 3883 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOallInitStates =+                                  ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallInitStates+                                   {-# LINE 3889 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOallSynmap =+                                  ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallSynmap+                                   {-# LINE 3895 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOallVisitKinds =+                                  ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallVisitKinds+                                   {-# LINE 3901 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOallchildvisit =+                                  ({-# LINE 1186 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallchildvisit+                                   {-# LINE 3907 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOallstates =+                                  ({-# LINE 557 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallstates+                                   {-# LINE 3913 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOavisitdefs =+                                  ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIavisitdefs+                                   {-# LINE 3919 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOavisituses =+                                  ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIavisituses+                                   {-# LINE 3925 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOclassCtxs =+                                  ({-# LINE 77 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIclassCtxs+                                   {-# LINE 3931 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOimportBlocks =+                                  ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIimportBlocks+                                   {-# LINE 3937 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOinhmap =+                                  ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIinhmap+                                   {-# LINE 3943 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOinitial =+                                  ({-# LINE 556 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIinitial+                                   {-# LINE 3949 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOlocalAttrTypes =+                                  ({-# LINE 1577 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIlocalAttrTypes+                                   {-# LINE 3955 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOmainFile =+                                  ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsImainFile+                                   {-# LINE 3961 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOmainName =+                                  ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsImainName+                                   {-# LINE 3967 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOmoduleHeader =+                                  ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsImoduleHeader+                                   {-# LINE 3973 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOnextVisits =+                                  ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsInextVisits+                                   {-# LINE 3979 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOnt =+                                  ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsInt+                                   {-# LINE 3985 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOntType =+                                  ({-# LINE 1620 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIntType+                                   {-# LINE 3991 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOoptions =+                                  ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIoptions+                                   {-# LINE 3997 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOparams =+                                  ({-# LINE 73 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIparams+                                   {-# LINE 4003 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOpragmaBlocks =+                                  ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIpragmaBlocks+                                   {-# LINE 4009 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOprevVisits =+                                  ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIprevVisits+                                   {-# LINE 4015 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOrename =+                                  ({-# LINE 52 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIrename+                                   {-# LINE 4021 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOsynmap =+                                  ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIsynmap+                                   {-# LINE 4027 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _hdOtextBlocks =+                                  ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsItextBlocks+                                   {-# LINE 4033 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOallFromToStates =+                                  ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallFromToStates+                                   {-# LINE 4039 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOallInhmap =+                                  ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallInhmap+                                   {-# LINE 4045 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOallInitStates =+                                  ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallInitStates+                                   {-# LINE 4051 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOallSynmap =+                                  ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallSynmap+                                   {-# LINE 4057 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOallVisitKinds =+                                  ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallVisitKinds+                                   {-# LINE 4063 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOallchildvisit =+                                  ({-# LINE 1186 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallchildvisit+                                   {-# LINE 4069 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOallstates =+                                  ({-# LINE 557 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIallstates+                                   {-# LINE 4075 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOavisitdefs =+                                  ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIavisitdefs+                                   {-# LINE 4081 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOavisituses =+                                  ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIavisituses+                                   {-# LINE 4087 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOclassCtxs =+                                  ({-# LINE 77 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIclassCtxs+                                   {-# LINE 4093 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOimportBlocks =+                                  ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIimportBlocks+                                   {-# LINE 4099 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOinhmap =+                                  ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIinhmap+                                   {-# LINE 4105 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOinitial =+                                  ({-# LINE 556 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIinitial+                                   {-# LINE 4111 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOlocalAttrTypes =+                                  ({-# LINE 1577 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIlocalAttrTypes+                                   {-# LINE 4117 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOmainFile =+                                  ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsImainFile+                                   {-# LINE 4123 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOmainName =+                                  ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsImainName+                                   {-# LINE 4129 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOmoduleHeader =+                                  ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsImoduleHeader+                                   {-# LINE 4135 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOnextVisits =+                                  ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsInextVisits+                                   {-# LINE 4141 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOnt =+                                  ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsInt+                                   {-# LINE 4147 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOntType =+                                  ({-# LINE 1620 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIntType+                                   {-# LINE 4153 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOoptions =+                                  ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIoptions+                                   {-# LINE 4159 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOparams =+                                  ({-# LINE 73 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIparams+                                   {-# LINE 4165 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOpragmaBlocks =+                                  ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIpragmaBlocks+                                   {-# LINE 4171 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOprevVisits =+                                  ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIprevVisits+                                   {-# LINE 4177 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOrename =+                                  ({-# LINE 52 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIrename+                                   {-# LINE 4183 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOsynmap =+                                  ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsIsynmap+                                   {-# LINE 4189 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- copy rule (down)+                              _tlOtextBlocks =+                                  ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   _lhsItextBlocks+                                   {-# LINE 4195 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              ( _hdIallvisits,_hdIchildvisit,_hdIcount,_hdIdatatype,_hdIerrors,_hdIfromToStates,_hdIgenProdIO,_hdIimports,_hdIsemFunBndDefs,_hdIsemFunBndTps,_hdIsem_nt,_hdIsem_prod,_hdIt_visits,_hdIvisitKinds,_hdIvisitdefs,_hdIvisituses) =+                                  hd_ _hdOallFromToStates _hdOallInhmap _hdOallInitStates _hdOallSynmap _hdOallVisitKinds _hdOallchildvisit _hdOallstates _hdOavisitdefs _hdOavisituses _hdOclassCtxs _hdOimportBlocks _hdOinhmap _hdOinitial _hdOlocalAttrTypes _hdOmainFile _hdOmainName _hdOmoduleHeader _hdOnextVisits _hdOnt _hdOntType _hdOoptions _hdOparams _hdOpragmaBlocks _hdOprevVisits _hdOrename _hdOsynmap _hdOtextBlocks+                              ( _tlIallvisits,_tlIchildvisit,_tlIcount,_tlIdatatype,_tlIerrors,_tlIfromToStates,_tlIgenProdIO,_tlIimports,_tlIsemFunBndDefs,_tlIsemFunBndTps,_tlIsem_nt,_tlIsem_prod,_tlIt_visits,_tlIvisitKinds,_tlIvisitdefs,_tlIvisituses) =+                                  tl_ _tlOallFromToStates _tlOallInhmap _tlOallInitStates _tlOallSynmap _tlOallVisitKinds _tlOallchildvisit _tlOallstates _tlOavisitdefs _tlOavisituses _tlOclassCtxs _tlOimportBlocks _tlOinhmap _tlOinitial _tlOlocalAttrTypes _tlOmainFile _tlOmainName _tlOmoduleHeader _tlOnextVisits _tlOnt _tlOntType _tlOoptions _tlOparams _tlOpragmaBlocks _tlOprevVisits _tlOrename _tlOsynmap _tlOtextBlocks+                              ___node =+                                  (Syn_EProductions _lhsOallvisits _lhsOchildvisit _lhsOcount _lhsOdatatype _lhsOerrors _lhsOfromToStates _lhsOgenProdIO _lhsOimports _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOsem_nt _lhsOsem_prod _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses)+                          in  ( _lhsOallvisits,_lhsOchildvisit,_lhsOcount,_lhsOdatatype,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))+sem_EProductions_Nil :: T_EProductions+sem_EProductions_Nil =+    (T_EProductions (\ _lhsIallFromToStates+                       _lhsIallInhmap+                       _lhsIallInitStates+                       _lhsIallSynmap+                       _lhsIallVisitKinds+                       _lhsIallchildvisit+                       _lhsIallstates+                       _lhsIavisitdefs+                       _lhsIavisituses+                       _lhsIclassCtxs+                       _lhsIimportBlocks+                       _lhsIinhmap+                       _lhsIinitial+                       _lhsIlocalAttrTypes+                       _lhsImainFile+                       _lhsImainName+                       _lhsImoduleHeader+                       _lhsInextVisits+                       _lhsInt+                       _lhsIntType+                       _lhsIoptions+                       _lhsIparams+                       _lhsIpragmaBlocks+                       _lhsIprevVisits+                       _lhsIrename+                       _lhsIsynmap+                       _lhsItextBlocks ->+                         (let _lhsOallvisits :: ([VisitStateState])+                              _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                              _lhsOcount :: Int+                              _lhsOdatatype :: ([PP_Doc])+                              _lhsOerrors :: (Seq Error)+                              _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))+                              _lhsOgenProdIO :: (IO ())+                              _lhsOimports :: ([PP_Doc])+                              _lhsOsemFunBndDefs :: (Seq PP_Doc)+                              _lhsOsemFunBndTps :: (Seq PP_Doc)+                              _lhsOsem_nt :: PP_Doc+                              _lhsOsem_prod :: PP_Doc+                              _lhsOt_visits :: PP_Doc+                              _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)+                              _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))+                              _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))+                              -- "src-ag/ExecutionPlan2Hs.ag"(line 345, column 10)+                              _lhsOallvisits =+                                  ({-# LINE 345 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   error "Every nonterminal should have at least 1 production"+                                   {-# LINE 4253 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1187, column 37)+                              _lhsOchildvisit =+                                  ({-# LINE 1187 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   Map.empty+                                   {-# LINE 4259 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 288, column 43)+                              _lhsOcount =+                                  ({-# LINE 288 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   0+                                   {-# LINE 4265 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 179, column 34)+                              _lhsOdatatype =+                                  ({-# LINE 179 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   []+                                   {-# LINE 4271 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)+                              _lhsOerrors =+                                  ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   Seq.empty+                                   {-# LINE 4277 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1544, column 22)+                              _lhsOfromToStates =+                                  ({-# LINE 1544 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   mempty+                                   {-# LINE 4283 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1464, column 49)+                              _lhsOgenProdIO =+                                  ({-# LINE 1464 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   return ()+                                   {-# LINE 4289 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1463, column 47)+                              _lhsOimports =+                                  ({-# LINE 1463 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   []+                                   {-# LINE 4295 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 515, column 92)+                              _lhsOsemFunBndDefs =+                                  ({-# LINE 515 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   Seq.empty+                                   {-# LINE 4301 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 515, column 92)+                              _lhsOsemFunBndTps =+                                  ({-# LINE 515 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   Seq.empty+                                   {-# LINE 4307 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 292, column 44)+                              _lhsOsem_nt =+                                  ({-# LINE 292 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   empty+                                   {-# LINE 4313 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 554, column 34)+                              _lhsOsem_prod =+                                  ({-# LINE 554 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   empty+                                   {-# LINE 4319 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 394, column 59)+                              _lhsOt_visits =+                                  ({-# LINE 394 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   empty+                                   {-# LINE 4325 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)+                              _lhsOvisitKinds =+                                  ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   mempty+                                   {-# LINE 4331 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1322, column 36)+                              _lhsOvisitdefs =+                                  ({-# LINE 1322 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   Map.empty+                                   {-# LINE 4337 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1323, column 36)+                              _lhsOvisituses =+                                  ({-# LINE 1323 "src-ag/ExecutionPlan2Hs.ag" #-}+                                   Map.empty+                                   {-# LINE 4343 "dist/build/ExecutionPlan2Hs" #-}+                                   )+                              ___node =+                                  (Syn_EProductions _lhsOallvisits _lhsOchildvisit _lhsOcount _lhsOdatatype _lhsOerrors _lhsOfromToStates _lhsOgenProdIO _lhsOimports _lhsOsemFunBndDefs _lhsOsemFunBndTps _lhsOsem_nt _lhsOsem_prod _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses)+                          in  ( _lhsOallvisits,_lhsOchildvisit,_lhsOcount,_lhsOdatatype,_lhsOerrors,_lhsOfromToStates,_lhsOgenProdIO,_lhsOimports,_lhsOsemFunBndDefs,_lhsOsemFunBndTps,_lhsOsem_nt,_lhsOsem_prod,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))+-- ERule -------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allInhmap            : Map NontermIdent Attributes+         allSynmap            : Map NontermIdent Attributes+         childTypes           : Map Identifier Type+         con                  : ConstructorIdent+         importBlocks         : PP_Doc+         inhmap               : Attributes+         lazyIntras           : Set String+         localAttrTypes       : Map Identifier Type+         mainFile             : String+         mainName             : String+         moduleHeader         : String -> String -> String -> Bool -> String+         nt                   : NontermIdent+         options              : Options+         pragmaBlocks         : String+         ruleKinds            : Map Identifier (Set VisitKind)+         synmap               : Attributes+         textBlocks           : PP_Doc+         usageInfo            : Map Identifier Int+      synthesized attributes:+         errors               : Seq Error+         mrules               : Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)+         ruledefs             : Map Identifier (Set String)+         ruleuses             : Map Identifier (Map String (Maybe NonLocalAttr))+         sem_rules            : PP_Doc+   alternatives:+      alternative ERule:+         child name           : {Identifier}+         child pattern        : Pattern +         child rhs            : Expression +         child owrt           : {Bool}+         child origin         : {String}+         child explicit       : {Bool}+         child pure           : {Bool}+         child mbError        : {Maybe Error}+         visit 0:+            local rulecode    : _+            local rulePragma  : _+            local scc         : _+            local pragma      : _+            local endpragma   : _+            local genpragma   : _+            local haspos      : _+            local lambda      : _+            local argPats     : _+            local argExprs    : _+            local stepcode    : _+            local used        : _+            local kinds       : _+            local anyLazyKind : _+            local addbang     : _+            local addbang1    : _+-}+-- cata+sem_ERule :: ERule ->+             T_ERule+sem_ERule (ERule _name _pattern _rhs _owrt _origin _explicit _pure _mbError) =+    (sem_ERule_ERule _name (sem_Pattern _pattern) (sem_Expression _rhs) _owrt _origin _explicit _pure _mbError)+-- semantic domain+newtype T_ERule = T_ERule ((Map NontermIdent Attributes) ->+                           (Map NontermIdent Attributes) ->+                           (Map Identifier Type) ->+                           ConstructorIdent ->+                           PP_Doc ->+                           Attributes ->+                           (Set String) ->+                           (Map Identifier Type) ->+                           String ->+                           String ->+                           (String -> String -> String -> Bool -> String) ->+                           NontermIdent ->+                           Options ->+                           String ->+                           (Map Identifier (Set VisitKind)) ->+                           Attributes ->+                           PP_Doc ->+                           (Map Identifier Int) ->+                           ( (Seq Error),(Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)),(Map Identifier (Set String)),(Map Identifier (Map String (Maybe NonLocalAttr))),PP_Doc))+data Inh_ERule = Inh_ERule {allInhmap_Inh_ERule :: (Map NontermIdent Attributes),allSynmap_Inh_ERule :: (Map NontermIdent Attributes),childTypes_Inh_ERule :: (Map Identifier Type),con_Inh_ERule :: ConstructorIdent,importBlocks_Inh_ERule :: PP_Doc,inhmap_Inh_ERule :: Attributes,lazyIntras_Inh_ERule :: (Set String),localAttrTypes_Inh_ERule :: (Map Identifier Type),mainFile_Inh_ERule :: String,mainName_Inh_ERule :: String,moduleHeader_Inh_ERule :: (String -> String -> String -> Bool -> String),nt_Inh_ERule :: NontermIdent,options_Inh_ERule :: Options,pragmaBlocks_Inh_ERule :: String,ruleKinds_Inh_ERule :: (Map Identifier (Set VisitKind)),synmap_Inh_ERule :: Attributes,textBlocks_Inh_ERule :: PP_Doc,usageInfo_Inh_ERule :: (Map Identifier Int)}+data Syn_ERule = Syn_ERule {errors_Syn_ERule :: (Seq Error),mrules_Syn_ERule :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)),ruledefs_Syn_ERule :: (Map Identifier (Set String)),ruleuses_Syn_ERule :: (Map Identifier (Map String (Maybe NonLocalAttr))),sem_rules_Syn_ERule :: PP_Doc}+wrap_ERule :: T_ERule ->+              Inh_ERule ->+              Syn_ERule+wrap_ERule (T_ERule sem) (Inh_ERule _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes _lhsIcon _lhsIimportBlocks _lhsIinhmap _lhsIlazyIntras _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInt _lhsIoptions _lhsIpragmaBlocks _lhsIruleKinds _lhsIsynmap _lhsItextBlocks _lhsIusageInfo) =+    (let ( _lhsOerrors,_lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules) = sem _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes _lhsIcon _lhsIimportBlocks _lhsIinhmap _lhsIlazyIntras _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInt _lhsIoptions _lhsIpragmaBlocks _lhsIruleKinds _lhsIsynmap _lhsItextBlocks _lhsIusageInfo+     in  (Syn_ERule _lhsOerrors _lhsOmrules _lhsOruledefs _lhsOruleuses _lhsOsem_rules))+sem_ERule_ERule :: Identifier ->+                   T_Pattern ->+                   T_Expression ->+                   Bool ->+                   String ->+                   Bool ->+                   Bool ->+                   (Maybe Error) ->+                   T_ERule+sem_ERule_ERule name_ (T_Pattern pattern_) (T_Expression rhs_) owrt_ origin_ explicit_ pure_ mbError_ =+    (T_ERule (\ _lhsIallInhmap+                _lhsIallSynmap+                _lhsIchildTypes+                _lhsIcon+                _lhsIimportBlocks+                _lhsIinhmap+                _lhsIlazyIntras+                _lhsIlocalAttrTypes+                _lhsImainFile+                _lhsImainName+                _lhsImoduleHeader+                _lhsInt+                _lhsIoptions+                _lhsIpragmaBlocks+                _lhsIruleKinds+                _lhsIsynmap+                _lhsItextBlocks+                _lhsIusageInfo ->+                  (let _lhsOsem_rules :: PP_Doc+                       _lhsOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))+                       _lhsOruledefs :: (Map Identifier (Set String))+                       _lhsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))+                       _lhsOerrors :: (Seq Error)+                       _patternOallInhmap :: (Map NontermIdent Attributes)+                       _patternOallSynmap :: (Map NontermIdent Attributes)+                       _patternOanyLazyKind :: Bool+                       _patternOinhmap :: Attributes+                       _patternOlocalAttrTypes :: (Map Identifier Type)+                       _patternOoptions :: Options+                       _patternOsynmap :: Attributes+                       _patternIattrTypes :: PP_Doc+                       _patternIattrs :: (Set String)+                       _patternIcopy :: Pattern+                       _patternIisUnderscore :: Bool+                       _patternIsem_lhs :: ( PP_Doc )+                       _rhsIattrs :: (Map String (Maybe NonLocalAttr))+                       _rhsIpos :: Pos+                       _rhsIsemfunc :: PP_Doc+                       _rhsItks :: ([HsToken])+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 965, column 6)+                       _lhsOsem_rules =+                           ({-# LINE 965 "src-ag/ExecutionPlan2Hs.ag" #-}+                            if _used     == 0+                            then empty+                            else _rulePragma     >-< _rulecode+                            {-# LINE 4492 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 968, column 6)+                       _rulecode =+                           ({-# LINE 968 "src-ag/ExecutionPlan2Hs.ag" #-}+                            ( if _genpragma+                              then _pragma+                              else empty+                            )+                            >-< _lambda     >#< _scc+                            >-< indent ((column _rhsIpos - 2) `max` 2)+                                  ( if _genpragma+                                    then _pragma     >-< _rhsIsemfunc >-< _endpragma+                                    else _rhsIsemfunc+                                  )+                            {-# LINE 4507 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 980, column 7)+                       _rulePragma =+                           ({-# LINE 980 "src-ag/ExecutionPlan2Hs.ag" #-}+                            ( let reallyInlineStr   = "INLINE"+                                  reallyNoInlineStr = "NOINLINE"+                              in  if noInlinePragmas _lhsIoptions+                                  then empty+                                  else if _used     == 1+                                       then ppPragmaBinding reallyInlineStr name_+                                       else if helpInlining _lhsIoptions+                                            then if not explicit_ && _used     <= reallyOftenUsedThreshold+                                                 then ppPragmaBinding "INLINE[1]" name_+                                                 else if _used     > ruleInlineThresholdSoft && explicit_+                                                      then if _used     > ruleInlineThresholdHard+                                                           then ppPragmaBinding reallyNoInlineStr name_+                                                           else if aggressiveInlinePragmas _lhsIoptions+                                                                then ppPragmaBinding "NOINLINE[2]" name_+                                                                else ppNoInline name_+                                                      else if aggressiveInlinePragmas _lhsIoptions+                                                           then ppPragmaBinding "NOINLINE[1]" name_+                                                           else ppNoInline name_+                                            else if not explicit_ || _used     <= ruleInlineThresholdSoft+                                                 then ppPragmaBinding "NOINLINE[1]" name_+                                                 else ppNoInline name_+                                )+                            {-# LINE 4534 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1002, column 7)+                       _scc =+                           ({-# LINE 1002 "src-ag/ExecutionPlan2Hs.ag" #-}+                            if genCostCentres _lhsIoptions && explicit_ && pure_ && not (noPerRuleCostCentres _lhsIoptions)+                            then ppCostCentre (name_ >|< "_" >|< line _rhsIpos >|< "_" >|< _lhsInt >|< "_" >|< _lhsIcon)+                            else empty+                            {-# LINE 4542 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1005, column 7)+                       _pragma =+                           ({-# LINE 1005 "src-ag/ExecutionPlan2Hs.ag" #-}+                            "{-# LINE" >#< show (line _rhsIpos) >#< show (file _rhsIpos) >#< "#-}"+                            {-# LINE 4548 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1006, column 7)+                       _endpragma =+                           ({-# LINE 1006 "src-ag/ExecutionPlan2Hs.ag" #-}+                            ppWithLineNr (\ln -> "{-# LINE " ++ show (ln+1) ++ " " ++ show _lhsImainFile ++ "#-}")+                            {-# LINE 4554 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1007, column 7)+                       _genpragma =+                           ({-# LINE 1007 "src-ag/ExecutionPlan2Hs.ag" #-}+                            genLinePragmas _lhsIoptions && explicit_ && _haspos+                            {-# LINE 4560 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1008, column 7)+                       _haspos =+                           ({-# LINE 1008 "src-ag/ExecutionPlan2Hs.ag" #-}+                            line _rhsIpos > 0 && column _rhsIpos >= 0 && not (null (file _rhsIpos))+                            {-# LINE 4566 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1017, column 7)+                       _lambda =+                           ({-# LINE 1017 "src-ag/ExecutionPlan2Hs.ag" #-}+                            name_ >#< "=" >#< "\\" >#< _argPats     >#< dummyPat _lhsIoptions (Map.null _rhsIattrs) >#< "->"+                            {-# LINE 4572 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1019, column 7)+                       _argPats =+                           ({-# LINE 1019 "src-ag/ExecutionPlan2Hs.ag" #-}+                            ppSpaced [ let match | str `Set.member` _lhsIlazyIntras = pp str+                                                 | otherwise                        = _addbang1     (pp str)+                                       in case mbAttr of+                                            Just (AttrSyn child nm) | child == _LOC && not (noPerStateTypeSigs _lhsIoptions) ->+                                              case Map.lookup nm _lhsIlocalAttrTypes of+                                                Just tp -> pp_parens (pp_parens match >#< "::" >#< ppTp tp)+                                                Nothing -> match+                                            Just attr | not (noPerRuleTypeSigs _lhsIoptions) ->+                                              case lookupAttrType attr _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes of+                                                Just tpDoc -> pp_parens (pp_parens match >#< "::" >#< tpDoc)+                                                Nothing    -> match+                                            _ -> match+                                     | (str,mbAttr) <- Map.assocs _rhsIattrs+                                     ]+                            {-# LINE 4591 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1033, column 7)+                       _argExprs =+                           ({-# LINE 1033 "src-ag/ExecutionPlan2Hs.ag" #-}+                            ppSpaced $ Map.keys _rhsIattrs+                            {-# LINE 4597 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1034, column 7)+                       _stepcode =+                           ({-# LINE 1034 "src-ag/ExecutionPlan2Hs.ag" #-}+                            \kind fmtMode -> if kind `compatibleRule` pure_+                                             then Right $ let oper | pure_     = "="+                                                                   | otherwise = "<-"+                                                              decl = _patternIsem_lhs >#< oper >#< name_ >#< _argExprs     >#< dummyArg _lhsIoptions (Map.null _rhsIattrs)+                                                              tp   = if pure_ && not (noPerRuleTypeSigs _lhsIoptions)+                                                                     then _patternIattrTypes+                                                                     else empty+                                                          in fmtDecl pure_ fmtMode (tp >-< decl)+                                             else Left $ IncompatibleRuleKind name_ kind+                            {-# LINE 4611 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1044, column 7)+                       _lhsOmrules =+                           ({-# LINE 1044 "src-ag/ExecutionPlan2Hs.ag" #-}+                            Map.singleton name_ _stepcode+                            {-# LINE 4617 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1248, column 32)+                       _used =+                           ({-# LINE 1248 "src-ag/ExecutionPlan2Hs.ag" #-}+                            Map.findWithDefault 0 name_ _lhsIusageInfo+                            {-# LINE 4623 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1264, column 3)+                       _kinds =+                           ({-# LINE 1264 "src-ag/ExecutionPlan2Hs.ag" #-}+                            Map.findWithDefault Set.empty name_ _lhsIruleKinds+                            {-# LINE 4629 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1265, column 3)+                       _anyLazyKind =+                           ({-# LINE 1265 "src-ag/ExecutionPlan2Hs.ag" #-}+                            Set.fold (\k r -> isLazyKind k || r) False _kinds+                            {-# LINE 4635 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1311, column 11)+                       _lhsOruledefs =+                           ({-# LINE 1311 "src-ag/ExecutionPlan2Hs.ag" #-}+                            Map.singleton name_ _patternIattrs+                            {-# LINE 4641 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1312, column 11)+                       _lhsOruleuses =+                           ({-# LINE 1312 "src-ag/ExecutionPlan2Hs.ag" #-}+                            Map.singleton name_ _rhsIattrs+                            {-# LINE 4647 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1514, column 37)+                       _addbang =+                           ({-# LINE 1514 "src-ag/ExecutionPlan2Hs.ag" #-}+                            \x -> if bangpats _lhsIoptions then "!" >|< x else x+                            {-# LINE 4653 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1525, column 37)+                       _addbang1 =+                           ({-# LINE 1525 "src-ag/ExecutionPlan2Hs.ag" #-}+                            if _anyLazyKind     then id else _addbang+                            {-# LINE 4659 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1631, column 3)+                       _lhsOerrors =+                           ({-# LINE 1631 "src-ag/ExecutionPlan2Hs.ag" #-}+                            case mbError_ of+                              Just e | _used     > 0 -> Seq.singleton e+                              _                      -> Seq.empty+                            {-# LINE 4667 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _patternOallInhmap =+                           ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsIallInhmap+                            {-# LINE 4673 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _patternOallSynmap =+                           ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsIallSynmap+                            {-# LINE 4679 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (from local)+                       _patternOanyLazyKind =+                           ({-# LINE 1267 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _anyLazyKind+                            {-# LINE 4685 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _patternOinhmap =+                           ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsIinhmap+                            {-# LINE 4691 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _patternOlocalAttrTypes =+                           ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsIlocalAttrTypes+                            {-# LINE 4697 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _patternOoptions =+                           ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsIoptions+                            {-# LINE 4703 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _patternOsynmap =+                           ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsIsynmap+                            {-# LINE 4709 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       ( _patternIattrTypes,_patternIattrs,_patternIcopy,_patternIisUnderscore,_patternIsem_lhs) =+                           pattern_ _patternOallInhmap _patternOallSynmap _patternOanyLazyKind _patternOinhmap _patternOlocalAttrTypes _patternOoptions _patternOsynmap+                       ( _rhsIattrs,_rhsIpos,_rhsIsemfunc,_rhsItks) =+                           rhs_+                       ___node =+                           (Syn_ERule _lhsOerrors _lhsOmrules _lhsOruledefs _lhsOruleuses _lhsOsem_rules)+                   in  ( _lhsOerrors,_lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules))))+-- ERules ------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allInhmap            : Map NontermIdent Attributes+         allSynmap            : Map NontermIdent Attributes+         childTypes           : Map Identifier Type+         con                  : ConstructorIdent+         importBlocks         : PP_Doc+         inhmap               : Attributes+         lazyIntras           : Set String+         localAttrTypes       : Map Identifier Type+         mainFile             : String+         mainName             : String+         moduleHeader         : String -> String -> String -> Bool -> String+         nt                   : NontermIdent+         options              : Options+         pragmaBlocks         : String+         ruleKinds            : Map Identifier (Set VisitKind)+         synmap               : Attributes+         textBlocks           : PP_Doc+         usageInfo            : Map Identifier Int+      synthesized attributes:+         errors               : Seq Error+         mrules               : Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)+         ruledefs             : Map Identifier (Set String)+         ruleuses             : Map Identifier (Map String (Maybe NonLocalAttr))+         sem_rules            : PP_Doc+   alternatives:+      alternative Cons:+         child hd             : ERule +         child tl             : ERules +      alternative Nil:+-}+-- cata+sem_ERules :: ERules ->+              T_ERules+sem_ERules list =+    (Prelude.foldr sem_ERules_Cons sem_ERules_Nil (Prelude.map sem_ERule list))+-- semantic domain+newtype T_ERules = T_ERules ((Map NontermIdent Attributes) ->+                             (Map NontermIdent Attributes) ->+                             (Map Identifier Type) ->+                             ConstructorIdent ->+                             PP_Doc ->+                             Attributes ->+                             (Set String) ->+                             (Map Identifier Type) ->+                             String ->+                             String ->+                             (String -> String -> String -> Bool -> String) ->+                             NontermIdent ->+                             Options ->+                             String ->+                             (Map Identifier (Set VisitKind)) ->+                             Attributes ->+                             PP_Doc ->+                             (Map Identifier Int) ->+                             ( (Seq Error),(Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)),(Map Identifier (Set String)),(Map Identifier (Map String (Maybe NonLocalAttr))),PP_Doc))+data Inh_ERules = Inh_ERules {allInhmap_Inh_ERules :: (Map NontermIdent Attributes),allSynmap_Inh_ERules :: (Map NontermIdent Attributes),childTypes_Inh_ERules :: (Map Identifier Type),con_Inh_ERules :: ConstructorIdent,importBlocks_Inh_ERules :: PP_Doc,inhmap_Inh_ERules :: Attributes,lazyIntras_Inh_ERules :: (Set String),localAttrTypes_Inh_ERules :: (Map Identifier Type),mainFile_Inh_ERules :: String,mainName_Inh_ERules :: String,moduleHeader_Inh_ERules :: (String -> String -> String -> Bool -> String),nt_Inh_ERules :: NontermIdent,options_Inh_ERules :: Options,pragmaBlocks_Inh_ERules :: String,ruleKinds_Inh_ERules :: (Map Identifier (Set VisitKind)),synmap_Inh_ERules :: Attributes,textBlocks_Inh_ERules :: PP_Doc,usageInfo_Inh_ERules :: (Map Identifier Int)}+data Syn_ERules = Syn_ERules {errors_Syn_ERules :: (Seq Error),mrules_Syn_ERules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)),ruledefs_Syn_ERules :: (Map Identifier (Set String)),ruleuses_Syn_ERules :: (Map Identifier (Map String (Maybe NonLocalAttr))),sem_rules_Syn_ERules :: PP_Doc}+wrap_ERules :: T_ERules ->+               Inh_ERules ->+               Syn_ERules+wrap_ERules (T_ERules sem) (Inh_ERules _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes _lhsIcon _lhsIimportBlocks _lhsIinhmap _lhsIlazyIntras _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInt _lhsIoptions _lhsIpragmaBlocks _lhsIruleKinds _lhsIsynmap _lhsItextBlocks _lhsIusageInfo) =+    (let ( _lhsOerrors,_lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules) = sem _lhsIallInhmap _lhsIallSynmap _lhsIchildTypes _lhsIcon _lhsIimportBlocks _lhsIinhmap _lhsIlazyIntras _lhsIlocalAttrTypes _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInt _lhsIoptions _lhsIpragmaBlocks _lhsIruleKinds _lhsIsynmap _lhsItextBlocks _lhsIusageInfo+     in  (Syn_ERules _lhsOerrors _lhsOmrules _lhsOruledefs _lhsOruleuses _lhsOsem_rules))+sem_ERules_Cons :: T_ERule ->+                   T_ERules ->+                   T_ERules+sem_ERules_Cons (T_ERule hd_) (T_ERules tl_) =+    (T_ERules (\ _lhsIallInhmap+                 _lhsIallSynmap+                 _lhsIchildTypes+                 _lhsIcon+                 _lhsIimportBlocks+                 _lhsIinhmap+                 _lhsIlazyIntras+                 _lhsIlocalAttrTypes+                 _lhsImainFile+                 _lhsImainName+                 _lhsImoduleHeader+                 _lhsInt+                 _lhsIoptions+                 _lhsIpragmaBlocks+                 _lhsIruleKinds+                 _lhsIsynmap+                 _lhsItextBlocks+                 _lhsIusageInfo ->+                   (let _lhsOerrors :: (Seq Error)+                        _lhsOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))+                        _lhsOruledefs :: (Map Identifier (Set String))+                        _lhsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))+                        _lhsOsem_rules :: PP_Doc+                        _hdOallInhmap :: (Map NontermIdent Attributes)+                        _hdOallSynmap :: (Map NontermIdent Attributes)+                        _hdOchildTypes :: (Map Identifier Type)+                        _hdOcon :: ConstructorIdent+                        _hdOimportBlocks :: PP_Doc+                        _hdOinhmap :: Attributes+                        _hdOlazyIntras :: (Set String)+                        _hdOlocalAttrTypes :: (Map Identifier Type)+                        _hdOmainFile :: String+                        _hdOmainName :: String+                        _hdOmoduleHeader :: (String -> String -> String -> Bool -> String)+                        _hdOnt :: NontermIdent+                        _hdOoptions :: Options+                        _hdOpragmaBlocks :: String+                        _hdOruleKinds :: (Map Identifier (Set VisitKind))+                        _hdOsynmap :: Attributes+                        _hdOtextBlocks :: PP_Doc+                        _hdOusageInfo :: (Map Identifier Int)+                        _tlOallInhmap :: (Map NontermIdent Attributes)+                        _tlOallSynmap :: (Map NontermIdent Attributes)+                        _tlOchildTypes :: (Map Identifier Type)+                        _tlOcon :: ConstructorIdent+                        _tlOimportBlocks :: PP_Doc+                        _tlOinhmap :: Attributes+                        _tlOlazyIntras :: (Set String)+                        _tlOlocalAttrTypes :: (Map Identifier Type)+                        _tlOmainFile :: String+                        _tlOmainName :: String+                        _tlOmoduleHeader :: (String -> String -> String -> Bool -> String)+                        _tlOnt :: NontermIdent+                        _tlOoptions :: Options+                        _tlOpragmaBlocks :: String+                        _tlOruleKinds :: (Map Identifier (Set VisitKind))+                        _tlOsynmap :: Attributes+                        _tlOtextBlocks :: PP_Doc+                        _tlOusageInfo :: (Map Identifier Int)+                        _hdIerrors :: (Seq Error)+                        _hdImrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))+                        _hdIruledefs :: (Map Identifier (Set String))+                        _hdIruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))+                        _hdIsem_rules :: PP_Doc+                        _tlIerrors :: (Seq Error)+                        _tlImrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))+                        _tlIruledefs :: (Map Identifier (Set String))+                        _tlIruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))+                        _tlIsem_rules :: PP_Doc+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)+                        _lhsOerrors =+                            ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdIerrors Seq.>< _tlIerrors+                             {-# LINE 4862 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 962, column 32)+                        _lhsOmrules =+                            ({-# LINE 962 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdImrules `Map.union` _tlImrules+                             {-# LINE 4868 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1304, column 34)+                        _lhsOruledefs =+                            ({-# LINE 1304 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdIruledefs `uwSetUnion` _tlIruledefs+                             {-# LINE 4874 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1305, column 34)+                        _lhsOruleuses =+                            ({-# LINE 1305 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdIruleuses `uwMapUnion` _tlIruleuses+                             {-# LINE 4880 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 961, column 35)+                        _lhsOsem_rules =+                            ({-# LINE 961 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdIsem_rules >-< _tlIsem_rules+                             {-# LINE 4886 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOallInhmap =+                            ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallInhmap+                             {-# LINE 4892 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOallSynmap =+                            ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallSynmap+                             {-# LINE 4898 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOchildTypes =+                            ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIchildTypes+                             {-# LINE 4904 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOcon =+                            ({-# LINE 66 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIcon+                             {-# LINE 4910 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOimportBlocks =+                            ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIimportBlocks+                             {-# LINE 4916 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOinhmap =+                            ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIinhmap+                             {-# LINE 4922 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOlazyIntras =+                            ({-# LINE 1356 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIlazyIntras+                             {-# LINE 4928 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOlocalAttrTypes =+                            ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIlocalAttrTypes+                             {-# LINE 4934 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOmainFile =+                            ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsImainFile+                             {-# LINE 4940 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOmainName =+                            ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsImainName+                             {-# LINE 4946 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOmoduleHeader =+                            ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsImoduleHeader+                             {-# LINE 4952 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOnt =+                            ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsInt+                             {-# LINE 4958 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOoptions =+                            ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIoptions+                             {-# LINE 4964 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOpragmaBlocks =+                            ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIpragmaBlocks+                             {-# LINE 4970 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOruleKinds =+                            ({-# LINE 1259 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIruleKinds+                             {-# LINE 4976 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOsynmap =+                            ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIsynmap+                             {-# LINE 4982 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOtextBlocks =+                            ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsItextBlocks+                             {-# LINE 4988 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOusageInfo =+                            ({-# LINE 1244 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIusageInfo+                             {-# LINE 4994 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOallInhmap =+                            ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallInhmap+                             {-# LINE 5000 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOallSynmap =+                            ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallSynmap+                             {-# LINE 5006 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOchildTypes =+                            ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIchildTypes+                             {-# LINE 5012 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOcon =+                            ({-# LINE 66 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIcon+                             {-# LINE 5018 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOimportBlocks =+                            ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIimportBlocks+                             {-# LINE 5024 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOinhmap =+                            ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIinhmap+                             {-# LINE 5030 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOlazyIntras =+                            ({-# LINE 1356 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIlazyIntras+                             {-# LINE 5036 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOlocalAttrTypes =+                            ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIlocalAttrTypes+                             {-# LINE 5042 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOmainFile =+                            ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsImainFile+                             {-# LINE 5048 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOmainName =+                            ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsImainName+                             {-# LINE 5054 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOmoduleHeader =+                            ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsImoduleHeader+                             {-# LINE 5060 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOnt =+                            ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsInt+                             {-# LINE 5066 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOoptions =+                            ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIoptions+                             {-# LINE 5072 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOpragmaBlocks =+                            ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIpragmaBlocks+                             {-# LINE 5078 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOruleKinds =+                            ({-# LINE 1259 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIruleKinds+                             {-# LINE 5084 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOsynmap =+                            ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIsynmap+                             {-# LINE 5090 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOtextBlocks =+                            ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsItextBlocks+                             {-# LINE 5096 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOusageInfo =+                            ({-# LINE 1244 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIusageInfo+                             {-# LINE 5102 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        ( _hdIerrors,_hdImrules,_hdIruledefs,_hdIruleuses,_hdIsem_rules) =+                            hd_ _hdOallInhmap _hdOallSynmap _hdOchildTypes _hdOcon _hdOimportBlocks _hdOinhmap _hdOlazyIntras _hdOlocalAttrTypes _hdOmainFile _hdOmainName _hdOmoduleHeader _hdOnt _hdOoptions _hdOpragmaBlocks _hdOruleKinds _hdOsynmap _hdOtextBlocks _hdOusageInfo+                        ( _tlIerrors,_tlImrules,_tlIruledefs,_tlIruleuses,_tlIsem_rules) =+                            tl_ _tlOallInhmap _tlOallSynmap _tlOchildTypes _tlOcon _tlOimportBlocks _tlOinhmap _tlOlazyIntras _tlOlocalAttrTypes _tlOmainFile _tlOmainName _tlOmoduleHeader _tlOnt _tlOoptions _tlOpragmaBlocks _tlOruleKinds _tlOsynmap _tlOtextBlocks _tlOusageInfo+                        ___node =+                            (Syn_ERules _lhsOerrors _lhsOmrules _lhsOruledefs _lhsOruleuses _lhsOsem_rules)+                    in  ( _lhsOerrors,_lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules))))+sem_ERules_Nil :: T_ERules+sem_ERules_Nil =+    (T_ERules (\ _lhsIallInhmap+                 _lhsIallSynmap+                 _lhsIchildTypes+                 _lhsIcon+                 _lhsIimportBlocks+                 _lhsIinhmap+                 _lhsIlazyIntras+                 _lhsIlocalAttrTypes+                 _lhsImainFile+                 _lhsImainName+                 _lhsImoduleHeader+                 _lhsInt+                 _lhsIoptions+                 _lhsIpragmaBlocks+                 _lhsIruleKinds+                 _lhsIsynmap+                 _lhsItextBlocks+                 _lhsIusageInfo ->+                   (let _lhsOerrors :: (Seq Error)+                        _lhsOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))+                        _lhsOruledefs :: (Map Identifier (Set String))+                        _lhsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))+                        _lhsOsem_rules :: PP_Doc+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)+                        _lhsOerrors =+                            ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}+                             Seq.empty+                             {-# LINE 5140 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 962, column 32)+                        _lhsOmrules =+                            ({-# LINE 962 "src-ag/ExecutionPlan2Hs.ag" #-}+                             Map.empty+                             {-# LINE 5146 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1304, column 34)+                        _lhsOruledefs =+                            ({-# LINE 1304 "src-ag/ExecutionPlan2Hs.ag" #-}+                             Map.empty+                             {-# LINE 5152 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1305, column 34)+                        _lhsOruleuses =+                            ({-# LINE 1305 "src-ag/ExecutionPlan2Hs.ag" #-}+                             Map.empty+                             {-# LINE 5158 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 961, column 35)+                        _lhsOsem_rules =+                            ({-# LINE 961 "src-ag/ExecutionPlan2Hs.ag" #-}+                             empty+                             {-# LINE 5164 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        ___node =+                            (Syn_ERules _lhsOerrors _lhsOmrules _lhsOruledefs _lhsOruleuses _lhsOsem_rules)+                    in  ( _lhsOerrors,_lhsOmrules,_lhsOruledefs,_lhsOruleuses,_lhsOsem_rules))))+-- ExecutionPlan -----------------------------------------------+{-+   visit 0:+      inherited attributes:+         importBlocks         : PP_Doc+         inhmap               : Map NontermIdent Attributes+         localAttrTypes       : Map NontermIdent (Map ConstructorIdent (Map Identifier Type))+         mainBlocksDoc        : PP_Doc+         mainFile             : String+         mainName             : String+         moduleHeader         : String -> String -> String -> Bool -> String+         options              : Options+         pragmaBlocks         : String+         synmap               : Map NontermIdent Attributes+         textBlockMap         : Map BlockInfo PP_Doc+         textBlocks           : PP_Doc+      synthesized attributes:+         errors               : Seq Error+         genIO                : IO ()+         output               : PP_Doc+   alternatives:+      alternative ExecutionPlan:+         child nonts          : ENonterminals +         child typeSyns       : {TypeSyns}+         child wrappers       : {Set NontermIdent}+         child derivings      : {Derivings}+         visit 0:+            local wrappersExtra : _+            local commonExtra : _+            local lateSemBndTp : _+            local lateSemBndDef : _+            local mainModuleFile : _+            local ppMonadImports : _+            local genMainModule : _+            local commonFile  : _+            local genCommonModule : _+-}+-- cata+sem_ExecutionPlan :: ExecutionPlan ->+                     T_ExecutionPlan+sem_ExecutionPlan (ExecutionPlan _nonts _typeSyns _wrappers _derivings) =+    (sem_ExecutionPlan_ExecutionPlan (sem_ENonterminals _nonts) _typeSyns _wrappers _derivings)+-- semantic domain+newtype T_ExecutionPlan = T_ExecutionPlan (PP_Doc ->+                                           (Map NontermIdent Attributes) ->+                                           (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))) ->+                                           PP_Doc ->+                                           String ->+                                           String ->+                                           (String -> String -> String -> Bool -> String) ->+                                           Options ->+                                           String ->+                                           (Map NontermIdent Attributes) ->+                                           (Map BlockInfo PP_Doc) ->+                                           PP_Doc ->+                                           ( (Seq Error),(IO ()),PP_Doc))+data Inh_ExecutionPlan = Inh_ExecutionPlan {importBlocks_Inh_ExecutionPlan :: PP_Doc,inhmap_Inh_ExecutionPlan :: (Map NontermIdent Attributes),localAttrTypes_Inh_ExecutionPlan :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type))),mainBlocksDoc_Inh_ExecutionPlan :: PP_Doc,mainFile_Inh_ExecutionPlan :: String,mainName_Inh_ExecutionPlan :: String,moduleHeader_Inh_ExecutionPlan :: (String -> String -> String -> Bool -> String),options_Inh_ExecutionPlan :: Options,pragmaBlocks_Inh_ExecutionPlan :: String,synmap_Inh_ExecutionPlan :: (Map NontermIdent Attributes),textBlockMap_Inh_ExecutionPlan :: (Map BlockInfo PP_Doc),textBlocks_Inh_ExecutionPlan :: PP_Doc}+data Syn_ExecutionPlan = Syn_ExecutionPlan {errors_Syn_ExecutionPlan :: (Seq Error),genIO_Syn_ExecutionPlan :: (IO ()),output_Syn_ExecutionPlan :: PP_Doc}+wrap_ExecutionPlan :: T_ExecutionPlan ->+                      Inh_ExecutionPlan ->+                      Syn_ExecutionPlan+wrap_ExecutionPlan (T_ExecutionPlan sem) (Inh_ExecutionPlan _lhsIimportBlocks _lhsIinhmap _lhsIlocalAttrTypes _lhsImainBlocksDoc _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIpragmaBlocks _lhsIsynmap _lhsItextBlockMap _lhsItextBlocks) =+    (let ( _lhsOerrors,_lhsOgenIO,_lhsOoutput) = sem _lhsIimportBlocks _lhsIinhmap _lhsIlocalAttrTypes _lhsImainBlocksDoc _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIpragmaBlocks _lhsIsynmap _lhsItextBlockMap _lhsItextBlocks+     in  (Syn_ExecutionPlan _lhsOerrors _lhsOgenIO _lhsOoutput))+sem_ExecutionPlan_ExecutionPlan :: T_ENonterminals ->+                                   TypeSyns ->+                                   (Set NontermIdent) ->+                                   Derivings ->+                                   T_ExecutionPlan+sem_ExecutionPlan_ExecutionPlan (T_ENonterminals nonts_) typeSyns_ wrappers_ derivings_ =+    (T_ExecutionPlan (\ _lhsIimportBlocks+                        _lhsIinhmap+                        _lhsIlocalAttrTypes+                        _lhsImainBlocksDoc+                        _lhsImainFile+                        _lhsImainName+                        _lhsImoduleHeader+                        _lhsIoptions+                        _lhsIpragmaBlocks+                        _lhsIsynmap+                        _lhsItextBlockMap+                        _lhsItextBlocks ->+                          (let _lhsOoutput :: PP_Doc+                               _nontsOwrappers :: (Set NontermIdent)+                               _nontsOtypeSyns :: TypeSyns+                               _nontsOderivings :: Derivings+                               _nontsOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                               _nontsOavisitdefs :: (Map VisitIdentifier (Set Identifier))+                               _nontsOavisituses :: (Map VisitIdentifier (Set Identifier))+                               _lhsOgenIO :: (IO ())+                               _nontsOallFromToStates :: (Map VisitIdentifier (Int,Int))+                               _nontsOallVisitKinds :: (Map VisitIdentifier VisitKind)+                               _nontsOallInitStates :: (Map NontermIdent Int)+                               _lhsOerrors :: (Seq Error)+                               _nontsOimportBlocks :: PP_Doc+                               _nontsOinhmap :: (Map NontermIdent Attributes)+                               _nontsOlocalAttrTypes :: (Map NontermIdent (Map ConstructorIdent (Map Identifier Type)))+                               _nontsOmainFile :: String+                               _nontsOmainName :: String+                               _nontsOmoduleHeader :: (String -> String -> String -> Bool -> String)+                               _nontsOoptions :: Options+                               _nontsOpragmaBlocks :: String+                               _nontsOsynmap :: (Map NontermIdent Attributes)+                               _nontsOtextBlocks :: PP_Doc+                               _nontsIappendCommon :: ([PP_Doc])+                               _nontsIappendMain :: ([PP_Doc])+                               _nontsIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                               _nontsIerrors :: (Seq Error)+                               _nontsIfromToStates :: (Map VisitIdentifier (Int,Int))+                               _nontsIgenProdIO :: (IO ())+                               _nontsIimports :: ([PP_Doc])+                               _nontsIinitStates :: (Map NontermIdent Int)+                               _nontsIoutput :: PP_Doc+                               _nontsIsemFunBndDefs :: (Seq PP_Doc)+                               _nontsIsemFunBndTps :: (Seq PP_Doc)+                               _nontsIvisitKinds :: (Map VisitIdentifier VisitKind)+                               _nontsIvisitdefs :: (Map VisitIdentifier (Set Identifier))+                               _nontsIvisituses :: (Map VisitIdentifier (Set Identifier))+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 87, column 19)+                               _lhsOoutput =+                                   ({-# LINE 87 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _nontsIoutput >-< _commonExtra     >-< _wrappersExtra+                                    {-# LINE 5291 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 93, column 19)+                               _nontsOwrappers =+                                   ({-# LINE 93 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    wrappers_+                                    {-# LINE 5297 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 132, column 19)+                               _nontsOtypeSyns =+                                   ({-# LINE 132 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    typeSyns_+                                    {-# LINE 5303 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 133, column 19)+                               _nontsOderivings =+                                   ({-# LINE 133 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    derivings_+                                    {-# LINE 5309 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 532, column 3)+                               _wrappersExtra =+                                   ({-# LINE 532 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    if kennedyWarren _lhsIoptions && lateHigherOrderBinding _lhsIoptions+                                    then _lateSemBndDef+                                    else empty+                                    {-# LINE 5317 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 535, column 3)+                               _commonExtra =+                                   ({-# LINE 535 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    if kennedyWarren _lhsIoptions && lateHigherOrderBinding _lhsIoptions+                                    then _lateSemBndTp+                                    else empty+                                    {-# LINE 5325 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 538, column 3)+                               _lateSemBndTp =+                                   ({-# LINE 538 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    "data" >#< lateBindingTypeNm _lhsImainName >#< "=" >#< lateBindingTypeNm _lhsImainName+                                     >-< (indent 2 $ pp_block "{" "}" "," $ toList _nontsIsemFunBndTps)+                                    {-# LINE 5332 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 540, column 3)+                               _lateSemBndDef =+                                   ({-# LINE 540 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    ( if noInlinePragmas _lhsIoptions+                                      then empty+                                      else if helpInlining _lhsIoptions && Set.size wrappers_ == 1+                                           then ppInline $ lateBindingFieldNm _lhsImainName+                                           else ppNoInline $ lateBindingFieldNm _lhsImainName+                                    )+                                    >-< lateBindingFieldNm _lhsImainName >#< "::" >#< lateBindingTypeNm _lhsImainName+                                    >-< lateBindingFieldNm _lhsImainName >#< "=" >#< lateBindingTypeNm _lhsImainName+                                    >-< (indent 2 $ pp_block "{" "}" "," $ toList _nontsIsemFunBndDefs )+                                    {-# LINE 5346 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1192, column 19)+                               _nontsOallchildvisit =+                                   ({-# LINE 1192 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _nontsIchildvisit+                                    {-# LINE 5352 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1336, column 19)+                               _nontsOavisitdefs =+                                   ({-# LINE 1336 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _nontsIvisitdefs+                                    {-# LINE 5358 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1337, column 19)+                               _nontsOavisituses =+                                   ({-# LINE 1337 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _nontsIvisituses+                                    {-# LINE 5364 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1408, column 19)+                               _lhsOgenIO =+                                   ({-# LINE 1408 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    do _genMainModule+                                       _genCommonModule+                                       _nontsIgenProdIO+                                    {-# LINE 5372 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1411, column 19)+                               _mainModuleFile =+                                   ({-# LINE 1411 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsImainFile+                                    {-# LINE 5378 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1412, column 19)+                               _ppMonadImports =+                                   ({-# LINE 1412 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    ( if tupleAsDummyToken _lhsIoptions+                                      then empty+                                      else pp "import GHC.Prim"+                                    )+                                    >-< if parallelInvoke _lhsIoptions+                                        then pp "import qualified System.IO.Unsafe(unsafePerformIO)"+                                             >-< pp "import System.IO(IO)"+                                             >-< pp "import Control.Concurrent(newEmptyMVar,forkIO,putMVar,takeMVar)"+                                        else pp "import Control.Monad.Identity"+                                    {-# LINE 5392 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1421, column 19)+                               _genMainModule =+                                   ({-# LINE 1421 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    writeModule _mainModuleFile+                                      ( [ warrenFlagsPP _lhsIoptions+                                        , pp $ _lhsIpragmaBlocks+                                        , pp $ _lhsImoduleHeader _lhsImainName "" "" False+                                        , _ppMonadImports+                                        , pp $ "import " ++ _lhsImainName ++ "_common"+                                        ]+                                        ++ _nontsIimports+                                        ++ [_lhsImainBlocksDoc]+                                        ++ [_wrappersExtra    ]+                                        ++ _nontsIappendMain+                                      )+                                    {-# LINE 5409 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1433, column 19)+                               _commonFile =+                                   ({-# LINE 1433 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    replaceBaseName _lhsImainFile (takeBaseName _lhsImainFile ++ "_common")+                                    {-# LINE 5415 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1434, column 19)+                               _genCommonModule =+                                   ({-# LINE 1434 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    writeModule _commonFile+                                      ( [ pp $ "{-# LANGUAGE Rank2Types, GADTs #-}"+                                        , pp $ _lhsIpragmaBlocks+                                        , pp $ _lhsImoduleHeader _lhsImainName "_common" "" True+                                        , _ppMonadImports+                                        , _lhsIimportBlocks+                                        , _lhsItextBlocks+                                        , _commonExtra+                                        ]+                                        ++ _nontsIappendCommon+                                      )+                                    {-# LINE 5431 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1553, column 3)+                               _nontsOallFromToStates =+                                   ({-# LINE 1553 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _nontsIfromToStates+                                    {-# LINE 5437 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1597, column 3)+                               _nontsOallVisitKinds =+                                   ({-# LINE 1597 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _nontsIvisitKinds+                                    {-# LINE 5443 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- "src-ag/ExecutionPlan2Hs.ag"(line 1611, column 3)+                               _nontsOallInitStates =+                                   ({-# LINE 1611 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _nontsIinitStates+                                    {-# LINE 5449 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)+                               _lhsOerrors =+                                   ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _nontsIerrors+                                    {-# LINE 5455 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _nontsOimportBlocks =+                                   ({-# LINE 34 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIimportBlocks+                                    {-# LINE 5461 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _nontsOinhmap =+                                   ({-# LINE 312 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIinhmap+                                    {-# LINE 5467 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _nontsOlocalAttrTypes =+                                   ({-# LINE 1576 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIlocalAttrTypes+                                    {-# LINE 5473 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _nontsOmainFile =+                                   ({-# LINE 38 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsImainFile+                                    {-# LINE 5479 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _nontsOmainName =+                                   ({-# LINE 39 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsImainName+                                    {-# LINE 5485 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _nontsOmoduleHeader =+                                   ({-# LINE 37 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsImoduleHeader+                                    {-# LINE 5491 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _nontsOoptions =+                                   ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIoptions+                                    {-# LINE 5497 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _nontsOpragmaBlocks =+                                   ({-# LINE 35 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIpragmaBlocks+                                    {-# LINE 5503 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _nontsOsynmap =+                                   ({-# LINE 313 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsIsynmap+                                    {-# LINE 5509 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               -- copy rule (down)+                               _nontsOtextBlocks =+                                   ({-# LINE 36 "src-ag/ExecutionPlan2Hs.ag" #-}+                                    _lhsItextBlocks+                                    {-# LINE 5515 "dist/build/ExecutionPlan2Hs" #-}+                                    )+                               ( _nontsIappendCommon,_nontsIappendMain,_nontsIchildvisit,_nontsIerrors,_nontsIfromToStates,_nontsIgenProdIO,_nontsIimports,_nontsIinitStates,_nontsIoutput,_nontsIsemFunBndDefs,_nontsIsemFunBndTps,_nontsIvisitKinds,_nontsIvisitdefs,_nontsIvisituses) =+                                   nonts_ _nontsOallFromToStates _nontsOallInitStates _nontsOallVisitKinds _nontsOallchildvisit _nontsOavisitdefs _nontsOavisituses _nontsOderivings _nontsOimportBlocks _nontsOinhmap _nontsOlocalAttrTypes _nontsOmainFile _nontsOmainName _nontsOmoduleHeader _nontsOoptions _nontsOpragmaBlocks _nontsOsynmap _nontsOtextBlocks _nontsOtypeSyns _nontsOwrappers+                               ___node =+                                   (Syn_ExecutionPlan _lhsOerrors _lhsOgenIO _lhsOoutput)+                           in  ( _lhsOerrors,_lhsOgenIO,_lhsOoutput))))+-- Expression --------------------------------------------------+{-+   visit 0:+      synthesized attributes:+         attrs                : Map String (Maybe NonLocalAttr)+         pos                  : Pos+         semfunc              : PP_Doc+         tks                  : [HsToken]+   alternatives:+      alternative Expression:+         child pos            : {Pos}+         child tks            : {[HsToken]}+-}+-- cata+sem_Expression :: Expression ->+                  T_Expression+sem_Expression (Expression _pos _tks) =+    (sem_Expression_Expression _pos _tks)+-- semantic domain+newtype T_Expression = T_Expression (( (Map String (Maybe NonLocalAttr)),Pos,PP_Doc,([HsToken])))+data Inh_Expression = Inh_Expression {}+data Syn_Expression = Syn_Expression {attrs_Syn_Expression :: (Map String (Maybe NonLocalAttr)),pos_Syn_Expression :: Pos,semfunc_Syn_Expression :: PP_Doc,tks_Syn_Expression :: ([HsToken])}+wrap_Expression :: T_Expression ->+                   Inh_Expression ->+                   Syn_Expression+wrap_Expression (T_Expression sem) (Inh_Expression) =+    (let ( _lhsOattrs,_lhsOpos,_lhsOsemfunc,_lhsOtks) = sem+     in  (Syn_Expression _lhsOattrs _lhsOpos _lhsOsemfunc _lhsOtks))+sem_Expression_Expression :: Pos ->+                             ([HsToken]) ->+                             T_Expression+sem_Expression_Expression pos_ tks_ =+    (T_Expression (let _lhsOtks :: ([HsToken])+                       _lhsOpos :: Pos+                       _lhsOattrs :: (Map String (Maybe NonLocalAttr))+                       _lhsOsemfunc :: PP_Doc+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1048, column 16)+                       _lhsOtks =+                           ({-# LINE 1048 "src-ag/ExecutionPlan2Hs.ag" #-}+                            tks_+                            {-# LINE 5562 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1091, column 29)+                       _lhsOpos =+                           ({-# LINE 1091 "src-ag/ExecutionPlan2Hs.ag" #-}+                            pos_+                            {-# LINE 5568 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1177, column 16)+                       _lhsOattrs =+                           ({-# LINE 1177 "src-ag/ExecutionPlan2Hs.ag" #-}+                            Map.unions $ map (\tok -> attrs_Syn_HsToken (wrap_HsToken (sem_HsToken tok) Inh_HsToken)) tks_+                            {-# LINE 5574 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1178, column 16)+                       _lhsOsemfunc =+                           ({-# LINE 1178 "src-ag/ExecutionPlan2Hs.ag" #-}+                            vlist $ showTokens $ map (\tok -> tok_Syn_HsToken (wrap_HsToken (sem_HsToken tok) Inh_HsToken)) tks_+                            {-# LINE 5580 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       ___node =+                           (Syn_Expression _lhsOattrs _lhsOpos _lhsOsemfunc _lhsOtks)+                   in  ( _lhsOattrs,_lhsOpos,_lhsOsemfunc,_lhsOtks)))+-- HsToken -----------------------------------------------------+{-+   visit 0:+      synthesized attributes:+         attrs                : Map String (Maybe NonLocalAttr)+         tok                  : (Pos,String)+   alternatives:+      alternative AGField:+         child field          : {Identifier}+         child attr           : {Identifier}+         child pos            : {Pos}+         child rdesc          : {Maybe String}+         visit 0:+            local mbAttr      : _+            local addTrace    : _+      alternative AGLocal:+         child var            : {Identifier}+         child pos            : {Pos}+         child rdesc          : {Maybe String}+         visit 0:+            local tok         : _+      alternative CharToken:+         child value          : {String}+         child pos            : {Pos}+      alternative Err:+         child mesg           : {String}+         child pos            : {Pos}+      alternative HsToken:+         child value          : {String}+         child pos            : {Pos}+      alternative StrToken:+         child value          : {String}+         child pos            : {Pos}+-}+-- cata+sem_HsToken :: HsToken ->+               T_HsToken+sem_HsToken (AGField _field _attr _pos _rdesc) =+    (sem_HsToken_AGField _field _attr _pos _rdesc)+sem_HsToken (AGLocal _var _pos _rdesc) =+    (sem_HsToken_AGLocal _var _pos _rdesc)+sem_HsToken (CharToken _value _pos) =+    (sem_HsToken_CharToken _value _pos)+sem_HsToken (Err _mesg _pos) =+    (sem_HsToken_Err _mesg _pos)+sem_HsToken (HsToken _value _pos) =+    (sem_HsToken_HsToken _value _pos)+sem_HsToken (StrToken _value _pos) =+    (sem_HsToken_StrToken _value _pos)+-- semantic domain+newtype T_HsToken = T_HsToken (( (Map String (Maybe NonLocalAttr)),((Pos,String))))+data Inh_HsToken = Inh_HsToken {}+data Syn_HsToken = Syn_HsToken {attrs_Syn_HsToken :: (Map String (Maybe NonLocalAttr)),tok_Syn_HsToken :: ((Pos,String))}+wrap_HsToken :: T_HsToken ->+                Inh_HsToken ->+                Syn_HsToken+wrap_HsToken (T_HsToken sem) (Inh_HsToken) =+    (let ( _lhsOattrs,_lhsOtok) = sem+     in  (Syn_HsToken _lhsOattrs _lhsOtok))+sem_HsToken_AGField :: Identifier ->+                       Identifier ->+                       Pos ->+                       (Maybe String) ->+                       T_HsToken+sem_HsToken_AGField field_ attr_ pos_ rdesc_ =+    (T_HsToken (let _lhsOattrs :: (Map String (Maybe NonLocalAttr))+                    _lhsOtok :: ((Pos,String))+                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1137, column 15)+                    _mbAttr =+                        ({-# LINE 1137 "src-ag/ExecutionPlan2Hs.ag" #-}+                         if field_ == _INST || field_ == _FIELD || field_ == _INST'+                         then Nothing+                         else Just $ mkNonLocalAttr (field_ == _LHS) field_ attr_+                         {-# LINE 5658 "dist/build/ExecutionPlan2Hs" #-}+                         )+                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1140, column 15)+                    _lhsOattrs =+                        ({-# LINE 1140 "src-ag/ExecutionPlan2Hs.ag" #-}+                         Map.singleton (attrname True field_ attr_) _mbAttr+                         {-# LINE 5664 "dist/build/ExecutionPlan2Hs" #-}+                         )+                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1385, column 8)+                    _addTrace =+                        ({-# LINE 1385 "src-ag/ExecutionPlan2Hs.ag" #-}+                         case rdesc_ of+                           Just d  -> \x -> "(trace " ++ show (d ++ " -> " ++ show field_ ++ "." ++ show attr_) ++ " (" ++ x ++ "))"+                           Nothing -> id+                         {-# LINE 5672 "dist/build/ExecutionPlan2Hs" #-}+                         )+                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1388, column 8)+                    _lhsOtok =+                        ({-# LINE 1388 "src-ag/ExecutionPlan2Hs.ag" #-}+                         (pos_, _addTrace     $ attrname True field_ attr_)+                         {-# LINE 5678 "dist/build/ExecutionPlan2Hs" #-}+                         )+                    ___node =+                        (Syn_HsToken _lhsOattrs _lhsOtok)+                in  ( _lhsOattrs,_lhsOtok)))+sem_HsToken_AGLocal :: Identifier ->+                       Pos ->+                       (Maybe String) ->+                       T_HsToken+sem_HsToken_AGLocal var_ pos_ rdesc_ =+    (T_HsToken (let _lhsOattrs :: (Map String (Maybe NonLocalAttr))+                    _lhsOtok :: ((Pos,String))+                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1136, column 15)+                    _lhsOattrs =+                        ({-# LINE 1136 "src-ag/ExecutionPlan2Hs.ag" #-}+                         Map.singleton (fieldname var_) Nothing+                         {-# LINE 5694 "dist/build/ExecutionPlan2Hs" #-}+                         )+                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1381, column 15)+                    _tok =+                        ({-# LINE 1381 "src-ag/ExecutionPlan2Hs.ag" #-}+                         (pos_,fieldname var_)+                         {-# LINE 5700 "dist/build/ExecutionPlan2Hs" #-}+                         )+                    -- copy rule (from local)+                    _lhsOtok =+                        ({-# LINE 1383 "src-ag/ExecutionPlan2Hs.ag" #-}+                         _tok+                         {-# LINE 5706 "dist/build/ExecutionPlan2Hs" #-}+                         )+                    ___node =+                        (Syn_HsToken _lhsOattrs _lhsOtok)+                in  ( _lhsOattrs,_lhsOtok)))+sem_HsToken_CharToken :: String ->+                         Pos ->+                         T_HsToken+sem_HsToken_CharToken value_ pos_ =+    (T_HsToken (let _lhsOtok :: ((Pos,String))+                    _lhsOattrs :: (Map String (Maybe NonLocalAttr))+                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1392, column 16)+                    _lhsOtok =+                        ({-# LINE 1392 "src-ag/ExecutionPlan2Hs.ag" #-}+                         (pos_, if null value_+                                   then ""+                                   else showCharShort (head value_)+                         )+                         {-# LINE 5724 "dist/build/ExecutionPlan2Hs" #-}+                         )+                    -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1134, column 37)+                    _lhsOattrs =+                        ({-# LINE 1134 "src-ag/ExecutionPlan2Hs.ag" #-}+                         Map.empty+                         {-# LINE 5730 "dist/build/ExecutionPlan2Hs" #-}+                         )+                    ___node =+                        (Syn_HsToken _lhsOattrs _lhsOtok)+                in  ( _lhsOattrs,_lhsOtok)))+sem_HsToken_Err :: String ->+                   Pos ->+                   T_HsToken+sem_HsToken_Err mesg_ pos_ =+    (T_HsToken (let _lhsOtok :: ((Pos,String))+                    _lhsOattrs :: (Map String (Maybe NonLocalAttr))+                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1398, column 16)+                    _lhsOtok =+                        ({-# LINE 1398 "src-ag/ExecutionPlan2Hs.ag" #-}+                         (pos_, "")+                         {-# LINE 5745 "dist/build/ExecutionPlan2Hs" #-}+                         )+                    -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1134, column 37)+                    _lhsOattrs =+                        ({-# LINE 1134 "src-ag/ExecutionPlan2Hs.ag" #-}+                         Map.empty+                         {-# LINE 5751 "dist/build/ExecutionPlan2Hs" #-}+                         )+                    ___node =+                        (Syn_HsToken _lhsOattrs _lhsOtok)+                in  ( _lhsOattrs,_lhsOtok)))+sem_HsToken_HsToken :: String ->+                       Pos ->+                       T_HsToken+sem_HsToken_HsToken value_ pos_ =+    (T_HsToken (let _lhsOtok :: ((Pos,String))+                    _lhsOattrs :: (Map String (Maybe NonLocalAttr))+                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1390, column 14)+                    _lhsOtok =+                        ({-# LINE 1390 "src-ag/ExecutionPlan2Hs.ag" #-}+                         (pos_, value_)+                         {-# LINE 5766 "dist/build/ExecutionPlan2Hs" #-}+                         )+                    -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1134, column 37)+                    _lhsOattrs =+                        ({-# LINE 1134 "src-ag/ExecutionPlan2Hs.ag" #-}+                         Map.empty+                         {-# LINE 5772 "dist/build/ExecutionPlan2Hs" #-}+                         )+                    ___node =+                        (Syn_HsToken _lhsOattrs _lhsOtok)+                in  ( _lhsOattrs,_lhsOtok)))+sem_HsToken_StrToken :: String ->+                        Pos ->+                        T_HsToken+sem_HsToken_StrToken value_ pos_ =+    (T_HsToken (let _lhsOtok :: ((Pos,String))+                    _lhsOattrs :: (Map String (Maybe NonLocalAttr))+                    -- "src-ag/ExecutionPlan2Hs.ag"(line 1397, column 16)+                    _lhsOtok =+                        ({-# LINE 1397 "src-ag/ExecutionPlan2Hs.ag" #-}+                         (pos_, showStrShort value_)+                         {-# LINE 5787 "dist/build/ExecutionPlan2Hs" #-}+                         )+                    -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1134, column 37)+                    _lhsOattrs =+                        ({-# LINE 1134 "src-ag/ExecutionPlan2Hs.ag" #-}+                         Map.empty+                         {-# LINE 5793 "dist/build/ExecutionPlan2Hs" #-}+                         )+                    ___node =+                        (Syn_HsToken _lhsOattrs _lhsOtok)+                in  ( _lhsOattrs,_lhsOtok)))+-- HsTokens ----------------------------------------------------+{-+   visit 0:+      synthesized attribute:+         tks                  : [(Pos,String)]+   alternatives:+      alternative Cons:+         child hd             : HsToken +         child tl             : HsTokens +      alternative Nil:+-}+-- cata+sem_HsTokens :: HsTokens ->+                T_HsTokens+sem_HsTokens list =+    (Prelude.foldr sem_HsTokens_Cons sem_HsTokens_Nil (Prelude.map sem_HsToken list))+-- semantic domain+newtype T_HsTokens = T_HsTokens (( ([(Pos,String)])))+data Inh_HsTokens = Inh_HsTokens {}+data Syn_HsTokens = Syn_HsTokens {tks_Syn_HsTokens :: ([(Pos,String)])}+wrap_HsTokens :: T_HsTokens ->+                 Inh_HsTokens ->+                 Syn_HsTokens+wrap_HsTokens (T_HsTokens sem) (Inh_HsTokens) =+    (let ( _lhsOtks) = sem+     in  (Syn_HsTokens _lhsOtks))+sem_HsTokens_Cons :: T_HsToken ->+                     T_HsTokens ->+                     T_HsTokens+sem_HsTokens_Cons (T_HsToken hd_) (T_HsTokens tl_) =+    (T_HsTokens (let _lhsOtks :: ([(Pos,String)])+                     _hdIattrs :: (Map String (Maybe NonLocalAttr))+                     _hdItok :: ((Pos,String))+                     _tlItks :: ([(Pos,String)])+                     -- "src-ag/ExecutionPlan2Hs.ag"(line 1377, column 10)+                     _lhsOtks =+                         ({-# LINE 1377 "src-ag/ExecutionPlan2Hs.ag" #-}+                          _hdItok : _tlItks+                          {-# LINE 5836 "dist/build/ExecutionPlan2Hs" #-}+                          )+                     ( _hdIattrs,_hdItok) =+                         hd_+                     ( _tlItks) =+                         tl_+                     ___node =+                         (Syn_HsTokens _lhsOtks)+                 in  ( _lhsOtks)))+sem_HsTokens_Nil :: T_HsTokens+sem_HsTokens_Nil =+    (T_HsTokens (let _lhsOtks :: ([(Pos,String)])+                     -- "src-ag/ExecutionPlan2Hs.ag"(line 1378, column 10)+                     _lhsOtks =+                         ({-# LINE 1378 "src-ag/ExecutionPlan2Hs.ag" #-}+                          []+                          {-# LINE 5852 "dist/build/ExecutionPlan2Hs" #-}+                          )+                     ___node =+                         (Syn_HsTokens _lhsOtks)+                 in  ( _lhsOtks)))+-- HsTokensRoot ------------------------------------------------+{-+   alternatives:+      alternative HsTokensRoot:+         child tokens         : HsTokens +-}+-- cata+sem_HsTokensRoot :: HsTokensRoot ->+                    T_HsTokensRoot+sem_HsTokensRoot (HsTokensRoot _tokens) =+    (sem_HsTokensRoot_HsTokensRoot (sem_HsTokens _tokens))+-- semantic domain+newtype T_HsTokensRoot = T_HsTokensRoot (( ))+data Inh_HsTokensRoot = Inh_HsTokensRoot {}+data Syn_HsTokensRoot = Syn_HsTokensRoot {}+wrap_HsTokensRoot :: T_HsTokensRoot ->+                     Inh_HsTokensRoot ->+                     Syn_HsTokensRoot+wrap_HsTokensRoot (T_HsTokensRoot sem) (Inh_HsTokensRoot) =+    (let ( ) = sem+     in  (Syn_HsTokensRoot))+sem_HsTokensRoot_HsTokensRoot :: T_HsTokens ->+                                 T_HsTokensRoot+sem_HsTokensRoot_HsTokensRoot (T_HsTokens tokens_) =+    (T_HsTokensRoot (let _tokensItks :: ([(Pos,String)])+                         ( _tokensItks) =+                             tokens_+                         ___node =+                             (Syn_HsTokensRoot)+                     in  ( )))+-- Pattern -----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allInhmap            : Map NontermIdent Attributes+         allSynmap            : Map NontermIdent Attributes+         anyLazyKind          : Bool+         inhmap               : Attributes+         localAttrTypes       : Map Identifier Type+         options              : Options+         synmap               : Attributes+      synthesized attributes:+         attrTypes            : PP_Doc+         attrs                : Set String+         copy                 : Pattern +         isUnderscore         : Bool+         sem_lhs              :  PP_Doc +   alternatives:+      alternative Alias:+         child field          : {Identifier}+         child attr           : {Identifier}+         child pat            : Pattern +         visit 0:+            local varPat      : _+            local patExpr     : _+            local mbTp        : _+            local addbang     : _+            local addbang1    : _+            local copy        : _+      alternative Constr:+         child name           : {ConstructorIdent}+         child pats           : Patterns +         visit 0:+            local addbang     : _+            local addbang1    : _+            local copy        : _+      alternative Irrefutable:+         child pat            : Pattern +         visit 0:+            local copy        : _+      alternative Product:+         child pos            : {Pos}+         child pats           : Patterns +         visit 0:+            local addbang     : _+            local addbang1    : _+            local copy        : _+      alternative Underscore:+         child pos            : {Pos}+         visit 0:+            local copy        : _+-}+-- cata+sem_Pattern :: Pattern ->+               T_Pattern+sem_Pattern (Alias _field _attr _pat) =+    (sem_Pattern_Alias _field _attr (sem_Pattern _pat))+sem_Pattern (Constr _name _pats) =+    (sem_Pattern_Constr _name (sem_Patterns _pats))+sem_Pattern (Irrefutable _pat) =+    (sem_Pattern_Irrefutable (sem_Pattern _pat))+sem_Pattern (Product _pos _pats) =+    (sem_Pattern_Product _pos (sem_Patterns _pats))+sem_Pattern (Underscore _pos) =+    (sem_Pattern_Underscore _pos)+-- semantic domain+newtype T_Pattern = T_Pattern ((Map NontermIdent Attributes) ->+                               (Map NontermIdent Attributes) ->+                               Bool ->+                               Attributes ->+                               (Map Identifier Type) ->+                               Options ->+                               Attributes ->+                               ( PP_Doc,(Set String),Pattern,Bool,( PP_Doc )))+data Inh_Pattern = Inh_Pattern {allInhmap_Inh_Pattern :: (Map NontermIdent Attributes),allSynmap_Inh_Pattern :: (Map NontermIdent Attributes),anyLazyKind_Inh_Pattern :: Bool,inhmap_Inh_Pattern :: Attributes,localAttrTypes_Inh_Pattern :: (Map Identifier Type),options_Inh_Pattern :: Options,synmap_Inh_Pattern :: Attributes}+data Syn_Pattern = Syn_Pattern {attrTypes_Syn_Pattern :: PP_Doc,attrs_Syn_Pattern :: (Set String),copy_Syn_Pattern :: Pattern,isUnderscore_Syn_Pattern :: Bool,sem_lhs_Syn_Pattern :: ( PP_Doc )}+wrap_Pattern :: T_Pattern ->+                Inh_Pattern ->+                Syn_Pattern+wrap_Pattern (T_Pattern sem) (Inh_Pattern _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap) =+    (let ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOisUnderscore,_lhsOsem_lhs) = sem _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap+     in  (Syn_Pattern _lhsOattrTypes _lhsOattrs _lhsOcopy _lhsOisUnderscore _lhsOsem_lhs))+sem_Pattern_Alias :: Identifier ->+                     Identifier ->+                     T_Pattern ->+                     T_Pattern+sem_Pattern_Alias field_ attr_ (T_Pattern pat_) =+    (T_Pattern (\ _lhsIallInhmap+                  _lhsIallSynmap+                  _lhsIanyLazyKind+                  _lhsIinhmap+                  _lhsIlocalAttrTypes+                  _lhsIoptions+                  _lhsIsynmap ->+                    (let _lhsOsem_lhs :: ( PP_Doc )+                         _lhsOisUnderscore :: Bool+                         _lhsOattrs :: (Set String)+                         _lhsOattrTypes :: PP_Doc+                         _lhsOcopy :: Pattern+                         _patOallInhmap :: (Map NontermIdent Attributes)+                         _patOallSynmap :: (Map NontermIdent Attributes)+                         _patOanyLazyKind :: Bool+                         _patOinhmap :: Attributes+                         _patOlocalAttrTypes :: (Map Identifier Type)+                         _patOoptions :: Options+                         _patOsynmap :: Attributes+                         _patIattrTypes :: PP_Doc+                         _patIattrs :: (Set String)+                         _patIcopy :: Pattern+                         _patIisUnderscore :: Bool+                         _patIsem_lhs :: ( PP_Doc )+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1099, column 17)+                         _varPat =+                             ({-# LINE 1099 "src-ag/ExecutionPlan2Hs.ag" #-}+                              text $ attrname False field_ attr_+                              {-# LINE 6002 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1100, column 17)+                         _patExpr =+                             ({-# LINE 1100 "src-ag/ExecutionPlan2Hs.ag" #-}+                              if _patIisUnderscore+                              then _varPat+                              else _varPat     >|< "@" >|< _patIsem_lhs+                              {-# LINE 6010 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1103, column 17)+                         _lhsOsem_lhs =+                             ({-# LINE 1103 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _addbang1     _patExpr+                              {-# LINE 6016 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1114, column 16)+                         _lhsOisUnderscore =+                             ({-# LINE 1114 "src-ag/ExecutionPlan2Hs.ag" #-}+                              False+                              {-# LINE 6022 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1120, column 3)+                         _lhsOattrs =+                             ({-# LINE 1120 "src-ag/ExecutionPlan2Hs.ag" #-}+                              Set.insert (attrname False field_ attr_) _patIattrs+                              {-# LINE 6028 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1125, column 3)+                         _mbTp =+                             ({-# LINE 1125 "src-ag/ExecutionPlan2Hs.ag" #-}+                              if field_ == _LHS+                              then Map.lookup attr_ _lhsIsynmap+                              else if field_ == _LOC+                                   then Map.lookup attr_ _lhsIlocalAttrTypes+                                   else Nothing+                              {-# LINE 6038 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1130, column 3)+                         _lhsOattrTypes =+                             ({-# LINE 1130 "src-ag/ExecutionPlan2Hs.ag" #-}+                              maybe empty (\tp -> (attrname False field_ attr_) >#< "::" >#< ppTp tp) _mbTp+                              >-< _patIattrTypes+                              {-# LINE 6045 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1521, column 37)+                         _addbang =+                             ({-# LINE 1521 "src-ag/ExecutionPlan2Hs.ag" #-}+                              \x -> if bangpats _lhsIoptions then "!" >|< x else x+                              {-# LINE 6051 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1526, column 37)+                         _addbang1 =+                             ({-# LINE 1526 "src-ag/ExecutionPlan2Hs.ag" #-}+                              if _lhsIanyLazyKind then id else _addbang+                              {-# LINE 6057 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- self rule+                         _copy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              Alias field_ attr_ _patIcopy+                              {-# LINE 6063 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- self rule+                         _lhsOcopy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              _copy+                              {-# LINE 6069 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patOallInhmap =+                             ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIallInhmap+                              {-# LINE 6075 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patOallSynmap =+                             ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIallSynmap+                              {-# LINE 6081 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patOanyLazyKind =+                             ({-# LINE 1267 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIanyLazyKind+                              {-# LINE 6087 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patOinhmap =+                             ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIinhmap+                              {-# LINE 6093 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patOlocalAttrTypes =+                             ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIlocalAttrTypes+                              {-# LINE 6099 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patOoptions =+                             ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIoptions+                              {-# LINE 6105 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patOsynmap =+                             ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIsynmap+                              {-# LINE 6111 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         ( _patIattrTypes,_patIattrs,_patIcopy,_patIisUnderscore,_patIsem_lhs) =+                             pat_ _patOallInhmap _patOallSynmap _patOanyLazyKind _patOinhmap _patOlocalAttrTypes _patOoptions _patOsynmap+                         ___node =+                             (Syn_Pattern _lhsOattrTypes _lhsOattrs _lhsOcopy _lhsOisUnderscore _lhsOsem_lhs)+                     in  ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOisUnderscore,_lhsOsem_lhs))))+sem_Pattern_Constr :: ConstructorIdent ->+                      T_Patterns ->+                      T_Pattern+sem_Pattern_Constr name_ (T_Patterns pats_) =+    (T_Pattern (\ _lhsIallInhmap+                  _lhsIallSynmap+                  _lhsIanyLazyKind+                  _lhsIinhmap+                  _lhsIlocalAttrTypes+                  _lhsIoptions+                  _lhsIsynmap ->+                    (let _lhsOsem_lhs :: ( PP_Doc )+                         _lhsOisUnderscore :: Bool+                         _lhsOattrTypes :: PP_Doc+                         _lhsOattrs :: (Set String)+                         _lhsOcopy :: Pattern+                         _patsOallInhmap :: (Map NontermIdent Attributes)+                         _patsOallSynmap :: (Map NontermIdent Attributes)+                         _patsOanyLazyKind :: Bool+                         _patsOinhmap :: Attributes+                         _patsOlocalAttrTypes :: (Map Identifier Type)+                         _patsOoptions :: Options+                         _patsOsynmap :: Attributes+                         _patsIattrTypes :: PP_Doc+                         _patsIattrs :: (Set String)+                         _patsIcopy :: Patterns+                         _patsIsem_lhs :: ([PP_Doc])+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1105, column 17)+                         _lhsOsem_lhs =+                             ({-# LINE 1105 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _addbang1     $ pp_parens $ name_ >#< hv_sp _patsIsem_lhs+                              {-# LINE 6149 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1112, column 16)+                         _lhsOisUnderscore =+                             ({-# LINE 1112 "src-ag/ExecutionPlan2Hs.ag" #-}+                              False+                              {-# LINE 6155 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1521, column 37)+                         _addbang =+                             ({-# LINE 1521 "src-ag/ExecutionPlan2Hs.ag" #-}+                              \x -> if bangpats _lhsIoptions then "!" >|< x else x+                              {-# LINE 6161 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1526, column 37)+                         _addbang1 =+                             ({-# LINE 1526 "src-ag/ExecutionPlan2Hs.ag" #-}+                              if _lhsIanyLazyKind then id else _addbang+                              {-# LINE 6167 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1123, column 40)+                         _lhsOattrTypes =+                             ({-# LINE 1123 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _patsIattrTypes+                              {-# LINE 6173 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1118, column 36)+                         _lhsOattrs =+                             ({-# LINE 1118 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _patsIattrs+                              {-# LINE 6179 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- self rule+                         _copy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              Constr name_ _patsIcopy+                              {-# LINE 6185 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- self rule+                         _lhsOcopy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              _copy+                              {-# LINE 6191 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patsOallInhmap =+                             ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIallInhmap+                              {-# LINE 6197 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patsOallSynmap =+                             ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIallSynmap+                              {-# LINE 6203 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patsOanyLazyKind =+                             ({-# LINE 1267 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIanyLazyKind+                              {-# LINE 6209 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patsOinhmap =+                             ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIinhmap+                              {-# LINE 6215 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patsOlocalAttrTypes =+                             ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIlocalAttrTypes+                              {-# LINE 6221 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patsOoptions =+                             ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIoptions+                              {-# LINE 6227 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patsOsynmap =+                             ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIsynmap+                              {-# LINE 6233 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         ( _patsIattrTypes,_patsIattrs,_patsIcopy,_patsIsem_lhs) =+                             pats_ _patsOallInhmap _patsOallSynmap _patsOanyLazyKind _patsOinhmap _patsOlocalAttrTypes _patsOoptions _patsOsynmap+                         ___node =+                             (Syn_Pattern _lhsOattrTypes _lhsOattrs _lhsOcopy _lhsOisUnderscore _lhsOsem_lhs)+                     in  ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOisUnderscore,_lhsOsem_lhs))))+sem_Pattern_Irrefutable :: T_Pattern ->+                           T_Pattern+sem_Pattern_Irrefutable (T_Pattern pat_) =+    (T_Pattern (\ _lhsIallInhmap+                  _lhsIallSynmap+                  _lhsIanyLazyKind+                  _lhsIinhmap+                  _lhsIlocalAttrTypes+                  _lhsIoptions+                  _lhsIsynmap ->+                    (let _lhsOsem_lhs :: ( PP_Doc )+                         _lhsOattrTypes :: PP_Doc+                         _lhsOattrs :: (Set String)+                         _lhsOcopy :: Pattern+                         _lhsOisUnderscore :: Bool+                         _patOallInhmap :: (Map NontermIdent Attributes)+                         _patOallSynmap :: (Map NontermIdent Attributes)+                         _patOanyLazyKind :: Bool+                         _patOinhmap :: Attributes+                         _patOlocalAttrTypes :: (Map Identifier Type)+                         _patOoptions :: Options+                         _patOsynmap :: Attributes+                         _patIattrTypes :: PP_Doc+                         _patIattrs :: (Set String)+                         _patIcopy :: Pattern+                         _patIisUnderscore :: Bool+                         _patIsem_lhs :: ( PP_Doc )+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1107, column 17)+                         _lhsOsem_lhs =+                             ({-# LINE 1107 "src-ag/ExecutionPlan2Hs.ag" #-}+                              text "~" >|< pp_parens _patIsem_lhs+                              {-# LINE 6271 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1123, column 40)+                         _lhsOattrTypes =+                             ({-# LINE 1123 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _patIattrTypes+                              {-# LINE 6277 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1118, column 36)+                         _lhsOattrs =+                             ({-# LINE 1118 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _patIattrs+                              {-# LINE 6283 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- self rule+                         _copy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              Irrefutable _patIcopy+                              {-# LINE 6289 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- self rule+                         _lhsOcopy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              _copy+                              {-# LINE 6295 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (up)+                         _lhsOisUnderscore =+                             ({-# LINE 1110 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _patIisUnderscore+                              {-# LINE 6301 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patOallInhmap =+                             ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIallInhmap+                              {-# LINE 6307 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patOallSynmap =+                             ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIallSynmap+                              {-# LINE 6313 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patOanyLazyKind =+                             ({-# LINE 1267 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIanyLazyKind+                              {-# LINE 6319 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patOinhmap =+                             ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIinhmap+                              {-# LINE 6325 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patOlocalAttrTypes =+                             ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIlocalAttrTypes+                              {-# LINE 6331 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patOoptions =+                             ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIoptions+                              {-# LINE 6337 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patOsynmap =+                             ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIsynmap+                              {-# LINE 6343 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         ( _patIattrTypes,_patIattrs,_patIcopy,_patIisUnderscore,_patIsem_lhs) =+                             pat_ _patOallInhmap _patOallSynmap _patOanyLazyKind _patOinhmap _patOlocalAttrTypes _patOoptions _patOsynmap+                         ___node =+                             (Syn_Pattern _lhsOattrTypes _lhsOattrs _lhsOcopy _lhsOisUnderscore _lhsOsem_lhs)+                     in  ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOisUnderscore,_lhsOsem_lhs))))+sem_Pattern_Product :: Pos ->+                       T_Patterns ->+                       T_Pattern+sem_Pattern_Product pos_ (T_Patterns pats_) =+    (T_Pattern (\ _lhsIallInhmap+                  _lhsIallSynmap+                  _lhsIanyLazyKind+                  _lhsIinhmap+                  _lhsIlocalAttrTypes+                  _lhsIoptions+                  _lhsIsynmap ->+                    (let _lhsOsem_lhs :: ( PP_Doc )+                         _lhsOisUnderscore :: Bool+                         _lhsOattrTypes :: PP_Doc+                         _lhsOattrs :: (Set String)+                         _lhsOcopy :: Pattern+                         _patsOallInhmap :: (Map NontermIdent Attributes)+                         _patsOallSynmap :: (Map NontermIdent Attributes)+                         _patsOanyLazyKind :: Bool+                         _patsOinhmap :: Attributes+                         _patsOlocalAttrTypes :: (Map Identifier Type)+                         _patsOoptions :: Options+                         _patsOsynmap :: Attributes+                         _patsIattrTypes :: PP_Doc+                         _patsIattrs :: (Set String)+                         _patsIcopy :: Patterns+                         _patsIsem_lhs :: ([PP_Doc])+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1104, column 17)+                         _lhsOsem_lhs =+                             ({-# LINE 1104 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _addbang1     $ pp_block "(" ")" "," _patsIsem_lhs+                              {-# LINE 6381 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1113, column 16)+                         _lhsOisUnderscore =+                             ({-# LINE 1113 "src-ag/ExecutionPlan2Hs.ag" #-}+                              False+                              {-# LINE 6387 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1521, column 37)+                         _addbang =+                             ({-# LINE 1521 "src-ag/ExecutionPlan2Hs.ag" #-}+                              \x -> if bangpats _lhsIoptions then "!" >|< x else x+                              {-# LINE 6393 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1526, column 37)+                         _addbang1 =+                             ({-# LINE 1526 "src-ag/ExecutionPlan2Hs.ag" #-}+                              if _lhsIanyLazyKind then id else _addbang+                              {-# LINE 6399 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1123, column 40)+                         _lhsOattrTypes =+                             ({-# LINE 1123 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _patsIattrTypes+                              {-# LINE 6405 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1118, column 36)+                         _lhsOattrs =+                             ({-# LINE 1118 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _patsIattrs+                              {-# LINE 6411 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- self rule+                         _copy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              Product pos_ _patsIcopy+                              {-# LINE 6417 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- self rule+                         _lhsOcopy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              _copy+                              {-# LINE 6423 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patsOallInhmap =+                             ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIallInhmap+                              {-# LINE 6429 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patsOallSynmap =+                             ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIallSynmap+                              {-# LINE 6435 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patsOanyLazyKind =+                             ({-# LINE 1267 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIanyLazyKind+                              {-# LINE 6441 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patsOinhmap =+                             ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIinhmap+                              {-# LINE 6447 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patsOlocalAttrTypes =+                             ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIlocalAttrTypes+                              {-# LINE 6453 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patsOoptions =+                             ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIoptions+                              {-# LINE 6459 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- copy rule (down)+                         _patsOsynmap =+                             ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}+                              _lhsIsynmap+                              {-# LINE 6465 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         ( _patsIattrTypes,_patsIattrs,_patsIcopy,_patsIsem_lhs) =+                             pats_ _patsOallInhmap _patsOallSynmap _patsOanyLazyKind _patsOinhmap _patsOlocalAttrTypes _patsOoptions _patsOsynmap+                         ___node =+                             (Syn_Pattern _lhsOattrTypes _lhsOattrs _lhsOcopy _lhsOisUnderscore _lhsOsem_lhs)+                     in  ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOisUnderscore,_lhsOsem_lhs))))+sem_Pattern_Underscore :: Pos ->+                          T_Pattern+sem_Pattern_Underscore pos_ =+    (T_Pattern (\ _lhsIallInhmap+                  _lhsIallSynmap+                  _lhsIanyLazyKind+                  _lhsIinhmap+                  _lhsIlocalAttrTypes+                  _lhsIoptions+                  _lhsIsynmap ->+                    (let _lhsOsem_lhs :: ( PP_Doc )+                         _lhsOisUnderscore :: Bool+                         _lhsOattrTypes :: PP_Doc+                         _lhsOattrs :: (Set String)+                         _lhsOcopy :: Pattern+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1106, column 17)+                         _lhsOsem_lhs =+                             ({-# LINE 1106 "src-ag/ExecutionPlan2Hs.ag" #-}+                              text "_"+                              {-# LINE 6491 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- "src-ag/ExecutionPlan2Hs.ag"(line 1115, column 16)+                         _lhsOisUnderscore =+                             ({-# LINE 1115 "src-ag/ExecutionPlan2Hs.ag" #-}+                              True+                              {-# LINE 6497 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1123, column 40)+                         _lhsOattrTypes =+                             ({-# LINE 1123 "src-ag/ExecutionPlan2Hs.ag" #-}+                              empty+                              {-# LINE 6503 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1118, column 36)+                         _lhsOattrs =+                             ({-# LINE 1118 "src-ag/ExecutionPlan2Hs.ag" #-}+                              Set.empty+                              {-# LINE 6509 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- self rule+                         _copy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              Underscore pos_+                              {-# LINE 6515 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         -- self rule+                         _lhsOcopy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              _copy+                              {-# LINE 6521 "dist/build/ExecutionPlan2Hs" #-}+                              )+                         ___node =+                             (Syn_Pattern _lhsOattrTypes _lhsOattrs _lhsOcopy _lhsOisUnderscore _lhsOsem_lhs)+                     in  ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOisUnderscore,_lhsOsem_lhs))))+-- Patterns ----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allInhmap            : Map NontermIdent Attributes+         allSynmap            : Map NontermIdent Attributes+         anyLazyKind          : Bool+         inhmap               : Attributes+         localAttrTypes       : Map Identifier Type+         options              : Options+         synmap               : Attributes+      synthesized attributes:+         attrTypes            : PP_Doc+         attrs                : Set String+         copy                 : Patterns +         sem_lhs              : [PP_Doc]+   alternatives:+      alternative Cons:+         child hd             : Pattern +         child tl             : Patterns +         visit 0:+            local copy        : _+      alternative Nil:+         visit 0:+            local copy        : _+-}+-- cata+sem_Patterns :: Patterns ->+                T_Patterns+sem_Patterns list =+    (Prelude.foldr sem_Patterns_Cons sem_Patterns_Nil (Prelude.map sem_Pattern list))+-- semantic domain+newtype T_Patterns = T_Patterns ((Map NontermIdent Attributes) ->+                                 (Map NontermIdent Attributes) ->+                                 Bool ->+                                 Attributes ->+                                 (Map Identifier Type) ->+                                 Options ->+                                 Attributes ->+                                 ( PP_Doc,(Set String),Patterns,([PP_Doc])))+data Inh_Patterns = Inh_Patterns {allInhmap_Inh_Patterns :: (Map NontermIdent Attributes),allSynmap_Inh_Patterns :: (Map NontermIdent Attributes),anyLazyKind_Inh_Patterns :: Bool,inhmap_Inh_Patterns :: Attributes,localAttrTypes_Inh_Patterns :: (Map Identifier Type),options_Inh_Patterns :: Options,synmap_Inh_Patterns :: Attributes}+data Syn_Patterns = Syn_Patterns {attrTypes_Syn_Patterns :: PP_Doc,attrs_Syn_Patterns :: (Set String),copy_Syn_Patterns :: Patterns,sem_lhs_Syn_Patterns :: ([PP_Doc])}+wrap_Patterns :: T_Patterns ->+                 Inh_Patterns ->+                 Syn_Patterns+wrap_Patterns (T_Patterns sem) (Inh_Patterns _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap) =+    (let ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOsem_lhs) = sem _lhsIallInhmap _lhsIallSynmap _lhsIanyLazyKind _lhsIinhmap _lhsIlocalAttrTypes _lhsIoptions _lhsIsynmap+     in  (Syn_Patterns _lhsOattrTypes _lhsOattrs _lhsOcopy _lhsOsem_lhs))+sem_Patterns_Cons :: T_Pattern ->+                     T_Patterns ->+                     T_Patterns+sem_Patterns_Cons (T_Pattern hd_) (T_Patterns tl_) =+    (T_Patterns (\ _lhsIallInhmap+                   _lhsIallSynmap+                   _lhsIanyLazyKind+                   _lhsIinhmap+                   _lhsIlocalAttrTypes+                   _lhsIoptions+                   _lhsIsynmap ->+                     (let _lhsOattrTypes :: PP_Doc+                          _lhsOattrs :: (Set String)+                          _lhsOsem_lhs :: ([PP_Doc])+                          _lhsOcopy :: Patterns+                          _hdOallInhmap :: (Map NontermIdent Attributes)+                          _hdOallSynmap :: (Map NontermIdent Attributes)+                          _hdOanyLazyKind :: Bool+                          _hdOinhmap :: Attributes+                          _hdOlocalAttrTypes :: (Map Identifier Type)+                          _hdOoptions :: Options+                          _hdOsynmap :: Attributes+                          _tlOallInhmap :: (Map NontermIdent Attributes)+                          _tlOallSynmap :: (Map NontermIdent Attributes)+                          _tlOanyLazyKind :: Bool+                          _tlOinhmap :: Attributes+                          _tlOlocalAttrTypes :: (Map Identifier Type)+                          _tlOoptions :: Options+                          _tlOsynmap :: Attributes+                          _hdIattrTypes :: PP_Doc+                          _hdIattrs :: (Set String)+                          _hdIcopy :: Pattern+                          _hdIisUnderscore :: Bool+                          _hdIsem_lhs :: ( PP_Doc )+                          _tlIattrTypes :: PP_Doc+                          _tlIattrs :: (Set String)+                          _tlIcopy :: Patterns+                          _tlIsem_lhs :: ([PP_Doc])+                          -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1123, column 40)+                          _lhsOattrTypes =+                              ({-# LINE 1123 "src-ag/ExecutionPlan2Hs.ag" #-}+                               _hdIattrTypes >-< _tlIattrTypes+                               {-# LINE 6616 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1118, column 36)+                          _lhsOattrs =+                              ({-# LINE 1118 "src-ag/ExecutionPlan2Hs.ag" #-}+                               _hdIattrs `Set.union` _tlIattrs+                               {-# LINE 6622 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1095, column 29)+                          _lhsOsem_lhs =+                              ({-# LINE 1095 "src-ag/ExecutionPlan2Hs.ag" #-}+                               _hdIsem_lhs : _tlIsem_lhs+                               {-# LINE 6628 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- self rule+                          _copy =+                              ({-# LINE 22 "src-ag/Patterns.ag" #-}+                               (:) _hdIcopy _tlIcopy+                               {-# LINE 6634 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- self rule+                          _lhsOcopy =+                              ({-# LINE 22 "src-ag/Patterns.ag" #-}+                               _copy+                               {-# LINE 6640 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- copy rule (down)+                          _hdOallInhmap =+                              ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}+                               _lhsIallInhmap+                               {-# LINE 6646 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- copy rule (down)+                          _hdOallSynmap =+                              ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}+                               _lhsIallSynmap+                               {-# LINE 6652 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- copy rule (down)+                          _hdOanyLazyKind =+                              ({-# LINE 1267 "src-ag/ExecutionPlan2Hs.ag" #-}+                               _lhsIanyLazyKind+                               {-# LINE 6658 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- copy rule (down)+                          _hdOinhmap =+                              ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}+                               _lhsIinhmap+                               {-# LINE 6664 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- copy rule (down)+                          _hdOlocalAttrTypes =+                              ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}+                               _lhsIlocalAttrTypes+                               {-# LINE 6670 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- copy rule (down)+                          _hdOoptions =+                              ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                               _lhsIoptions+                               {-# LINE 6676 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- copy rule (down)+                          _hdOsynmap =+                              ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}+                               _lhsIsynmap+                               {-# LINE 6682 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- copy rule (down)+                          _tlOallInhmap =+                              ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}+                               _lhsIallInhmap+                               {-# LINE 6688 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- copy rule (down)+                          _tlOallSynmap =+                              ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}+                               _lhsIallSynmap+                               {-# LINE 6694 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- copy rule (down)+                          _tlOanyLazyKind =+                              ({-# LINE 1267 "src-ag/ExecutionPlan2Hs.ag" #-}+                               _lhsIanyLazyKind+                               {-# LINE 6700 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- copy rule (down)+                          _tlOinhmap =+                              ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}+                               _lhsIinhmap+                               {-# LINE 6706 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- copy rule (down)+                          _tlOlocalAttrTypes =+                              ({-# LINE 1578 "src-ag/ExecutionPlan2Hs.ag" #-}+                               _lhsIlocalAttrTypes+                               {-# LINE 6712 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- copy rule (down)+                          _tlOoptions =+                              ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                               _lhsIoptions+                               {-# LINE 6718 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- copy rule (down)+                          _tlOsynmap =+                              ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}+                               _lhsIsynmap+                               {-# LINE 6724 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          ( _hdIattrTypes,_hdIattrs,_hdIcopy,_hdIisUnderscore,_hdIsem_lhs) =+                              hd_ _hdOallInhmap _hdOallSynmap _hdOanyLazyKind _hdOinhmap _hdOlocalAttrTypes _hdOoptions _hdOsynmap+                          ( _tlIattrTypes,_tlIattrs,_tlIcopy,_tlIsem_lhs) =+                              tl_ _tlOallInhmap _tlOallSynmap _tlOanyLazyKind _tlOinhmap _tlOlocalAttrTypes _tlOoptions _tlOsynmap+                          ___node =+                              (Syn_Patterns _lhsOattrTypes _lhsOattrs _lhsOcopy _lhsOsem_lhs)+                      in  ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOsem_lhs))))+sem_Patterns_Nil :: T_Patterns+sem_Patterns_Nil =+    (T_Patterns (\ _lhsIallInhmap+                   _lhsIallSynmap+                   _lhsIanyLazyKind+                   _lhsIinhmap+                   _lhsIlocalAttrTypes+                   _lhsIoptions+                   _lhsIsynmap ->+                     (let _lhsOattrTypes :: PP_Doc+                          _lhsOattrs :: (Set String)+                          _lhsOsem_lhs :: ([PP_Doc])+                          _lhsOcopy :: Patterns+                          -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1123, column 40)+                          _lhsOattrTypes =+                              ({-# LINE 1123 "src-ag/ExecutionPlan2Hs.ag" #-}+                               empty+                               {-# LINE 6750 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1118, column 36)+                          _lhsOattrs =+                              ({-# LINE 1118 "src-ag/ExecutionPlan2Hs.ag" #-}+                               Set.empty+                               {-# LINE 6756 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1095, column 29)+                          _lhsOsem_lhs =+                              ({-# LINE 1095 "src-ag/ExecutionPlan2Hs.ag" #-}+                               []+                               {-# LINE 6762 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- self rule+                          _copy =+                              ({-# LINE 22 "src-ag/Patterns.ag" #-}+                               []+                               {-# LINE 6768 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          -- self rule+                          _lhsOcopy =+                              ({-# LINE 22 "src-ag/Patterns.ag" #-}+                               _copy+                               {-# LINE 6774 "dist/build/ExecutionPlan2Hs" #-}+                               )+                          ___node =+                              (Syn_Patterns _lhsOattrTypes _lhsOattrs _lhsOcopy _lhsOsem_lhs)+                      in  ( _lhsOattrTypes,_lhsOattrs,_lhsOcopy,_lhsOsem_lhs))))+-- Visit -------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allFromToStates      : Map VisitIdentifier (Int,Int)+         allInhmap            : Map NontermIdent Attributes+         allInitStates        : Map NontermIdent Int+         allSynmap            : Map NontermIdent Attributes+         allVisitKinds        : Map VisitIdentifier VisitKind+         allchildvisit        : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))+         allintramap          : Map StateIdentifier (Map String (Maybe NonLocalAttr))+         avisitdefs           : Map VisitIdentifier (Set Identifier)+         avisituses           : Map VisitIdentifier (Set Identifier)+         childTypes           : Map Identifier Type+         childintros          : Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))+         con                  : ConstructorIdent+         inhmap               : Attributes+         mrules               : Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)+         nextVisits           : Map StateIdentifier StateCtx+         nt                   : NontermIdent+         options              : Options+         params               : [Identifier]+         prevVisits           : Map StateIdentifier StateCtx+         ruledefs             : Map Identifier (Set String)+         ruleuses             : Map Identifier (Map String (Maybe NonLocalAttr))+         synmap               : Attributes+         terminaldefs         : Set String+      synthesized attributes:+         allvisits            :  VisitStateState +         childvisit           : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))+         errors               : Seq Error+         fromToStates         : Map VisitIdentifier (Int,Int)+         intramap             : Map StateIdentifier (Map String (Maybe NonLocalAttr))+         lazyIntras           : Set String+         ruleKinds            : Map Identifier (Set VisitKind)+         ruleUsage            : Map Identifier Int+         sem_visit            :   (StateIdentifier,Bool -> PP_Doc)  +         t_visits             : PP_Doc+         visitKinds           : Map VisitIdentifier VisitKind+         visitdefs            : Map VisitIdentifier (Set Identifier)+         visituses            : Map VisitIdentifier (Set Identifier)+   alternatives:+      alternative Visit:+         child ident          : {VisitIdentifier}+         child from           : {StateIdentifier}+         child to             : {StateIdentifier}+         child inh            : {Set Identifier}+         child syn            : {Set Identifier}+         child steps          : VisitSteps +         child kind           : {VisitKind}+         visit 0:+            local nameT_visit : _+            local nameTIn_visit : _+            local nameTOut_visit : _+            local nameTNext_visit : _+            local nextVisitInfo : _+            local typecon     : _+            local t_params    : _+            local inhpart     : _+            local synpart     : _+            local ppTypeList  : _+            local stepsInitial : _+            local stepsClosing : _+            local vname       : _+            local inhpats     : _+            local inhargs     : _+            local synargs     : _+            local nextargsMp  : _+            local nextargs    : _+            local nextst      : _+            local resultval   : _+            local nextStBuild : _+            local nextStRef   : _+            local prevVisitInfo : _+            local invokecode  : _+            local thisintra   : _+            local nextintra   : _+            local uses        : _+            local inhVarNms   : _+            local defs        : _+            local defsAsMap   : _+            local lazyIntrasInh : _+            local addbang     : _+            local addbang1    : _+-}+-- cata+sem_Visit :: Visit ->+             T_Visit+sem_Visit (Visit _ident _from _to _inh _syn _steps _kind) =+    (sem_Visit_Visit _ident _from _to _inh _syn (sem_VisitSteps _steps) _kind)+-- semantic domain+newtype T_Visit = T_Visit ((Map VisitIdentifier (Int,Int)) ->+                           (Map NontermIdent Attributes) ->+                           (Map NontermIdent Int) ->+                           (Map NontermIdent Attributes) ->+                           (Map VisitIdentifier VisitKind) ->+                           (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))) ->+                           (Map StateIdentifier (Map String (Maybe NonLocalAttr))) ->+                           (Map VisitIdentifier (Set Identifier)) ->+                           (Map VisitIdentifier (Set Identifier)) ->+                           (Map Identifier Type) ->+                           (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) ->+                           ConstructorIdent ->+                           Attributes ->+                           (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)) ->+                           (Map StateIdentifier StateCtx) ->+                           NontermIdent ->+                           Options ->+                           ([Identifier]) ->+                           (Map StateIdentifier StateCtx) ->+                           (Map Identifier (Set String)) ->+                           (Map Identifier (Map String (Maybe NonLocalAttr))) ->+                           Attributes ->+                           (Set String) ->+                           ( ( VisitStateState ),(Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),(Seq Error),(Map VisitIdentifier (Int,Int)),(Map StateIdentifier (Map String (Maybe NonLocalAttr))),(Set String),(Map Identifier (Set VisitKind)),(Map Identifier Int),(  (StateIdentifier,Bool -> PP_Doc)  ),PP_Doc,(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier))))+data Inh_Visit = Inh_Visit {allFromToStates_Inh_Visit :: (Map VisitIdentifier (Int,Int)),allInhmap_Inh_Visit :: (Map NontermIdent Attributes),allInitStates_Inh_Visit :: (Map NontermIdent Int),allSynmap_Inh_Visit :: (Map NontermIdent Attributes),allVisitKinds_Inh_Visit :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_Visit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),allintramap_Inh_Visit :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))),avisitdefs_Inh_Visit :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_Visit :: (Map VisitIdentifier (Set Identifier)),childTypes_Inh_Visit :: (Map Identifier Type),childintros_Inh_Visit :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),con_Inh_Visit :: ConstructorIdent,inhmap_Inh_Visit :: Attributes,mrules_Inh_Visit :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)),nextVisits_Inh_Visit :: (Map StateIdentifier StateCtx),nt_Inh_Visit :: NontermIdent,options_Inh_Visit :: Options,params_Inh_Visit :: ([Identifier]),prevVisits_Inh_Visit :: (Map StateIdentifier StateCtx),ruledefs_Inh_Visit :: (Map Identifier (Set String)),ruleuses_Inh_Visit :: (Map Identifier (Map String (Maybe NonLocalAttr))),synmap_Inh_Visit :: Attributes,terminaldefs_Inh_Visit :: (Set String)}+data Syn_Visit = Syn_Visit {allvisits_Syn_Visit :: ( VisitStateState ),childvisit_Syn_Visit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),errors_Syn_Visit :: (Seq Error),fromToStates_Syn_Visit :: (Map VisitIdentifier (Int,Int)),intramap_Syn_Visit :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))),lazyIntras_Syn_Visit :: (Set String),ruleKinds_Syn_Visit :: (Map Identifier (Set VisitKind)),ruleUsage_Syn_Visit :: (Map Identifier Int),sem_visit_Syn_Visit :: (  (StateIdentifier,Bool -> PP_Doc)  ),t_visits_Syn_Visit :: PP_Doc,visitKinds_Syn_Visit :: (Map VisitIdentifier VisitKind),visitdefs_Syn_Visit :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_Visit :: (Map VisitIdentifier (Set Identifier))}+wrap_Visit :: T_Visit ->+              Inh_Visit ->+              Syn_Visit+wrap_Visit (T_Visit sem) (Inh_Visit _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIcon _lhsIinhmap _lhsImrules _lhsInextVisits _lhsInt _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs) =+    (let ( _lhsOallvisits,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOintramap,_lhsOlazyIntras,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_visit,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIcon _lhsIinhmap _lhsImrules _lhsInextVisits _lhsInt _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs+     in  (Syn_Visit _lhsOallvisits _lhsOchildvisit _lhsOerrors _lhsOfromToStates _lhsOintramap _lhsOlazyIntras _lhsOruleKinds _lhsOruleUsage _lhsOsem_visit _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses))+sem_Visit_Visit :: VisitIdentifier ->+                   StateIdentifier ->+                   StateIdentifier ->+                   (Set Identifier) ->+                   (Set Identifier) ->+                   T_VisitSteps ->+                   VisitKind ->+                   T_Visit+sem_Visit_Visit ident_ from_ to_ inh_ syn_ (T_VisitSteps steps_) kind_ =+    (T_Visit (\ _lhsIallFromToStates+                _lhsIallInhmap+                _lhsIallInitStates+                _lhsIallSynmap+                _lhsIallVisitKinds+                _lhsIallchildvisit+                _lhsIallintramap+                _lhsIavisitdefs+                _lhsIavisituses+                _lhsIchildTypes+                _lhsIchildintros+                _lhsIcon+                _lhsIinhmap+                _lhsImrules+                _lhsInextVisits+                _lhsInt+                _lhsIoptions+                _lhsIparams+                _lhsIprevVisits+                _lhsIruledefs+                _lhsIruleuses+                _lhsIsynmap+                _lhsIterminaldefs ->+                  (let _lhsOallvisits :: ( VisitStateState )+                       _lhsOt_visits :: PP_Doc+                       _lhsOsem_visit :: (  (StateIdentifier,Bool -> PP_Doc)  )+                       _stepsOkind :: VisitKind+                       _stepsOfmtMode :: FormatMode+                       _stepsOindex :: Int+                       _stepsOprevMaxSimRefs :: Int+                       _stepsOuseParallel :: Bool+                       _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                       _lhsOintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))+                       _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))+                       _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))+                       _lhsOlazyIntras :: (Set String)+                       _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))+                       _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)+                       _lhsOerrors :: (Seq Error)+                       _lhsOruleKinds :: (Map Identifier (Set VisitKind))+                       _lhsOruleUsage :: (Map Identifier Int)+                       _stepsOallFromToStates :: (Map VisitIdentifier (Int,Int))+                       _stepsOallInitStates :: (Map NontermIdent Int)+                       _stepsOallVisitKinds :: (Map VisitIdentifier VisitKind)+                       _stepsOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                       _stepsOavisitdefs :: (Map VisitIdentifier (Set Identifier))+                       _stepsOavisituses :: (Map VisitIdentifier (Set Identifier))+                       _stepsOchildTypes :: (Map Identifier Type)+                       _stepsOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))+                       _stepsOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))+                       _stepsOoptions :: Options+                       _stepsOruledefs :: (Map Identifier (Set String))+                       _stepsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))+                       _stepsIdefs :: (Set String)+                       _stepsIerrors :: (Seq Error)+                       _stepsIindex :: Int+                       _stepsIisLast :: Bool+                       _stepsIlazyIntras :: (Set String)+                       _stepsIprevMaxSimRefs :: Int+                       _stepsIruleKinds :: (Map Identifier (Set VisitKind))+                       _stepsIruleUsage :: (Map Identifier Int)+                       _stepsIsem_steps :: PP_Doc+                       _stepsIsize :: Int+                       _stepsIsync_steps :: PP_Doc+                       _stepsIuses :: (Map String (Maybe NonLocalAttr))+                       _stepsIvisitKinds :: (Map VisitIdentifier VisitKind)+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 341, column 11)+                       _lhsOallvisits =+                           ({-# LINE 341 "src-ag/ExecutionPlan2Hs.ag" #-}+                            (ident_, from_, to_)+                            {-# LINE 6981 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 400, column 11)+                       _nameT_visit =+                           ({-# LINE 400 "src-ag/ExecutionPlan2Hs.ag" #-}+                            conNmTVisit _lhsInt ident_+                            {-# LINE 6987 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 401, column 11)+                       _nameTIn_visit =+                           ({-# LINE 401 "src-ag/ExecutionPlan2Hs.ag" #-}+                            conNmTVisitIn _lhsInt ident_+                            {-# LINE 6993 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 402, column 11)+                       _nameTOut_visit =+                           ({-# LINE 402 "src-ag/ExecutionPlan2Hs.ag" #-}+                            conNmTVisitOut _lhsInt ident_+                            {-# LINE 6999 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 403, column 11)+                       _nameTNext_visit =+                           ({-# LINE 403 "src-ag/ExecutionPlan2Hs.ag" #-}+                            conNmTNextVisit _lhsInt to_+                            {-# LINE 7005 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 405, column 11)+                       _nextVisitInfo =+                           ({-# LINE 405 "src-ag/ExecutionPlan2Hs.ag" #-}+                            Map.findWithDefault ManyVis to_ _lhsInextVisits+                            {-# LINE 7011 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 406, column 11)+                       _typecon =+                           ({-# LINE 406 "src-ag/ExecutionPlan2Hs.ag" #-}+                            case kind_ of+                              VisitPure _  -> empty+                              VisitMonadic -> ppMonadType _lhsIoptions+                            {-# LINE 7019 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 410, column 11)+                       _t_params =+                           ({-# LINE 410 "src-ag/ExecutionPlan2Hs.ag" #-}+                            ppSpaced _lhsIparams+                            {-# LINE 7025 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 411, column 11)+                       _lhsOt_visits =+                           ({-# LINE 411 "src-ag/ExecutionPlan2Hs.ag" #-}+                            "type" >#< _nameT_visit     >#< _t_params     >#< "=" >#<+                              pp_parens (_nameTIn_visit     >#< _t_params    )+                                >#< ( if dummyTokenVisit _lhsIoptions+                                      then "->" >#< dummyType _lhsIoptions True+                                      else empty+                                    )+                                >#< "->" >#< _typecon     >#< pp_parens (_nameTOut_visit     >#< _t_params    )+                            >-< "data" >#< _nameTIn_visit     >#< _t_params     >#< "=" >#< _nameTIn_visit     >#<+                                 _inhpart+                            >-< "data" >#< _nameTOut_visit     >#< _t_params     >#< "=" >#< _nameTOut_visit     >#<+                                 _synpart     >#< case _nextVisitInfo     of+                                                    NoneVis    -> empty+                                                    _          -> _addbang1     $ pp_parens (_nameTNext_visit     >#< _t_params    )+                            {-# LINE 7043 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 424, column 11)+                       _inhpart =+                           ({-# LINE 424 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _ppTypeList     inh_ _lhsIinhmap+                            {-# LINE 7049 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 425, column 11)+                       _synpart =+                           ({-# LINE 425 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _ppTypeList     syn_ _lhsIsynmap+                            {-# LINE 7055 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 426, column 11)+                       _ppTypeList =+                           ({-# LINE 426 "src-ag/ExecutionPlan2Hs.ag" #-}+                            \s m -> ppSpaced $ map (\i -> _addbang1     $ pp_parens $ case Map.lookup i m of+                                                                                       Just tp -> ppTp tp ) $ Set.toList s+                            {-# LINE 7062 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 709, column 11)+                       _lhsOsem_visit =+                           ({-# LINE 709 "src-ag/ExecutionPlan2Hs.ag" #-}+                            ( from_+                            , \addInlinePragma ->+                                 ( if noInlinePragmas _lhsIoptions+                                   then empty+                                   else if addInlinePragma && aggressiveInlinePragmas _lhsIoptions+                                        then ppInline _vname+                                        else if helpInlining _lhsIoptions+                                             then ppNoInline _vname+                                             else empty+                                 )+                                 >-< "v" >|< ident_ >#< "::" >#< _nameT_visit     >#< _t_params+                                 >-< "v" >|< ident_ >#< "=" >#< "\\" >#< (_addbang     $ pp_parens (_nameTIn_visit     >#< _inhpats    ))+                                 >#< ( if dummyTokenVisit _lhsIoptions+                                       then pp $ dummyPat _lhsIoptions True+                                       else empty+                                     )+                                 >#< "->"+                                 >#< ( if genCostCentres _lhsIoptions+                                       then ppCostCentre (_vname     >|< "_" >|< _lhsInt >|< "_" >|< _lhsIcon)+                                       else empty+                                     ) >#< "(" >#< _stepsInitial+                                 >-< indent 3 (_stepsIsem_steps >-< _stepsClosing     >#< ")")+                            )+                            {-# LINE 7090 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 734, column 11)+                       _stepsInitial =+                           ({-# LINE 734 "src-ag/ExecutionPlan2Hs.ag" #-}+                            case kind_ of+                              VisitPure False -> text "let"+                              VisitPure True  -> empty+                              VisitMonadic    -> text "do"+                            {-# LINE 7099 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 738, column 11)+                       _stepsClosing =+                           ({-# LINE 738 "src-ag/ExecutionPlan2Hs.ag" #-}+                            let decls =  _nextStBuild+                                         >-<  _addbang     (pp resultValName) >#< "=" >#< _resultval+                            in case kind_ of+                                 VisitPure False -> decls+                                                    >-< "in" >#< resultValName+                                 VisitPure True  -> "let" >#< decls+                                                    >-< indent 1 ("in" >#< resultValName)+                                 VisitMonadic    -> "let" >#< decls+                                                    >-< "return" >#< resultValName+                            {-# LINE 7113 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 747, column 11)+                       _vname =+                           ({-# LINE 747 "src-ag/ExecutionPlan2Hs.ag" #-}+                            "v" >|< ident_+                            {-# LINE 7119 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 748, column 11)+                       _inhpats =+                           ({-# LINE 748 "src-ag/ExecutionPlan2Hs.ag" #-}+                            ppSpaced $ map (\arg -> _addbang     $ pp $ attrname True _LHS arg) $ Set.toList inh_+                            {-# LINE 7125 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 749, column 11)+                       _inhargs =+                           ({-# LINE 749 "src-ag/ExecutionPlan2Hs.ag" #-}+                            \chn -> ppSpaced $ map (attrname False chn) $ Set.toList inh_+                            {-# LINE 7131 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 750, column 11)+                       _synargs =+                           ({-# LINE 750 "src-ag/ExecutionPlan2Hs.ag" #-}+                            ppSpaced $ map (\arg -> attrname False _LHS arg) $ Set.toList syn_+                            {-# LINE 7137 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 751, column 11)+                       _nextargsMp =+                           ({-# LINE 751 "src-ag/ExecutionPlan2Hs.ag" #-}+                            maybe Map.empty id $ Map.lookup to_ _lhsIallintramap+                            {-# LINE 7143 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 752, column 11)+                       _nextargs =+                           ({-# LINE 752 "src-ag/ExecutionPlan2Hs.ag" #-}+                            ppSpaced $ Map.keys $ _nextargsMp+                            {-# LINE 7149 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 753, column 11)+                       _nextst =+                           ({-# LINE 753 "src-ag/ExecutionPlan2Hs.ag" #-}+                            "st" >|< to_ >#< _nextargs     >#< dummyArg _lhsIoptions (Map.null _nextargsMp    )+                            {-# LINE 7155 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 754, column 11)+                       _resultval =+                           ({-# LINE 754 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _nameTOut_visit     >#< _synargs     >#< _nextStRef+                            {-# LINE 7161 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 755, column 11)+                       (_nextStBuild,_nextStRef) =+                           ({-# LINE 755 "src-ag/ExecutionPlan2Hs.ag" #-}+                            case _nextVisitInfo     of+                              NoneVis  -> (empty, empty)+                              _        -> (_addbang     (pp nextStName) >#< "=" >#< _nextst    , pp nextStName)+                            {-# LINE 7169 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 770, column 20)+                       _stepsOkind =+                           ({-# LINE 770 "src-ag/ExecutionPlan2Hs.ag" #-}+                            kind_+                            {-# LINE 7175 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 821, column 3)+                       _stepsOfmtMode =+                           ({-# LINE 821 "src-ag/ExecutionPlan2Hs.ag" #-}+                            case kind_ of+                              VisitPure False -> FormatLetDecl+                              VisitPure True  -> FormatLetLine+                              VisitMonadic    -> FormatDo+                            {-# LINE 7184 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 859, column 22)+                       _stepsOindex =+                           ({-# LINE 859 "src-ag/ExecutionPlan2Hs.ag" #-}+                            0+                            {-# LINE 7190 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 866, column 22)+                       _stepsOprevMaxSimRefs =+                           ({-# LINE 866 "src-ag/ExecutionPlan2Hs.ag" #-}+                            0+                            {-# LINE 7196 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 882, column 22)+                       _stepsOuseParallel =+                           ({-# LINE 882 "src-ag/ExecutionPlan2Hs.ag" #-}+                            False+                            {-# LINE 7202 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1196, column 6)+                       _prevVisitInfo =+                           ({-# LINE 1196 "src-ag/ExecutionPlan2Hs.ag" #-}+                            Map.findWithDefault ManyVis from_ _lhsInextVisits+                            {-# LINE 7208 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1197, column 6)+                       _lhsOchildvisit =+                           ({-# LINE 1197 "src-ag/ExecutionPlan2Hs.ag" #-}+                            Map.singleton ident_ _invokecode+                            {-# LINE 7214 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1198, column 6)+                       _invokecode =+                           ({-# LINE 1198 "src-ag/ExecutionPlan2Hs.ag" #-}+                            \chn kind ->+                              if kind `compatibleKind` kind_+                              then Right $+                                let pat | isLazyKind kind_ = pat0+                                        | otherwise        = _addbang     pat0+                                    pat0  = pp_parens pat1+                                    pat1  = _nameTOut_visit     >#< (ppSpaced $ map (attrname True chn) $ Set.toList syn_)+                                                                >#< cont+                                    cont  = case _nextVisitInfo     of+                                              NoneVis  -> empty+                                              _        -> ch1+                                    ch0   = text $ stname chn from_+                                    ch1   = text $ stname chn to_+                                    expr  = case (kind, kind_) of+                                              (VisitPure _,  VisitPure _)  -> expr0+                                              (VisitPure _,  VisitMonadic) -> unMon _lhsIoptions >#< expr0+                                              (VisitMonadic, VisitPure _)  -> "return" >#< expr0+                                              (VisitMonadic, VisitMonadic) -> expr0+                                    expr0 = case _prevVisitInfo     of+                                              NoneVis  -> error "error: invocation of a visit from a state that has no next visits"+                                              OneVis _ -> "inv_" >|< _lhsInt >|< "_s" >|< from_ >#< ch0 >#< args+                                              ManyVis  -> "inv_" >|< _lhsInt >|< "_s" >|< from_ >#< ch0+                                                          >#< "K_" >|< _lhsInt >|< "_v" >|< ident_ >#< args+                                    args  = pp_parens args0 >#< args1+                                    args0 = _nameTIn_visit     >#< _inhargs     chn+                                    args1 | dummyTokenVisit _lhsIoptions = pp $ dummyArg _lhsIoptions True+                                          | otherwise                    = empty+                                in (pat, expr)+                              else Left $ IncompatibleVisitKind chn ident_ kind kind_+                            {-# LINE 7248 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1294, column 11)+                       _thisintra =+                           ({-# LINE 1294 "src-ag/ExecutionPlan2Hs.ag" #-}+                            (_uses     `Map.union` _nextintra    ) `Map.difference` _defsAsMap+                            {-# LINE 7254 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1295, column 11)+                       _lhsOintramap =+                           ({-# LINE 1295 "src-ag/ExecutionPlan2Hs.ag" #-}+                            Map.singleton from_ _thisintra+                            {-# LINE 7260 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1296, column 11)+                       _nextintra =+                           ({-# LINE 1296 "src-ag/ExecutionPlan2Hs.ag" #-}+                            maybe Map.empty id $ Map.lookup to_ _lhsIallintramap+                            {-# LINE 7266 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1297, column 11)+                       _uses =+                           ({-# LINE 1297 "src-ag/ExecutionPlan2Hs.ag" #-}+                            let mp1 = _stepsIuses+                                mp2 = Map.fromList [ (lhsname False i, Just (AttrSyn _LHS i)) | i <- Set.elems syn_ ]+                            in mp1 `Map.union` mp2+                            {-# LINE 7274 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1300, column 11)+                       _inhVarNms =+                           ({-# LINE 1300 "src-ag/ExecutionPlan2Hs.ag" #-}+                            Set.map (lhsname True) inh_+                            {-# LINE 7280 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1301, column 11)+                       _defs =+                           ({-# LINE 1301 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _stepsIdefs `Set.union` _inhVarNms     `Set.union` _lhsIterminaldefs+                            {-# LINE 7286 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1302, column 11)+                       _defsAsMap =+                           ({-# LINE 1302 "src-ag/ExecutionPlan2Hs.ag" #-}+                            Map.fromList [ (a, Nothing) | a <- Set.elems _defs     ]+                            {-# LINE 7292 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1326, column 11)+                       _lhsOvisitdefs =+                           ({-# LINE 1326 "src-ag/ExecutionPlan2Hs.ag" #-}+                            Map.singleton ident_ syn_+                            {-# LINE 7298 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1327, column 11)+                       _lhsOvisituses =+                           ({-# LINE 1327 "src-ag/ExecutionPlan2Hs.ag" #-}+                            Map.singleton ident_ inh_+                            {-# LINE 7304 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1359, column 3)+                       _lazyIntrasInh =+                           ({-# LINE 1359 "src-ag/ExecutionPlan2Hs.ag" #-}+                            case kind_ of+                              VisitPure False -> _inhVarNms     `Set.union` _stepsIdefs+                              _               -> Set.empty+                            {-# LINE 7312 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1362, column 3)+                       _lhsOlazyIntras =+                           ({-# LINE 1362 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lazyIntrasInh     `Set.union` _stepsIlazyIntras+                            {-# LINE 7318 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1515, column 37)+                       _addbang =+                           ({-# LINE 1515 "src-ag/ExecutionPlan2Hs.ag" #-}+                            \x -> if bangpats _lhsIoptions then "!" >|< x else x+                            {-# LINE 7324 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1523, column 37)+                       _addbang1 =+                           ({-# LINE 1523 "src-ag/ExecutionPlan2Hs.ag" #-}+                            if isLazyKind kind_ then id else _addbang+                            {-# LINE 7330 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1550, column 3)+                       _lhsOfromToStates =+                           ({-# LINE 1550 "src-ag/ExecutionPlan2Hs.ag" #-}+                            Map.singleton ident_ (from_, to_)+                            {-# LINE 7336 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- "src-ag/ExecutionPlan2Hs.ag"(line 1594, column 3)+                       _lhsOvisitKinds =+                           ({-# LINE 1594 "src-ag/ExecutionPlan2Hs.ag" #-}+                            Map.singleton ident_ kind_+                            {-# LINE 7342 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)+                       _lhsOerrors =+                           ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _stepsIerrors+                            {-# LINE 7348 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)+                       _lhsOruleKinds =+                           ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _stepsIruleKinds+                            {-# LINE 7354 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)+                       _lhsOruleUsage =+                           ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _stepsIruleUsage+                            {-# LINE 7360 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _stepsOallFromToStates =+                           ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsIallFromToStates+                            {-# LINE 7366 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _stepsOallInitStates =+                           ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsIallInitStates+                            {-# LINE 7372 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _stepsOallVisitKinds =+                           ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsIallVisitKinds+                            {-# LINE 7378 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _stepsOallchildvisit =+                           ({-# LINE 1189 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsIallchildvisit+                            {-# LINE 7384 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _stepsOavisitdefs =+                           ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsIavisitdefs+                            {-# LINE 7390 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _stepsOavisituses =+                           ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsIavisituses+                            {-# LINE 7396 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _stepsOchildTypes =+                           ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsIchildTypes+                            {-# LINE 7402 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _stepsOchildintros =+                           ({-# LINE 893 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsIchildintros+                            {-# LINE 7408 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _stepsOmrules =+                           ({-# LINE 776 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsImrules+                            {-# LINE 7414 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _stepsOoptions =+                           ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsIoptions+                            {-# LINE 7420 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _stepsOruledefs =+                           ({-# LINE 1307 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsIruledefs+                            {-# LINE 7426 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       -- copy rule (down)+                       _stepsOruleuses =+                           ({-# LINE 1308 "src-ag/ExecutionPlan2Hs.ag" #-}+                            _lhsIruleuses+                            {-# LINE 7432 "dist/build/ExecutionPlan2Hs" #-}+                            )+                       ( _stepsIdefs,_stepsIerrors,_stepsIindex,_stepsIisLast,_stepsIlazyIntras,_stepsIprevMaxSimRefs,_stepsIruleKinds,_stepsIruleUsage,_stepsIsem_steps,_stepsIsize,_stepsIsync_steps,_stepsIuses,_stepsIvisitKinds) =+                           steps_ _stepsOallFromToStates _stepsOallInitStates _stepsOallVisitKinds _stepsOallchildvisit _stepsOavisitdefs _stepsOavisituses _stepsOchildTypes _stepsOchildintros _stepsOfmtMode _stepsOindex _stepsOkind _stepsOmrules _stepsOoptions _stepsOprevMaxSimRefs _stepsOruledefs _stepsOruleuses _stepsOuseParallel+                       ___node =+                           (Syn_Visit _lhsOallvisits _lhsOchildvisit _lhsOerrors _lhsOfromToStates _lhsOintramap _lhsOlazyIntras _lhsOruleKinds _lhsOruleUsage _lhsOsem_visit _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses)+                   in  ( _lhsOallvisits,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOintramap,_lhsOlazyIntras,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_visit,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))+-- VisitStep ---------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allFromToStates      : Map VisitIdentifier (Int,Int)+         allInitStates        : Map NontermIdent Int+         allVisitKinds        : Map VisitIdentifier VisitKind+         allchildvisit        : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))+         avisitdefs           : Map VisitIdentifier (Set Identifier)+         avisituses           : Map VisitIdentifier (Set Identifier)+         childTypes           : Map Identifier Type+         childintros          : Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))+         fmtMode              : FormatMode+         kind                 : VisitKind+         mrules               : Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)+         options              : Options+         ruledefs             : Map Identifier (Set String)+         ruleuses             : Map Identifier (Map String (Maybe NonLocalAttr))+         useParallel          : Bool+      chained attributes:+         index                : Int+         isLast               : Bool+         prevMaxSimRefs       : Int+      synthesized attributes:+         defs                 : Set String+         errors               : Seq Error+         lazyIntras           : Set String+         ruleKinds            : Map Identifier (Set VisitKind)+         ruleUsage            : Map Identifier Int+         sem_steps            : PP_Doc+         sync_steps           : PP_Doc+         uses                 : Map String (Maybe NonLocalAttr)+         visitKinds           : Map VisitIdentifier VisitKind+   alternatives:+      alternative ChildIntro:+         child child          : {Identifier}+         visit 0:+            local attachItf   : _+      alternative ChildVisit:+         child child          : {Identifier}+         child nonterm        : {NontermIdent}+         child visit          : {VisitIdentifier}+         visit 0:+            local visitItf    : _+            local patPP       : _+            local exprPP      : _+            local useParallel : _+            local convToMonad : _+            local callKind    : _+            local addbang     : _+            local from        : _+            local to          : _+      alternative PureGroup:+         child steps          : VisitSteps +         child ordered        : {Bool}+      alternative Sem:+         child name           : {Identifier}+         visit 0:+            local ruleItf     : _+            local sem_steps   : _+      alternative Sim:+         child steps          : VisitSteps +         visit 0:+            local useParallel : _+            local isMonadic   : _+-}+-- cata+sem_VisitStep :: VisitStep ->+                 T_VisitStep+sem_VisitStep (ChildIntro _child) =+    (sem_VisitStep_ChildIntro _child)+sem_VisitStep (ChildVisit _child _nonterm _visit) =+    (sem_VisitStep_ChildVisit _child _nonterm _visit)+sem_VisitStep (PureGroup _steps _ordered) =+    (sem_VisitStep_PureGroup (sem_VisitSteps _steps) _ordered)+sem_VisitStep (Sem _name) =+    (sem_VisitStep_Sem _name)+sem_VisitStep (Sim _steps) =+    (sem_VisitStep_Sim (sem_VisitSteps _steps))+-- semantic domain+newtype T_VisitStep = T_VisitStep ((Map VisitIdentifier (Int,Int)) ->+                                   (Map NontermIdent Int) ->+                                   (Map VisitIdentifier VisitKind) ->+                                   (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))) ->+                                   (Map VisitIdentifier (Set Identifier)) ->+                                   (Map VisitIdentifier (Set Identifier)) ->+                                   (Map Identifier Type) ->+                                   (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) ->+                                   FormatMode ->+                                   Int ->+                                   Bool ->+                                   VisitKind ->+                                   (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)) ->+                                   Options ->+                                   Int ->+                                   (Map Identifier (Set String)) ->+                                   (Map Identifier (Map String (Maybe NonLocalAttr))) ->+                                   Bool ->+                                   ( (Set String),(Seq Error),Int,Bool,(Set String),Int,(Map Identifier (Set VisitKind)),(Map Identifier Int),PP_Doc,PP_Doc,(Map String (Maybe NonLocalAttr)),(Map VisitIdentifier VisitKind)))+data Inh_VisitStep = Inh_VisitStep {allFromToStates_Inh_VisitStep :: (Map VisitIdentifier (Int,Int)),allInitStates_Inh_VisitStep :: (Map NontermIdent Int),allVisitKinds_Inh_VisitStep :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_VisitStep :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),avisitdefs_Inh_VisitStep :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_VisitStep :: (Map VisitIdentifier (Set Identifier)),childTypes_Inh_VisitStep :: (Map Identifier Type),childintros_Inh_VisitStep :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),fmtMode_Inh_VisitStep :: FormatMode,index_Inh_VisitStep :: Int,isLast_Inh_VisitStep :: Bool,kind_Inh_VisitStep :: VisitKind,mrules_Inh_VisitStep :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)),options_Inh_VisitStep :: Options,prevMaxSimRefs_Inh_VisitStep :: Int,ruledefs_Inh_VisitStep :: (Map Identifier (Set String)),ruleuses_Inh_VisitStep :: (Map Identifier (Map String (Maybe NonLocalAttr))),useParallel_Inh_VisitStep :: Bool}+data Syn_VisitStep = Syn_VisitStep {defs_Syn_VisitStep :: (Set String),errors_Syn_VisitStep :: (Seq Error),index_Syn_VisitStep :: Int,isLast_Syn_VisitStep :: Bool,lazyIntras_Syn_VisitStep :: (Set String),prevMaxSimRefs_Syn_VisitStep :: Int,ruleKinds_Syn_VisitStep :: (Map Identifier (Set VisitKind)),ruleUsage_Syn_VisitStep :: (Map Identifier Int),sem_steps_Syn_VisitStep :: PP_Doc,sync_steps_Syn_VisitStep :: PP_Doc,uses_Syn_VisitStep :: (Map String (Maybe NonLocalAttr)),visitKinds_Syn_VisitStep :: (Map VisitIdentifier VisitKind)}+wrap_VisitStep :: T_VisitStep ->+                  Inh_VisitStep ->+                  Syn_VisitStep+wrap_VisitStep (T_VisitStep sem) (Inh_VisitStep _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfmtMode _lhsIindex _lhsIisLast _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel) =+    (let ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds) = sem _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfmtMode _lhsIindex _lhsIisLast _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel+     in  (Syn_VisitStep _lhsOdefs _lhsOerrors _lhsOindex _lhsOisLast _lhsOlazyIntras _lhsOprevMaxSimRefs _lhsOruleKinds _lhsOruleUsage _lhsOsem_steps _lhsOsync_steps _lhsOuses _lhsOvisitKinds))+sem_VisitStep_ChildIntro :: Identifier ->+                            T_VisitStep+sem_VisitStep_ChildIntro child_ =+    (T_VisitStep (\ _lhsIallFromToStates+                    _lhsIallInitStates+                    _lhsIallVisitKinds+                    _lhsIallchildvisit+                    _lhsIavisitdefs+                    _lhsIavisituses+                    _lhsIchildTypes+                    _lhsIchildintros+                    _lhsIfmtMode+                    _lhsIindex+                    _lhsIisLast+                    _lhsIkind+                    _lhsImrules+                    _lhsIoptions+                    _lhsIprevMaxSimRefs+                    _lhsIruledefs+                    _lhsIruleuses+                    _lhsIuseParallel ->+                      (let _lhsOerrors :: (Seq Error)+                           _lhsOsem_steps :: PP_Doc+                           _lhsOdefs :: (Set String)+                           _lhsOuses :: (Map String (Maybe NonLocalAttr))+                           _lhsOlazyIntras :: (Set String)+                           _lhsOruleKinds :: (Map Identifier (Set VisitKind))+                           _lhsOruleUsage :: (Map Identifier Int)+                           _lhsOsync_steps :: PP_Doc+                           _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)+                           _lhsOindex :: Int+                           _lhsOisLast :: Bool+                           _lhsOprevMaxSimRefs :: Int+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 783, column 16)+                           _attachItf =+                               ({-# LINE 783 "src-ag/ExecutionPlan2Hs.ag" #-}+                                Map.findWithDefault (error $ "Child " ++ show child_ ++ " not found") child_ _lhsIchildintros+                                {-# LINE 7583 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 784, column 16)+                           (_lhsOerrors,_lhsOsem_steps,_lhsOdefs,_lhsOuses) =+                               ({-# LINE 784 "src-ag/ExecutionPlan2Hs.ag" #-}+                                case _attachItf     _lhsIkind _lhsIfmtMode of+                                  Left e                   -> (Seq.singleton e, empty, Set.empty, Map.empty)+                                  Right (code, defs, uses) -> (Seq.empty, code, defs, uses)+                                {-# LINE 7591 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1355, column 57)+                           _lhsOlazyIntras =+                               ({-# LINE 1355 "src-ag/ExecutionPlan2Hs.ag" #-}+                                Set.empty+                                {-# LINE 7597 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)+                           _lhsOruleKinds =+                               ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}+                                Map.empty+                                {-# LINE 7603 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)+                           _lhsOruleUsage =+                               ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}+                                Map.empty+                                {-# LINE 7609 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 810, column 44)+                           _lhsOsync_steps =+                               ({-# LINE 810 "src-ag/ExecutionPlan2Hs.ag" #-}+                                empty+                                {-# LINE 7615 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)+                           _lhsOvisitKinds =+                               ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                mempty+                                {-# LINE 7621 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (chain)+                           _lhsOindex =+                               ({-# LINE 854 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIindex+                                {-# LINE 7627 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (chain)+                           _lhsOisLast =+                               ({-# LINE 873 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIisLast+                                {-# LINE 7633 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (chain)+                           _lhsOprevMaxSimRefs =+                               ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIprevMaxSimRefs+                                {-# LINE 7639 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           ___node =+                               (Syn_VisitStep _lhsOdefs _lhsOerrors _lhsOindex _lhsOisLast _lhsOlazyIntras _lhsOprevMaxSimRefs _lhsOruleKinds _lhsOruleUsage _lhsOsem_steps _lhsOsync_steps _lhsOuses _lhsOvisitKinds)+                       in  ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds))))+sem_VisitStep_ChildVisit :: Identifier ->+                            NontermIdent ->+                            VisitIdentifier ->+                            T_VisitStep+sem_VisitStep_ChildVisit child_ nonterm_ visit_ =+    (T_VisitStep (\ _lhsIallFromToStates+                    _lhsIallInitStates+                    _lhsIallVisitKinds+                    _lhsIallchildvisit+                    _lhsIavisitdefs+                    _lhsIavisituses+                    _lhsIchildTypes+                    _lhsIchildintros+                    _lhsIfmtMode+                    _lhsIindex+                    _lhsIisLast+                    _lhsIkind+                    _lhsImrules+                    _lhsIoptions+                    _lhsIprevMaxSimRefs+                    _lhsIruledefs+                    _lhsIruleuses+                    _lhsIuseParallel ->+                      (let _lhsOerrors :: (Seq Error)+                           _lhsOsem_steps :: PP_Doc+                           _lhsOsync_steps :: PP_Doc+                           _lhsOdefs :: (Set String)+                           _lhsOuses :: (Map String (Maybe NonLocalAttr))+                           _lhsOlazyIntras :: (Set String)+                           _lhsOruleKinds :: (Map Identifier (Set VisitKind))+                           _lhsOruleUsage :: (Map Identifier Int)+                           _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)+                           _lhsOindex :: Int+                           _lhsOisLast :: Bool+                           _lhsOprevMaxSimRefs :: Int+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 788, column 16)+                           _visitItf =+                               ({-# LINE 788 "src-ag/ExecutionPlan2Hs.ag" #-}+                                Map.findWithDefault (error $ "Visit " ++ show visit_ ++ " not found") visit_ _lhsIallchildvisit+                                {-# LINE 7683 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 789, column 16)+                           (_lhsOerrors,_patPP,_exprPP) =+                               ({-# LINE 789 "src-ag/ExecutionPlan2Hs.ag" #-}+                                case _visitItf     child_ _lhsIkind of+                                  Left e           -> (Seq.singleton e, empty, empty)+                                  Right (pat,expr) -> (Seq.empty, pat, expr)+                                {-# LINE 7691 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 793, column 16)+                           _useParallel =+                               ({-# LINE 793 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIuseParallel && not _lhsIisLast+                                {-# LINE 7697 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 794, column 16)+                           _lhsOsem_steps =+                               ({-# LINE 794 "src-ag/ExecutionPlan2Hs.ag" #-}+                                if _useParallel+                                then _addbang     ("sync_" >|< _lhsIindex) >#< "<- newEmptyMVar"+                                     >-< "forkIO" >#< pp_parens (_convToMonad     >#< pp_parens _exprPP     >#< ">>= \\" >#< _addbang     (pp parResultName) >#< " -> putMVar sync_" >|< _lhsIindex >#< parResultName)+                                else let decl = case _lhsIkind of+                                                  VisitPure _  -> _patPP     >#< "=" >#< _exprPP+                                                  VisitMonadic -> _patPP     >#< "<-" >#< _exprPP+                                     in fmtDecl False _lhsIfmtMode decl+                                {-# LINE 7709 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 801, column 16)+                           _convToMonad =+                               ({-# LINE 801 "src-ag/ExecutionPlan2Hs.ag" #-}+                                case _callKind     of+                                  VisitPure _  -> text "return"+                                  VisitMonadic -> empty+                                {-# LINE 7717 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 804, column 16)+                           _callKind =+                               ({-# LINE 804 "src-ag/ExecutionPlan2Hs.ag" #-}+                                Map.findWithDefault (error "visit kind should be in the map") visit_ _lhsIallVisitKinds+                                {-# LINE 7723 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 812, column 3)+                           _lhsOsync_steps =+                               ({-# LINE 812 "src-ag/ExecutionPlan2Hs.ag" #-}+                                if _useParallel+                                then _patPP     >#< "<-" >#< "takeMVar sync_" >|< _lhsIindex+                                else empty+                                {-# LINE 7731 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1344, column 16)+                           _lhsOdefs =+                               ({-# LINE 1344 "src-ag/ExecutionPlan2Hs.ag" #-}+                                Set.insert (stname child_ _to) $ maybe (error "Visit not found") (Set.map $ attrname True child_) $ Map.lookup visit_ _lhsIavisitdefs+                                {-# LINE 7737 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1345, column 16)+                           _lhsOuses =+                               ({-# LINE 1345 "src-ag/ExecutionPlan2Hs.ag" #-}+                                let convert attrs = Map.fromList [ (attrname False child_ attr, Just $ mkNonLocalAttr True child_ attr) | attr <- Set.elems attrs ]+                                in Map.insert (stname child_ _from) Nothing $ convert $+                                     maybe (error "Visit not found") id $ Map.lookup visit_ _lhsIavisituses+                                {-# LINE 7745 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1520, column 37)+                           _addbang =+                               ({-# LINE 1520 "src-ag/ExecutionPlan2Hs.ag" #-}+                                \x -> if bangpats _lhsIoptions then "!" >|< x else x+                                {-# LINE 7751 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1556, column 3)+                           (_from,_to) =+                               ({-# LINE 1556 "src-ag/ExecutionPlan2Hs.ag" #-}+                                Map.findWithDefault (error "visit not in allFromToStates") visit_ _lhsIallFromToStates+                                {-# LINE 7757 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1355, column 57)+                           _lhsOlazyIntras =+                               ({-# LINE 1355 "src-ag/ExecutionPlan2Hs.ag" #-}+                                Set.empty+                                {-# LINE 7763 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)+                           _lhsOruleKinds =+                               ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}+                                Map.empty+                                {-# LINE 7769 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)+                           _lhsOruleUsage =+                               ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}+                                Map.empty+                                {-# LINE 7775 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)+                           _lhsOvisitKinds =+                               ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                mempty+                                {-# LINE 7781 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (chain)+                           _lhsOindex =+                               ({-# LINE 854 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIindex+                                {-# LINE 7787 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (chain)+                           _lhsOisLast =+                               ({-# LINE 873 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIisLast+                                {-# LINE 7793 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (chain)+                           _lhsOprevMaxSimRefs =+                               ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIprevMaxSimRefs+                                {-# LINE 7799 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           ___node =+                               (Syn_VisitStep _lhsOdefs _lhsOerrors _lhsOindex _lhsOisLast _lhsOlazyIntras _lhsOprevMaxSimRefs _lhsOruleKinds _lhsOruleUsage _lhsOsem_steps _lhsOsync_steps _lhsOuses _lhsOvisitKinds)+                       in  ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds))))+sem_VisitStep_PureGroup :: T_VisitSteps ->+                           Bool ->+                           T_VisitStep+sem_VisitStep_PureGroup (T_VisitSteps steps_) ordered_ =+    (T_VisitStep (\ _lhsIallFromToStates+                    _lhsIallInitStates+                    _lhsIallVisitKinds+                    _lhsIallchildvisit+                    _lhsIavisitdefs+                    _lhsIavisituses+                    _lhsIchildTypes+                    _lhsIchildintros+                    _lhsIfmtMode+                    _lhsIindex+                    _lhsIisLast+                    _lhsIkind+                    _lhsImrules+                    _lhsIoptions+                    _lhsIprevMaxSimRefs+                    _lhsIruledefs+                    _lhsIruleuses+                    _lhsIuseParallel ->+                      (let _stepsOkind :: VisitKind+                           _lhsOsem_steps :: PP_Doc+                           _stepsOfmtMode :: FormatMode+                           _lhsOlazyIntras :: (Set String)+                           _lhsOdefs :: (Set String)+                           _lhsOerrors :: (Seq Error)+                           _lhsOruleKinds :: (Map Identifier (Set VisitKind))+                           _lhsOruleUsage :: (Map Identifier Int)+                           _lhsOsync_steps :: PP_Doc+                           _lhsOuses :: (Map String (Maybe NonLocalAttr))+                           _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)+                           _lhsOindex :: Int+                           _lhsOisLast :: Bool+                           _lhsOprevMaxSimRefs :: Int+                           _stepsOallFromToStates :: (Map VisitIdentifier (Int,Int))+                           _stepsOallInitStates :: (Map NontermIdent Int)+                           _stepsOallVisitKinds :: (Map VisitIdentifier VisitKind)+                           _stepsOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                           _stepsOavisitdefs :: (Map VisitIdentifier (Set Identifier))+                           _stepsOavisituses :: (Map VisitIdentifier (Set Identifier))+                           _stepsOchildTypes :: (Map Identifier Type)+                           _stepsOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))+                           _stepsOindex :: Int+                           _stepsOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))+                           _stepsOoptions :: Options+                           _stepsOprevMaxSimRefs :: Int+                           _stepsOruledefs :: (Map Identifier (Set String))+                           _stepsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))+                           _stepsOuseParallel :: Bool+                           _stepsIdefs :: (Set String)+                           _stepsIerrors :: (Seq Error)+                           _stepsIindex :: Int+                           _stepsIisLast :: Bool+                           _stepsIlazyIntras :: (Set String)+                           _stepsIprevMaxSimRefs :: Int+                           _stepsIruleKinds :: (Map Identifier (Set VisitKind))+                           _stepsIruleUsage :: (Map Identifier Int)+                           _stepsIsem_steps :: PP_Doc+                           _stepsIsize :: Int+                           _stepsIsync_steps :: PP_Doc+                           _stepsIuses :: (Map String (Maybe NonLocalAttr))+                           _stepsIvisitKinds :: (Map VisitIdentifier VisitKind)+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 774, column 3)+                           _stepsOkind =+                               ({-# LINE 774 "src-ag/ExecutionPlan2Hs.ag" #-}+                                VisitPure ordered_+                                {-# LINE 7872 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 806, column 16)+                           _lhsOsem_steps =+                               ({-# LINE 806 "src-ag/ExecutionPlan2Hs.ag" #-}+                                case _lhsIfmtMode of+                                  FormatDo -> "let" >#< _stepsIsem_steps+                                  _        -> _stepsIsem_steps+                                {-# LINE 7880 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 827, column 3)+                           _stepsOfmtMode =+                               ({-# LINE 827 "src-ag/ExecutionPlan2Hs.ag" #-}+                                case _lhsIfmtMode of+                                  FormatDo      -> FormatLetDecl+                                  mode          -> mode+                                {-# LINE 7888 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1365, column 3)+                           _lhsOlazyIntras =+                               ({-# LINE 1365 "src-ag/ExecutionPlan2Hs.ag" #-}+                                if ordered_+                                then _stepsIlazyIntras+                                else _stepsIdefs+                                {-# LINE 7896 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1339, column 38)+                           _lhsOdefs =+                               ({-# LINE 1339 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIdefs+                                {-# LINE 7902 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)+                           _lhsOerrors =+                               ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIerrors+                                {-# LINE 7908 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)+                           _lhsOruleKinds =+                               ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIruleKinds+                                {-# LINE 7914 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)+                           _lhsOruleUsage =+                               ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIruleUsage+                                {-# LINE 7920 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 810, column 44)+                           _lhsOsync_steps =+                               ({-# LINE 810 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIsync_steps+                                {-# LINE 7926 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1340, column 38)+                           _lhsOuses =+                               ({-# LINE 1340 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIuses+                                {-# LINE 7932 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)+                           _lhsOvisitKinds =+                               ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIvisitKinds+                                {-# LINE 7938 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (up)+                           _lhsOindex =+                               ({-# LINE 854 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIindex+                                {-# LINE 7944 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (up)+                           _lhsOisLast =+                               ({-# LINE 873 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIisLast+                                {-# LINE 7950 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (up)+                           _lhsOprevMaxSimRefs =+                               ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIprevMaxSimRefs+                                {-# LINE 7956 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOallFromToStates =+                               ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIallFromToStates+                                {-# LINE 7962 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOallInitStates =+                               ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIallInitStates+                                {-# LINE 7968 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOallVisitKinds =+                               ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIallVisitKinds+                                {-# LINE 7974 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOallchildvisit =+                               ({-# LINE 1189 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIallchildvisit+                                {-# LINE 7980 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOavisitdefs =+                               ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIavisitdefs+                                {-# LINE 7986 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOavisituses =+                               ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIavisituses+                                {-# LINE 7992 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOchildTypes =+                               ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIchildTypes+                                {-# LINE 7998 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOchildintros =+                               ({-# LINE 893 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIchildintros+                                {-# LINE 8004 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOindex =+                               ({-# LINE 854 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIindex+                                {-# LINE 8010 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOmrules =+                               ({-# LINE 776 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsImrules+                                {-# LINE 8016 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOoptions =+                               ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIoptions+                                {-# LINE 8022 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOprevMaxSimRefs =+                               ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIprevMaxSimRefs+                                {-# LINE 8028 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOruledefs =+                               ({-# LINE 1307 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIruledefs+                                {-# LINE 8034 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOruleuses =+                               ({-# LINE 1308 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIruleuses+                                {-# LINE 8040 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOuseParallel =+                               ({-# LINE 881 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIuseParallel+                                {-# LINE 8046 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           ( _stepsIdefs,_stepsIerrors,_stepsIindex,_stepsIisLast,_stepsIlazyIntras,_stepsIprevMaxSimRefs,_stepsIruleKinds,_stepsIruleUsage,_stepsIsem_steps,_stepsIsize,_stepsIsync_steps,_stepsIuses,_stepsIvisitKinds) =+                               steps_ _stepsOallFromToStates _stepsOallInitStates _stepsOallVisitKinds _stepsOallchildvisit _stepsOavisitdefs _stepsOavisituses _stepsOchildTypes _stepsOchildintros _stepsOfmtMode _stepsOindex _stepsOkind _stepsOmrules _stepsOoptions _stepsOprevMaxSimRefs _stepsOruledefs _stepsOruleuses _stepsOuseParallel+                           ___node =+                               (Syn_VisitStep _lhsOdefs _lhsOerrors _lhsOindex _lhsOisLast _lhsOlazyIntras _lhsOprevMaxSimRefs _lhsOruleKinds _lhsOruleUsage _lhsOsem_steps _lhsOsync_steps _lhsOuses _lhsOvisitKinds)+                       in  ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds))))+sem_VisitStep_Sem :: Identifier ->+                     T_VisitStep+sem_VisitStep_Sem name_ =+    (T_VisitStep (\ _lhsIallFromToStates+                    _lhsIallInitStates+                    _lhsIallVisitKinds+                    _lhsIallchildvisit+                    _lhsIavisitdefs+                    _lhsIavisituses+                    _lhsIchildTypes+                    _lhsIchildintros+                    _lhsIfmtMode+                    _lhsIindex+                    _lhsIisLast+                    _lhsIkind+                    _lhsImrules+                    _lhsIoptions+                    _lhsIprevMaxSimRefs+                    _lhsIruledefs+                    _lhsIruleuses+                    _lhsIuseParallel ->+                      (let _lhsOerrors :: (Seq Error)+                           _lhsOruleUsage :: (Map Identifier Int)+                           _lhsOruleKinds :: (Map Identifier (Set VisitKind))+                           _lhsOdefs :: (Set String)+                           _lhsOuses :: (Map String (Maybe NonLocalAttr))+                           _lhsOlazyIntras :: (Set String)+                           _lhsOsem_steps :: PP_Doc+                           _lhsOsync_steps :: PP_Doc+                           _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)+                           _lhsOindex :: Int+                           _lhsOisLast :: Bool+                           _lhsOprevMaxSimRefs :: Int+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 779, column 16)+                           _ruleItf =+                               ({-# LINE 779 "src-ag/ExecutionPlan2Hs.ag" #-}+                                Map.findWithDefault (error $ "Rule "  ++ show name_  ++ " not found") name_ _lhsImrules+                                {-# LINE 8090 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 780, column 16)+                           (_lhsOerrors,_sem_steps) =+                               ({-# LINE 780 "src-ag/ExecutionPlan2Hs.ag" #-}+                                case _ruleItf     _lhsIkind _lhsIfmtMode of+                                  Left e     -> (Seq.singleton e, empty)+                                  Right stmt -> (Seq.empty, stmt)+                                {-# LINE 8098 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1247, column 32)+                           _lhsOruleUsage =+                               ({-# LINE 1247 "src-ag/ExecutionPlan2Hs.ag" #-}+                                Map.singleton name_ 1+                                {-# LINE 8104 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1257, column 3)+                           _lhsOruleKinds =+                               ({-# LINE 1257 "src-ag/ExecutionPlan2Hs.ag" #-}+                                Map.singleton name_ (Set.singleton _lhsIkind)+                                {-# LINE 8110 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1342, column 16)+                           _lhsOdefs =+                               ({-# LINE 1342 "src-ag/ExecutionPlan2Hs.ag" #-}+                                maybe (error "Rule not found") id $ Map.lookup name_ _lhsIruledefs+                                {-# LINE 8116 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 1343, column 16)+                           _lhsOuses =+                               ({-# LINE 1343 "src-ag/ExecutionPlan2Hs.ag" #-}+                                maybe (error "Rule not found") id $ Map.lookup name_ _lhsIruleuses+                                {-# LINE 8122 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1355, column 57)+                           _lhsOlazyIntras =+                               ({-# LINE 1355 "src-ag/ExecutionPlan2Hs.ag" #-}+                                Set.empty+                                {-# LINE 8128 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 777, column 43)+                           _lhsOsem_steps =+                               ({-# LINE 777 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _sem_steps+                                {-# LINE 8134 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 810, column 44)+                           _lhsOsync_steps =+                               ({-# LINE 810 "src-ag/ExecutionPlan2Hs.ag" #-}+                                empty+                                {-# LINE 8140 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)+                           _lhsOvisitKinds =+                               ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                mempty+                                {-# LINE 8146 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (chain)+                           _lhsOindex =+                               ({-# LINE 854 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIindex+                                {-# LINE 8152 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (chain)+                           _lhsOisLast =+                               ({-# LINE 873 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIisLast+                                {-# LINE 8158 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (chain)+                           _lhsOprevMaxSimRefs =+                               ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIprevMaxSimRefs+                                {-# LINE 8164 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           ___node =+                               (Syn_VisitStep _lhsOdefs _lhsOerrors _lhsOindex _lhsOisLast _lhsOlazyIntras _lhsOprevMaxSimRefs _lhsOruleKinds _lhsOruleUsage _lhsOsem_steps _lhsOsync_steps _lhsOuses _lhsOvisitKinds)+                       in  ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds))))+sem_VisitStep_Sim :: T_VisitSteps ->+                     T_VisitStep+sem_VisitStep_Sim (T_VisitSteps steps_) =+    (T_VisitStep (\ _lhsIallFromToStates+                    _lhsIallInitStates+                    _lhsIallVisitKinds+                    _lhsIallchildvisit+                    _lhsIavisitdefs+                    _lhsIavisituses+                    _lhsIchildTypes+                    _lhsIchildintros+                    _lhsIfmtMode+                    _lhsIindex+                    _lhsIisLast+                    _lhsIkind+                    _lhsImrules+                    _lhsIoptions+                    _lhsIprevMaxSimRefs+                    _lhsIruledefs+                    _lhsIruleuses+                    _lhsIuseParallel ->+                      (let _lhsOsem_steps :: PP_Doc+                           _stepsOindex :: Int+                           _lhsOindex :: Int+                           _lhsOprevMaxSimRefs :: Int+                           _lhsOdefs :: (Set String)+                           _lhsOerrors :: (Seq Error)+                           _lhsOlazyIntras :: (Set String)+                           _lhsOruleKinds :: (Map Identifier (Set VisitKind))+                           _lhsOruleUsage :: (Map Identifier Int)+                           _lhsOsync_steps :: PP_Doc+                           _lhsOuses :: (Map String (Maybe NonLocalAttr))+                           _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)+                           _lhsOisLast :: Bool+                           _stepsOallFromToStates :: (Map VisitIdentifier (Int,Int))+                           _stepsOallInitStates :: (Map NontermIdent Int)+                           _stepsOallVisitKinds :: (Map VisitIdentifier VisitKind)+                           _stepsOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                           _stepsOavisitdefs :: (Map VisitIdentifier (Set Identifier))+                           _stepsOavisituses :: (Map VisitIdentifier (Set Identifier))+                           _stepsOchildTypes :: (Map Identifier Type)+                           _stepsOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))+                           _stepsOfmtMode :: FormatMode+                           _stepsOkind :: VisitKind+                           _stepsOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))+                           _stepsOoptions :: Options+                           _stepsOprevMaxSimRefs :: Int+                           _stepsOruledefs :: (Map Identifier (Set String))+                           _stepsOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))+                           _stepsOuseParallel :: Bool+                           _stepsIdefs :: (Set String)+                           _stepsIerrors :: (Seq Error)+                           _stepsIindex :: Int+                           _stepsIisLast :: Bool+                           _stepsIlazyIntras :: (Set String)+                           _stepsIprevMaxSimRefs :: Int+                           _stepsIruleKinds :: (Map Identifier (Set VisitKind))+                           _stepsIruleUsage :: (Map Identifier Int)+                           _stepsIsem_steps :: PP_Doc+                           _stepsIsize :: Int+                           _stepsIsync_steps :: PP_Doc+                           _stepsIuses :: (Map String (Maybe NonLocalAttr))+                           _stepsIvisitKinds :: (Map VisitIdentifier VisitKind)+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 805, column 16)+                           _lhsOsem_steps =+                               ({-# LINE 805 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIsem_steps >-< _stepsIsync_steps+                                {-# LINE 8236 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 860, column 22)+                           _stepsOindex =+                               ({-# LINE 860 "src-ag/ExecutionPlan2Hs.ag" #-}+                                0+                                {-# LINE 8242 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 861, column 22)+                           _lhsOindex =+                               ({-# LINE 861 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIindex+                                {-# LINE 8248 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 868, column 3)+                           _lhsOprevMaxSimRefs =+                               ({-# LINE 868 "src-ag/ExecutionPlan2Hs.ag" #-}+                                if _useParallel+                                then _lhsIprevMaxSimRefs `max` (_stepsIindex - 1)+                                else _lhsIprevMaxSimRefs+                                {-# LINE 8256 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 883, column 22)+                           _useParallel =+                               ({-# LINE 883 "src-ag/ExecutionPlan2Hs.ag" #-}+                                parallelInvoke _lhsIoptions && _stepsIsize > 1 && _isMonadic+                                {-# LINE 8262 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- "src-ag/ExecutionPlan2Hs.ag"(line 884, column 22)+                           _isMonadic =+                               ({-# LINE 884 "src-ag/ExecutionPlan2Hs.ag" #-}+                                case _lhsIkind of+                                  VisitMonadic -> True+                                  _            -> False+                                {-# LINE 8270 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1339, column 38)+                           _lhsOdefs =+                               ({-# LINE 1339 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIdefs+                                {-# LINE 8276 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)+                           _lhsOerrors =+                               ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIerrors+                                {-# LINE 8282 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1355, column 57)+                           _lhsOlazyIntras =+                               ({-# LINE 1355 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIlazyIntras+                                {-# LINE 8288 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)+                           _lhsOruleKinds =+                               ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIruleKinds+                                {-# LINE 8294 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)+                           _lhsOruleUsage =+                               ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIruleUsage+                                {-# LINE 8300 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 810, column 44)+                           _lhsOsync_steps =+                               ({-# LINE 810 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIsync_steps+                                {-# LINE 8306 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1340, column 38)+                           _lhsOuses =+                               ({-# LINE 1340 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIuses+                                {-# LINE 8312 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)+                           _lhsOvisitKinds =+                               ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIvisitKinds+                                {-# LINE 8318 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (up)+                           _lhsOisLast =+                               ({-# LINE 873 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _stepsIisLast+                                {-# LINE 8324 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOallFromToStates =+                               ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIallFromToStates+                                {-# LINE 8330 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOallInitStates =+                               ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIallInitStates+                                {-# LINE 8336 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOallVisitKinds =+                               ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIallVisitKinds+                                {-# LINE 8342 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOallchildvisit =+                               ({-# LINE 1189 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIallchildvisit+                                {-# LINE 8348 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOavisitdefs =+                               ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIavisitdefs+                                {-# LINE 8354 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOavisituses =+                               ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIavisituses+                                {-# LINE 8360 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOchildTypes =+                               ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIchildTypes+                                {-# LINE 8366 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOchildintros =+                               ({-# LINE 893 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIchildintros+                                {-# LINE 8372 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOfmtMode =+                               ({-# LINE 819 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIfmtMode+                                {-# LINE 8378 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOkind =+                               ({-# LINE 769 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIkind+                                {-# LINE 8384 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOmrules =+                               ({-# LINE 776 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsImrules+                                {-# LINE 8390 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOoptions =+                               ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIoptions+                                {-# LINE 8396 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOprevMaxSimRefs =+                               ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIprevMaxSimRefs+                                {-# LINE 8402 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOruledefs =+                               ({-# LINE 1307 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIruledefs+                                {-# LINE 8408 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (down)+                           _stepsOruleuses =+                               ({-# LINE 1308 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _lhsIruleuses+                                {-# LINE 8414 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           -- copy rule (from local)+                           _stepsOuseParallel =+                               ({-# LINE 881 "src-ag/ExecutionPlan2Hs.ag" #-}+                                _useParallel+                                {-# LINE 8420 "dist/build/ExecutionPlan2Hs" #-}+                                )+                           ( _stepsIdefs,_stepsIerrors,_stepsIindex,_stepsIisLast,_stepsIlazyIntras,_stepsIprevMaxSimRefs,_stepsIruleKinds,_stepsIruleUsage,_stepsIsem_steps,_stepsIsize,_stepsIsync_steps,_stepsIuses,_stepsIvisitKinds) =+                               steps_ _stepsOallFromToStates _stepsOallInitStates _stepsOallVisitKinds _stepsOallchildvisit _stepsOavisitdefs _stepsOavisituses _stepsOchildTypes _stepsOchildintros _stepsOfmtMode _stepsOindex _stepsOkind _stepsOmrules _stepsOoptions _stepsOprevMaxSimRefs _stepsOruledefs _stepsOruleuses _stepsOuseParallel+                           ___node =+                               (Syn_VisitStep _lhsOdefs _lhsOerrors _lhsOindex _lhsOisLast _lhsOlazyIntras _lhsOprevMaxSimRefs _lhsOruleKinds _lhsOruleUsage _lhsOsem_steps _lhsOsync_steps _lhsOuses _lhsOvisitKinds)+                       in  ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds))))+-- VisitSteps --------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allFromToStates      : Map VisitIdentifier (Int,Int)+         allInitStates        : Map NontermIdent Int+         allVisitKinds        : Map VisitIdentifier VisitKind+         allchildvisit        : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))+         avisitdefs           : Map VisitIdentifier (Set Identifier)+         avisituses           : Map VisitIdentifier (Set Identifier)+         childTypes           : Map Identifier Type+         childintros          : Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))+         fmtMode              : FormatMode+         kind                 : VisitKind+         mrules               : Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)+         options              : Options+         ruledefs             : Map Identifier (Set String)+         ruleuses             : Map Identifier (Map String (Maybe NonLocalAttr))+         useParallel          : Bool+      chained attributes:+         index                : Int+         prevMaxSimRefs       : Int+      synthesized attributes:+         defs                 : Set String+         errors               : Seq Error+         isLast               : Bool+         lazyIntras           : Set String+         ruleKinds            : Map Identifier (Set VisitKind)+         ruleUsage            : Map Identifier Int+         sem_steps            : PP_Doc+         size                 : Int+         sync_steps           : PP_Doc+         uses                 : Map String (Maybe NonLocalAttr)+         visitKinds           : Map VisitIdentifier VisitKind+   alternatives:+      alternative Cons:+         child hd             : VisitStep +         child tl             : VisitSteps +      alternative Nil:+-}+-- cata+sem_VisitSteps :: VisitSteps ->+                  T_VisitSteps+sem_VisitSteps list =+    (Prelude.foldr sem_VisitSteps_Cons sem_VisitSteps_Nil (Prelude.map sem_VisitStep list))+-- semantic domain+newtype T_VisitSteps = T_VisitSteps ((Map VisitIdentifier (Int,Int)) ->+                                     (Map NontermIdent Int) ->+                                     (Map VisitIdentifier VisitKind) ->+                                     (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))) ->+                                     (Map VisitIdentifier (Set Identifier)) ->+                                     (Map VisitIdentifier (Set Identifier)) ->+                                     (Map Identifier Type) ->+                                     (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) ->+                                     FormatMode ->+                                     Int ->+                                     VisitKind ->+                                     (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)) ->+                                     Options ->+                                     Int ->+                                     (Map Identifier (Set String)) ->+                                     (Map Identifier (Map String (Maybe NonLocalAttr))) ->+                                     Bool ->+                                     ( (Set String),(Seq Error),Int,Bool,(Set String),Int,(Map Identifier (Set VisitKind)),(Map Identifier Int),PP_Doc,Int,PP_Doc,(Map String (Maybe NonLocalAttr)),(Map VisitIdentifier VisitKind)))+data Inh_VisitSteps = Inh_VisitSteps {allFromToStates_Inh_VisitSteps :: (Map VisitIdentifier (Int,Int)),allInitStates_Inh_VisitSteps :: (Map NontermIdent Int),allVisitKinds_Inh_VisitSteps :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_VisitSteps :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),avisitdefs_Inh_VisitSteps :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_VisitSteps :: (Map VisitIdentifier (Set Identifier)),childTypes_Inh_VisitSteps :: (Map Identifier Type),childintros_Inh_VisitSteps :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),fmtMode_Inh_VisitSteps :: FormatMode,index_Inh_VisitSteps :: Int,kind_Inh_VisitSteps :: VisitKind,mrules_Inh_VisitSteps :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)),options_Inh_VisitSteps :: Options,prevMaxSimRefs_Inh_VisitSteps :: Int,ruledefs_Inh_VisitSteps :: (Map Identifier (Set String)),ruleuses_Inh_VisitSteps :: (Map Identifier (Map String (Maybe NonLocalAttr))),useParallel_Inh_VisitSteps :: Bool}+data Syn_VisitSteps = Syn_VisitSteps {defs_Syn_VisitSteps :: (Set String),errors_Syn_VisitSteps :: (Seq Error),index_Syn_VisitSteps :: Int,isLast_Syn_VisitSteps :: Bool,lazyIntras_Syn_VisitSteps :: (Set String),prevMaxSimRefs_Syn_VisitSteps :: Int,ruleKinds_Syn_VisitSteps :: (Map Identifier (Set VisitKind)),ruleUsage_Syn_VisitSteps :: (Map Identifier Int),sem_steps_Syn_VisitSteps :: PP_Doc,size_Syn_VisitSteps :: Int,sync_steps_Syn_VisitSteps :: PP_Doc,uses_Syn_VisitSteps :: (Map String (Maybe NonLocalAttr)),visitKinds_Syn_VisitSteps :: (Map VisitIdentifier VisitKind)}+wrap_VisitSteps :: T_VisitSteps ->+                   Inh_VisitSteps ->+                   Syn_VisitSteps+wrap_VisitSteps (T_VisitSteps sem) (Inh_VisitSteps _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfmtMode _lhsIindex _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel) =+    (let ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsize,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds) = sem _lhsIallFromToStates _lhsIallInitStates _lhsIallVisitKinds _lhsIallchildvisit _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIfmtMode _lhsIindex _lhsIkind _lhsImrules _lhsIoptions _lhsIprevMaxSimRefs _lhsIruledefs _lhsIruleuses _lhsIuseParallel+     in  (Syn_VisitSteps _lhsOdefs _lhsOerrors _lhsOindex _lhsOisLast _lhsOlazyIntras _lhsOprevMaxSimRefs _lhsOruleKinds _lhsOruleUsage _lhsOsem_steps _lhsOsize _lhsOsync_steps _lhsOuses _lhsOvisitKinds))+sem_VisitSteps_Cons :: T_VisitStep ->+                       T_VisitSteps ->+                       T_VisitSteps+sem_VisitSteps_Cons (T_VisitStep hd_) (T_VisitSteps tl_) =+    (T_VisitSteps (\ _lhsIallFromToStates+                     _lhsIallInitStates+                     _lhsIallVisitKinds+                     _lhsIallchildvisit+                     _lhsIavisitdefs+                     _lhsIavisituses+                     _lhsIchildTypes+                     _lhsIchildintros+                     _lhsIfmtMode+                     _lhsIindex+                     _lhsIkind+                     _lhsImrules+                     _lhsIoptions+                     _lhsIprevMaxSimRefs+                     _lhsIruledefs+                     _lhsIruleuses+                     _lhsIuseParallel ->+                       (let _lhsOsize :: Int+                            _hdOindex :: Int+                            _tlOindex :: Int+                            _lhsOindex :: Int+                            _lhsOisLast :: Bool+                            _hdOisLast :: Bool+                            _lhsOdefs :: (Set String)+                            _lhsOerrors :: (Seq Error)+                            _lhsOlazyIntras :: (Set String)+                            _lhsOruleKinds :: (Map Identifier (Set VisitKind))+                            _lhsOruleUsage :: (Map Identifier Int)+                            _lhsOsem_steps :: PP_Doc+                            _lhsOsync_steps :: PP_Doc+                            _lhsOuses :: (Map String (Maybe NonLocalAttr))+                            _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)+                            _lhsOprevMaxSimRefs :: Int+                            _hdOallFromToStates :: (Map VisitIdentifier (Int,Int))+                            _hdOallInitStates :: (Map NontermIdent Int)+                            _hdOallVisitKinds :: (Map VisitIdentifier VisitKind)+                            _hdOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                            _hdOavisitdefs :: (Map VisitIdentifier (Set Identifier))+                            _hdOavisituses :: (Map VisitIdentifier (Set Identifier))+                            _hdOchildTypes :: (Map Identifier Type)+                            _hdOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))+                            _hdOfmtMode :: FormatMode+                            _hdOkind :: VisitKind+                            _hdOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))+                            _hdOoptions :: Options+                            _hdOprevMaxSimRefs :: Int+                            _hdOruledefs :: (Map Identifier (Set String))+                            _hdOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))+                            _hdOuseParallel :: Bool+                            _tlOallFromToStates :: (Map VisitIdentifier (Int,Int))+                            _tlOallInitStates :: (Map NontermIdent Int)+                            _tlOallVisitKinds :: (Map VisitIdentifier VisitKind)+                            _tlOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                            _tlOavisitdefs :: (Map VisitIdentifier (Set Identifier))+                            _tlOavisituses :: (Map VisitIdentifier (Set Identifier))+                            _tlOchildTypes :: (Map Identifier Type)+                            _tlOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))+                            _tlOfmtMode :: FormatMode+                            _tlOkind :: VisitKind+                            _tlOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))+                            _tlOoptions :: Options+                            _tlOprevMaxSimRefs :: Int+                            _tlOruledefs :: (Map Identifier (Set String))+                            _tlOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))+                            _tlOuseParallel :: Bool+                            _hdIdefs :: (Set String)+                            _hdIerrors :: (Seq Error)+                            _hdIindex :: Int+                            _hdIisLast :: Bool+                            _hdIlazyIntras :: (Set String)+                            _hdIprevMaxSimRefs :: Int+                            _hdIruleKinds :: (Map Identifier (Set VisitKind))+                            _hdIruleUsage :: (Map Identifier Int)+                            _hdIsem_steps :: PP_Doc+                            _hdIsync_steps :: PP_Doc+                            _hdIuses :: (Map String (Maybe NonLocalAttr))+                            _hdIvisitKinds :: (Map VisitIdentifier VisitKind)+                            _tlIdefs :: (Set String)+                            _tlIerrors :: (Seq Error)+                            _tlIindex :: Int+                            _tlIisLast :: Bool+                            _tlIlazyIntras :: (Set String)+                            _tlIprevMaxSimRefs :: Int+                            _tlIruleKinds :: (Map Identifier (Set VisitKind))+                            _tlIruleUsage :: (Map Identifier Int)+                            _tlIsem_steps :: PP_Doc+                            _tlIsize :: Int+                            _tlIsync_steps :: PP_Doc+                            _tlIuses :: (Map String (Maybe NonLocalAttr))+                            _tlIvisitKinds :: (Map VisitIdentifier VisitKind)+                            -- "src-ag/ExecutionPlan2Hs.ag"(line 851, column 10)+                            _lhsOsize =+                                ({-# LINE 851 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 1 + _tlIsize+                                 {-# LINE 8597 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- "src-ag/ExecutionPlan2Hs.ag"(line 856, column 3)+                            _hdOindex =+                                ({-# LINE 856 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIindex+                                 {-# LINE 8603 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- "src-ag/ExecutionPlan2Hs.ag"(line 857, column 3)+                            _tlOindex =+                                ({-# LINE 857 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 1 + _lhsIindex+                                 {-# LINE 8609 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- "src-ag/ExecutionPlan2Hs.ag"(line 858, column 3)+                            _lhsOindex =+                                ({-# LINE 858 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _tlIindex+                                 {-# LINE 8615 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- "src-ag/ExecutionPlan2Hs.ag"(line 877, column 11)+                            _lhsOisLast =+                                ({-# LINE 877 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 False+                                 {-# LINE 8621 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- "src-ag/ExecutionPlan2Hs.ag"(line 878, column 11)+                            _hdOisLast =+                                ({-# LINE 878 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _tlIisLast+                                 {-# LINE 8627 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1339, column 38)+                            _lhsOdefs =+                                ({-# LINE 1339 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _hdIdefs `Set.union` _tlIdefs+                                 {-# LINE 8633 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)+                            _lhsOerrors =+                                ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _hdIerrors Seq.>< _tlIerrors+                                 {-# LINE 8639 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1355, column 57)+                            _lhsOlazyIntras =+                                ({-# LINE 1355 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _hdIlazyIntras `Set.union` _tlIlazyIntras+                                 {-# LINE 8645 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)+                            _lhsOruleKinds =+                                ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _hdIruleKinds `unionWithMappend` _tlIruleKinds+                                 {-# LINE 8651 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)+                            _lhsOruleUsage =+                                ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _hdIruleUsage `unionWithSum` _tlIruleUsage+                                 {-# LINE 8657 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 777, column 43)+                            _lhsOsem_steps =+                                ({-# LINE 777 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _hdIsem_steps >-< _tlIsem_steps+                                 {-# LINE 8663 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 810, column 44)+                            _lhsOsync_steps =+                                ({-# LINE 810 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _hdIsync_steps >-< _tlIsync_steps+                                 {-# LINE 8669 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1340, column 38)+                            _lhsOuses =+                                ({-# LINE 1340 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _hdIuses `Map.union` _tlIuses+                                 {-# LINE 8675 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)+                            _lhsOvisitKinds =+                                ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _hdIvisitKinds `mappend` _tlIvisitKinds+                                 {-# LINE 8681 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (up)+                            _lhsOprevMaxSimRefs =+                                ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _tlIprevMaxSimRefs+                                 {-# LINE 8687 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _hdOallFromToStates =+                                ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIallFromToStates+                                 {-# LINE 8693 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _hdOallInitStates =+                                ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIallInitStates+                                 {-# LINE 8699 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _hdOallVisitKinds =+                                ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIallVisitKinds+                                 {-# LINE 8705 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _hdOallchildvisit =+                                ({-# LINE 1189 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIallchildvisit+                                 {-# LINE 8711 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _hdOavisitdefs =+                                ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIavisitdefs+                                 {-# LINE 8717 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _hdOavisituses =+                                ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIavisituses+                                 {-# LINE 8723 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _hdOchildTypes =+                                ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIchildTypes+                                 {-# LINE 8729 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _hdOchildintros =+                                ({-# LINE 893 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIchildintros+                                 {-# LINE 8735 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _hdOfmtMode =+                                ({-# LINE 819 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIfmtMode+                                 {-# LINE 8741 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _hdOkind =+                                ({-# LINE 769 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIkind+                                 {-# LINE 8747 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _hdOmrules =+                                ({-# LINE 776 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsImrules+                                 {-# LINE 8753 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _hdOoptions =+                                ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIoptions+                                 {-# LINE 8759 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _hdOprevMaxSimRefs =+                                ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIprevMaxSimRefs+                                 {-# LINE 8765 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _hdOruledefs =+                                ({-# LINE 1307 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIruledefs+                                 {-# LINE 8771 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _hdOruleuses =+                                ({-# LINE 1308 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIruleuses+                                 {-# LINE 8777 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _hdOuseParallel =+                                ({-# LINE 881 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIuseParallel+                                 {-# LINE 8783 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _tlOallFromToStates =+                                ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIallFromToStates+                                 {-# LINE 8789 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _tlOallInitStates =+                                ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIallInitStates+                                 {-# LINE 8795 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _tlOallVisitKinds =+                                ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIallVisitKinds+                                 {-# LINE 8801 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _tlOallchildvisit =+                                ({-# LINE 1189 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIallchildvisit+                                 {-# LINE 8807 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _tlOavisitdefs =+                                ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIavisitdefs+                                 {-# LINE 8813 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _tlOavisituses =+                                ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIavisituses+                                 {-# LINE 8819 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _tlOchildTypes =+                                ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIchildTypes+                                 {-# LINE 8825 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _tlOchildintros =+                                ({-# LINE 893 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIchildintros+                                 {-# LINE 8831 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _tlOfmtMode =+                                ({-# LINE 819 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIfmtMode+                                 {-# LINE 8837 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _tlOkind =+                                ({-# LINE 769 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIkind+                                 {-# LINE 8843 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _tlOmrules =+                                ({-# LINE 776 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsImrules+                                 {-# LINE 8849 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _tlOoptions =+                                ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIoptions+                                 {-# LINE 8855 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (chain)+                            _tlOprevMaxSimRefs =+                                ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _hdIprevMaxSimRefs+                                 {-# LINE 8861 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _tlOruledefs =+                                ({-# LINE 1307 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIruledefs+                                 {-# LINE 8867 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _tlOruleuses =+                                ({-# LINE 1308 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIruleuses+                                 {-# LINE 8873 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (down)+                            _tlOuseParallel =+                                ({-# LINE 881 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIuseParallel+                                 {-# LINE 8879 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            ( _hdIdefs,_hdIerrors,_hdIindex,_hdIisLast,_hdIlazyIntras,_hdIprevMaxSimRefs,_hdIruleKinds,_hdIruleUsage,_hdIsem_steps,_hdIsync_steps,_hdIuses,_hdIvisitKinds) =+                                hd_ _hdOallFromToStates _hdOallInitStates _hdOallVisitKinds _hdOallchildvisit _hdOavisitdefs _hdOavisituses _hdOchildTypes _hdOchildintros _hdOfmtMode _hdOindex _hdOisLast _hdOkind _hdOmrules _hdOoptions _hdOprevMaxSimRefs _hdOruledefs _hdOruleuses _hdOuseParallel+                            ( _tlIdefs,_tlIerrors,_tlIindex,_tlIisLast,_tlIlazyIntras,_tlIprevMaxSimRefs,_tlIruleKinds,_tlIruleUsage,_tlIsem_steps,_tlIsize,_tlIsync_steps,_tlIuses,_tlIvisitKinds) =+                                tl_ _tlOallFromToStates _tlOallInitStates _tlOallVisitKinds _tlOallchildvisit _tlOavisitdefs _tlOavisituses _tlOchildTypes _tlOchildintros _tlOfmtMode _tlOindex _tlOkind _tlOmrules _tlOoptions _tlOprevMaxSimRefs _tlOruledefs _tlOruleuses _tlOuseParallel+                            ___node =+                                (Syn_VisitSteps _lhsOdefs _lhsOerrors _lhsOindex _lhsOisLast _lhsOlazyIntras _lhsOprevMaxSimRefs _lhsOruleKinds _lhsOruleUsage _lhsOsem_steps _lhsOsize _lhsOsync_steps _lhsOuses _lhsOvisitKinds)+                        in  ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsize,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds))))+sem_VisitSteps_Nil :: T_VisitSteps+sem_VisitSteps_Nil =+    (T_VisitSteps (\ _lhsIallFromToStates+                     _lhsIallInitStates+                     _lhsIallVisitKinds+                     _lhsIallchildvisit+                     _lhsIavisitdefs+                     _lhsIavisituses+                     _lhsIchildTypes+                     _lhsIchildintros+                     _lhsIfmtMode+                     _lhsIindex+                     _lhsIkind+                     _lhsImrules+                     _lhsIoptions+                     _lhsIprevMaxSimRefs+                     _lhsIruledefs+                     _lhsIruleuses+                     _lhsIuseParallel ->+                       (let _lhsOsize :: Int+                            _lhsOisLast :: Bool+                            _lhsOdefs :: (Set String)+                            _lhsOerrors :: (Seq Error)+                            _lhsOlazyIntras :: (Set String)+                            _lhsOruleKinds :: (Map Identifier (Set VisitKind))+                            _lhsOruleUsage :: (Map Identifier Int)+                            _lhsOsem_steps :: PP_Doc+                            _lhsOsync_steps :: PP_Doc+                            _lhsOuses :: (Map String (Maybe NonLocalAttr))+                            _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)+                            _lhsOindex :: Int+                            _lhsOprevMaxSimRefs :: Int+                            -- "src-ag/ExecutionPlan2Hs.ag"(line 850, column 10)+                            _lhsOsize =+                                ({-# LINE 850 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 0+                                 {-# LINE 8924 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- "src-ag/ExecutionPlan2Hs.ag"(line 876, column 11)+                            _lhsOisLast =+                                ({-# LINE 876 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 True+                                 {-# LINE 8930 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1339, column 38)+                            _lhsOdefs =+                                ({-# LINE 1339 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 Set.empty+                                 {-# LINE 8936 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)+                            _lhsOerrors =+                                ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 Seq.empty+                                 {-# LINE 8942 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1355, column 57)+                            _lhsOlazyIntras =+                                ({-# LINE 1355 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 Set.empty+                                 {-# LINE 8948 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)+                            _lhsOruleKinds =+                                ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 Map.empty+                                 {-# LINE 8954 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)+                            _lhsOruleUsage =+                                ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 Map.empty+                                 {-# LINE 8960 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 777, column 43)+                            _lhsOsem_steps =+                                ({-# LINE 777 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 empty+                                 {-# LINE 8966 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 810, column 44)+                            _lhsOsync_steps =+                                ({-# LINE 810 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 empty+                                 {-# LINE 8972 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1340, column 38)+                            _lhsOuses =+                                ({-# LINE 1340 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 Map.empty+                                 {-# LINE 8978 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)+                            _lhsOvisitKinds =+                                ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 mempty+                                 {-# LINE 8984 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (chain)+                            _lhsOindex =+                                ({-# LINE 854 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIindex+                                 {-# LINE 8990 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            -- copy rule (chain)+                            _lhsOprevMaxSimRefs =+                                ({-# LINE 865 "src-ag/ExecutionPlan2Hs.ag" #-}+                                 _lhsIprevMaxSimRefs+                                 {-# LINE 8996 "dist/build/ExecutionPlan2Hs" #-}+                                 )+                            ___node =+                                (Syn_VisitSteps _lhsOdefs _lhsOerrors _lhsOindex _lhsOisLast _lhsOlazyIntras _lhsOprevMaxSimRefs _lhsOruleKinds _lhsOruleUsage _lhsOsem_steps _lhsOsize _lhsOsync_steps _lhsOuses _lhsOvisitKinds)+                        in  ( _lhsOdefs,_lhsOerrors,_lhsOindex,_lhsOisLast,_lhsOlazyIntras,_lhsOprevMaxSimRefs,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_steps,_lhsOsize,_lhsOsync_steps,_lhsOuses,_lhsOvisitKinds))))+-- Visits ------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allFromToStates      : Map VisitIdentifier (Int,Int)+         allInhmap            : Map NontermIdent Attributes+         allInitStates        : Map NontermIdent Int+         allSynmap            : Map NontermIdent Attributes+         allVisitKinds        : Map VisitIdentifier VisitKind+         allchildvisit        : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))+         allintramap          : Map StateIdentifier (Map String (Maybe NonLocalAttr))+         avisitdefs           : Map VisitIdentifier (Set Identifier)+         avisituses           : Map VisitIdentifier (Set Identifier)+         childTypes           : Map Identifier Type+         childintros          : Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))+         con                  : ConstructorIdent+         inhmap               : Attributes+         mrules               : Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)+         nextVisits           : Map StateIdentifier StateCtx+         nt                   : NontermIdent+         options              : Options+         params               : [Identifier]+         prevVisits           : Map StateIdentifier StateCtx+         ruledefs             : Map Identifier (Set String)+         ruleuses             : Map Identifier (Map String (Maybe NonLocalAttr))+         synmap               : Attributes+         terminaldefs         : Set String+      synthesized attributes:+         allvisits            : [VisitStateState]+         childvisit           : Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))+         errors               : Seq Error+         fromToStates         : Map VisitIdentifier (Int,Int)+         intramap             : Map StateIdentifier (Map String (Maybe NonLocalAttr))+         lazyIntras           : Set String+         ruleKinds            : Map Identifier (Set VisitKind)+         ruleUsage            : Map Identifier Int+         sem_visit            :  [(StateIdentifier,Bool -> PP_Doc)] +         t_visits             : PP_Doc+         visitKinds           : Map VisitIdentifier VisitKind+         visitdefs            : Map VisitIdentifier (Set Identifier)+         visituses            : Map VisitIdentifier (Set Identifier)+   alternatives:+      alternative Cons:+         child hd             : Visit +         child tl             : Visits +      alternative Nil:+-}+-- cata+sem_Visits :: Visits ->+              T_Visits+sem_Visits list =+    (Prelude.foldr sem_Visits_Cons sem_Visits_Nil (Prelude.map sem_Visit list))+-- semantic domain+newtype T_Visits = T_Visits ((Map VisitIdentifier (Int,Int)) ->+                             (Map NontermIdent Attributes) ->+                             (Map NontermIdent Int) ->+                             (Map NontermIdent Attributes) ->+                             (Map VisitIdentifier VisitKind) ->+                             (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))) ->+                             (Map StateIdentifier (Map String (Maybe NonLocalAttr))) ->+                             (Map VisitIdentifier (Set Identifier)) ->+                             (Map VisitIdentifier (Set Identifier)) ->+                             (Map Identifier Type) ->+                             (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))) ->+                             ConstructorIdent ->+                             Attributes ->+                             (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)) ->+                             (Map StateIdentifier StateCtx) ->+                             NontermIdent ->+                             Options ->+                             ([Identifier]) ->+                             (Map StateIdentifier StateCtx) ->+                             (Map Identifier (Set String)) ->+                             (Map Identifier (Map String (Maybe NonLocalAttr))) ->+                             Attributes ->+                             (Set String) ->+                             ( ([VisitStateState]),(Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),(Seq Error),(Map VisitIdentifier (Int,Int)),(Map StateIdentifier (Map String (Maybe NonLocalAttr))),(Set String),(Map Identifier (Set VisitKind)),(Map Identifier Int),( [(StateIdentifier,Bool -> PP_Doc)] ),PP_Doc,(Map VisitIdentifier VisitKind),(Map VisitIdentifier (Set Identifier)),(Map VisitIdentifier (Set Identifier))))+data Inh_Visits = Inh_Visits {allFromToStates_Inh_Visits :: (Map VisitIdentifier (Int,Int)),allInhmap_Inh_Visits :: (Map NontermIdent Attributes),allInitStates_Inh_Visits :: (Map NontermIdent Int),allSynmap_Inh_Visits :: (Map NontermIdent Attributes),allVisitKinds_Inh_Visits :: (Map VisitIdentifier VisitKind),allchildvisit_Inh_Visits :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),allintramap_Inh_Visits :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))),avisitdefs_Inh_Visits :: (Map VisitIdentifier (Set Identifier)),avisituses_Inh_Visits :: (Map VisitIdentifier (Set Identifier)),childTypes_Inh_Visits :: (Map Identifier Type),childintros_Inh_Visits :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr)))),con_Inh_Visits :: ConstructorIdent,inhmap_Inh_Visits :: Attributes,mrules_Inh_Visits :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc)),nextVisits_Inh_Visits :: (Map StateIdentifier StateCtx),nt_Inh_Visits :: NontermIdent,options_Inh_Visits :: Options,params_Inh_Visits :: ([Identifier]),prevVisits_Inh_Visits :: (Map StateIdentifier StateCtx),ruledefs_Inh_Visits :: (Map Identifier (Set String)),ruleuses_Inh_Visits :: (Map Identifier (Map String (Maybe NonLocalAttr))),synmap_Inh_Visits :: Attributes,terminaldefs_Inh_Visits :: (Set String)}+data Syn_Visits = Syn_Visits {allvisits_Syn_Visits :: ([VisitStateState]),childvisit_Syn_Visits :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc))),errors_Syn_Visits :: (Seq Error),fromToStates_Syn_Visits :: (Map VisitIdentifier (Int,Int)),intramap_Syn_Visits :: (Map StateIdentifier (Map String (Maybe NonLocalAttr))),lazyIntras_Syn_Visits :: (Set String),ruleKinds_Syn_Visits :: (Map Identifier (Set VisitKind)),ruleUsage_Syn_Visits :: (Map Identifier Int),sem_visit_Syn_Visits :: ( [(StateIdentifier,Bool -> PP_Doc)] ),t_visits_Syn_Visits :: PP_Doc,visitKinds_Syn_Visits :: (Map VisitIdentifier VisitKind),visitdefs_Syn_Visits :: (Map VisitIdentifier (Set Identifier)),visituses_Syn_Visits :: (Map VisitIdentifier (Set Identifier))}+wrap_Visits :: T_Visits ->+               Inh_Visits ->+               Syn_Visits+wrap_Visits (T_Visits sem) (Inh_Visits _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIcon _lhsIinhmap _lhsImrules _lhsInextVisits _lhsInt _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs) =+    (let ( _lhsOallvisits,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOintramap,_lhsOlazyIntras,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_visit,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses) = sem _lhsIallFromToStates _lhsIallInhmap _lhsIallInitStates _lhsIallSynmap _lhsIallVisitKinds _lhsIallchildvisit _lhsIallintramap _lhsIavisitdefs _lhsIavisituses _lhsIchildTypes _lhsIchildintros _lhsIcon _lhsIinhmap _lhsImrules _lhsInextVisits _lhsInt _lhsIoptions _lhsIparams _lhsIprevVisits _lhsIruledefs _lhsIruleuses _lhsIsynmap _lhsIterminaldefs+     in  (Syn_Visits _lhsOallvisits _lhsOchildvisit _lhsOerrors _lhsOfromToStates _lhsOintramap _lhsOlazyIntras _lhsOruleKinds _lhsOruleUsage _lhsOsem_visit _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses))+sem_Visits_Cons :: T_Visit ->+                   T_Visits ->+                   T_Visits+sem_Visits_Cons (T_Visit hd_) (T_Visits tl_) =+    (T_Visits (\ _lhsIallFromToStates+                 _lhsIallInhmap+                 _lhsIallInitStates+                 _lhsIallSynmap+                 _lhsIallVisitKinds+                 _lhsIallchildvisit+                 _lhsIallintramap+                 _lhsIavisitdefs+                 _lhsIavisituses+                 _lhsIchildTypes+                 _lhsIchildintros+                 _lhsIcon+                 _lhsIinhmap+                 _lhsImrules+                 _lhsInextVisits+                 _lhsInt+                 _lhsIoptions+                 _lhsIparams+                 _lhsIprevVisits+                 _lhsIruledefs+                 _lhsIruleuses+                 _lhsIsynmap+                 _lhsIterminaldefs ->+                   (let _lhsOallvisits :: ([VisitStateState])+                        _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                        _lhsOerrors :: (Seq Error)+                        _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))+                        _lhsOintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))+                        _lhsOlazyIntras :: (Set String)+                        _lhsOruleKinds :: (Map Identifier (Set VisitKind))+                        _lhsOruleUsage :: (Map Identifier Int)+                        _lhsOsem_visit :: ( [(StateIdentifier,Bool -> PP_Doc)] )+                        _lhsOt_visits :: PP_Doc+                        _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)+                        _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))+                        _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))+                        _hdOallFromToStates :: (Map VisitIdentifier (Int,Int))+                        _hdOallInhmap :: (Map NontermIdent Attributes)+                        _hdOallInitStates :: (Map NontermIdent Int)+                        _hdOallSynmap :: (Map NontermIdent Attributes)+                        _hdOallVisitKinds :: (Map VisitIdentifier VisitKind)+                        _hdOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                        _hdOallintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))+                        _hdOavisitdefs :: (Map VisitIdentifier (Set Identifier))+                        _hdOavisituses :: (Map VisitIdentifier (Set Identifier))+                        _hdOchildTypes :: (Map Identifier Type)+                        _hdOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))+                        _hdOcon :: ConstructorIdent+                        _hdOinhmap :: Attributes+                        _hdOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))+                        _hdOnextVisits :: (Map StateIdentifier StateCtx)+                        _hdOnt :: NontermIdent+                        _hdOoptions :: Options+                        _hdOparams :: ([Identifier])+                        _hdOprevVisits :: (Map StateIdentifier StateCtx)+                        _hdOruledefs :: (Map Identifier (Set String))+                        _hdOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))+                        _hdOsynmap :: Attributes+                        _hdOterminaldefs :: (Set String)+                        _tlOallFromToStates :: (Map VisitIdentifier (Int,Int))+                        _tlOallInhmap :: (Map NontermIdent Attributes)+                        _tlOallInitStates :: (Map NontermIdent Int)+                        _tlOallSynmap :: (Map NontermIdent Attributes)+                        _tlOallVisitKinds :: (Map VisitIdentifier VisitKind)+                        _tlOallchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                        _tlOallintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))+                        _tlOavisitdefs :: (Map VisitIdentifier (Set Identifier))+                        _tlOavisituses :: (Map VisitIdentifier (Set Identifier))+                        _tlOchildTypes :: (Map Identifier Type)+                        _tlOchildintros :: (Map Identifier (VisitKind -> FormatMode -> Either Error (PP_Doc, Set String, Map String (Maybe NonLocalAttr))))+                        _tlOcon :: ConstructorIdent+                        _tlOinhmap :: Attributes+                        _tlOmrules :: (Map Identifier (VisitKind -> FormatMode -> Either Error PP_Doc))+                        _tlOnextVisits :: (Map StateIdentifier StateCtx)+                        _tlOnt :: NontermIdent+                        _tlOoptions :: Options+                        _tlOparams :: ([Identifier])+                        _tlOprevVisits :: (Map StateIdentifier StateCtx)+                        _tlOruledefs :: (Map Identifier (Set String))+                        _tlOruleuses :: (Map Identifier (Map String (Maybe NonLocalAttr)))+                        _tlOsynmap :: Attributes+                        _tlOterminaldefs :: (Set String)+                        _hdIallvisits :: ( VisitStateState )+                        _hdIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                        _hdIerrors :: (Seq Error)+                        _hdIfromToStates :: (Map VisitIdentifier (Int,Int))+                        _hdIintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))+                        _hdIlazyIntras :: (Set String)+                        _hdIruleKinds :: (Map Identifier (Set VisitKind))+                        _hdIruleUsage :: (Map Identifier Int)+                        _hdIsem_visit :: (  (StateIdentifier,Bool -> PP_Doc)  )+                        _hdIt_visits :: PP_Doc+                        _hdIvisitKinds :: (Map VisitIdentifier VisitKind)+                        _hdIvisitdefs :: (Map VisitIdentifier (Set Identifier))+                        _hdIvisituses :: (Map VisitIdentifier (Set Identifier))+                        _tlIallvisits :: ([VisitStateState])+                        _tlIchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                        _tlIerrors :: (Seq Error)+                        _tlIfromToStates :: (Map VisitIdentifier (Int,Int))+                        _tlIintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))+                        _tlIlazyIntras :: (Set String)+                        _tlIruleKinds :: (Map Identifier (Set VisitKind))+                        _tlIruleUsage :: (Map Identifier Int)+                        _tlIsem_visit :: ( [(StateIdentifier,Bool -> PP_Doc)] )+                        _tlIt_visits :: PP_Doc+                        _tlIvisitKinds :: (Map VisitIdentifier VisitKind)+                        _tlIvisitdefs :: (Map VisitIdentifier (Set Identifier))+                        _tlIvisituses :: (Map VisitIdentifier (Set Identifier))+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 336, column 29)+                        _lhsOallvisits =+                            ({-# LINE 336 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdIallvisits : _tlIallvisits+                             {-# LINE 9202 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1187, column 37)+                        _lhsOchildvisit =+                            ({-# LINE 1187 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdIchildvisit `Map.union` _tlIchildvisit+                             {-# LINE 9208 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)+                        _lhsOerrors =+                            ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdIerrors Seq.>< _tlIerrors+                             {-# LINE 9214 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1544, column 22)+                        _lhsOfromToStates =+                            ({-# LINE 1544 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdIfromToStates `mappend` _tlIfromToStates+                             {-# LINE 9220 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1281, column 34)+                        _lhsOintramap =+                            ({-# LINE 1281 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdIintramap `uwMapUnion` _tlIintramap+                             {-# LINE 9226 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1355, column 57)+                        _lhsOlazyIntras =+                            ({-# LINE 1355 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdIlazyIntras `Set.union` _tlIlazyIntras+                             {-# LINE 9232 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)+                        _lhsOruleKinds =+                            ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdIruleKinds `unionWithMappend` _tlIruleKinds+                             {-# LINE 9238 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)+                        _lhsOruleUsage =+                            ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdIruleUsage `unionWithSum` _tlIruleUsage+                             {-# LINE 9244 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 706, column 29)+                        _lhsOsem_visit =+                            ({-# LINE 706 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdIsem_visit : _tlIsem_visit+                             {-# LINE 9250 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 394, column 59)+                        _lhsOt_visits =+                            ({-# LINE 394 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdIt_visits >-< _tlIt_visits+                             {-# LINE 9256 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)+                        _lhsOvisitKinds =+                            ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdIvisitKinds `mappend` _tlIvisitKinds+                             {-# LINE 9262 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1322, column 36)+                        _lhsOvisitdefs =+                            ({-# LINE 1322 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdIvisitdefs `uwSetUnion` _tlIvisitdefs+                             {-# LINE 9268 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1323, column 36)+                        _lhsOvisituses =+                            ({-# LINE 1323 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _hdIvisituses `uwSetUnion` _tlIvisituses+                             {-# LINE 9274 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOallFromToStates =+                            ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallFromToStates+                             {-# LINE 9280 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOallInhmap =+                            ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallInhmap+                             {-# LINE 9286 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOallInitStates =+                            ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallInitStates+                             {-# LINE 9292 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOallSynmap =+                            ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallSynmap+                             {-# LINE 9298 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOallVisitKinds =+                            ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallVisitKinds+                             {-# LINE 9304 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOallchildvisit =+                            ({-# LINE 1186 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallchildvisit+                             {-# LINE 9310 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOallintramap =+                            ({-# LINE 1280 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallintramap+                             {-# LINE 9316 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOavisitdefs =+                            ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIavisitdefs+                             {-# LINE 9322 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOavisituses =+                            ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIavisituses+                             {-# LINE 9328 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOchildTypes =+                            ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIchildTypes+                             {-# LINE 9334 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOchildintros =+                            ({-# LINE 893 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIchildintros+                             {-# LINE 9340 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOcon =+                            ({-# LINE 66 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIcon+                             {-# LINE 9346 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOinhmap =+                            ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIinhmap+                             {-# LINE 9352 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOmrules =+                            ({-# LINE 776 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsImrules+                             {-# LINE 9358 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOnextVisits =+                            ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsInextVisits+                             {-# LINE 9364 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOnt =+                            ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsInt+                             {-# LINE 9370 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOoptions =+                            ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIoptions+                             {-# LINE 9376 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOparams =+                            ({-# LINE 73 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIparams+                             {-# LINE 9382 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOprevVisits =+                            ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIprevVisits+                             {-# LINE 9388 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOruledefs =+                            ({-# LINE 1307 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIruledefs+                             {-# LINE 9394 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOruleuses =+                            ({-# LINE 1308 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIruleuses+                             {-# LINE 9400 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOsynmap =+                            ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIsynmap+                             {-# LINE 9406 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _hdOterminaldefs =+                            ({-# LINE 1283 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIterminaldefs+                             {-# LINE 9412 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOallFromToStates =+                            ({-# LINE 1547 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallFromToStates+                             {-# LINE 9418 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOallInhmap =+                            ({-# LINE 321 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallInhmap+                             {-# LINE 9424 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOallInitStates =+                            ({-# LINE 1605 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallInitStates+                             {-# LINE 9430 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOallSynmap =+                            ({-# LINE 322 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallSynmap+                             {-# LINE 9436 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOallVisitKinds =+                            ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallVisitKinds+                             {-# LINE 9442 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOallchildvisit =+                            ({-# LINE 1186 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallchildvisit+                             {-# LINE 9448 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOallintramap =+                            ({-# LINE 1280 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIallintramap+                             {-# LINE 9454 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOavisitdefs =+                            ({-# LINE 1332 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIavisitdefs+                             {-# LINE 9460 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOavisituses =+                            ({-# LINE 1333 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIavisituses+                             {-# LINE 9466 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOchildTypes =+                            ({-# LINE 1564 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIchildTypes+                             {-# LINE 9472 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOchildintros =+                            ({-# LINE 893 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIchildintros+                             {-# LINE 9478 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOcon =+                            ({-# LINE 66 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIcon+                             {-# LINE 9484 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOinhmap =+                            ({-# LINE 319 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIinhmap+                             {-# LINE 9490 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOmrules =+                            ({-# LINE 776 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsImrules+                             {-# LINE 9496 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOnextVisits =+                            ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsInextVisits+                             {-# LINE 9502 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOnt =+                            ({-# LINE 61 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsInt+                             {-# LINE 9508 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOoptions =+                            ({-# LINE 51 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIoptions+                             {-# LINE 9514 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOparams =+                            ({-# LINE 73 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIparams+                             {-# LINE 9520 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOprevVisits =+                            ({-# LINE 1533 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIprevVisits+                             {-# LINE 9526 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOruledefs =+                            ({-# LINE 1307 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIruledefs+                             {-# LINE 9532 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOruleuses =+                            ({-# LINE 1308 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIruleuses+                             {-# LINE 9538 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOsynmap =+                            ({-# LINE 320 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIsynmap+                             {-# LINE 9544 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- copy rule (down)+                        _tlOterminaldefs =+                            ({-# LINE 1283 "src-ag/ExecutionPlan2Hs.ag" #-}+                             _lhsIterminaldefs+                             {-# LINE 9550 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        ( _hdIallvisits,_hdIchildvisit,_hdIerrors,_hdIfromToStates,_hdIintramap,_hdIlazyIntras,_hdIruleKinds,_hdIruleUsage,_hdIsem_visit,_hdIt_visits,_hdIvisitKinds,_hdIvisitdefs,_hdIvisituses) =+                            hd_ _hdOallFromToStates _hdOallInhmap _hdOallInitStates _hdOallSynmap _hdOallVisitKinds _hdOallchildvisit _hdOallintramap _hdOavisitdefs _hdOavisituses _hdOchildTypes _hdOchildintros _hdOcon _hdOinhmap _hdOmrules _hdOnextVisits _hdOnt _hdOoptions _hdOparams _hdOprevVisits _hdOruledefs _hdOruleuses _hdOsynmap _hdOterminaldefs+                        ( _tlIallvisits,_tlIchildvisit,_tlIerrors,_tlIfromToStates,_tlIintramap,_tlIlazyIntras,_tlIruleKinds,_tlIruleUsage,_tlIsem_visit,_tlIt_visits,_tlIvisitKinds,_tlIvisitdefs,_tlIvisituses) =+                            tl_ _tlOallFromToStates _tlOallInhmap _tlOallInitStates _tlOallSynmap _tlOallVisitKinds _tlOallchildvisit _tlOallintramap _tlOavisitdefs _tlOavisituses _tlOchildTypes _tlOchildintros _tlOcon _tlOinhmap _tlOmrules _tlOnextVisits _tlOnt _tlOoptions _tlOparams _tlOprevVisits _tlOruledefs _tlOruleuses _tlOsynmap _tlOterminaldefs+                        ___node =+                            (Syn_Visits _lhsOallvisits _lhsOchildvisit _lhsOerrors _lhsOfromToStates _lhsOintramap _lhsOlazyIntras _lhsOruleKinds _lhsOruleUsage _lhsOsem_visit _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses)+                    in  ( _lhsOallvisits,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOintramap,_lhsOlazyIntras,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_visit,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))+sem_Visits_Nil :: T_Visits+sem_Visits_Nil =+    (T_Visits (\ _lhsIallFromToStates+                 _lhsIallInhmap+                 _lhsIallInitStates+                 _lhsIallSynmap+                 _lhsIallVisitKinds+                 _lhsIallchildvisit+                 _lhsIallintramap+                 _lhsIavisitdefs+                 _lhsIavisituses+                 _lhsIchildTypes+                 _lhsIchildintros+                 _lhsIcon+                 _lhsIinhmap+                 _lhsImrules+                 _lhsInextVisits+                 _lhsInt+                 _lhsIoptions+                 _lhsIparams+                 _lhsIprevVisits+                 _lhsIruledefs+                 _lhsIruleuses+                 _lhsIsynmap+                 _lhsIterminaldefs ->+                   (let _lhsOallvisits :: ([VisitStateState])+                        _lhsOchildvisit :: (Map VisitIdentifier (Identifier -> VisitKind -> Either Error (PP_Doc, PP_Doc)))+                        _lhsOerrors :: (Seq Error)+                        _lhsOfromToStates :: (Map VisitIdentifier (Int,Int))+                        _lhsOintramap :: (Map StateIdentifier (Map String (Maybe NonLocalAttr)))+                        _lhsOlazyIntras :: (Set String)+                        _lhsOruleKinds :: (Map Identifier (Set VisitKind))+                        _lhsOruleUsage :: (Map Identifier Int)+                        _lhsOsem_visit :: ( [(StateIdentifier,Bool -> PP_Doc)] )+                        _lhsOt_visits :: PP_Doc+                        _lhsOvisitKinds :: (Map VisitIdentifier VisitKind)+                        _lhsOvisitdefs :: (Map VisitIdentifier (Set Identifier))+                        _lhsOvisituses :: (Map VisitIdentifier (Set Identifier))+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 336, column 29)+                        _lhsOallvisits =+                            ({-# LINE 336 "src-ag/ExecutionPlan2Hs.ag" #-}+                             []+                             {-# LINE 9601 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1187, column 37)+                        _lhsOchildvisit =+                            ({-# LINE 1187 "src-ag/ExecutionPlan2Hs.ag" #-}+                             Map.empty+                             {-# LINE 9607 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1629, column 132)+                        _lhsOerrors =+                            ({-# LINE 1629 "src-ag/ExecutionPlan2Hs.ag" #-}+                             Seq.empty+                             {-# LINE 9613 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1544, column 22)+                        _lhsOfromToStates =+                            ({-# LINE 1544 "src-ag/ExecutionPlan2Hs.ag" #-}+                             mempty+                             {-# LINE 9619 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1281, column 34)+                        _lhsOintramap =+                            ({-# LINE 1281 "src-ag/ExecutionPlan2Hs.ag" #-}+                             Map.empty+                             {-# LINE 9625 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1355, column 57)+                        _lhsOlazyIntras =+                            ({-# LINE 1355 "src-ag/ExecutionPlan2Hs.ag" #-}+                             Set.empty+                             {-# LINE 9631 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1255, column 56)+                        _lhsOruleKinds =+                            ({-# LINE 1255 "src-ag/ExecutionPlan2Hs.ag" #-}+                             Map.empty+                             {-# LINE 9637 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1243, column 56)+                        _lhsOruleUsage =+                            ({-# LINE 1243 "src-ag/ExecutionPlan2Hs.ag" #-}+                             Map.empty+                             {-# LINE 9643 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 706, column 29)+                        _lhsOsem_visit =+                            ({-# LINE 706 "src-ag/ExecutionPlan2Hs.ag" #-}+                             []+                             {-# LINE 9649 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 394, column 59)+                        _lhsOt_visits =+                            ({-# LINE 394 "src-ag/ExecutionPlan2Hs.ag" #-}+                             empty+                             {-# LINE 9655 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1591, column 68)+                        _lhsOvisitKinds =+                            ({-# LINE 1591 "src-ag/ExecutionPlan2Hs.ag" #-}+                             mempty+                             {-# LINE 9661 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1322, column 36)+                        _lhsOvisitdefs =+                            ({-# LINE 1322 "src-ag/ExecutionPlan2Hs.ag" #-}+                             Map.empty+                             {-# LINE 9667 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        -- use rule "src-ag/ExecutionPlan2Hs.ag"(line 1323, column 36)+                        _lhsOvisituses =+                            ({-# LINE 1323 "src-ag/ExecutionPlan2Hs.ag" #-}+                             Map.empty+                             {-# LINE 9673 "dist/build/ExecutionPlan2Hs" #-}+                             )+                        ___node =+                            (Syn_Visits _lhsOallvisits _lhsOchildvisit _lhsOerrors _lhsOfromToStates _lhsOintramap _lhsOlazyIntras _lhsOruleKinds _lhsOruleUsage _lhsOsem_visit _lhsOt_visits _lhsOvisitKinds _lhsOvisitdefs _lhsOvisituses)                     in  ( _lhsOallvisits,_lhsOchildvisit,_lhsOerrors,_lhsOfromToStates,_lhsOintramap,_lhsOlazyIntras,_lhsOruleKinds,_lhsOruleUsage,_lhsOsem_visit,_lhsOt_visits,_lhsOvisitKinds,_lhsOvisitdefs,_lhsOvisituses))))
src-derived/GenerateCode.hs view
@@ -560,7485 +560,7541 @@                                )                           ( _nontsIchunks,_nontsIgathNts,_nontsIsemDomUnfoldGath) =                               nonts_ _nontsOallNts _nontsOallPragmas _nontsOaroundMap _nontsOcontextMap _nontsOderivings _nontsOmergeMap _nontsOo_case _nontsOo_cata _nontsOo_costcentre _nontsOo_data _nontsOo_linePragmas _nontsOo_monadic _nontsOo_newtypes _nontsOo_pretty _nontsOo_rename _nontsOo_sem _nontsOo_sig _nontsOo_splitsems _nontsOo_strictwrap _nontsOo_traces _nontsOo_unbox _nontsOoptions _nontsOparamMap _nontsOprefix _nontsOquantMap _nontsOtypeSyns _nontsOunfoldSemDom _nontsOwith_sig _nontsOwrappers-                      in  ( _lhsOerrors,_lhsOoutput))))--- CInterface ---------------------------------------------------{--   visit 0:-      inherited attributes:-         inh                  : Attributes-         nt                   : NontermIdent-         o_case               : Bool-         o_cata               : Bool-         o_costcentre         : Bool-         o_data               : Maybe Bool-         o_linePragmas        : Bool-         o_monadic            : Bool-         o_newtypes           : Bool-         o_pretty             : Bool-         o_rename             : Bool-         o_sem                : Bool-         o_sig                : Bool-         o_splitsems          : Bool-         o_strictwrap         : Bool-         o_traces             : Bool-         o_unbox              : Bool-         options              : Options-         paramMap             : ParamMap-         prefix               : String-         syn                  : Attributes-      synthesized attributes:-         comments             : [String]-         semDom               : [Decl]-         semDomUnfoldGath     : Map (NontermIdent, Int) ([String], Code.Type)-         wrapDecls            : Decls-   alternatives:-      alternative CInterface:-         child seg            : CSegments --}--- cata-sem_CInterface :: CInterface ->-                  T_CInterface-sem_CInterface (CInterface _seg) =-    (sem_CInterface_CInterface (sem_CSegments _seg))--- semantic domain-newtype T_CInterface = T_CInterface (Attributes ->-                                     NontermIdent ->-                                     Bool ->-                                     Bool ->-                                     Bool ->-                                     (Maybe Bool) ->-                                     Bool ->-                                     Bool ->-                                     Bool ->-                                     Bool ->-                                     Bool ->-                                     Bool ->-                                     Bool ->-                                     Bool ->-                                     Bool ->-                                     Bool ->-                                     Bool ->-                                     Options ->-                                     ParamMap ->-                                     String ->-                                     Attributes ->-                                     ( ([String]),([Decl]),(Map (NontermIdent, Int) ([String], Code.Type)),Decls))-data Inh_CInterface = Inh_CInterface {inh_Inh_CInterface :: !(Attributes),nt_Inh_CInterface :: !(NontermIdent),o_case_Inh_CInterface :: !(Bool),o_cata_Inh_CInterface :: !(Bool),o_costcentre_Inh_CInterface :: !(Bool),o_data_Inh_CInterface :: !((Maybe Bool)),o_linePragmas_Inh_CInterface :: !(Bool),o_monadic_Inh_CInterface :: !(Bool),o_newtypes_Inh_CInterface :: !(Bool),o_pretty_Inh_CInterface :: !(Bool),o_rename_Inh_CInterface :: !(Bool),o_sem_Inh_CInterface :: !(Bool),o_sig_Inh_CInterface :: !(Bool),o_splitsems_Inh_CInterface :: !(Bool),o_strictwrap_Inh_CInterface :: !(Bool),o_traces_Inh_CInterface :: !(Bool),o_unbox_Inh_CInterface :: !(Bool),options_Inh_CInterface :: !(Options),paramMap_Inh_CInterface :: !(ParamMap),prefix_Inh_CInterface :: !(String),syn_Inh_CInterface :: !(Attributes)}-data Syn_CInterface = Syn_CInterface {comments_Syn_CInterface :: !(([String])),semDom_Syn_CInterface :: !(([Decl])),semDomUnfoldGath_Syn_CInterface :: !((Map (NontermIdent, Int) ([String], Code.Type))),wrapDecls_Syn_CInterface :: !(Decls)}-wrap_CInterface :: T_CInterface ->-                   Inh_CInterface ->-                   Syn_CInterface-wrap_CInterface (T_CInterface sem) (Inh_CInterface _lhsIinh _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIsyn) =-    (let ( _lhsOcomments,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls) = sem _lhsIinh _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIsyn-     in  (Syn_CInterface _lhsOcomments _lhsOsemDom _lhsOsemDomUnfoldGath _lhsOwrapDecls))-sem_CInterface_CInterface :: T_CSegments ->-                             T_CInterface-sem_CInterface_CInterface (T_CSegments seg_) =-    (T_CInterface (\ _lhsIinh-                     _lhsInt-                     _lhsIo_case-                     _lhsIo_cata-                     _lhsIo_costcentre-                     _lhsIo_data-                     _lhsIo_linePragmas-                     _lhsIo_monadic-                     _lhsIo_newtypes-                     _lhsIo_pretty-                     _lhsIo_rename-                     _lhsIo_sem-                     _lhsIo_sig-                     _lhsIo_splitsems-                     _lhsIo_strictwrap-                     _lhsIo_traces-                     _lhsIo_unbox-                     _lhsIoptions-                     _lhsIparamMap-                     _lhsIprefix-                     _lhsIsyn ->-                       (let _segOnr :: Int-                            _lhsOsemDom :: ([Decl])-                            _lhsOcomments :: ([String])-                            _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))-                            _lhsOwrapDecls :: Decls-                            _segOinh :: Attributes-                            _segOnt :: NontermIdent-                            _segOo_case :: Bool-                            _segOo_cata :: Bool-                            _segOo_costcentre :: Bool-                            _segOo_data :: (Maybe Bool)-                            _segOo_linePragmas :: Bool-                            _segOo_monadic :: Bool-                            _segOo_newtypes :: Bool-                            _segOo_pretty :: Bool-                            _segOo_rename :: Bool-                            _segOo_sem :: Bool-                            _segOo_sig :: Bool-                            _segOo_splitsems :: Bool-                            _segOo_strictwrap :: Bool-                            _segOo_traces :: Bool-                            _segOo_unbox :: Bool-                            _segOoptions :: Options-                            _segOparamMap :: ParamMap-                            _segOprefix :: String-                            _segOsyn :: Attributes-                            _segIcomments :: ([String])-                            _segIisNil :: Bool-                            _segIsemDom :: ([Decl])-                            _segIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))-                            _segIwrapDecls :: Decls-                            -- "src-ag/GenerateCode.ag"(line 284, column 17)-                            _segOnr =-                                ({-# LINE 284 "src-ag/GenerateCode.ag" #-}-                                 0-                                 {-# LINE 694 "dist/build/GenerateCode" #-}-                                 )-                            -- "src-ag/GenerateCode.ag"(line 712, column 18)-                            _lhsOsemDom =-                                ({-# LINE 712 "src-ag/GenerateCode.ag" #-}-                                 Comment "semantic domain" : _segIsemDom-                                 {-# LINE 700 "dist/build/GenerateCode" #-}-                                 )-                            -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)-                            _lhsOcomments =-                                ({-# LINE 868 "src-ag/GenerateCode.ag" #-}-                                 _segIcomments-                                 {-# LINE 706 "dist/build/GenerateCode" #-}-                                 )-                            -- use rule "src-ag/GenerateCode.ag"(line 744, column 86)-                            _lhsOsemDomUnfoldGath =-                                ({-# LINE 744 "src-ag/GenerateCode.ag" #-}-                                 _segIsemDomUnfoldGath-                                 {-# LINE 712 "dist/build/GenerateCode" #-}-                                 )-                            -- use rule "src-ag/GenerateCode.ag"(line 829, column 52)-                            _lhsOwrapDecls =-                                ({-# LINE 829 "src-ag/GenerateCode.ag" #-}-                                 _segIwrapDecls-                                 {-# LINE 718 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOinh =-                                ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                 _lhsIinh-                                 {-# LINE 724 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOnt =-                                ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                 _lhsInt-                                 {-# LINE 730 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOo_case =-                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                 _lhsIo_case-                                 {-# LINE 736 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOo_cata =-                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                 _lhsIo_cata-                                 {-# LINE 742 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOo_costcentre =-                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                 _lhsIo_costcentre-                                 {-# LINE 748 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOo_data =-                                ({-# LINE 48 "src-ag/GenerateCode.ag" #-}-                                 _lhsIo_data-                                 {-# LINE 754 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOo_linePragmas =-                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                 _lhsIo_linePragmas-                                 {-# LINE 760 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOo_monadic =-                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                 _lhsIo_monadic-                                 {-# LINE 766 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOo_newtypes =-                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                 _lhsIo_newtypes-                                 {-# LINE 772 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOo_pretty =-                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                 _lhsIo_pretty-                                 {-# LINE 778 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOo_rename =-                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                 _lhsIo_rename-                                 {-# LINE 784 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOo_sem =-                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                 _lhsIo_sem-                                 {-# LINE 790 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOo_sig =-                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                 _lhsIo_sig-                                 {-# LINE 796 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOo_splitsems =-                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                 _lhsIo_splitsems-                                 {-# LINE 802 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOo_strictwrap =-                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                 _lhsIo_strictwrap-                                 {-# LINE 808 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOo_traces =-                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                 _lhsIo_traces-                                 {-# LINE 814 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOo_unbox =-                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                 _lhsIo_unbox-                                 {-# LINE 820 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOoptions =-                                ({-# LINE 50 "src-ag/GenerateCode.ag" #-}-                                 _lhsIoptions-                                 {-# LINE 826 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOparamMap =-                                ({-# LINE 95 "src-ag/GenerateCode.ag" #-}-                                 _lhsIparamMap-                                 {-# LINE 832 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOprefix =-                                ({-# LINE 49 "src-ag/GenerateCode.ag" #-}-                                 _lhsIprefix-                                 {-# LINE 838 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _segOsyn =-                                ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                 _lhsIsyn-                                 {-# LINE 844 "dist/build/GenerateCode" #-}-                                 )-                            ( _segIcomments,_segIisNil,_segIsemDom,_segIsemDomUnfoldGath,_segIwrapDecls) =-                                seg_ _segOinh _segOnr _segOnt _segOo_case _segOo_cata _segOo_costcentre _segOo_data _segOo_linePragmas _segOo_monadic _segOo_newtypes _segOo_pretty _segOo_rename _segOo_sem _segOo_sig _segOo_splitsems _segOo_strictwrap _segOo_traces _segOo_unbox _segOoptions _segOparamMap _segOprefix _segOsyn-                        in  ( _lhsOcomments,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls))))--- CNonterminal -------------------------------------------------{--   visit 0:-      inherited attributes:-         allNts               : Set NontermIdent-         allPragmas           : PragmaMap-         aroundMap            : Map NontermIdent (Map ConstructorIdent (Set Identifier))-         contextMap           : ContextMap-         derivings            : Derivings-         mergeMap             : Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))-         o_case               : Bool-         o_cata               : Bool-         o_costcentre         : Bool-         o_data               : Maybe Bool-         o_linePragmas        : Bool-         o_monadic            : Bool-         o_newtypes           : Bool-         o_pretty             : Bool-         o_rename             : Bool-         o_sem                : Bool-         o_sig                : Bool-         o_splitsems          : Bool-         o_strictwrap         : Bool-         o_traces             : Bool-         o_unbox              : Bool-         options              : Options-         paramMap             : ParamMap-         prefix               : String-         quantMap             : QuantMap-         typeSyns             : TypeSyns-         unfoldSemDom         : NontermIdent -> Int -> [String] -> Code.Type-         with_sig             : Bool-         wrappers             : Set NontermIdent-      synthesized attributes:-         chunks               : Chunks-         gathNts              : Set NontermIdent-         semDomUnfoldGath     : Map (NontermIdent, Int) ([String], Code.Type)-   alternatives:-      alternative CNonterminal:-         child nt             : {NontermIdent}-         child params         : {[Identifier]}-         child inh            : {Attributes}-         child syn            : {Attributes}-         child prods          : CProductions -         child inter          : CInterface -         visit 0:-            local aroundMap   : _-            local mergeMap    : _-            local semWrapper  : _-            local comment     : _-            local dataDef     : _-            local genCata     : _-            local cataFun     : _--}--- cata-sem_CNonterminal :: CNonterminal ->-                    T_CNonterminal-sem_CNonterminal (CNonterminal _nt _params _inh _syn _prods _inter) =-    (sem_CNonterminal_CNonterminal _nt _params _inh _syn (sem_CProductions _prods) (sem_CInterface _inter))--- semantic domain-newtype T_CNonterminal = T_CNonterminal ((Set NontermIdent) ->-                                         PragmaMap ->-                                         (Map NontermIdent (Map ConstructorIdent (Set Identifier))) ->-                                         ContextMap ->-                                         Derivings ->-                                         (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))) ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         (Maybe Bool) ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Options ->-                                         ParamMap ->-                                         String ->-                                         QuantMap ->-                                         TypeSyns ->-                                         (NontermIdent -> Int -> [String] -> Code.Type) ->-                                         Bool ->-                                         (Set NontermIdent) ->-                                         ( Chunks,(Set NontermIdent),(Map (NontermIdent, Int) ([String], Code.Type))))-data Inh_CNonterminal = Inh_CNonterminal {allNts_Inh_CNonterminal :: !((Set NontermIdent)),allPragmas_Inh_CNonterminal :: !(PragmaMap),aroundMap_Inh_CNonterminal :: !((Map NontermIdent (Map ConstructorIdent (Set Identifier)))),contextMap_Inh_CNonterminal :: !(ContextMap),derivings_Inh_CNonterminal :: !(Derivings),mergeMap_Inh_CNonterminal :: !((Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier]))))),o_case_Inh_CNonterminal :: !(Bool),o_cata_Inh_CNonterminal :: !(Bool),o_costcentre_Inh_CNonterminal :: !(Bool),o_data_Inh_CNonterminal :: !((Maybe Bool)),o_linePragmas_Inh_CNonterminal :: !(Bool),o_monadic_Inh_CNonterminal :: !(Bool),o_newtypes_Inh_CNonterminal :: !(Bool),o_pretty_Inh_CNonterminal :: !(Bool),o_rename_Inh_CNonterminal :: !(Bool),o_sem_Inh_CNonterminal :: !(Bool),o_sig_Inh_CNonterminal :: !(Bool),o_splitsems_Inh_CNonterminal :: !(Bool),o_strictwrap_Inh_CNonterminal :: !(Bool),o_traces_Inh_CNonterminal :: !(Bool),o_unbox_Inh_CNonterminal :: !(Bool),options_Inh_CNonterminal :: !(Options),paramMap_Inh_CNonterminal :: !(ParamMap),prefix_Inh_CNonterminal :: !(String),quantMap_Inh_CNonterminal :: !(QuantMap),typeSyns_Inh_CNonterminal :: !(TypeSyns),unfoldSemDom_Inh_CNonterminal :: !((NontermIdent -> Int -> [String] -> Code.Type)),with_sig_Inh_CNonterminal :: !(Bool),wrappers_Inh_CNonterminal :: !((Set NontermIdent))}-data Syn_CNonterminal = Syn_CNonterminal {chunks_Syn_CNonterminal :: !(Chunks),gathNts_Syn_CNonterminal :: !((Set NontermIdent)),semDomUnfoldGath_Syn_CNonterminal :: !((Map (NontermIdent, Int) ([String], Code.Type)))}-wrap_CNonterminal :: T_CNonterminal ->-                     Inh_CNonterminal ->-                     Syn_CNonterminal-wrap_CNonterminal (T_CNonterminal sem) (Inh_CNonterminal _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIderivings _lhsImergeMap _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsItypeSyns _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers) =-    (let ( _lhsOchunks,_lhsOgathNts,_lhsOsemDomUnfoldGath) = sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIderivings _lhsImergeMap _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsItypeSyns _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers-     in  (Syn_CNonterminal _lhsOchunks _lhsOgathNts _lhsOsemDomUnfoldGath))-sem_CNonterminal_CNonterminal :: NontermIdent ->-                                 ([Identifier]) ->-                                 Attributes ->-                                 Attributes ->-                                 T_CProductions ->-                                 T_CInterface ->-                                 T_CNonterminal-sem_CNonterminal_CNonterminal nt_ params_ inh_ syn_ (T_CProductions prods_) (T_CInterface inter_) =-    (T_CNonterminal (\ _lhsIallNts-                       _lhsIallPragmas-                       _lhsIaroundMap-                       _lhsIcontextMap-                       _lhsIderivings-                       _lhsImergeMap-                       _lhsIo_case-                       _lhsIo_cata-                       _lhsIo_costcentre-                       _lhsIo_data-                       _lhsIo_linePragmas-                       _lhsIo_monadic-                       _lhsIo_newtypes-                       _lhsIo_pretty-                       _lhsIo_rename-                       _lhsIo_sem-                       _lhsIo_sig-                       _lhsIo_splitsems-                       _lhsIo_strictwrap-                       _lhsIo_traces-                       _lhsIo_unbox-                       _lhsIoptions-                       _lhsIparamMap-                       _lhsIprefix-                       _lhsIquantMap-                       _lhsItypeSyns-                       _lhsIunfoldSemDom-                       _lhsIwith_sig-                       _lhsIwrappers ->-                         (let _interOinh :: Attributes-                              _interOsyn :: Attributes-                              _interOnt :: NontermIdent-                              _prodsOinh :: Attributes-                              _prodsOsyn :: Attributes-                              _prodsOnt :: NontermIdent-                              _lhsOgathNts :: (Set NontermIdent)-                              _lhsOchunks :: Chunks-                              _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))-                              _prodsOallNts :: (Set NontermIdent)-                              _prodsOallPragmas :: PragmaMap-                              _prodsOaroundMap :: (Map ConstructorIdent (Set Identifier))-                              _prodsOcontextMap :: ContextMap-                              _prodsOmergeMap :: (Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))-                              _prodsOo_case :: Bool-                              _prodsOo_cata :: Bool-                              _prodsOo_costcentre :: Bool-                              _prodsOo_data :: (Maybe Bool)-                              _prodsOo_linePragmas :: Bool-                              _prodsOo_monadic :: Bool-                              _prodsOo_newtypes :: Bool-                              _prodsOo_pretty :: Bool-                              _prodsOo_rename :: Bool-                              _prodsOo_sem :: Bool-                              _prodsOo_sig :: Bool-                              _prodsOo_splitsems :: Bool-                              _prodsOo_strictwrap :: Bool-                              _prodsOo_traces :: Bool-                              _prodsOo_unbox :: Bool-                              _prodsOoptions :: Options-                              _prodsOparamMap :: ParamMap-                              _prodsOprefix :: String-                              _prodsOquantMap :: QuantMap-                              _prodsOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)-                              _prodsOwith_sig :: Bool-                              _prodsOwrappers :: (Set NontermIdent)-                              _interOo_case :: Bool-                              _interOo_cata :: Bool-                              _interOo_costcentre :: Bool-                              _interOo_data :: (Maybe Bool)-                              _interOo_linePragmas :: Bool-                              _interOo_monadic :: Bool-                              _interOo_newtypes :: Bool-                              _interOo_pretty :: Bool-                              _interOo_rename :: Bool-                              _interOo_sem :: Bool-                              _interOo_sig :: Bool-                              _interOo_splitsems :: Bool-                              _interOo_strictwrap :: Bool-                              _interOo_traces :: Bool-                              _interOo_unbox :: Bool-                              _interOoptions :: Options-                              _interOparamMap :: ParamMap-                              _interOprefix :: String-                              _prodsIcataAlts :: Decls-                              _prodsIcomments :: ([String])-                              _prodsIdataAlts :: DataAlts-                              _prodsIdecls :: Decls-                              _prodsIsemNames :: ([String])-                              _interIcomments :: ([String])-                              _interIsemDom :: ([Decl])-                              _interIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))-                              _interIwrapDecls :: Decls-                              -- "src-ag/GenerateCode.ag"(line 86, column 26)-                              (_interOinh,_interOsyn,_interOnt) =-                                  ({-# LINE 86 "src-ag/GenerateCode.ag" #-}-                                   (inh_,syn_,nt_)-                                   {-# LINE 1051 "dist/build/GenerateCode" #-}-                                   )-                              -- "src-ag/GenerateCode.ag"(line 87, column 25)-                              (_prodsOinh,_prodsOsyn,_prodsOnt) =-                                  ({-# LINE 87 "src-ag/GenerateCode.ag" #-}-                                   (inh_,syn_,nt_)-                                   {-# LINE 1057 "dist/build/GenerateCode" #-}-                                   )-                              -- "src-ag/GenerateCode.ag"(line 142, column 7)-                              _lhsOgathNts =-                                  ({-# LINE 142 "src-ag/GenerateCode.ag" #-}-                                   Set.singleton nt_-                                   {-# LINE 1063 "dist/build/GenerateCode" #-}-                                   )-                              -- "src-ag/GenerateCode.ag"(line 583, column 34)-                              _aroundMap =-                                  ({-# LINE 583 "src-ag/GenerateCode.ag" #-}-                                   Map.findWithDefault Map.empty nt_ _lhsIaroundMap-                                   {-# LINE 1069 "dist/build/GenerateCode" #-}-                                   )-                              -- "src-ag/GenerateCode.ag"(line 599, column 34)-                              _mergeMap =-                                  ({-# LINE 599 "src-ag/GenerateCode.ag" #-}-                                   Map.findWithDefault Map.empty nt_ _lhsImergeMap-                                   {-# LINE 1075 "dist/build/GenerateCode" #-}-                                   )-                              -- "src-ag/GenerateCode.ag"(line 803, column 18)-                              _semWrapper =-                                  ({-# LINE 803 "src-ag/GenerateCode.ag" #-}-                                   let params' = map getName params_-                                       inhAttrs = Map.toList inh_-                                       synAttrs = Map.toList syn_-                                       inhVars = [ SimpleExpr (attrname True _LHS a) | (a,_) <- inhAttrs ]-                                       synVars = [ SimpleExpr (attrname False _LHS a) | (a,_) <- synAttrs ]-                                       var = "sem"-                                       wrapNT = "wrap" ++ "_" ++ getName nt_-                                       inhNT = "Inh" ++ "_" ++ getName nt_-                                       synNT = "Syn" ++ "_" ++ getName nt_-                                       varPat = if  _lhsIo_newtypes-                                                    then App (sdtype nt_) [SimpleExpr var]-                                                    else SimpleExpr var-                                       evalTp | null params' = id-                                              | otherwise    = idEvalType-                                       appParams nm = TypeApp (SimpleType nm) (map SimpleType params')-                                       typeSig = TSig wrapNT (evalTp $ appParams (sdtype nt_) `Arr` (appParams inhNT `Arr` appParams synNT))-                                       mkstrict = Named _lhsIo_strictwrap-                                       mkdata n attrs = Data n params' [Record n [mkstrict (getName f++"_"++n) $ evalTp $ typeToCodeType (Just nt_) params' $ removeDeforested t | (f,t) <- attrs]] False []-                                       datas = [mkdata inhNT inhAttrs, mkdata synNT synAttrs]-                                   in datas ++ [ typeSig-                                               , Decl (Fun wrapNT [varPat, App inhNT inhVars])-                                                     (Let _interIwrapDecls (App synNT synVars))-                                                     Set.empty Set.empty-                                               ]-                                   {-# LINE 1104 "dist/build/GenerateCode" #-}-                                   )-                              -- "src-ag/GenerateCode.ag"(line 864, column 18)-                              _comment =-                                  ({-# LINE 864 "src-ag/GenerateCode.ag" #-}-                                   Comment . unlines . map ind $ ( _interIcomments ++ ("alternatives:" : map ind _prodsIcomments) )-                                   {-# LINE 1110 "dist/build/GenerateCode" #-}-                                   )-                              -- "src-ag/GenerateCode.ag"(line 926, column 19)-                              _lhsOchunks =-                                  ({-# LINE 926 "src-ag/GenerateCode.ag" #-}-                                   [ Chunk (getName nt_)-                                          (Comment (getName nt_ ++ " " ++ replicate (60 - length (getName nt_)) '-'))-                                          (if _lhsIo_pretty                  then [_comment    ]   else [])-                                          (if isJust _lhsIo_data             then [_dataDef    ]   else [])-                                          (if _lhsIo_cata && _genCata        then  _cataFun        else [])-                                          (if _lhsIo_sig                     then  _interIsemDom   else [])-                                          (if nt_ `Set.member` _lhsIwrappers then  _semWrapper     else [])-                                          (if _lhsIo_sem                     then  _prodsIdecls     else [])-                                          (if _lhsIo_sem                     then  _prodsIsemNames  else [])-                                   ]-                                   {-# LINE 1125 "dist/build/GenerateCode" #-}-                                   )-                              -- "src-ag/GenerateCode.ag"(line 995, column 18)-                              _dataDef =-                                  ({-# LINE 995 "src-ag/GenerateCode.ag" #-}-                                   let params' = map getName params_-                                       typeSyn tp = let theType =-                                                          case tp of-                                                            CommonTypes.Maybe t      -> TMaybe $ typeToCodeType (Just nt_) params' t-                                                            CommonTypes.Either t1 t2 -> TEither (typeToCodeType (Just nt_) params' t1) (typeToCodeType (Just nt_) params' t2)-                                                            CommonTypes.Map t1 t2    -> TMap (typeToCodeType (Just nt_) params' t1) (typeToCodeType (Just nt_) params' t2)-                                                            CommonTypes.IntMap t     -> TIntMap $ typeToCodeType (Just nt_) params' t-                                                            CommonTypes.List t       -> Code.List $ typeToCodeType (Just nt_) params' t-                                                            CommonTypes.Tuple ts     -> Code.TupleType [typeToCodeType (Just nt_) params' t-                                                                                                   | (_,t) <- ts-                                                                                                   ]-                                                     in Code.Type (getName nt_) params' (idEvalType theType)-                                       derivings  = maybe [] (map getName . Set.toList) (Map.lookup nt_ _lhsIderivings)-                                       dataDef    = Data (getName nt_) (map getName params_) _prodsIdataAlts (maybe False id _lhsIo_data) derivings-                                   in maybe dataDef typeSyn $ lookup nt_ _lhsItypeSyns-                                   {-# LINE 1145 "dist/build/GenerateCode" #-}-                                   )-                              -- "src-ag/GenerateCode.ag"(line 1038, column 18)-                              _genCata =-                                  ({-# LINE 1038 "src-ag/GenerateCode.ag" #-}-                                   not (nt_ `Set.member` nocatas _lhsIoptions)-                                   {-# LINE 1151 "dist/build/GenerateCode" #-}-                                   )-                              -- "src-ag/GenerateCode.ag"(line 1039, column 18)-                              _cataFun =-                                  ({-# LINE 1039 "src-ag/GenerateCode.ag" #-}-                                   let appParams nm = TypeApp (SimpleType nm) (map SimpleType (map getName params_))-                                       evalTp | null params_ = id-                                              | otherwise    = idEvalType-                                       tSig = TSig (cataname _lhsIprefix nt_)-                                                   (appQuant _lhsIquantMap nt_ $ appContext _lhsIcontextMap nt_ $ evalTp $ appParams (getName nt_) `Arr` appParams (sdtype nt_))-                                       special typ = case typ of-                                                     CommonTypes.List tp ->-                                                         let cons = SimpleExpr (semname _lhsIprefix nt_ (identifier "Cons"))-                                                             nil  = SimpleExpr (semname _lhsIprefix nt_ (identifier "Nil" ))-                                                             arg  = SimpleExpr "list"-                                                             rarg = case tp of-                                                                      NT t _ _ -> let t' = maybe t id (deforestedNt t)-                                                                                  in SimpleExpr ("(Prelude.map " ++ (cataname _lhsIprefix t') ++ " list)")-                                                                      _        -> arg-                                                             lhs = Fun (cataname _lhsIprefix nt_) [arg]-                                                             rhs = (App "Prelude.foldr" [cons,nil,rarg])-                                                         in  [Decl lhs rhs Set.empty Set.empty]-                                                     CommonTypes.Maybe tp ->-                                                         let just    = semname _lhsIprefix nt_ (identifier "Just")-                                                             nothing = semname _lhsIprefix nt_ (identifier "Nothing" )-                                                             arg  = SimpleExpr "x"-                                                             rarg = case tp of-                                                                      NT t _ _ -> let t' = maybe t id (deforestedNt t)-                                                                                  in App (cataname _lhsIprefix t') [arg]-                                                                      _        -> arg-                                                             lhs a = Fun (cataname _lhsIprefix nt_) [a]-                                                         in  [Decl (lhs (App "Prelude.Just" [arg]))     (App just [rarg])    Set.empty Set.empty-                                                             ,Decl (lhs (SimpleExpr "Prelude.Nothing")) (SimpleExpr nothing) Set.empty Set.empty-                                                             ]-                                                     CommonTypes.Either tp1 tp2 ->-                                                         let left  = semname _lhsIprefix nt_ (identifier "Left")-                                                             right = semname _lhsIprefix nt_ (identifier "Right" )-                                                             arg   = SimpleExpr "x"-                                                             rarg0 = case tp1 of-                                                                      NT t _ _ -> let t' = maybe t id (deforestedNt t)-                                                                                  in App (cataname _lhsIprefix t') [arg]-                                                                      _        -> arg-                                                             rarg1 = case tp2 of-                                                                      NT t _ _ -> let t' = maybe t id (deforestedNt t)-                                                                                  in App (cataname _lhsIprefix t') [arg]-                                                                      _        -> arg-                                                             lhs a = Fun (cataname _lhsIprefix nt_) [a]-                                                         in  [Decl (lhs (App "Prelude.Left"  [arg]))     (App left  [rarg0])    Set.empty Set.empty-                                                             ,Decl (lhs (App "Prelude.Right" [arg]))     (App right [rarg1])    Set.empty Set.empty-                                                             ]-                                                     CommonTypes.Map _ tp ->-                                                       let entry = SimpleExpr (semname _lhsIprefix nt_ (identifier "Entry"))-                                                           nil   = SimpleExpr (semname _lhsIprefix nt_ (identifier "Nil"))-                                                           arg   = SimpleExpr "m"-                                                           rarg  = case tp of-                                                                     NT t _ _ -> let t' = maybe t id (deforestedNt t)-                                                                                 in App "Data.Map.map" [SimpleExpr $ cataname _lhsIprefix t', arg]-                                                                     _        -> arg-                                                           lhs   = Fun (cataname _lhsIprefix nt_) [arg]-                                                           rhs   = App "Data.Map.foldrWithKey" [entry,nil,rarg]-                                                       in [Decl lhs rhs Set.empty Set.empty]-                                                     CommonTypes.IntMap tp ->-                                                       let entry = SimpleExpr (semname _lhsIprefix nt_ (identifier "Entry"))-                                                           nil   = SimpleExpr (semname _lhsIprefix nt_ (identifier "Nil"))-                                                           arg   = SimpleExpr "m"-                                                           rarg  = case tp of-                                                                     NT t _ _ -> let t' = maybe t id (deforestedNt t)-                                                                                 in App "Data.IntMap.map" [SimpleExpr $ cataname _lhsIprefix t', arg]-                                                                     _        -> arg-                                                           lhs   = Fun (cataname _lhsIprefix nt_) [arg]-                                                           rhs   = App "Data.IntMap.foldWithKey" [entry,nil,rarg]-                                                       in [Decl lhs rhs Set.empty Set.empty]-                                                     CommonTypes.Tuple tps ->-                                                         let con  = semname _lhsIprefix nt_ (identifier "Tuple")-                                                             tps' = [ (SimpleExpr (getName x),y) | (x,y) <- tps]-                                                             rargs = map rarg tps'-                                                             rarg (n, tp) = case tp of-                                                                      NT t _ _ -> let t' = maybe t id (deforestedNt t)-                                                                                  in App (cataname _lhsIprefix t') [n]-                                                                      _        -> n-                                                             lhs = Fun (cataname _lhsIprefix nt_) [TupleExpr (map fst tps')]-                                                             rhs = App con rargs-                                                         in  [Decl lhs rhs Set.empty Set.empty]-                                   in  Comment "cata" :-                                       (if _lhsIo_sig then [tSig] else []) ++-                                       maybe _prodsIcataAlts special (lookup nt_ _lhsItypeSyns)-                                   {-# LINE 1237 "dist/build/GenerateCode" #-}-                                   )-                              -- use rule "src-ag/GenerateCode.ag"(line 744, column 86)-                              _lhsOsemDomUnfoldGath =-                                  ({-# LINE 744 "src-ag/GenerateCode.ag" #-}-                                   _interIsemDomUnfoldGath-                                   {-# LINE 1243 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOallNts =-                                  ({-# LINE 132 "src-ag/GenerateCode.ag" #-}-                                   _lhsIallNts-                                   {-# LINE 1249 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOallPragmas =-                                  ({-# LINE 73 "src-ag/GenerateCode.ag" #-}-                                   _lhsIallPragmas-                                   {-# LINE 1255 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (from local)-                              _prodsOaroundMap =-                                  ({-# LINE 578 "src-ag/GenerateCode.ag" #-}-                                   _aroundMap-                                   {-# LINE 1261 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOcontextMap =-                                  ({-# LINE 115 "src-ag/GenerateCode.ag" #-}-                                   _lhsIcontextMap-                                   {-# LINE 1267 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (from local)-                              _prodsOmergeMap =-                                  ({-# LINE 594 "src-ag/GenerateCode.ag" #-}-                                   _mergeMap-                                   {-# LINE 1273 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOo_case =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_case-                                   {-# LINE 1279 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOo_cata =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_cata-                                   {-# LINE 1285 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOo_costcentre =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_costcentre-                                   {-# LINE 1291 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOo_data =-                                  ({-# LINE 48 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_data-                                   {-# LINE 1297 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOo_linePragmas =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_linePragmas-                                   {-# LINE 1303 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOo_monadic =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_monadic-                                   {-# LINE 1309 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOo_newtypes =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_newtypes-                                   {-# LINE 1315 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOo_pretty =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_pretty-                                   {-# LINE 1321 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOo_rename =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_rename-                                   {-# LINE 1327 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOo_sem =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_sem-                                   {-# LINE 1333 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOo_sig =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_sig-                                   {-# LINE 1339 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOo_splitsems =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_splitsems-                                   {-# LINE 1345 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOo_strictwrap =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_strictwrap-                                   {-# LINE 1351 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOo_traces =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_traces-                                   {-# LINE 1357 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOo_unbox =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_unbox-                                   {-# LINE 1363 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOoptions =-                                  ({-# LINE 50 "src-ag/GenerateCode.ag" #-}-                                   _lhsIoptions-                                   {-# LINE 1369 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOparamMap =-                                  ({-# LINE 95 "src-ag/GenerateCode.ag" #-}-                                   _lhsIparamMap-                                   {-# LINE 1375 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOprefix =-                                  ({-# LINE 49 "src-ag/GenerateCode.ag" #-}-                                   _lhsIprefix-                                   {-# LINE 1381 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOquantMap =-                                  ({-# LINE 115 "src-ag/GenerateCode.ag" #-}-                                   _lhsIquantMap-                                   {-# LINE 1387 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOunfoldSemDom =-                                  ({-# LINE 750 "src-ag/GenerateCode.ag" #-}-                                   _lhsIunfoldSemDom-                                   {-# LINE 1393 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOwith_sig =-                                  ({-# LINE 851 "src-ag/GenerateCode.ag" #-}-                                   _lhsIwith_sig-                                   {-# LINE 1399 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _prodsOwrappers =-                                  ({-# LINE 987 "src-ag/GenerateCode.ag" #-}-                                   _lhsIwrappers-                                   {-# LINE 1405 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOo_case =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_case-                                   {-# LINE 1411 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOo_cata =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_cata-                                   {-# LINE 1417 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOo_costcentre =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_costcentre-                                   {-# LINE 1423 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOo_data =-                                  ({-# LINE 48 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_data-                                   {-# LINE 1429 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOo_linePragmas =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_linePragmas-                                   {-# LINE 1435 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOo_monadic =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_monadic-                                   {-# LINE 1441 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOo_newtypes =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_newtypes-                                   {-# LINE 1447 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOo_pretty =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_pretty-                                   {-# LINE 1453 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOo_rename =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_rename-                                   {-# LINE 1459 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOo_sem =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_sem-                                   {-# LINE 1465 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOo_sig =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_sig-                                   {-# LINE 1471 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOo_splitsems =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_splitsems-                                   {-# LINE 1477 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOo_strictwrap =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_strictwrap-                                   {-# LINE 1483 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOo_traces =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_traces-                                   {-# LINE 1489 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOo_unbox =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_unbox-                                   {-# LINE 1495 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOoptions =-                                  ({-# LINE 50 "src-ag/GenerateCode.ag" #-}-                                   _lhsIoptions-                                   {-# LINE 1501 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOparamMap =-                                  ({-# LINE 95 "src-ag/GenerateCode.ag" #-}-                                   _lhsIparamMap-                                   {-# LINE 1507 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _interOprefix =-                                  ({-# LINE 49 "src-ag/GenerateCode.ag" #-}-                                   _lhsIprefix-                                   {-# LINE 1513 "dist/build/GenerateCode" #-}-                                   )-                              ( _prodsIcataAlts,_prodsIcomments,_prodsIdataAlts,_prodsIdecls,_prodsIsemNames) =-                                  prods_ _prodsOallNts _prodsOallPragmas _prodsOaroundMap _prodsOcontextMap _prodsOinh _prodsOmergeMap _prodsOnt _prodsOo_case _prodsOo_cata _prodsOo_costcentre _prodsOo_data _prodsOo_linePragmas _prodsOo_monadic _prodsOo_newtypes _prodsOo_pretty _prodsOo_rename _prodsOo_sem _prodsOo_sig _prodsOo_splitsems _prodsOo_strictwrap _prodsOo_traces _prodsOo_unbox _prodsOoptions _prodsOparamMap _prodsOprefix _prodsOquantMap _prodsOsyn _prodsOunfoldSemDom _prodsOwith_sig _prodsOwrappers-                              ( _interIcomments,_interIsemDom,_interIsemDomUnfoldGath,_interIwrapDecls) =-                                  inter_ _interOinh _interOnt _interOo_case _interOo_cata _interOo_costcentre _interOo_data _interOo_linePragmas _interOo_monadic _interOo_newtypes _interOo_pretty _interOo_rename _interOo_sem _interOo_sig _interOo_splitsems _interOo_strictwrap _interOo_traces _interOo_unbox _interOoptions _interOparamMap _interOprefix _interOsyn-                          in  ( _lhsOchunks,_lhsOgathNts,_lhsOsemDomUnfoldGath))))--- CNonterminals ------------------------------------------------{--   visit 0:-      inherited attributes:-         allNts               : Set NontermIdent-         allPragmas           : PragmaMap-         aroundMap            : Map NontermIdent (Map ConstructorIdent (Set Identifier))-         contextMap           : ContextMap-         derivings            : Derivings-         mergeMap             : Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))-         o_case               : Bool-         o_cata               : Bool-         o_costcentre         : Bool-         o_data               : Maybe Bool-         o_linePragmas        : Bool-         o_monadic            : Bool-         o_newtypes           : Bool-         o_pretty             : Bool-         o_rename             : Bool-         o_sem                : Bool-         o_sig                : Bool-         o_splitsems          : Bool-         o_strictwrap         : Bool-         o_traces             : Bool-         o_unbox              : Bool-         options              : Options-         paramMap             : ParamMap-         prefix               : String-         quantMap             : QuantMap-         typeSyns             : TypeSyns-         unfoldSemDom         : NontermIdent -> Int -> [String] -> Code.Type-         with_sig             : Bool-         wrappers             : Set NontermIdent-      synthesized attributes:-         chunks               : Chunks-         gathNts              : Set NontermIdent-         semDomUnfoldGath     : Map (NontermIdent, Int) ([String], Code.Type)-   alternatives:-      alternative Cons:-         child hd             : CNonterminal -         child tl             : CNonterminals -      alternative Nil:--}--- cata-sem_CNonterminals :: CNonterminals ->-                     T_CNonterminals-sem_CNonterminals list =-    (Prelude.foldr sem_CNonterminals_Cons sem_CNonterminals_Nil (Prelude.map sem_CNonterminal list))--- semantic domain-newtype T_CNonterminals = T_CNonterminals ((Set NontermIdent) ->-                                           PragmaMap ->-                                           (Map NontermIdent (Map ConstructorIdent (Set Identifier))) ->-                                           ContextMap ->-                                           Derivings ->-                                           (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))) ->-                                           Bool ->-                                           Bool ->-                                           Bool ->-                                           (Maybe Bool) ->-                                           Bool ->-                                           Bool ->-                                           Bool ->-                                           Bool ->-                                           Bool ->-                                           Bool ->-                                           Bool ->-                                           Bool ->-                                           Bool ->-                                           Bool ->-                                           Bool ->-                                           Options ->-                                           ParamMap ->-                                           String ->-                                           QuantMap ->-                                           TypeSyns ->-                                           (NontermIdent -> Int -> [String] -> Code.Type) ->-                                           Bool ->-                                           (Set NontermIdent) ->-                                           ( Chunks,(Set NontermIdent),(Map (NontermIdent, Int) ([String], Code.Type))))-data Inh_CNonterminals = Inh_CNonterminals {allNts_Inh_CNonterminals :: !((Set NontermIdent)),allPragmas_Inh_CNonterminals :: !(PragmaMap),aroundMap_Inh_CNonterminals :: !((Map NontermIdent (Map ConstructorIdent (Set Identifier)))),contextMap_Inh_CNonterminals :: !(ContextMap),derivings_Inh_CNonterminals :: !(Derivings),mergeMap_Inh_CNonterminals :: !((Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier]))))),o_case_Inh_CNonterminals :: !(Bool),o_cata_Inh_CNonterminals :: !(Bool),o_costcentre_Inh_CNonterminals :: !(Bool),o_data_Inh_CNonterminals :: !((Maybe Bool)),o_linePragmas_Inh_CNonterminals :: !(Bool),o_monadic_Inh_CNonterminals :: !(Bool),o_newtypes_Inh_CNonterminals :: !(Bool),o_pretty_Inh_CNonterminals :: !(Bool),o_rename_Inh_CNonterminals :: !(Bool),o_sem_Inh_CNonterminals :: !(Bool),o_sig_Inh_CNonterminals :: !(Bool),o_splitsems_Inh_CNonterminals :: !(Bool),o_strictwrap_Inh_CNonterminals :: !(Bool),o_traces_Inh_CNonterminals :: !(Bool),o_unbox_Inh_CNonterminals :: !(Bool),options_Inh_CNonterminals :: !(Options),paramMap_Inh_CNonterminals :: !(ParamMap),prefix_Inh_CNonterminals :: !(String),quantMap_Inh_CNonterminals :: !(QuantMap),typeSyns_Inh_CNonterminals :: !(TypeSyns),unfoldSemDom_Inh_CNonterminals :: !((NontermIdent -> Int -> [String] -> Code.Type)),with_sig_Inh_CNonterminals :: !(Bool),wrappers_Inh_CNonterminals :: !((Set NontermIdent))}-data Syn_CNonterminals = Syn_CNonterminals {chunks_Syn_CNonterminals :: !(Chunks),gathNts_Syn_CNonterminals :: !((Set NontermIdent)),semDomUnfoldGath_Syn_CNonterminals :: !((Map (NontermIdent, Int) ([String], Code.Type)))}-wrap_CNonterminals :: T_CNonterminals ->-                      Inh_CNonterminals ->-                      Syn_CNonterminals-wrap_CNonterminals (T_CNonterminals sem) (Inh_CNonterminals _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIderivings _lhsImergeMap _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsItypeSyns _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers) =-    (let ( _lhsOchunks,_lhsOgathNts,_lhsOsemDomUnfoldGath) = sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIderivings _lhsImergeMap _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsItypeSyns _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers-     in  (Syn_CNonterminals _lhsOchunks _lhsOgathNts _lhsOsemDomUnfoldGath))-sem_CNonterminals_Cons :: T_CNonterminal ->-                          T_CNonterminals ->-                          T_CNonterminals-sem_CNonterminals_Cons (T_CNonterminal hd_) (T_CNonterminals tl_) =-    (T_CNonterminals (\ _lhsIallNts-                        _lhsIallPragmas-                        _lhsIaroundMap-                        _lhsIcontextMap-                        _lhsIderivings-                        _lhsImergeMap-                        _lhsIo_case-                        _lhsIo_cata-                        _lhsIo_costcentre-                        _lhsIo_data-                        _lhsIo_linePragmas-                        _lhsIo_monadic-                        _lhsIo_newtypes-                        _lhsIo_pretty-                        _lhsIo_rename-                        _lhsIo_sem-                        _lhsIo_sig-                        _lhsIo_splitsems-                        _lhsIo_strictwrap-                        _lhsIo_traces-                        _lhsIo_unbox-                        _lhsIoptions-                        _lhsIparamMap-                        _lhsIprefix-                        _lhsIquantMap-                        _lhsItypeSyns-                        _lhsIunfoldSemDom-                        _lhsIwith_sig-                        _lhsIwrappers ->-                          (let _lhsOchunks :: Chunks-                               _lhsOgathNts :: (Set NontermIdent)-                               _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))-                               _hdOallNts :: (Set NontermIdent)-                               _hdOallPragmas :: PragmaMap-                               _hdOaroundMap :: (Map NontermIdent (Map ConstructorIdent (Set Identifier)))-                               _hdOcontextMap :: ContextMap-                               _hdOderivings :: Derivings-                               _hdOmergeMap :: (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier]))))-                               _hdOo_case :: Bool-                               _hdOo_cata :: Bool-                               _hdOo_costcentre :: Bool-                               _hdOo_data :: (Maybe Bool)-                               _hdOo_linePragmas :: Bool-                               _hdOo_monadic :: Bool-                               _hdOo_newtypes :: Bool-                               _hdOo_pretty :: Bool-                               _hdOo_rename :: Bool-                               _hdOo_sem :: Bool-                               _hdOo_sig :: Bool-                               _hdOo_splitsems :: Bool-                               _hdOo_strictwrap :: Bool-                               _hdOo_traces :: Bool-                               _hdOo_unbox :: Bool-                               _hdOoptions :: Options-                               _hdOparamMap :: ParamMap-                               _hdOprefix :: String-                               _hdOquantMap :: QuantMap-                               _hdOtypeSyns :: TypeSyns-                               _hdOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)-                               _hdOwith_sig :: Bool-                               _hdOwrappers :: (Set NontermIdent)-                               _tlOallNts :: (Set NontermIdent)-                               _tlOallPragmas :: PragmaMap-                               _tlOaroundMap :: (Map NontermIdent (Map ConstructorIdent (Set Identifier)))-                               _tlOcontextMap :: ContextMap-                               _tlOderivings :: Derivings-                               _tlOmergeMap :: (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier]))))-                               _tlOo_case :: Bool-                               _tlOo_cata :: Bool-                               _tlOo_costcentre :: Bool-                               _tlOo_data :: (Maybe Bool)-                               _tlOo_linePragmas :: Bool-                               _tlOo_monadic :: Bool-                               _tlOo_newtypes :: Bool-                               _tlOo_pretty :: Bool-                               _tlOo_rename :: Bool-                               _tlOo_sem :: Bool-                               _tlOo_sig :: Bool-                               _tlOo_splitsems :: Bool-                               _tlOo_strictwrap :: Bool-                               _tlOo_traces :: Bool-                               _tlOo_unbox :: Bool-                               _tlOoptions :: Options-                               _tlOparamMap :: ParamMap-                               _tlOprefix :: String-                               _tlOquantMap :: QuantMap-                               _tlOtypeSyns :: TypeSyns-                               _tlOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)-                               _tlOwith_sig :: Bool-                               _tlOwrappers :: (Set NontermIdent)-                               _hdIchunks :: Chunks-                               _hdIgathNts :: (Set NontermIdent)-                               _hdIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))-                               _tlIchunks :: Chunks-                               _tlIgathNts :: (Set NontermIdent)-                               _tlIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))-                               -- use rule "src-ag/GenerateCode.ag"(line 918, column 49)-                               _lhsOchunks =-                                   ({-# LINE 918 "src-ag/GenerateCode.ag" #-}-                                    _hdIchunks ++ _tlIchunks-                                    {-# LINE 1711 "dist/build/GenerateCode" #-}-                                    )-                               -- use rule "src-ag/GenerateCode.ag"(line 138, column 47)-                               _lhsOgathNts =-                                   ({-# LINE 138 "src-ag/GenerateCode.ag" #-}-                                    _hdIgathNts `Set.union` _tlIgathNts-                                    {-# LINE 1717 "dist/build/GenerateCode" #-}-                                    )-                               -- use rule "src-ag/GenerateCode.ag"(line 744, column 86)-                               _lhsOsemDomUnfoldGath =-                                   ({-# LINE 744 "src-ag/GenerateCode.ag" #-}-                                    _hdIsemDomUnfoldGath `Map.union` _tlIsemDomUnfoldGath-                                    {-# LINE 1723 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOallNts =-                                   ({-# LINE 132 "src-ag/GenerateCode.ag" #-}-                                    _lhsIallNts-                                    {-# LINE 1729 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOallPragmas =-                                   ({-# LINE 73 "src-ag/GenerateCode.ag" #-}-                                    _lhsIallPragmas-                                    {-# LINE 1735 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOaroundMap =-                                   ({-# LINE 575 "src-ag/GenerateCode.ag" #-}-                                    _lhsIaroundMap-                                    {-# LINE 1741 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOcontextMap =-                                   ({-# LINE 115 "src-ag/GenerateCode.ag" #-}-                                    _lhsIcontextMap-                                    {-# LINE 1747 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOderivings =-                                   ({-# LINE 986 "src-ag/GenerateCode.ag" #-}-                                    _lhsIderivings-                                    {-# LINE 1753 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOmergeMap =-                                   ({-# LINE 591 "src-ag/GenerateCode.ag" #-}-                                    _lhsImergeMap-                                    {-# LINE 1759 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOo_case =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_case-                                    {-# LINE 1765 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOo_cata =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_cata-                                    {-# LINE 1771 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOo_costcentre =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_costcentre-                                    {-# LINE 1777 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOo_data =-                                   ({-# LINE 48 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_data-                                    {-# LINE 1783 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOo_linePragmas =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_linePragmas-                                    {-# LINE 1789 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOo_monadic =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_monadic-                                    {-# LINE 1795 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOo_newtypes =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_newtypes-                                    {-# LINE 1801 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOo_pretty =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_pretty-                                    {-# LINE 1807 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOo_rename =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_rename-                                    {-# LINE 1813 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOo_sem =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_sem-                                    {-# LINE 1819 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOo_sig =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_sig-                                    {-# LINE 1825 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOo_splitsems =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_splitsems-                                    {-# LINE 1831 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOo_strictwrap =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_strictwrap-                                    {-# LINE 1837 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOo_traces =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_traces-                                    {-# LINE 1843 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOo_unbox =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_unbox-                                    {-# LINE 1849 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOoptions =-                                   ({-# LINE 50 "src-ag/GenerateCode.ag" #-}-                                    _lhsIoptions-                                    {-# LINE 1855 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOparamMap =-                                   ({-# LINE 95 "src-ag/GenerateCode.ag" #-}-                                    _lhsIparamMap-                                    {-# LINE 1861 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOprefix =-                                   ({-# LINE 49 "src-ag/GenerateCode.ag" #-}-                                    _lhsIprefix-                                    {-# LINE 1867 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOquantMap =-                                   ({-# LINE 115 "src-ag/GenerateCode.ag" #-}-                                    _lhsIquantMap-                                    {-# LINE 1873 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOtypeSyns =-                                   ({-# LINE 986 "src-ag/GenerateCode.ag" #-}-                                    _lhsItypeSyns-                                    {-# LINE 1879 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOunfoldSemDom =-                                   ({-# LINE 750 "src-ag/GenerateCode.ag" #-}-                                    _lhsIunfoldSemDom-                                    {-# LINE 1885 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOwith_sig =-                                   ({-# LINE 851 "src-ag/GenerateCode.ag" #-}-                                    _lhsIwith_sig-                                    {-# LINE 1891 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _hdOwrappers =-                                   ({-# LINE 987 "src-ag/GenerateCode.ag" #-}-                                    _lhsIwrappers-                                    {-# LINE 1897 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOallNts =-                                   ({-# LINE 132 "src-ag/GenerateCode.ag" #-}-                                    _lhsIallNts-                                    {-# LINE 1903 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOallPragmas =-                                   ({-# LINE 73 "src-ag/GenerateCode.ag" #-}-                                    _lhsIallPragmas-                                    {-# LINE 1909 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOaroundMap =-                                   ({-# LINE 575 "src-ag/GenerateCode.ag" #-}-                                    _lhsIaroundMap-                                    {-# LINE 1915 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOcontextMap =-                                   ({-# LINE 115 "src-ag/GenerateCode.ag" #-}-                                    _lhsIcontextMap-                                    {-# LINE 1921 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOderivings =-                                   ({-# LINE 986 "src-ag/GenerateCode.ag" #-}-                                    _lhsIderivings-                                    {-# LINE 1927 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOmergeMap =-                                   ({-# LINE 591 "src-ag/GenerateCode.ag" #-}-                                    _lhsImergeMap-                                    {-# LINE 1933 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOo_case =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_case-                                    {-# LINE 1939 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOo_cata =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_cata-                                    {-# LINE 1945 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOo_costcentre =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_costcentre-                                    {-# LINE 1951 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOo_data =-                                   ({-# LINE 48 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_data-                                    {-# LINE 1957 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOo_linePragmas =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_linePragmas-                                    {-# LINE 1963 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOo_monadic =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_monadic-                                    {-# LINE 1969 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOo_newtypes =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_newtypes-                                    {-# LINE 1975 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOo_pretty =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_pretty-                                    {-# LINE 1981 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOo_rename =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_rename-                                    {-# LINE 1987 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOo_sem =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_sem-                                    {-# LINE 1993 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOo_sig =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_sig-                                    {-# LINE 1999 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOo_splitsems =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_splitsems-                                    {-# LINE 2005 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOo_strictwrap =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_strictwrap-                                    {-# LINE 2011 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOo_traces =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_traces-                                    {-# LINE 2017 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOo_unbox =-                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                    _lhsIo_unbox-                                    {-# LINE 2023 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOoptions =-                                   ({-# LINE 50 "src-ag/GenerateCode.ag" #-}-                                    _lhsIoptions-                                    {-# LINE 2029 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOparamMap =-                                   ({-# LINE 95 "src-ag/GenerateCode.ag" #-}-                                    _lhsIparamMap-                                    {-# LINE 2035 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOprefix =-                                   ({-# LINE 49 "src-ag/GenerateCode.ag" #-}-                                    _lhsIprefix-                                    {-# LINE 2041 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOquantMap =-                                   ({-# LINE 115 "src-ag/GenerateCode.ag" #-}-                                    _lhsIquantMap-                                    {-# LINE 2047 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOtypeSyns =-                                   ({-# LINE 986 "src-ag/GenerateCode.ag" #-}-                                    _lhsItypeSyns-                                    {-# LINE 2053 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOunfoldSemDom =-                                   ({-# LINE 750 "src-ag/GenerateCode.ag" #-}-                                    _lhsIunfoldSemDom-                                    {-# LINE 2059 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOwith_sig =-                                   ({-# LINE 851 "src-ag/GenerateCode.ag" #-}-                                    _lhsIwith_sig-                                    {-# LINE 2065 "dist/build/GenerateCode" #-}-                                    )-                               -- copy rule (down)-                               _tlOwrappers =-                                   ({-# LINE 987 "src-ag/GenerateCode.ag" #-}-                                    _lhsIwrappers-                                    {-# LINE 2071 "dist/build/GenerateCode" #-}-                                    )-                               ( _hdIchunks,_hdIgathNts,_hdIsemDomUnfoldGath) =-                                   hd_ _hdOallNts _hdOallPragmas _hdOaroundMap _hdOcontextMap _hdOderivings _hdOmergeMap _hdOo_case _hdOo_cata _hdOo_costcentre _hdOo_data _hdOo_linePragmas _hdOo_monadic _hdOo_newtypes _hdOo_pretty _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_splitsems _hdOo_strictwrap _hdOo_traces _hdOo_unbox _hdOoptions _hdOparamMap _hdOprefix _hdOquantMap _hdOtypeSyns _hdOunfoldSemDom _hdOwith_sig _hdOwrappers-                               ( _tlIchunks,_tlIgathNts,_tlIsemDomUnfoldGath) =-                                   tl_ _tlOallNts _tlOallPragmas _tlOaroundMap _tlOcontextMap _tlOderivings _tlOmergeMap _tlOo_case _tlOo_cata _tlOo_costcentre _tlOo_data _tlOo_linePragmas _tlOo_monadic _tlOo_newtypes _tlOo_pretty _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_splitsems _tlOo_strictwrap _tlOo_traces _tlOo_unbox _tlOoptions _tlOparamMap _tlOprefix _tlOquantMap _tlOtypeSyns _tlOunfoldSemDom _tlOwith_sig _tlOwrappers-                           in  ( _lhsOchunks,_lhsOgathNts,_lhsOsemDomUnfoldGath))))-sem_CNonterminals_Nil :: T_CNonterminals-sem_CNonterminals_Nil =-    (T_CNonterminals (\ _lhsIallNts-                        _lhsIallPragmas-                        _lhsIaroundMap-                        _lhsIcontextMap-                        _lhsIderivings-                        _lhsImergeMap-                        _lhsIo_case-                        _lhsIo_cata-                        _lhsIo_costcentre-                        _lhsIo_data-                        _lhsIo_linePragmas-                        _lhsIo_monadic-                        _lhsIo_newtypes-                        _lhsIo_pretty-                        _lhsIo_rename-                        _lhsIo_sem-                        _lhsIo_sig-                        _lhsIo_splitsems-                        _lhsIo_strictwrap-                        _lhsIo_traces-                        _lhsIo_unbox-                        _lhsIoptions-                        _lhsIparamMap-                        _lhsIprefix-                        _lhsIquantMap-                        _lhsItypeSyns-                        _lhsIunfoldSemDom-                        _lhsIwith_sig-                        _lhsIwrappers ->-                          (let _lhsOchunks :: Chunks-                               _lhsOgathNts :: (Set NontermIdent)-                               _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))-                               -- use rule "src-ag/GenerateCode.ag"(line 918, column 49)-                               _lhsOchunks =-                                   ({-# LINE 918 "src-ag/GenerateCode.ag" #-}-                                    []-                                    {-# LINE 2116 "dist/build/GenerateCode" #-}-                                    )-                               -- use rule "src-ag/GenerateCode.ag"(line 138, column 47)-                               _lhsOgathNts =-                                   ({-# LINE 138 "src-ag/GenerateCode.ag" #-}-                                    Set.empty-                                    {-# LINE 2122 "dist/build/GenerateCode" #-}-                                    )-                               -- use rule "src-ag/GenerateCode.ag"(line 744, column 86)-                               _lhsOsemDomUnfoldGath =-                                   ({-# LINE 744 "src-ag/GenerateCode.ag" #-}-                                    Map.empty-                                    {-# LINE 2128 "dist/build/GenerateCode" #-}-                                    )-                           in  ( _lhsOchunks,_lhsOgathNts,_lhsOsemDomUnfoldGath))))--- CProduction --------------------------------------------------{--   visit 0:-      inherited attributes:-         allNts               : Set NontermIdent-         allPragmas           : PragmaMap-         aroundMap            : Map ConstructorIdent (Set Identifier)-         contextMap           : ContextMap-         inh                  : Attributes-         mergeMap             : Map ConstructorIdent (Map Identifier (Identifier, [Identifier]))-         nt                   : NontermIdent-         o_case               : Bool-         o_cata               : Bool-         o_costcentre         : Bool-         o_data               : Maybe Bool-         o_linePragmas        : Bool-         o_monadic            : Bool-         o_newtypes           : Bool-         o_pretty             : Bool-         o_rename             : Bool-         o_sem                : Bool-         o_sig                : Bool-         o_splitsems          : Bool-         o_strictwrap         : Bool-         o_traces             : Bool-         o_unbox              : Bool-         options              : Options-         paramMap             : ParamMap-         prefix               : String-         quantMap             : QuantMap-         syn                  : Attributes-         unfoldSemDom         : NontermIdent -> Int -> [String] -> Code.Type-         with_sig             : Bool-         wrappers             : Set NontermIdent-      synthesized attributes:-         cataAlt              : Decl-         comments             : [String]-         dataAlt              : DataAlt-         decls                : Decls-         semNames             : [String]-   alternatives:-      alternative CProduction:-         child con            : {ConstructorIdent}-         child visits         : CVisits -         child children       : {[(Identifier,Type,ChildKind)]}-         child terminals      : {[Identifier]}-         visit 0:-            local paramInstMap : _-            local aroundMap   : _-            local mergeMap    : _-            local firstOrderChildren : _-            local params      : _--}--- cata-sem_CProduction :: CProduction ->-                   T_CProduction-sem_CProduction (CProduction _con _visits _children _terminals) =-    (sem_CProduction_CProduction _con (sem_CVisits _visits) _children _terminals)--- semantic domain-newtype T_CProduction = T_CProduction ((Set NontermIdent) ->-                                       PragmaMap ->-                                       (Map ConstructorIdent (Set Identifier)) ->-                                       ContextMap ->-                                       Attributes ->-                                       (Map ConstructorIdent (Map Identifier (Identifier, [Identifier]))) ->-                                       NontermIdent ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       (Maybe Bool) ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Options ->-                                       ParamMap ->-                                       String ->-                                       QuantMap ->-                                       Attributes ->-                                       (NontermIdent -> Int -> [String] -> Code.Type) ->-                                       Bool ->-                                       (Set NontermIdent) ->-                                       ( Decl,([String]),DataAlt,Decls,([String])))-data Inh_CProduction = Inh_CProduction {allNts_Inh_CProduction :: !((Set NontermIdent)),allPragmas_Inh_CProduction :: !(PragmaMap),aroundMap_Inh_CProduction :: !((Map ConstructorIdent (Set Identifier))),contextMap_Inh_CProduction :: !(ContextMap),inh_Inh_CProduction :: !(Attributes),mergeMap_Inh_CProduction :: !((Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))),nt_Inh_CProduction :: !(NontermIdent),o_case_Inh_CProduction :: !(Bool),o_cata_Inh_CProduction :: !(Bool),o_costcentre_Inh_CProduction :: !(Bool),o_data_Inh_CProduction :: !((Maybe Bool)),o_linePragmas_Inh_CProduction :: !(Bool),o_monadic_Inh_CProduction :: !(Bool),o_newtypes_Inh_CProduction :: !(Bool),o_pretty_Inh_CProduction :: !(Bool),o_rename_Inh_CProduction :: !(Bool),o_sem_Inh_CProduction :: !(Bool),o_sig_Inh_CProduction :: !(Bool),o_splitsems_Inh_CProduction :: !(Bool),o_strictwrap_Inh_CProduction :: !(Bool),o_traces_Inh_CProduction :: !(Bool),o_unbox_Inh_CProduction :: !(Bool),options_Inh_CProduction :: !(Options),paramMap_Inh_CProduction :: !(ParamMap),prefix_Inh_CProduction :: !(String),quantMap_Inh_CProduction :: !(QuantMap),syn_Inh_CProduction :: !(Attributes),unfoldSemDom_Inh_CProduction :: !((NontermIdent -> Int -> [String] -> Code.Type)),with_sig_Inh_CProduction :: !(Bool),wrappers_Inh_CProduction :: !((Set NontermIdent))}-data Syn_CProduction = Syn_CProduction {cataAlt_Syn_CProduction :: !(Decl),comments_Syn_CProduction :: !(([String])),dataAlt_Syn_CProduction :: !(DataAlt),decls_Syn_CProduction :: !(Decls),semNames_Syn_CProduction :: !(([String]))}-wrap_CProduction :: T_CProduction ->-                    Inh_CProduction ->-                    Syn_CProduction-wrap_CProduction (T_CProduction sem) (Inh_CProduction _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIinh _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsIsyn _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers) =-    (let ( _lhsOcataAlt,_lhsOcomments,_lhsOdataAlt,_lhsOdecls,_lhsOsemNames) = sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIinh _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsIsyn _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers-     in  (Syn_CProduction _lhsOcataAlt _lhsOcomments _lhsOdataAlt _lhsOdecls _lhsOsemNames))-sem_CProduction_CProduction :: ConstructorIdent ->-                               T_CVisits ->-                               ([(Identifier,Type,ChildKind)]) ->-                               ([Identifier]) ->-                               T_CProduction-sem_CProduction_CProduction con_ (T_CVisits visits_) children_ terminals_ =-    (T_CProduction (\ _lhsIallNts-                      _lhsIallPragmas-                      _lhsIaroundMap-                      _lhsIcontextMap-                      _lhsIinh-                      _lhsImergeMap-                      _lhsInt-                      _lhsIo_case-                      _lhsIo_cata-                      _lhsIo_costcentre-                      _lhsIo_data-                      _lhsIo_linePragmas-                      _lhsIo_monadic-                      _lhsIo_newtypes-                      _lhsIo_pretty-                      _lhsIo_rename-                      _lhsIo_sem-                      _lhsIo_sig-                      _lhsIo_splitsems-                      _lhsIo_strictwrap-                      _lhsIo_traces-                      _lhsIo_unbox-                      _lhsIoptions-                      _lhsIparamMap-                      _lhsIprefix-                      _lhsIquantMap-                      _lhsIsyn-                      _lhsIunfoldSemDom-                      _lhsIwith_sig-                      _lhsIwrappers ->-                        (let _visitsOcon :: ConstructorIdent-                             _visitsOterminals :: ([Identifier])-                             _visitsOvisitedSet :: (Set Identifier)-                             _visitsOnr :: Int-                             _visitsOchildren :: ([(Identifier,Type, ChildKind)])-                             _visitsOinstVisitNrs :: (Map Identifier Int)-                             _lhsOcomments :: ([String])-                             _lhsOdataAlt :: DataAlt-                             _lhsOcataAlt :: Decl-                             _lhsOdecls :: Decls-                             _lhsOsemNames :: ([String])-                             _visitsOallNts :: (Set NontermIdent)-                             _visitsOallPragmas :: PragmaMap-                             _visitsOaroundMap :: (Set Identifier)-                             _visitsOcontextMap :: ContextMap-                             _visitsOinh :: Attributes-                             _visitsOmergeMap :: (Map Identifier (Identifier, [Identifier]))-                             _visitsOnt :: NontermIdent-                             _visitsOo_case :: Bool-                             _visitsOo_cata :: Bool-                             _visitsOo_costcentre :: Bool-                             _visitsOo_data :: (Maybe Bool)-                             _visitsOo_linePragmas :: Bool-                             _visitsOo_monadic :: Bool-                             _visitsOo_newtypes :: Bool-                             _visitsOo_pretty :: Bool-                             _visitsOo_rename :: Bool-                             _visitsOo_sem :: Bool-                             _visitsOo_sig :: Bool-                             _visitsOo_splitsems :: Bool-                             _visitsOo_strictwrap :: Bool-                             _visitsOo_traces :: Bool-                             _visitsOo_unbox :: Bool-                             _visitsOoptions :: Options-                             _visitsOparamInstMap :: (Map Identifier (NontermIdent, [String]))-                             _visitsOparamMap :: ParamMap-                             _visitsOprefix :: String-                             _visitsOquantMap :: QuantMap-                             _visitsOsyn :: Attributes-                             _visitsOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)-                             _visitsOwith_sig :: Bool-                             _visitsOwrappers :: (Set NontermIdent)-                             _visitsIcomments :: ([String])-                             _visitsIdecls :: Decls-                             _visitsIgatherInstVisitNrs :: (Map Identifier Int)-                             _visitsIintra :: Exprs-                             _visitsIintraVars :: (Set String)-                             _visitsIisNil :: Bool-                             _visitsIsemNames :: ([String])-                             _visitsIvisitedSet :: (Set Identifier)-                             -- "src-ag/GenerateCode.ag"(line 92, column 19)-                             _visitsOcon =-                                 ({-# LINE 92 "src-ag/GenerateCode.ag" #-}-                                  con_-                                  {-# LINE 2319 "dist/build/GenerateCode" #-}-                                  )-                             -- "src-ag/GenerateCode.ag"(line 93, column 20)-                             _visitsOterminals =-                                 ({-# LINE 93 "src-ag/GenerateCode.ag" #-}-                                  terminals_-                                  {-# LINE 2325 "dist/build/GenerateCode" #-}-                                  )-                             -- "src-ag/GenerateCode.ag"(line 105, column 7)-                             _paramInstMap =-                                 ({-# LINE 105 "src-ag/GenerateCode.ag" #-}-                                  Map.fromList [(nm, (extractNonterminal tp, tps)) | (nm,tp,_) <- children_, let tps = map cleanupArg $ nontermArgs tp, not (null tps) ]-                                  {-# LINE 2331 "dist/build/GenerateCode" #-}-                                  )-                             -- "src-ag/GenerateCode.ag"(line 146, column 32)-                             _visitsOvisitedSet =-                                 ({-# LINE 146 "src-ag/GenerateCode.ag" #-}-                                  Set.empty-                                  {-# LINE 2337 "dist/build/GenerateCode" #-}-                                  )-                             -- "src-ag/GenerateCode.ag"(line 280, column 18)-                             _visitsOnr =-                                 ({-# LINE 280 "src-ag/GenerateCode.ag" #-}-                                  0-                                  {-# LINE 2343 "dist/build/GenerateCode" #-}-                                  )-                             -- "src-ag/GenerateCode.ag"(line 412, column 18)-                             _visitsOchildren =-                                 ({-# LINE 412 "src-ag/GenerateCode.ag" #-}-                                  children_-                                  {-# LINE 2349 "dist/build/GenerateCode" #-}-                                  )-                             -- "src-ag/GenerateCode.ag"(line 564, column 7)-                             _visitsOinstVisitNrs =-                                 ({-# LINE 564 "src-ag/GenerateCode.ag" #-}-                                  _visitsIgatherInstVisitNrs-                                  {-# LINE 2355 "dist/build/GenerateCode" #-}-                                  )-                             -- "src-ag/GenerateCode.ag"(line 584, column 34)-                             _aroundMap =-                                 ({-# LINE 584 "src-ag/GenerateCode.ag" #-}-                                  Map.findWithDefault Set.empty con_ _lhsIaroundMap-                                  {-# LINE 2361 "dist/build/GenerateCode" #-}-                                  )-                             -- "src-ag/GenerateCode.ag"(line 600, column 34)-                             _mergeMap =-                                 ({-# LINE 600 "src-ag/GenerateCode.ag" #-}-                                  Map.findWithDefault Map.empty con_ _lhsImergeMap-                                  {-# LINE 2367 "dist/build/GenerateCode" #-}-                                  )-                             -- "src-ag/GenerateCode.ag"(line 879, column 18)-                             _firstOrderChildren =-                                 ({-# LINE 879 "src-ag/GenerateCode.ag" #-}-                                  [ (nm,fromJust mb,virt) | (nm,tp,virt) <- children_, let mb = isFirstOrder virt tp, isJust mb ]-                                  {-# LINE 2373 "dist/build/GenerateCode" #-}-                                  )-                             -- "src-ag/GenerateCode.ag"(line 880, column 18)-                             _lhsOcomments =-                                 ({-# LINE 880 "src-ag/GenerateCode.ag" #-}-                                  ("alternative " ++ getName con_ ++ ":")-                                  : map ind (  map (\(x,y,_) -> makeLocalComment 14 "child" x (Just y)) _firstOrderChildren-                                            ++ _visitsIcomments-                                            )-                                  {-# LINE 2382 "dist/build/GenerateCode" #-}-                                  )-                             -- "src-ag/GenerateCode.ag"(line 1019, column 17)-                             _params =-                                 ({-# LINE 1019 "src-ag/GenerateCode.ag" #-}-                                  map getName $ Map.findWithDefault [] _lhsInt _lhsIparamMap-                                  {-# LINE 2388 "dist/build/GenerateCode" #-}-                                  )-                             -- "src-ag/GenerateCode.ag"(line 1020, column 17)-                             _lhsOdataAlt =-                                 ({-# LINE 1020 "src-ag/GenerateCode.ag" #-}-                                  let conNm = conname _lhsIo_rename _lhsInt con_-                                      mkFields f = map (\(nm,t,_) -> f _lhsInt con_ nm (typeToCodeType (Just _lhsInt) _params     $ removeDeforested t)) _firstOrderChildren-                                  in if dataRecords _lhsIoptions-                                     then Record conNm $ mkFields $ toNamedType (strictData _lhsIoptions)-                                     else DataAlt conNm $ mkFields $ \_ _ _ t -> t-                                  {-# LINE 2398 "dist/build/GenerateCode" #-}-                                  )-                             -- "src-ag/GenerateCode.ag"(line 1131, column 17)-                             _lhsOcataAlt =-                                 ({-# LINE 1131 "src-ag/GenerateCode.ag" #-}-                                  let lhs = Fun (cataname _lhsIprefix _lhsInt) [lhs_pat]-                                      lhs_pat = App (conname _lhsIo_rename _lhsInt con_)-                                                     (map (\(n,_,_) -> SimpleExpr $ locname $ n) _firstOrderChildren    )-                                      rhs = App (semname _lhsIprefix _lhsInt con_)-                                                 (map argument _firstOrderChildren    )-                                      argument (nm,NT tp _ _,_) = App (cataname _lhsIprefix tp)-                                                                       [SimpleExpr (locname nm)]-                                      argument (nm, _,_)    = SimpleExpr (locname nm)-                                   in Decl lhs rhs Set.empty Set.empty-                                  {-# LINE 2412 "dist/build/GenerateCode" #-}-                                  )-                             -- use rule "src-ag/GenerateCode.ag"(line 919, column 44)-                             _lhsOdecls =-                                 ({-# LINE 919 "src-ag/GenerateCode.ag" #-}-                                  _visitsIdecls-                                  {-# LINE 2418 "dist/build/GenerateCode" #-}-                                  )-                             -- use rule "src-ag/GenerateCode.ag"(line 1146, column 61)-                             _lhsOsemNames =-                                 ({-# LINE 1146 "src-ag/GenerateCode.ag" #-}-                                  _visitsIsemNames-                                  {-# LINE 2424 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOallNts =-                                 ({-# LINE 132 "src-ag/GenerateCode.ag" #-}-                                  _lhsIallNts-                                  {-# LINE 2430 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOallPragmas =-                                 ({-# LINE 73 "src-ag/GenerateCode.ag" #-}-                                  _lhsIallPragmas-                                  {-# LINE 2436 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (from local)-                             _visitsOaroundMap =-                                 ({-# LINE 580 "src-ag/GenerateCode.ag" #-}-                                  _aroundMap-                                  {-# LINE 2442 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOcontextMap =-                                 ({-# LINE 115 "src-ag/GenerateCode.ag" #-}-                                  _lhsIcontextMap-                                  {-# LINE 2448 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOinh =-                                 ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                  _lhsIinh-                                  {-# LINE 2454 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (from local)-                             _visitsOmergeMap =-                                 ({-# LINE 596 "src-ag/GenerateCode.ag" #-}-                                  _mergeMap-                                  {-# LINE 2460 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOnt =-                                 ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                  _lhsInt-                                  {-# LINE 2466 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOo_case =-                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                  _lhsIo_case-                                  {-# LINE 2472 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOo_cata =-                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                  _lhsIo_cata-                                  {-# LINE 2478 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOo_costcentre =-                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                  _lhsIo_costcentre-                                  {-# LINE 2484 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOo_data =-                                 ({-# LINE 48 "src-ag/GenerateCode.ag" #-}-                                  _lhsIo_data-                                  {-# LINE 2490 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOo_linePragmas =-                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                  _lhsIo_linePragmas-                                  {-# LINE 2496 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOo_monadic =-                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                  _lhsIo_monadic-                                  {-# LINE 2502 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOo_newtypes =-                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                  _lhsIo_newtypes-                                  {-# LINE 2508 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOo_pretty =-                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                  _lhsIo_pretty-                                  {-# LINE 2514 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOo_rename =-                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                  _lhsIo_rename-                                  {-# LINE 2520 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOo_sem =-                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                  _lhsIo_sem-                                  {-# LINE 2526 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOo_sig =-                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                  _lhsIo_sig-                                  {-# LINE 2532 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOo_splitsems =-                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                  _lhsIo_splitsems-                                  {-# LINE 2538 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOo_strictwrap =-                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                  _lhsIo_strictwrap-                                  {-# LINE 2544 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOo_traces =-                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                  _lhsIo_traces-                                  {-# LINE 2550 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOo_unbox =-                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                  _lhsIo_unbox-                                  {-# LINE 2556 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOoptions =-                                 ({-# LINE 50 "src-ag/GenerateCode.ag" #-}-                                  _lhsIoptions-                                  {-# LINE 2562 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (from local)-                             _visitsOparamInstMap =-                                 ({-# LINE 101 "src-ag/GenerateCode.ag" #-}-                                  _paramInstMap-                                  {-# LINE 2568 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOparamMap =-                                 ({-# LINE 95 "src-ag/GenerateCode.ag" #-}-                                  _lhsIparamMap-                                  {-# LINE 2574 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOprefix =-                                 ({-# LINE 49 "src-ag/GenerateCode.ag" #-}-                                  _lhsIprefix-                                  {-# LINE 2580 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOquantMap =-                                 ({-# LINE 115 "src-ag/GenerateCode.ag" #-}-                                  _lhsIquantMap-                                  {-# LINE 2586 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOsyn =-                                 ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                  _lhsIsyn-                                  {-# LINE 2592 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOunfoldSemDom =-                                 ({-# LINE 750 "src-ag/GenerateCode.ag" #-}-                                  _lhsIunfoldSemDom-                                  {-# LINE 2598 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOwith_sig =-                                 ({-# LINE 851 "src-ag/GenerateCode.ag" #-}-                                  _lhsIwith_sig-                                  {-# LINE 2604 "dist/build/GenerateCode" #-}-                                  )-                             -- copy rule (down)-                             _visitsOwrappers =-                                 ({-# LINE 987 "src-ag/GenerateCode.ag" #-}-                                  _lhsIwrappers-                                  {-# LINE 2610 "dist/build/GenerateCode" #-}-                                  )-                             ( _visitsIcomments,_visitsIdecls,_visitsIgatherInstVisitNrs,_visitsIintra,_visitsIintraVars,_visitsIisNil,_visitsIsemNames,_visitsIvisitedSet) =-                                 visits_ _visitsOallNts _visitsOallPragmas _visitsOaroundMap _visitsOchildren _visitsOcon _visitsOcontextMap _visitsOinh _visitsOinstVisitNrs _visitsOmergeMap _visitsOnr _visitsOnt _visitsOo_case _visitsOo_cata _visitsOo_costcentre _visitsOo_data _visitsOo_linePragmas _visitsOo_monadic _visitsOo_newtypes _visitsOo_pretty _visitsOo_rename _visitsOo_sem _visitsOo_sig _visitsOo_splitsems _visitsOo_strictwrap _visitsOo_traces _visitsOo_unbox _visitsOoptions _visitsOparamInstMap _visitsOparamMap _visitsOprefix _visitsOquantMap _visitsOsyn _visitsOterminals _visitsOunfoldSemDom _visitsOvisitedSet _visitsOwith_sig _visitsOwrappers-                         in  ( _lhsOcataAlt,_lhsOcomments,_lhsOdataAlt,_lhsOdecls,_lhsOsemNames))))--- CProductions -------------------------------------------------{--   visit 0:-      inherited attributes:-         allNts               : Set NontermIdent-         allPragmas           : PragmaMap-         aroundMap            : Map ConstructorIdent (Set Identifier)-         contextMap           : ContextMap-         inh                  : Attributes-         mergeMap             : Map ConstructorIdent (Map Identifier (Identifier, [Identifier]))-         nt                   : NontermIdent-         o_case               : Bool-         o_cata               : Bool-         o_costcentre         : Bool-         o_data               : Maybe Bool-         o_linePragmas        : Bool-         o_monadic            : Bool-         o_newtypes           : Bool-         o_pretty             : Bool-         o_rename             : Bool-         o_sem                : Bool-         o_sig                : Bool-         o_splitsems          : Bool-         o_strictwrap         : Bool-         o_traces             : Bool-         o_unbox              : Bool-         options              : Options-         paramMap             : ParamMap-         prefix               : String-         quantMap             : QuantMap-         syn                  : Attributes-         unfoldSemDom         : NontermIdent -> Int -> [String] -> Code.Type-         with_sig             : Bool-         wrappers             : Set NontermIdent-      synthesized attributes:-         cataAlts             : Decls-         comments             : [String]-         dataAlts             : DataAlts-         decls                : Decls-         semNames             : [String]-   alternatives:-      alternative Cons:-         child hd             : CProduction -         child tl             : CProductions -      alternative Nil:--}--- cata-sem_CProductions :: CProductions ->-                    T_CProductions-sem_CProductions list =-    (Prelude.foldr sem_CProductions_Cons sem_CProductions_Nil (Prelude.map sem_CProduction list))--- semantic domain-newtype T_CProductions = T_CProductions ((Set NontermIdent) ->-                                         PragmaMap ->-                                         (Map ConstructorIdent (Set Identifier)) ->-                                         ContextMap ->-                                         Attributes ->-                                         (Map ConstructorIdent (Map Identifier (Identifier, [Identifier]))) ->-                                         NontermIdent ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         (Maybe Bool) ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Options ->-                                         ParamMap ->-                                         String ->-                                         QuantMap ->-                                         Attributes ->-                                         (NontermIdent -> Int -> [String] -> Code.Type) ->-                                         Bool ->-                                         (Set NontermIdent) ->-                                         ( Decls,([String]),DataAlts,Decls,([String])))-data Inh_CProductions = Inh_CProductions {allNts_Inh_CProductions :: !((Set NontermIdent)),allPragmas_Inh_CProductions :: !(PragmaMap),aroundMap_Inh_CProductions :: !((Map ConstructorIdent (Set Identifier))),contextMap_Inh_CProductions :: !(ContextMap),inh_Inh_CProductions :: !(Attributes),mergeMap_Inh_CProductions :: !((Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))),nt_Inh_CProductions :: !(NontermIdent),o_case_Inh_CProductions :: !(Bool),o_cata_Inh_CProductions :: !(Bool),o_costcentre_Inh_CProductions :: !(Bool),o_data_Inh_CProductions :: !((Maybe Bool)),o_linePragmas_Inh_CProductions :: !(Bool),o_monadic_Inh_CProductions :: !(Bool),o_newtypes_Inh_CProductions :: !(Bool),o_pretty_Inh_CProductions :: !(Bool),o_rename_Inh_CProductions :: !(Bool),o_sem_Inh_CProductions :: !(Bool),o_sig_Inh_CProductions :: !(Bool),o_splitsems_Inh_CProductions :: !(Bool),o_strictwrap_Inh_CProductions :: !(Bool),o_traces_Inh_CProductions :: !(Bool),o_unbox_Inh_CProductions :: !(Bool),options_Inh_CProductions :: !(Options),paramMap_Inh_CProductions :: !(ParamMap),prefix_Inh_CProductions :: !(String),quantMap_Inh_CProductions :: !(QuantMap),syn_Inh_CProductions :: !(Attributes),unfoldSemDom_Inh_CProductions :: !((NontermIdent -> Int -> [String] -> Code.Type)),with_sig_Inh_CProductions :: !(Bool),wrappers_Inh_CProductions :: !((Set NontermIdent))}-data Syn_CProductions = Syn_CProductions {cataAlts_Syn_CProductions :: !(Decls),comments_Syn_CProductions :: !(([String])),dataAlts_Syn_CProductions :: !(DataAlts),decls_Syn_CProductions :: !(Decls),semNames_Syn_CProductions :: !(([String]))}-wrap_CProductions :: T_CProductions ->-                     Inh_CProductions ->-                     Syn_CProductions-wrap_CProductions (T_CProductions sem) (Inh_CProductions _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIinh _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsIsyn _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers) =-    (let ( _lhsOcataAlts,_lhsOcomments,_lhsOdataAlts,_lhsOdecls,_lhsOsemNames) = sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIinh _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsIsyn _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers-     in  (Syn_CProductions _lhsOcataAlts _lhsOcomments _lhsOdataAlts _lhsOdecls _lhsOsemNames))-sem_CProductions_Cons :: T_CProduction ->-                         T_CProductions ->-                         T_CProductions-sem_CProductions_Cons (T_CProduction hd_) (T_CProductions tl_) =-    (T_CProductions (\ _lhsIallNts-                       _lhsIallPragmas-                       _lhsIaroundMap-                       _lhsIcontextMap-                       _lhsIinh-                       _lhsImergeMap-                       _lhsInt-                       _lhsIo_case-                       _lhsIo_cata-                       _lhsIo_costcentre-                       _lhsIo_data-                       _lhsIo_linePragmas-                       _lhsIo_monadic-                       _lhsIo_newtypes-                       _lhsIo_pretty-                       _lhsIo_rename-                       _lhsIo_sem-                       _lhsIo_sig-                       _lhsIo_splitsems-                       _lhsIo_strictwrap-                       _lhsIo_traces-                       _lhsIo_unbox-                       _lhsIoptions-                       _lhsIparamMap-                       _lhsIprefix-                       _lhsIquantMap-                       _lhsIsyn-                       _lhsIunfoldSemDom-                       _lhsIwith_sig-                       _lhsIwrappers ->-                         (let _lhsOdataAlts :: DataAlts-                              _lhsOcataAlts :: Decls-                              _lhsOcomments :: ([String])-                              _lhsOdecls :: Decls-                              _lhsOsemNames :: ([String])-                              _hdOallNts :: (Set NontermIdent)-                              _hdOallPragmas :: PragmaMap-                              _hdOaroundMap :: (Map ConstructorIdent (Set Identifier))-                              _hdOcontextMap :: ContextMap-                              _hdOinh :: Attributes-                              _hdOmergeMap :: (Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))-                              _hdOnt :: NontermIdent-                              _hdOo_case :: Bool-                              _hdOo_cata :: Bool-                              _hdOo_costcentre :: Bool-                              _hdOo_data :: (Maybe Bool)-                              _hdOo_linePragmas :: Bool-                              _hdOo_monadic :: Bool-                              _hdOo_newtypes :: Bool-                              _hdOo_pretty :: Bool-                              _hdOo_rename :: Bool-                              _hdOo_sem :: Bool-                              _hdOo_sig :: Bool-                              _hdOo_splitsems :: Bool-                              _hdOo_strictwrap :: Bool-                              _hdOo_traces :: Bool-                              _hdOo_unbox :: Bool-                              _hdOoptions :: Options-                              _hdOparamMap :: ParamMap-                              _hdOprefix :: String-                              _hdOquantMap :: QuantMap-                              _hdOsyn :: Attributes-                              _hdOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)-                              _hdOwith_sig :: Bool-                              _hdOwrappers :: (Set NontermIdent)-                              _tlOallNts :: (Set NontermIdent)-                              _tlOallPragmas :: PragmaMap-                              _tlOaroundMap :: (Map ConstructorIdent (Set Identifier))-                              _tlOcontextMap :: ContextMap-                              _tlOinh :: Attributes-                              _tlOmergeMap :: (Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))-                              _tlOnt :: NontermIdent-                              _tlOo_case :: Bool-                              _tlOo_cata :: Bool-                              _tlOo_costcentre :: Bool-                              _tlOo_data :: (Maybe Bool)-                              _tlOo_linePragmas :: Bool-                              _tlOo_monadic :: Bool-                              _tlOo_newtypes :: Bool-                              _tlOo_pretty :: Bool-                              _tlOo_rename :: Bool-                              _tlOo_sem :: Bool-                              _tlOo_sig :: Bool-                              _tlOo_splitsems :: Bool-                              _tlOo_strictwrap :: Bool-                              _tlOo_traces :: Bool-                              _tlOo_unbox :: Bool-                              _tlOoptions :: Options-                              _tlOparamMap :: ParamMap-                              _tlOprefix :: String-                              _tlOquantMap :: QuantMap-                              _tlOsyn :: Attributes-                              _tlOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)-                              _tlOwith_sig :: Bool-                              _tlOwrappers :: (Set NontermIdent)-                              _hdIcataAlt :: Decl-                              _hdIcomments :: ([String])-                              _hdIdataAlt :: DataAlt-                              _hdIdecls :: Decls-                              _hdIsemNames :: ([String])-                              _tlIcataAlts :: Decls-                              _tlIcomments :: ([String])-                              _tlIdataAlts :: DataAlts-                              _tlIdecls :: Decls-                              _tlIsemNames :: ([String])-                              -- "src-ag/GenerateCode.ag"(line 1015, column 17)-                              _lhsOdataAlts =-                                  ({-# LINE 1015 "src-ag/GenerateCode.ag" #-}-                                   _hdIdataAlt : _tlIdataAlts-                                   {-# LINE 2819 "dist/build/GenerateCode" #-}-                                   )-                              -- "src-ag/GenerateCode.ag"(line 1127, column 10)-                              _lhsOcataAlts =-                                  ({-# LINE 1127 "src-ag/GenerateCode.ag" #-}-                                   _hdIcataAlt : _tlIcataAlts-                                   {-# LINE 2825 "dist/build/GenerateCode" #-}-                                   )-                              -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)-                              _lhsOcomments =-                                  ({-# LINE 868 "src-ag/GenerateCode.ag" #-}-                                   _hdIcomments ++ _tlIcomments-                                   {-# LINE 2831 "dist/build/GenerateCode" #-}-                                   )-                              -- use rule "src-ag/GenerateCode.ag"(line 919, column 44)-                              _lhsOdecls =-                                  ({-# LINE 919 "src-ag/GenerateCode.ag" #-}-                                   _hdIdecls ++ _tlIdecls-                                   {-# LINE 2837 "dist/build/GenerateCode" #-}-                                   )-                              -- use rule "src-ag/GenerateCode.ag"(line 1146, column 61)-                              _lhsOsemNames =-                                  ({-# LINE 1146 "src-ag/GenerateCode.ag" #-}-                                   _hdIsemNames ++ _tlIsemNames-                                   {-# LINE 2843 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOallNts =-                                  ({-# LINE 132 "src-ag/GenerateCode.ag" #-}-                                   _lhsIallNts-                                   {-# LINE 2849 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOallPragmas =-                                  ({-# LINE 73 "src-ag/GenerateCode.ag" #-}-                                   _lhsIallPragmas-                                   {-# LINE 2855 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOaroundMap =-                                  ({-# LINE 578 "src-ag/GenerateCode.ag" #-}-                                   _lhsIaroundMap-                                   {-# LINE 2861 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOcontextMap =-                                  ({-# LINE 115 "src-ag/GenerateCode.ag" #-}-                                   _lhsIcontextMap-                                   {-# LINE 2867 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOinh =-                                  ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                   _lhsIinh-                                   {-# LINE 2873 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOmergeMap =-                                  ({-# LINE 594 "src-ag/GenerateCode.ag" #-}-                                   _lhsImergeMap-                                   {-# LINE 2879 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOnt =-                                  ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                   _lhsInt-                                   {-# LINE 2885 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_case =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_case-                                   {-# LINE 2891 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_cata =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_cata-                                   {-# LINE 2897 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_costcentre =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_costcentre-                                   {-# LINE 2903 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_data =-                                  ({-# LINE 48 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_data-                                   {-# LINE 2909 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_linePragmas =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_linePragmas-                                   {-# LINE 2915 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_monadic =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_monadic-                                   {-# LINE 2921 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_newtypes =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_newtypes-                                   {-# LINE 2927 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_pretty =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_pretty-                                   {-# LINE 2933 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_rename =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_rename-                                   {-# LINE 2939 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_sem =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_sem-                                   {-# LINE 2945 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_sig =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_sig-                                   {-# LINE 2951 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_splitsems =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_splitsems-                                   {-# LINE 2957 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_strictwrap =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_strictwrap-                                   {-# LINE 2963 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_traces =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_traces-                                   {-# LINE 2969 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_unbox =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_unbox-                                   {-# LINE 2975 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOoptions =-                                  ({-# LINE 50 "src-ag/GenerateCode.ag" #-}-                                   _lhsIoptions-                                   {-# LINE 2981 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOparamMap =-                                  ({-# LINE 95 "src-ag/GenerateCode.ag" #-}-                                   _lhsIparamMap-                                   {-# LINE 2987 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOprefix =-                                  ({-# LINE 49 "src-ag/GenerateCode.ag" #-}-                                   _lhsIprefix-                                   {-# LINE 2993 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOquantMap =-                                  ({-# LINE 115 "src-ag/GenerateCode.ag" #-}-                                   _lhsIquantMap-                                   {-# LINE 2999 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOsyn =-                                  ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                   _lhsIsyn-                                   {-# LINE 3005 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOunfoldSemDom =-                                  ({-# LINE 750 "src-ag/GenerateCode.ag" #-}-                                   _lhsIunfoldSemDom-                                   {-# LINE 3011 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOwith_sig =-                                  ({-# LINE 851 "src-ag/GenerateCode.ag" #-}-                                   _lhsIwith_sig-                                   {-# LINE 3017 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _hdOwrappers =-                                  ({-# LINE 987 "src-ag/GenerateCode.ag" #-}-                                   _lhsIwrappers-                                   {-# LINE 3023 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOallNts =-                                  ({-# LINE 132 "src-ag/GenerateCode.ag" #-}-                                   _lhsIallNts-                                   {-# LINE 3029 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOallPragmas =-                                  ({-# LINE 73 "src-ag/GenerateCode.ag" #-}-                                   _lhsIallPragmas-                                   {-# LINE 3035 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOaroundMap =-                                  ({-# LINE 578 "src-ag/GenerateCode.ag" #-}-                                   _lhsIaroundMap-                                   {-# LINE 3041 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOcontextMap =-                                  ({-# LINE 115 "src-ag/GenerateCode.ag" #-}-                                   _lhsIcontextMap-                                   {-# LINE 3047 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOinh =-                                  ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                   _lhsIinh-                                   {-# LINE 3053 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOmergeMap =-                                  ({-# LINE 594 "src-ag/GenerateCode.ag" #-}-                                   _lhsImergeMap-                                   {-# LINE 3059 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOnt =-                                  ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                   _lhsInt-                                   {-# LINE 3065 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_case =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_case-                                   {-# LINE 3071 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_cata =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_cata-                                   {-# LINE 3077 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_costcentre =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_costcentre-                                   {-# LINE 3083 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_data =-                                  ({-# LINE 48 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_data-                                   {-# LINE 3089 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_linePragmas =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_linePragmas-                                   {-# LINE 3095 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_monadic =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_monadic-                                   {-# LINE 3101 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_newtypes =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_newtypes-                                   {-# LINE 3107 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_pretty =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_pretty-                                   {-# LINE 3113 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_rename =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_rename-                                   {-# LINE 3119 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_sem =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_sem-                                   {-# LINE 3125 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_sig =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_sig-                                   {-# LINE 3131 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_splitsems =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_splitsems-                                   {-# LINE 3137 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_strictwrap =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_strictwrap-                                   {-# LINE 3143 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_traces =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_traces-                                   {-# LINE 3149 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_unbox =-                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                   _lhsIo_unbox-                                   {-# LINE 3155 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOoptions =-                                  ({-# LINE 50 "src-ag/GenerateCode.ag" #-}-                                   _lhsIoptions-                                   {-# LINE 3161 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOparamMap =-                                  ({-# LINE 95 "src-ag/GenerateCode.ag" #-}-                                   _lhsIparamMap-                                   {-# LINE 3167 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOprefix =-                                  ({-# LINE 49 "src-ag/GenerateCode.ag" #-}-                                   _lhsIprefix-                                   {-# LINE 3173 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOquantMap =-                                  ({-# LINE 115 "src-ag/GenerateCode.ag" #-}-                                   _lhsIquantMap-                                   {-# LINE 3179 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOsyn =-                                  ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                   _lhsIsyn-                                   {-# LINE 3185 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOunfoldSemDom =-                                  ({-# LINE 750 "src-ag/GenerateCode.ag" #-}-                                   _lhsIunfoldSemDom-                                   {-# LINE 3191 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOwith_sig =-                                  ({-# LINE 851 "src-ag/GenerateCode.ag" #-}-                                   _lhsIwith_sig-                                   {-# LINE 3197 "dist/build/GenerateCode" #-}-                                   )-                              -- copy rule (down)-                              _tlOwrappers =-                                  ({-# LINE 987 "src-ag/GenerateCode.ag" #-}-                                   _lhsIwrappers-                                   {-# LINE 3203 "dist/build/GenerateCode" #-}-                                   )-                              ( _hdIcataAlt,_hdIcomments,_hdIdataAlt,_hdIdecls,_hdIsemNames) =-                                  hd_ _hdOallNts _hdOallPragmas _hdOaroundMap _hdOcontextMap _hdOinh _hdOmergeMap _hdOnt _hdOo_case _hdOo_cata _hdOo_costcentre _hdOo_data _hdOo_linePragmas _hdOo_monadic _hdOo_newtypes _hdOo_pretty _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_splitsems _hdOo_strictwrap _hdOo_traces _hdOo_unbox _hdOoptions _hdOparamMap _hdOprefix _hdOquantMap _hdOsyn _hdOunfoldSemDom _hdOwith_sig _hdOwrappers-                              ( _tlIcataAlts,_tlIcomments,_tlIdataAlts,_tlIdecls,_tlIsemNames) =-                                  tl_ _tlOallNts _tlOallPragmas _tlOaroundMap _tlOcontextMap _tlOinh _tlOmergeMap _tlOnt _tlOo_case _tlOo_cata _tlOo_costcentre _tlOo_data _tlOo_linePragmas _tlOo_monadic _tlOo_newtypes _tlOo_pretty _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_splitsems _tlOo_strictwrap _tlOo_traces _tlOo_unbox _tlOoptions _tlOparamMap _tlOprefix _tlOquantMap _tlOsyn _tlOunfoldSemDom _tlOwith_sig _tlOwrappers-                          in  ( _lhsOcataAlts,_lhsOcomments,_lhsOdataAlts,_lhsOdecls,_lhsOsemNames))))-sem_CProductions_Nil :: T_CProductions-sem_CProductions_Nil =-    (T_CProductions (\ _lhsIallNts-                       _lhsIallPragmas-                       _lhsIaroundMap-                       _lhsIcontextMap-                       _lhsIinh-                       _lhsImergeMap-                       _lhsInt-                       _lhsIo_case-                       _lhsIo_cata-                       _lhsIo_costcentre-                       _lhsIo_data-                       _lhsIo_linePragmas-                       _lhsIo_monadic-                       _lhsIo_newtypes-                       _lhsIo_pretty-                       _lhsIo_rename-                       _lhsIo_sem-                       _lhsIo_sig-                       _lhsIo_splitsems-                       _lhsIo_strictwrap-                       _lhsIo_traces-                       _lhsIo_unbox-                       _lhsIoptions-                       _lhsIparamMap-                       _lhsIprefix-                       _lhsIquantMap-                       _lhsIsyn-                       _lhsIunfoldSemDom-                       _lhsIwith_sig-                       _lhsIwrappers ->-                         (let _lhsOdataAlts :: DataAlts-                              _lhsOcataAlts :: Decls-                              _lhsOcomments :: ([String])-                              _lhsOdecls :: Decls-                              _lhsOsemNames :: ([String])-                              -- "src-ag/GenerateCode.ag"(line 1016, column 17)-                              _lhsOdataAlts =-                                  ({-# LINE 1016 "src-ag/GenerateCode.ag" #-}-                                   []-                                   {-# LINE 3251 "dist/build/GenerateCode" #-}-                                   )-                              -- "src-ag/GenerateCode.ag"(line 1128, column 10)-                              _lhsOcataAlts =-                                  ({-# LINE 1128 "src-ag/GenerateCode.ag" #-}-                                   []-                                   {-# LINE 3257 "dist/build/GenerateCode" #-}-                                   )-                              -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)-                              _lhsOcomments =-                                  ({-# LINE 868 "src-ag/GenerateCode.ag" #-}-                                   []-                                   {-# LINE 3263 "dist/build/GenerateCode" #-}-                                   )-                              -- use rule "src-ag/GenerateCode.ag"(line 919, column 44)-                              _lhsOdecls =-                                  ({-# LINE 919 "src-ag/GenerateCode.ag" #-}-                                   []-                                   {-# LINE 3269 "dist/build/GenerateCode" #-}-                                   )-                              -- use rule "src-ag/GenerateCode.ag"(line 1146, column 61)-                              _lhsOsemNames =-                                  ({-# LINE 1146 "src-ag/GenerateCode.ag" #-}-                                   []-                                   {-# LINE 3275 "dist/build/GenerateCode" #-}-                                   )-                          in  ( _lhsOcataAlts,_lhsOcomments,_lhsOdataAlts,_lhsOdecls,_lhsOsemNames))))--- CRule --------------------------------------------------------{--   visit 0:-      inherited attributes:-         allNts               : Set NontermIdent-         aroundMap            : Set Identifier-         children             : [(Identifier,Type,ChildKind)]-         con                  : ConstructorIdent-         inh                  : Attributes-         instVisitNrs         : Map Identifier Int-         mergeMap             : Map Identifier (Identifier, [Identifier])-         nr                   : Int-         nt                   : NontermIdent-         o_case               : Bool-         o_cata               : Bool-         o_costcentre         : Bool-         o_data               : Maybe Bool-         o_linePragmas        : Bool-         o_monadic            : Bool-         o_newtypes           : Bool-         o_pretty             : Bool-         o_rename             : Bool-         o_sem                : Bool-         o_sig                : Bool-         o_splitsems          : Bool-         o_strictwrap         : Bool-         o_traces             : Bool-         o_unbox              : Bool-         options              : Options-         paramInstMap         : Map Identifier (NontermIdent, [String])-         paramMap             : ParamMap-         prefix               : String-         syn                  : Attributes-         terminals            : [Identifier]-         unfoldSemDom         : NontermIdent -> Int -> [String] -> Code.Type-         what                 : String-      chained attributes:-         declsAbove           : [Decl]-         visitedSet           : Set Identifier-      synthesized attributes:-         allTpsFound          : Bool-         bldBlocksFun         : DeclBlocks -> DeclBlocks-         comments             : [String]-         decls                : Decls-         definedInsts         : [Identifier]-         exprs                : Exprs-         tSigs                : [Decl]-         tps                  : [Type]-         usedVars             : Set String-   alternatives:-      alternative CChildVisit:-         child name           : {Identifier}-         child nt             : {NontermIdent}-         child nr             : {Int}-         child inh            : {Attributes}-         child syn            : {Attributes}-         child isLast         : {Bool}-         visit 0:-            local visitedSet  : _-            local costCentreDescr : _-            local addCostCentre : _-            local decls       : _-            local isSuperfluousHigherOrderIntra : _-            local names       : _-            local mkTp        : _-            local definedTps  : _-            local nextTp      : _-            local orgParams   : _-            local instParams  : _-            local replParamMap : _-            local replace     : _-            local evalTp      : _-      alternative CRule:-         child name           : {Identifier}-         child isIn           : {Bool}-         child hasCode        : {Bool}-         child nt             : {NontermIdent}-         child con            : {ConstructorIdent}-         child field          : {Identifier}-         child childnt        : {Maybe NontermIdent}-         child tp             : {Maybe Type}-         child pattern        : Pattern -         child rhs            : {[String]}-         child defines        : {Map Int (Identifier,Identifier,Maybe Type)}-         child owrt           : {Bool}-         child origin         : {String}-         child uses           : {Set (Identifier, Identifier)}-         child explicit       : {Bool}-         child mbNamed        : {Maybe Identifier}-         visit 0:-            local instTypes   : _-            local originComment : _-            local instDecls   : _-            local patDescr    : _-            local traceDescr  : _-            local addTrace    : _-            local costCentreDescr : _-            local addCostCentre : _-            local addLinePragma : _-            local decls       : _-            local definedInsts : _-            local rulename    : _-            local mkTp        : _-            local orgParams   : _-            local evalTp      : _--}--- cata-sem_CRule :: CRule ->-             T_CRule-sem_CRule (CChildVisit _name _nt _nr _inh _syn _isLast) =-    (sem_CRule_CChildVisit _name _nt _nr _inh _syn _isLast)-sem_CRule (CRule _name _isIn _hasCode _nt _con _field _childnt _tp _pattern _rhs _defines _owrt _origin _uses _explicit _mbNamed) =-    (sem_CRule_CRule _name _isIn _hasCode _nt _con _field _childnt _tp (sem_Pattern _pattern) _rhs _defines _owrt _origin _uses _explicit _mbNamed)--- semantic domain-newtype T_CRule = T_CRule ((Set NontermIdent) ->-                           (Set Identifier) ->-                           ([(Identifier,Type,ChildKind)]) ->-                           ConstructorIdent ->-                           ([Decl]) ->-                           Attributes ->-                           (Map Identifier Int) ->-                           (Map Identifier (Identifier, [Identifier])) ->-                           Int ->-                           NontermIdent ->-                           Bool ->-                           Bool ->-                           Bool ->-                           (Maybe Bool) ->-                           Bool ->-                           Bool ->-                           Bool ->-                           Bool ->-                           Bool ->-                           Bool ->-                           Bool ->-                           Bool ->-                           Bool ->-                           Bool ->-                           Bool ->-                           Options ->-                           (Map Identifier (NontermIdent, [String])) ->-                           ParamMap ->-                           String ->-                           Attributes ->-                           ([Identifier]) ->-                           (NontermIdent -> Int -> [String] -> Code.Type) ->-                           (Set Identifier) ->-                           String ->-                           ( Bool,(DeclBlocks -> DeclBlocks),([String]),Decls,([Decl]),([Identifier]),Exprs,([Decl]),([Type]),(Set String),(Set Identifier)))-data Inh_CRule = Inh_CRule {allNts_Inh_CRule :: !((Set NontermIdent)),aroundMap_Inh_CRule :: !((Set Identifier)),children_Inh_CRule :: !(([(Identifier,Type,ChildKind)])),con_Inh_CRule :: !(ConstructorIdent),declsAbove_Inh_CRule :: !(([Decl])),inh_Inh_CRule :: !(Attributes),instVisitNrs_Inh_CRule :: !((Map Identifier Int)),mergeMap_Inh_CRule :: !((Map Identifier (Identifier, [Identifier]))),nr_Inh_CRule :: !(Int),nt_Inh_CRule :: !(NontermIdent),o_case_Inh_CRule :: !(Bool),o_cata_Inh_CRule :: !(Bool),o_costcentre_Inh_CRule :: !(Bool),o_data_Inh_CRule :: !((Maybe Bool)),o_linePragmas_Inh_CRule :: !(Bool),o_monadic_Inh_CRule :: !(Bool),o_newtypes_Inh_CRule :: !(Bool),o_pretty_Inh_CRule :: !(Bool),o_rename_Inh_CRule :: !(Bool),o_sem_Inh_CRule :: !(Bool),o_sig_Inh_CRule :: !(Bool),o_splitsems_Inh_CRule :: !(Bool),o_strictwrap_Inh_CRule :: !(Bool),o_traces_Inh_CRule :: !(Bool),o_unbox_Inh_CRule :: !(Bool),options_Inh_CRule :: !(Options),paramInstMap_Inh_CRule :: !((Map Identifier (NontermIdent, [String]))),paramMap_Inh_CRule :: !(ParamMap),prefix_Inh_CRule :: !(String),syn_Inh_CRule :: !(Attributes),terminals_Inh_CRule :: !(([Identifier])),unfoldSemDom_Inh_CRule :: !((NontermIdent -> Int -> [String] -> Code.Type)),visitedSet_Inh_CRule :: !((Set Identifier)),what_Inh_CRule :: !(String)}-data Syn_CRule = Syn_CRule {allTpsFound_Syn_CRule :: !(Bool),bldBlocksFun_Syn_CRule :: !((DeclBlocks -> DeclBlocks)),comments_Syn_CRule :: !(([String])),decls_Syn_CRule :: !(Decls),declsAbove_Syn_CRule :: !(([Decl])),definedInsts_Syn_CRule :: !(([Identifier])),exprs_Syn_CRule :: !(Exprs),tSigs_Syn_CRule :: !(([Decl])),tps_Syn_CRule :: !(([Type])),usedVars_Syn_CRule :: !((Set String)),visitedSet_Syn_CRule :: !((Set Identifier))}-wrap_CRule :: T_CRule ->-              Inh_CRule ->-              Syn_CRule-wrap_CRule (T_CRule sem) (Inh_CRule _lhsIallNts _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIdeclsAbove _lhsIinh _lhsIinstVisitNrs _lhsImergeMap _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIvisitedSet _lhsIwhat) =-    (let ( _lhsOallTpsFound,_lhsObldBlocksFun,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars,_lhsOvisitedSet) = sem _lhsIallNts _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIdeclsAbove _lhsIinh _lhsIinstVisitNrs _lhsImergeMap _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIvisitedSet _lhsIwhat-     in  (Syn_CRule _lhsOallTpsFound _lhsObldBlocksFun _lhsOcomments _lhsOdecls _lhsOdeclsAbove _lhsOdefinedInsts _lhsOexprs _lhsOtSigs _lhsOtps _lhsOusedVars _lhsOvisitedSet))-sem_CRule_CChildVisit :: Identifier ->-                         NontermIdent ->-                         Int ->-                         Attributes ->-                         Attributes ->-                         Bool ->-                         T_CRule-sem_CRule_CChildVisit name_ nt_ nr_ inh_ syn_ isLast_ =-    (T_CRule (\ _lhsIallNts-                _lhsIaroundMap-                _lhsIchildren-                _lhsIcon-                _lhsIdeclsAbove-                _lhsIinh-                _lhsIinstVisitNrs-                _lhsImergeMap-                _lhsInr-                _lhsInt-                _lhsIo_case-                _lhsIo_cata-                _lhsIo_costcentre-                _lhsIo_data-                _lhsIo_linePragmas-                _lhsIo_monadic-                _lhsIo_newtypes-                _lhsIo_pretty-                _lhsIo_rename-                _lhsIo_sem-                _lhsIo_sig-                _lhsIo_splitsems-                _lhsIo_strictwrap-                _lhsIo_traces-                _lhsIo_unbox-                _lhsIoptions-                _lhsIparamInstMap-                _lhsIparamMap-                _lhsIprefix-                _lhsIsyn-                _lhsIterminals-                _lhsIunfoldSemDom-                _lhsIvisitedSet-                _lhsIwhat ->-                  (let _lhsOexprs :: Exprs-                       _lhsOusedVars :: (Set String)-                       _lhsOtSigs :: ([Decl])-                       _lhsOtps :: ([Type])-                       _lhsOdeclsAbove :: ([Decl])-                       _lhsObldBlocksFun :: (DeclBlocks -> DeclBlocks)-                       _lhsOallTpsFound :: Bool-                       _lhsOcomments :: ([String])-                       _lhsOdecls :: Decls-                       _lhsOdefinedInsts :: ([Identifier])-                       _lhsOvisitedSet :: (Set Identifier)-                       -- "src-ag/GenerateCode.ag"(line 147, column 26)-                       _visitedSet =-                           ({-# LINE 147 "src-ag/GenerateCode.ag" #-}-                            Set.insert name_ _lhsIvisitedSet-                            {-# LINE 3492 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 203, column 18)-                       _costCentreDescr =-                           ({-# LINE 203 "src-ag/GenerateCode.ag" #-}-                            show _lhsInt ++ ":" ++ show _lhsIcon ++ ":" ++ show name_ ++ ":" ++ show nt_ ++ ":" ++ show nr_-                            {-# LINE 3498 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 204, column 18)-                       _addCostCentre =-                           ({-# LINE 204 "src-ag/GenerateCode.ag" #-}-                            \v -> if _lhsIo_costcentre-                                  then PragmaExpr True False ("SCC \"" ++ _costCentreDescr     ++ "\"") v-                                  else v-                            {-# LINE 3506 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 207, column 18)-                       _decls =-                           ({-# LINE 207 "src-ag/GenerateCode.ag" #-}-                            let  lhsVars =  map (attrname True name_) (Map.keys syn_)-                                            ++ if isLast_ then [] else [unwrap ++ funname name_ (nr_+1)]-                                 rhsVars = map (attrname False name_) (Map.keys inh_)-                                 unwrap = if _lhsIo_newtypes then typeName nt_ (nr_ + 1) ++ " " else ""-                                 tuple | isMerging = TupleLhs [locname name_ ++ "_comp"]-                                       | otherwise = mkTupleLhs _lhsIo_unbox (null $ Map.keys inh_) lhsVars-                                 rhs = _addCostCentre     $ Code.InvokeExpr (typeName nt_ nr_) (SimpleExpr fun) (map SimpleExpr rhsVars)-                                 isVirtual _ [] = False-                                 isVirtual nm ((n,t,kind) : r)-                                   | nm == n   = case kind of-                                                   ChildAttr -> True-                                                   _         -> False-                                   | otherwise = isVirtual nm r-                                 isMerged = name_ `Map.member` _lhsImergeMap-                                 isMerging = name_ `elem` concatMap (\(_,cs) -> cs) (Map.elems _lhsImergeMap)-                                 merges = [ (c,cs) | (c,(_,cs)) <- Map.assocs _lhsImergeMap, all (`Set.member` _visitedSet    ) cs, name_ `elem` (c:cs) ]-                                 baseNm = if nr_ == 0 && isVirtual name_ _lhsIchildren-                                          then Ident (getName name_ ++ "_inst") (getPos name_)-                                          else name_-                                 fun | nr_ == 0 && Set.member name_ _lhsIaroundMap-                                                 = locname name_ ++ "_around " ++ funname baseNm 0-                                     | otherwise = funname baseNm nr_-                                 outDecls | isMerged  = []-                                          | otherwise =-                                                        if isMerging-                                                        then [mkDecl _lhsIo_monadic tuple rhs Set.empty Set.empty]-                                                        else [Resume _lhsIo_monadic (typeName nt_ nr_) tuple rhs]-                                 outMerged | null merges || nr_ /= 0 = []-                                           | otherwise = let (c,cs) = head merges-                                                             tuple' = mkTupleLhs _lhsIo_unbox (null $ Map.keys inh_) lhsVars'-                                                             lhsVars' = map (attrname True c) (Map.keys syn_)-                                                                        ++ if isLast_ then [] else [unwrap ++ funname c (nr_+1)]-                                                             rhsVars = [ locname c ++ "_comp" | c <- cs ]-                                                             fun     = locname c ++ "_merge"-                                                             rhs' = App fun (map SimpleExpr rhsVars)-                                                         in [Resume _lhsIo_monadic (typeName nt_ nr_) tuple' rhs']-                            in-                               (outDecls ++ outMerged)-                            {-# LINE 3549 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 327, column 7)-                       _isSuperfluousHigherOrderIntra =-                           ({-# LINE 327 "src-ag/GenerateCode.ag" #-}-                            _lhsInr <= Map.findWithDefault (-1) name_ _lhsIinstVisitNrs-                            {-# LINE 3555 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 341, column 8)-                       _names =-                           ({-# LINE 341 "src-ag/GenerateCode.ag" #-}-                            if _isSuperfluousHigherOrderIntra-                            then []-                            else [funname name_ (nr_+1)]-                            {-# LINE 3563 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 345, column 8)-                       _lhsOexprs =-                           ({-# LINE 345 "src-ag/GenerateCode.ag" #-}-                            let wrap = if _lhsIo_newtypes then \x -> App (typeName nt_ (nr_ + 1)) [x] else id-                                addType expr | null _instParams     = expr-                                             | otherwise            = TypedExpr expr (_lhsIunfoldSemDom nt_ (nr_+1) _instParams    )-                            in map (wrap . addType . SimpleExpr) _names-                            {-# LINE 3572 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 357, column 7)-                       _lhsOusedVars =-                           ({-# LINE 357 "src-ag/GenerateCode.ag" #-}-                            Set.fromList _names-                            {-# LINE 3578 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 393, column 19)-                       _mkTp =-                           ({-# LINE 393 "src-ag/GenerateCode.ag" #-}-                            _evalTp     . typeToCodeType (Just nt_) _orgParams     . removeDeforested-                            {-# LINE 3584 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 394, column 19)-                       _definedTps =-                           ({-# LINE 394 "src-ag/GenerateCode.ag" #-}-                            [ TSig (attrname True name_ a) (_mkTp tp) |  (a,tp) <- Map.toList syn_ ]-                            {-# LINE 3590 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 395, column 19)-                       _nextTp =-                           ({-# LINE 395 "src-ag/GenerateCode.ag" #-}-                            typeName nt_ (nr_+1)-                            {-# LINE 3596 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 396, column 19)-                       _lhsOtSigs =-                           ({-# LINE 396 "src-ag/GenerateCode.ag" #-}-                            (if isLast_ then id else (TSig (funname name_ (nr_+1)) (TypeApp (SimpleType _nextTp) (map SimpleType _instParams    )) :)) _definedTps-                            {-# LINE 3602 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 398, column 19)-                       _orgParams =-                           ({-# LINE 398 "src-ag/GenerateCode.ag" #-}-                            map getName $ Map.findWithDefault [] nt_ _lhsIparamMap-                            {-# LINE 3608 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 399, column 19)-                       _instParams =-                           ({-# LINE 399 "src-ag/GenerateCode.ag" #-}-                            snd $ Map.findWithDefault (nt_,[]) name_ _lhsIparamInstMap-                            {-# LINE 3614 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 400, column 19)-                       _replParamMap =-                           ({-# LINE 400 "src-ag/GenerateCode.ag" #-}-                            Map.fromList (zip _orgParams     _instParams    )-                            {-# LINE 3620 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 401, column 19)-                       _replace =-                           ({-# LINE 401 "src-ag/GenerateCode.ag" #-}-                            \k -> Map.findWithDefault k k _replParamMap-                            {-# LINE 3626 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 402, column 19)-                       _evalTp =-                           ({-# LINE 402 "src-ag/GenerateCode.ag" #-}-                            if null _orgParams     then id else evalType _replace-                            {-# LINE 3632 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 419, column 19)-                       _lhsOtps =-                           ({-# LINE 419 "src-ag/GenerateCode.ag" #-}-                            if _isSuperfluousHigherOrderIntra-                            then []-                            else [NT (ntOfVisit nt_ (nr_+1)) _instParams     False]-                            {-# LINE 3640 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 618, column 7)-                       _lhsOdeclsAbove =-                           ({-# LINE 618 "src-ag/GenerateCode.ag" #-}-                            []-                            {-# LINE 3646 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 631, column 7)-                       _lhsObldBlocksFun =-                           ({-# LINE 631 "src-ag/GenerateCode.ag" #-}-                            DeclBlock _lhsIdeclsAbove (head _decls    )-                            {-# LINE 3652 "dist/build/GenerateCode" #-}-                            )-                       -- use rule "src-ag/GenerateCode.ag"(line 416, column 39)-                       _lhsOallTpsFound =-                           ({-# LINE 416 "src-ag/GenerateCode.ag" #-}-                            True-                            {-# LINE 3658 "dist/build/GenerateCode" #-}-                            )-                       -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)-                       _lhsOcomments =-                           ({-# LINE 868 "src-ag/GenerateCode.ag" #-}-                            []-                            {-# LINE 3664 "dist/build/GenerateCode" #-}-                            )-                       -- use rule "src-ag/GenerateCode.ag"(line 155, column 34)-                       _lhsOdecls =-                           ({-# LINE 155 "src-ag/GenerateCode.ag" #-}-                            _decls-                            {-# LINE 3670 "dist/build/GenerateCode" #-}-                            )-                       -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)-                       _lhsOdefinedInsts =-                           ({-# LINE 261 "src-ag/GenerateCode.ag" #-}-                            []-                            {-# LINE 3676 "dist/build/GenerateCode" #-}-                            )-                       -- copy rule (from local)-                       _lhsOvisitedSet =-                           ({-# LINE 145 "src-ag/GenerateCode.ag" #-}-                            _visitedSet-                            {-# LINE 3682 "dist/build/GenerateCode" #-}-                            )-                   in  ( _lhsOallTpsFound,_lhsObldBlocksFun,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars,_lhsOvisitedSet))))-sem_CRule_CRule :: Identifier ->-                   Bool ->-                   Bool ->-                   NontermIdent ->-                   ConstructorIdent ->-                   Identifier ->-                   (Maybe NontermIdent) ->-                   (Maybe Type) ->-                   T_Pattern ->-                   ([String]) ->-                   (Map Int (Identifier,Identifier,Maybe Type)) ->-                   Bool ->-                   String ->-                   (Set (Identifier, Identifier)) ->-                   Bool ->-                   (Maybe Identifier) ->-                   T_CRule-sem_CRule_CRule name_ isIn_ hasCode_ nt_ con_ field_ childnt_ tp_ (T_Pattern pattern_) rhs_ defines_ owrt_ origin_ uses_ explicit_ mbNamed_ =-    (T_CRule (\ _lhsIallNts-                _lhsIaroundMap-                _lhsIchildren-                _lhsIcon-                _lhsIdeclsAbove-                _lhsIinh-                _lhsIinstVisitNrs-                _lhsImergeMap-                _lhsInr-                _lhsInt-                _lhsIo_case-                _lhsIo_cata-                _lhsIo_costcentre-                _lhsIo_data-                _lhsIo_linePragmas-                _lhsIo_monadic-                _lhsIo_newtypes-                _lhsIo_pretty-                _lhsIo_rename-                _lhsIo_sem-                _lhsIo_sig-                _lhsIo_splitsems-                _lhsIo_strictwrap-                _lhsIo_traces-                _lhsIo_unbox-                _lhsIoptions-                _lhsIparamInstMap-                _lhsIparamMap-                _lhsIprefix-                _lhsIsyn-                _lhsIterminals-                _lhsIunfoldSemDom-                _lhsIvisitedSet-                _lhsIwhat ->-                  (let _lhsOexprs :: Exprs-                       _lhsOusedVars :: (Set String)-                       _lhsOtSigs :: ([Decl])-                       _lhsOtps :: ([Type])-                       _lhsOallTpsFound :: Bool-                       _lhsOdeclsAbove :: ([Decl])-                       _lhsObldBlocksFun :: (DeclBlocks -> DeclBlocks)-                       _lhsOcomments :: ([String])-                       _lhsOdecls :: Decls-                       _lhsOdefinedInsts :: ([Identifier])-                       _lhsOvisitedSet :: (Set Identifier)-                       _patternIcopy :: Pattern-                       _patternIdefinedInsts :: ([Identifier])-                       _patternIpatternAttributes :: ([(Identifier, Identifier)])-                       -- "src-ag/GenerateCode.ag"(line 157, column 12)-                       _instTypes =-                           ({-# LINE 157 "src-ag/GenerateCode.ag" #-}-                            [ (n, (t, mb, for)) | (n, NT t _ for, mb) <- _lhsIchildren ]-                            {-# LINE 3755 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 158, column 12)-                       _originComment =-                           ({-# LINE 158 "src-ag/GenerateCode.ag" #-}-                            if  _lhsIo_pretty-                                then (Comment origin_:)-                                else id-                            {-# LINE 3763 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 161, column 12)-                       _instDecls =-                           ({-# LINE 161 "src-ag/GenerateCode.ag" #-}-                            [ mkDecl _lhsIo_monadic (Pattern3 (Alias _INST' inst (Underscore (getPos inst))))-                                   ( let (nm,mb,defor) = fromJust $ inst `lookup` _instTypes-                                     in unwrapSem _lhsIo_newtypes nm-                                        $ case mb of-                                            ChildReplace tp' -> App instLocFieldName [SimpleExpr $ fieldname inst]-                                            _                ->-                                               if defor-                                               then SimpleExpr instLocFieldName-                                               else App (cataname _lhsIprefix nm)-                                                              [SimpleExpr instLocFieldName]-                                   )-                                   (Set.singleton instSemFieldName)-                                   (Set.singleton instLocFieldName)-                            | inst <- _definedInsts-                            , let instLocFieldName = attrname True _INST inst-                                  instSemFieldName = attrname False _INST' inst-                            ]-                            {-# LINE 3785 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 178, column 12)-                       _patDescr =-                           ({-# LINE 178 "src-ag/GenerateCode.ag" #-}-                            if isIn_-                            then "_"-                            else concat $ intersperse "," (map (\(f,a) -> show f ++ "." ++ show a) _patternIpatternAttributes)-                            {-# LINE 3793 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 181, column 12)-                       _traceDescr =-                           ({-# LINE 181 "src-ag/GenerateCode.ag" #-}-                            (maybe "" (\nm -> show nm ++ ":") mbNamed_) ++ show nt_ ++ " :: " ++ show con_ ++ " :: " ++ _patDescr-                            {-# LINE 3799 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 183, column 12)-                       _addTrace =-                           ({-# LINE 183 "src-ag/GenerateCode.ag" #-}-                            \v -> if _lhsIo_traces-                                  then Trace _traceDescr     v-                                  else v-                            {-# LINE 3807 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 186, column 12)-                       _costCentreDescr =-                           ({-# LINE 186 "src-ag/GenerateCode.ag" #-}-                            show nt_ ++ ":" ++ show con_ ++ ":" ++ _patDescr-                            {-# LINE 3813 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 187, column 12)-                       _addCostCentre =-                           ({-# LINE 187 "src-ag/GenerateCode.ag" #-}-                            \v -> if _lhsIo_costcentre-                                  then PragmaExpr True False ("SCC \"" ++ _costCentreDescr     ++ "\"") v-                                  else v-                            {-# LINE 3821 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 190, column 12)-                       _addLinePragma =-                           ({-# LINE 190 "src-ag/GenerateCode.ag" #-}-                            \v -> let p = getPos name_-                                      hasPos = line p > 0 && column p >= 0 && not (null (file p))-                                  in if _lhsIo_linePragmas && hasPos-                                     then PragmaExpr True True ("LINE " ++ show (line p) ++ " " ++ show (file p))-                                          $ LineExpr-                                          $ v-                                     else v-                            {-# LINE 3833 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 197, column 12)-                       _decls =-                           ({-# LINE 197 "src-ag/GenerateCode.ag" #-}-                            if hasCode_-                            then _originComment ( mkDecl (_lhsIo_monadic && explicit_) (Pattern3 _patternIcopy) (_addTrace     $ _addCostCentre     $ _addLinePragma     $ (TextExpr rhs_))-                                                       (Set.fromList [attrname False fld nm | (fld,nm,_) <- Map.elems defines_])-                                                       (Set.fromList [attrname True fld nm | (fld,nm) <- Set.toList uses_])-                                                : _instDecls    )-                            else _instDecls-                            {-# LINE 3844 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 266, column 12)-                       _definedInsts =-                           ({-# LINE 266 "src-ag/GenerateCode.ag" #-}-                            if isIn_ then [] else _patternIdefinedInsts-                            {-# LINE 3850 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 336, column 12)-                       _rulename =-                           ({-# LINE 336 "src-ag/GenerateCode.ag" #-}-                            if  field_ == _LOC && name_ `elem` _lhsIterminals-                            then funname name_ 0-                            else attrname isIn_ field_ name_-                            {-# LINE 3858 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 339, column 12)-                       _lhsOexprs =-                           ({-# LINE 339 "src-ag/GenerateCode.ag" #-}-                            [SimpleExpr _rulename    ]-                            {-# LINE 3864 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 355, column 7)-                       _lhsOusedVars =-                           ({-# LINE 355 "src-ag/GenerateCode.ag" #-}-                            Set.singleton _rulename-                            {-# LINE 3870 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 365, column 19)-                       _mkTp =-                           ({-# LINE 365 "src-ag/GenerateCode.ag" #-}-                            typeToCodeType (Just _lhsInt) _orgParams-                            {-# LINE 3876 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 366, column 19)-                       _lhsOtSigs =-                           ({-# LINE 366 "src-ag/GenerateCode.ag" #-}-                            [ TSig (attrname False field attr) tp'-                            |  (field,attr,tp) <- Map.elems defines_, isJust tp-                            , let tp1 = _evalTp     field $ _mkTp (fromJust tp)-                                  tp' = case findOrigType attr _lhsIchildren of-                                         Just tp' -> let tp2 = _evalTp     field $ _mkTp tp'-                                                     in Arr tp2 tp1-                                         Nothing -> tp1-                                  findOrigType nm [] = Nothing-                                  findOrigType nm ((n,_,kind) : r)-                                    | nm == n = case kind of-                                                  ChildReplace orig -> Just orig-                                                  _                 -> Nothing-                                    | otherwise = findOrigType nm r-                            ]-                            {-# LINE 3895 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 381, column 19)-                       _orgParams =-                           ({-# LINE 381 "src-ag/GenerateCode.ag" #-}-                            map getName $ Map.findWithDefault [] _lhsInt _lhsIparamMap-                            {-# LINE 3901 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 382, column 19)-                       _evalTp =-                           ({-# LINE 382 "src-ag/GenerateCode.ag" #-}-                            \field tp -> let orgFldParams = map getName $ Map.findWithDefault [] childNt _lhsIparamMap-                                             (childNt,instParams) = Map.findWithDefault (_lhsInt,[]) field _lhsIparamInstMap-                                             replMap = Map.fromList (zip orgFldParams instParams)-                                             replace k = Map.findWithDefault ('@':k) k replMap-                                         in if null instParams-                                            then if null _orgParams-                                                 then tp-                                                 else idEvalType tp-                                            else evalType replace tp-                            {-# LINE 3915 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 418, column 23)-                       (_lhsOtps,_lhsOallTpsFound) =-                           ({-# LINE 418 "src-ag/GenerateCode.ag" #-}-                            maybe ([],False) (\tp -> ([tp],True)) tp_-                            {-# LINE 3921 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 616, column 7)-                       _lhsOdeclsAbove =-                           ({-# LINE 616 "src-ag/GenerateCode.ag" #-}-                            _lhsIdeclsAbove ++ _decls-                            {-# LINE 3927 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 629, column 7)-                       _lhsObldBlocksFun =-                           ({-# LINE 629 "src-ag/GenerateCode.ag" #-}-                            id-                            {-# LINE 3933 "dist/build/GenerateCode" #-}-                            )-                       -- "src-ag/GenerateCode.ag"(line 903, column 18)-                       _lhsOcomments =-                           ({-# LINE 903 "src-ag/GenerateCode.ag" #-}-                            [ makeLocalComment 11 _lhsIwhat name tp | (field,name,tp) <- Map.elems defines_, field == _LOC ]-                            ++ [ makeLocalComment 11 "inst " name tp | (field,name,tp) <- Map.elems defines_, field == _INST ]-                            {-# LINE 3940 "dist/build/GenerateCode" #-}-                            )-                       -- use rule "src-ag/GenerateCode.ag"(line 155, column 34)-                       _lhsOdecls =-                           ({-# LINE 155 "src-ag/GenerateCode.ag" #-}-                            _decls-                            {-# LINE 3946 "dist/build/GenerateCode" #-}-                            )-                       -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)-                       _lhsOdefinedInsts =-                           ({-# LINE 261 "src-ag/GenerateCode.ag" #-}-                            _definedInsts-                            {-# LINE 3952 "dist/build/GenerateCode" #-}-                            )-                       -- copy rule (chain)-                       _lhsOvisitedSet =-                           ({-# LINE 145 "src-ag/GenerateCode.ag" #-}-                            _lhsIvisitedSet-                            {-# LINE 3958 "dist/build/GenerateCode" #-}-                            )-                       ( _patternIcopy,_patternIdefinedInsts,_patternIpatternAttributes) =-                           pattern_-                   in  ( _lhsOallTpsFound,_lhsObldBlocksFun,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars,_lhsOvisitedSet))))--- CSegment -----------------------------------------------------{--   visit 0:-      inherited attributes:-         inh                  : Attributes-         isLast               : Bool-         nr                   : Int-         nt                   : NontermIdent-         o_case               : Bool-         o_cata               : Bool-         o_costcentre         : Bool-         o_data               : Maybe Bool-         o_linePragmas        : Bool-         o_monadic            : Bool-         o_newtypes           : Bool-         o_pretty             : Bool-         o_rename             : Bool-         o_sem                : Bool-         o_sig                : Bool-         o_splitsems          : Bool-         o_strictwrap         : Bool-         o_traces             : Bool-         o_unbox              : Bool-         options              : Options-         paramMap             : ParamMap-         prefix               : String-         syn                  : Attributes-      synthesized attributes:-         comments             : [String]-         semDom               : [Decl]-         semDomUnfoldGath     : Map (NontermIdent, Int) ([String], Code.Type)-         wrapDecls            : Decls-   alternatives:-      alternative CSegment:-         child inh            : {Attributes}-         child syn            : {Attributes}-         visit 0:-            local altSemForm  : _-            local tp          : _-            local inhTps      : _-            local inhTup      : _-            local synTps      : _-            local curTypeName : _-            local nextTypeName : _-            local indexName   : _-            local dataIndex   : _-            local indexExpr   : _-            local indexStr    : _-            local inhInstance : _-            local synInstance : _-            local continuation : _-            local params      : _--}--- cata-sem_CSegment :: CSegment ->-                T_CSegment-sem_CSegment (CSegment _inh _syn) =-    (sem_CSegment_CSegment _inh _syn)--- semantic domain-newtype T_CSegment = T_CSegment (Attributes ->-                                 Bool ->-                                 Int ->-                                 NontermIdent ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 (Maybe Bool) ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Options ->-                                 ParamMap ->-                                 String ->-                                 Attributes ->-                                 ( ([String]),([Decl]),(Map (NontermIdent, Int) ([String], Code.Type)),Decls))-data Inh_CSegment = Inh_CSegment {inh_Inh_CSegment :: !(Attributes),isLast_Inh_CSegment :: !(Bool),nr_Inh_CSegment :: !(Int),nt_Inh_CSegment :: !(NontermIdent),o_case_Inh_CSegment :: !(Bool),o_cata_Inh_CSegment :: !(Bool),o_costcentre_Inh_CSegment :: !(Bool),o_data_Inh_CSegment :: !((Maybe Bool)),o_linePragmas_Inh_CSegment :: !(Bool),o_monadic_Inh_CSegment :: !(Bool),o_newtypes_Inh_CSegment :: !(Bool),o_pretty_Inh_CSegment :: !(Bool),o_rename_Inh_CSegment :: !(Bool),o_sem_Inh_CSegment :: !(Bool),o_sig_Inh_CSegment :: !(Bool),o_splitsems_Inh_CSegment :: !(Bool),o_strictwrap_Inh_CSegment :: !(Bool),o_traces_Inh_CSegment :: !(Bool),o_unbox_Inh_CSegment :: !(Bool),options_Inh_CSegment :: !(Options),paramMap_Inh_CSegment :: !(ParamMap),prefix_Inh_CSegment :: !(String),syn_Inh_CSegment :: !(Attributes)}-data Syn_CSegment = Syn_CSegment {comments_Syn_CSegment :: !(([String])),semDom_Syn_CSegment :: !(([Decl])),semDomUnfoldGath_Syn_CSegment :: !((Map (NontermIdent, Int) ([String], Code.Type))),wrapDecls_Syn_CSegment :: !(Decls)}-wrap_CSegment :: T_CSegment ->-                 Inh_CSegment ->-                 Syn_CSegment-wrap_CSegment (T_CSegment sem) (Inh_CSegment _lhsIinh _lhsIisLast _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIsyn) =-    (let ( _lhsOcomments,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls) = sem _lhsIinh _lhsIisLast _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIsyn-     in  (Syn_CSegment _lhsOcomments _lhsOsemDom _lhsOsemDomUnfoldGath _lhsOwrapDecls))-sem_CSegment_CSegment :: Attributes ->-                         Attributes ->-                         T_CSegment-sem_CSegment_CSegment inh_ syn_ =-    (T_CSegment (\ _lhsIinh-                   _lhsIisLast-                   _lhsInr-                   _lhsInt-                   _lhsIo_case-                   _lhsIo_cata-                   _lhsIo_costcentre-                   _lhsIo_data-                   _lhsIo_linePragmas-                   _lhsIo_monadic-                   _lhsIo_newtypes-                   _lhsIo_pretty-                   _lhsIo_rename-                   _lhsIo_sem-                   _lhsIo_sig-                   _lhsIo_splitsems-                   _lhsIo_strictwrap-                   _lhsIo_traces-                   _lhsIo_unbox-                   _lhsIoptions-                   _lhsIparamMap-                   _lhsIprefix-                   _lhsIsyn ->-                     (let _lhsOsemDom :: ([Decl])-                          _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))-                          _lhsOwrapDecls :: Decls-                          _lhsOcomments :: ([String])-                          -- "src-ag/GenerateCode.ag"(line 715, column 15)-                          _altSemForm =-                              ({-# LINE 715 "src-ag/GenerateCode.ag" #-}-                               breadthFirst _lhsIoptions-                               {-# LINE 4089 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 716, column 15)-                          _tp =-                              ({-# LINE 716 "src-ag/GenerateCode.ag" #-}-                               if _altSemForm-                               then TypeApp (SimpleType "Child") [SimpleType "EvalInfo", _indexExpr     ]-                               else foldr Arr _synTps     _inhTps-                               {-# LINE 4097 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 719, column 15)-                          _inhTps =-                              ({-# LINE 719 "src-ag/GenerateCode.ag" #-}-                               [typeToCodeType (Just _lhsInt) _params     tp |  tp <- Map.elems inh_]-                               {-# LINE 4103 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 720, column 15)-                          _inhTup =-                              ({-# LINE 720 "src-ag/GenerateCode.ag" #-}-                               mkTupleType _lhsIo_unbox (null _inhTps    ) _inhTps-                               {-# LINE 4109 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 721, column 15)-                          _synTps =-                              ({-# LINE 721 "src-ag/GenerateCode.ag" #-}-                               mkTupleType _lhsIo_unbox (null _inhTps    ) ([typeToCodeType (Just _lhsInt) _params     tp |  tp <- Map.elems syn_] ++ _continuation    )-                               {-# LINE 4115 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 722, column 15)-                          _curTypeName =-                              ({-# LINE 722 "src-ag/GenerateCode.ag" #-}-                               typeName _lhsInt _lhsInr-                               {-# LINE 4121 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 723, column 15)-                          _nextTypeName =-                              ({-# LINE 723 "src-ag/GenerateCode.ag" #-}-                               typeName _lhsInt (_lhsInr + 1)-                               {-# LINE 4127 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 724, column 15)-                          _indexName =-                              ({-# LINE 724 "src-ag/GenerateCode.ag" #-}-                               "I_" ++ _curTypeName-                               {-# LINE 4133 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 725, column 15)-                          _dataIndex =-                              ({-# LINE 725 "src-ag/GenerateCode.ag" #-}-                               Code.Data _indexName     _params     [DataAlt _indexName     []] False []-                               {-# LINE 4139 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 726, column 15)-                          _indexExpr =-                              ({-# LINE 726 "src-ag/GenerateCode.ag" #-}-                               TypeApp (SimpleType _indexName    ) (map (SimpleType . ('@':)) _params    )-                               {-# LINE 4145 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 727, column 15)-                          _indexStr =-                              ({-# LINE 727 "src-ag/GenerateCode.ag" #-}-                               "(" ++ _indexName     ++ concatMap (\p -> " " ++ p) _params     ++ ")"-                               {-# LINE 4151 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 728, column 15)-                          _inhInstance =-                              ({-# LINE 728 "src-ag/GenerateCode.ag" #-}-                               Code.Data "instance Inh" [_indexStr    ] [DataAlt (typeName _lhsInt _lhsInr ++ "_Inh") [_inhTup    ] ] False []-                               {-# LINE 4157 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 729, column 15)-                          _synInstance =-                              ({-# LINE 729 "src-ag/GenerateCode.ag" #-}-                               Code.Data "instance Syn" [_indexStr    ] [DataAlt (typeName _lhsInt _lhsInr ++ "_Syn") [_synTps    ] ] False []-                               {-# LINE 4163 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 730, column 15)-                          _continuation =-                              ({-# LINE 730 "src-ag/GenerateCode.ag" #-}-                               if  _lhsIisLast-                               then []-                               else [TypeApp (SimpleType _nextTypeName    ) (map (SimpleType . ('@':)) _params    )]-                               {-# LINE 4171 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 733, column 15)-                          _params =-                              ({-# LINE 733 "src-ag/GenerateCode.ag" #-}-                               map getName $ Map.findWithDefault [] _lhsInt _lhsIparamMap-                               {-# LINE 4177 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 734, column 15)-                          _lhsOsemDom =-                              ({-# LINE 734 "src-ag/GenerateCode.ag" #-}-                               let name = typeName _lhsInt _lhsInr-                                   evalTp | null _params     = id-                                          | otherwise        = idEvalType-                               in ( if _lhsIo_newtypes-                                    then [ Code.NewType name _params     name (evalTp _tp    ) ]-                                    else [ Code.Type name _params     (evalTp _tp    ) ] )-                                  ++ ( if _altSemForm-                                       then [_dataIndex    , _inhInstance    , _synInstance    ]-                                       else [] )-                               {-# LINE 4191 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 748, column 7)-                          _lhsOsemDomUnfoldGath =-                              ({-# LINE 748 "src-ag/GenerateCode.ag" #-}-                               Map.singleton (_lhsInt, _lhsInr) (_params    , _tp    )-                               {-# LINE 4197 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 831, column 15)-                          _lhsOwrapDecls =-                              ({-# LINE 831 "src-ag/GenerateCode.ag" #-}-                               let lhsVars = map (lhsname False) (Map.keys syn_)-                                             ++ if _lhsIisLast then [] else [unwrap ++ sem (_lhsInr+1)]-                                   rhsVars = map (lhsname True) (Map.keys inh_)-                                   rhs = map SimpleExpr rhsVars-                                   unwrap = if _lhsIo_newtypes then typeName _lhsInt (_lhsInr + 1) ++ " " else ""-                                   var   = "sem"-                                   sem 0 = var-                                   sem n = var ++ "_" ++ show n-                                   ntt   = typeName _lhsInt _lhsInr-                               in [ EvalDecl ntt (mkTupleLhs _lhsIo_unbox (null $ Map.keys inh_) lhsVars) (InvokeExpr ntt (SimpleExpr $ sem _lhsInr) rhs) ]-                               {-# LINE 4212 "dist/build/GenerateCode" #-}-                               )-                          -- "src-ag/GenerateCode.ag"(line 873, column 18)-                          _lhsOcomments =-                              ({-# LINE 873 "src-ag/GenerateCode.ag" #-}-                               let body = map ind (showsSegment (CSegment inh_ syn_))-                               in if null body-                                  then []-                                  else ("visit " ++ show _lhsInr ++ ":") : body-                               {-# LINE 4221 "dist/build/GenerateCode" #-}-                               )-                      in  ( _lhsOcomments,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls))))--- CSegments ----------------------------------------------------{--   visit 0:-      inherited attributes:-         inh                  : Attributes-         nr                   : Int-         nt                   : NontermIdent-         o_case               : Bool-         o_cata               : Bool-         o_costcentre         : Bool-         o_data               : Maybe Bool-         o_linePragmas        : Bool-         o_monadic            : Bool-         o_newtypes           : Bool-         o_pretty             : Bool-         o_rename             : Bool-         o_sem                : Bool-         o_sig                : Bool-         o_splitsems          : Bool-         o_strictwrap         : Bool-         o_traces             : Bool-         o_unbox              : Bool-         options              : Options-         paramMap             : ParamMap-         prefix               : String-         syn                  : Attributes-      synthesized attributes:-         comments             : [String]-         isNil                : Bool-         semDom               : [Decl]-         semDomUnfoldGath     : Map (NontermIdent, Int) ([String], Code.Type)-         wrapDecls            : Decls-   alternatives:-      alternative Cons:-         child hd             : CSegment -         child tl             : CSegments -      alternative Nil:--}--- cata-sem_CSegments :: CSegments ->-                 T_CSegments-sem_CSegments list =-    (Prelude.foldr sem_CSegments_Cons sem_CSegments_Nil (Prelude.map sem_CSegment list))--- semantic domain-newtype T_CSegments = T_CSegments (Attributes ->-                                   Int ->-                                   NontermIdent ->-                                   Bool ->-                                   Bool ->-                                   Bool ->-                                   (Maybe Bool) ->-                                   Bool ->-                                   Bool ->-                                   Bool ->-                                   Bool ->-                                   Bool ->-                                   Bool ->-                                   Bool ->-                                   Bool ->-                                   Bool ->-                                   Bool ->-                                   Bool ->-                                   Options ->-                                   ParamMap ->-                                   String ->-                                   Attributes ->-                                   ( ([String]),Bool,([Decl]),(Map (NontermIdent, Int) ([String], Code.Type)),Decls))-data Inh_CSegments = Inh_CSegments {inh_Inh_CSegments :: !(Attributes),nr_Inh_CSegments :: !(Int),nt_Inh_CSegments :: !(NontermIdent),o_case_Inh_CSegments :: !(Bool),o_cata_Inh_CSegments :: !(Bool),o_costcentre_Inh_CSegments :: !(Bool),o_data_Inh_CSegments :: !((Maybe Bool)),o_linePragmas_Inh_CSegments :: !(Bool),o_monadic_Inh_CSegments :: !(Bool),o_newtypes_Inh_CSegments :: !(Bool),o_pretty_Inh_CSegments :: !(Bool),o_rename_Inh_CSegments :: !(Bool),o_sem_Inh_CSegments :: !(Bool),o_sig_Inh_CSegments :: !(Bool),o_splitsems_Inh_CSegments :: !(Bool),o_strictwrap_Inh_CSegments :: !(Bool),o_traces_Inh_CSegments :: !(Bool),o_unbox_Inh_CSegments :: !(Bool),options_Inh_CSegments :: !(Options),paramMap_Inh_CSegments :: !(ParamMap),prefix_Inh_CSegments :: !(String),syn_Inh_CSegments :: !(Attributes)}-data Syn_CSegments = Syn_CSegments {comments_Syn_CSegments :: !(([String])),isNil_Syn_CSegments :: !(Bool),semDom_Syn_CSegments :: !(([Decl])),semDomUnfoldGath_Syn_CSegments :: !((Map (NontermIdent, Int) ([String], Code.Type))),wrapDecls_Syn_CSegments :: !(Decls)}-wrap_CSegments :: T_CSegments ->-                  Inh_CSegments ->-                  Syn_CSegments-wrap_CSegments (T_CSegments sem) (Inh_CSegments _lhsIinh _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIsyn) =-    (let ( _lhsOcomments,_lhsOisNil,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls) = sem _lhsIinh _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIsyn-     in  (Syn_CSegments _lhsOcomments _lhsOisNil _lhsOsemDom _lhsOsemDomUnfoldGath _lhsOwrapDecls))-sem_CSegments_Cons :: T_CSegment ->-                      T_CSegments ->-                      T_CSegments-sem_CSegments_Cons (T_CSegment hd_) (T_CSegments tl_) =-    (T_CSegments (\ _lhsIinh-                    _lhsInr-                    _lhsInt-                    _lhsIo_case-                    _lhsIo_cata-                    _lhsIo_costcentre-                    _lhsIo_data-                    _lhsIo_linePragmas-                    _lhsIo_monadic-                    _lhsIo_newtypes-                    _lhsIo_pretty-                    _lhsIo_rename-                    _lhsIo_sem-                    _lhsIo_sig-                    _lhsIo_splitsems-                    _lhsIo_strictwrap-                    _lhsIo_traces-                    _lhsIo_unbox-                    _lhsIoptions-                    _lhsIparamMap-                    _lhsIprefix-                    _lhsIsyn ->-                      (let _tlOnr :: Int-                           _lhsOisNil :: Bool-                           _hdOisLast :: Bool-                           _lhsOcomments :: ([String])-                           _lhsOsemDom :: ([Decl])-                           _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))-                           _lhsOwrapDecls :: Decls-                           _hdOinh :: Attributes-                           _hdOnr :: Int-                           _hdOnt :: NontermIdent-                           _hdOo_case :: Bool-                           _hdOo_cata :: Bool-                           _hdOo_costcentre :: Bool-                           _hdOo_data :: (Maybe Bool)-                           _hdOo_linePragmas :: Bool-                           _hdOo_monadic :: Bool-                           _hdOo_newtypes :: Bool-                           _hdOo_pretty :: Bool-                           _hdOo_rename :: Bool-                           _hdOo_sem :: Bool-                           _hdOo_sig :: Bool-                           _hdOo_splitsems :: Bool-                           _hdOo_strictwrap :: Bool-                           _hdOo_traces :: Bool-                           _hdOo_unbox :: Bool-                           _hdOoptions :: Options-                           _hdOparamMap :: ParamMap-                           _hdOprefix :: String-                           _hdOsyn :: Attributes-                           _tlOinh :: Attributes-                           _tlOnt :: NontermIdent-                           _tlOo_case :: Bool-                           _tlOo_cata :: Bool-                           _tlOo_costcentre :: Bool-                           _tlOo_data :: (Maybe Bool)-                           _tlOo_linePragmas :: Bool-                           _tlOo_monadic :: Bool-                           _tlOo_newtypes :: Bool-                           _tlOo_pretty :: Bool-                           _tlOo_rename :: Bool-                           _tlOo_sem :: Bool-                           _tlOo_sig :: Bool-                           _tlOo_splitsems :: Bool-                           _tlOo_strictwrap :: Bool-                           _tlOo_traces :: Bool-                           _tlOo_unbox :: Bool-                           _tlOoptions :: Options-                           _tlOparamMap :: ParamMap-                           _tlOprefix :: String-                           _tlOsyn :: Attributes-                           _hdIcomments :: ([String])-                           _hdIsemDom :: ([Decl])-                           _hdIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))-                           _hdIwrapDecls :: Decls-                           _tlIcomments :: ([String])-                           _tlIisNil :: Bool-                           _tlIsemDom :: ([Decl])-                           _tlIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))-                           _tlIwrapDecls :: Decls-                           -- "src-ag/GenerateCode.ag"(line 286, column 11)-                           _tlOnr =-                               ({-# LINE 286 "src-ag/GenerateCode.ag" #-}-                                _lhsInr + 1-                                {-# LINE 4388 "dist/build/GenerateCode" #-}-                                )-                           -- "src-ag/GenerateCode.ag"(line 299, column 12)-                           _lhsOisNil =-                               ({-# LINE 299 "src-ag/GenerateCode.ag" #-}-                                False-                                {-# LINE 4394 "dist/build/GenerateCode" #-}-                                )-                           -- "src-ag/GenerateCode.ag"(line 300, column 12)-                           _hdOisLast =-                               ({-# LINE 300 "src-ag/GenerateCode.ag" #-}-                                _tlIisNil-                                {-# LINE 4400 "dist/build/GenerateCode" #-}-                                )-                           -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)-                           _lhsOcomments =-                               ({-# LINE 868 "src-ag/GenerateCode.ag" #-}-                                _hdIcomments ++ _tlIcomments-                                {-# LINE 4406 "dist/build/GenerateCode" #-}-                                )-                           -- use rule "src-ag/GenerateCode.ag"(line 710, column 50)-                           _lhsOsemDom =-                               ({-# LINE 710 "src-ag/GenerateCode.ag" #-}-                                _hdIsemDom ++ _tlIsemDom-                                {-# LINE 4412 "dist/build/GenerateCode" #-}-                                )-                           -- use rule "src-ag/GenerateCode.ag"(line 744, column 86)-                           _lhsOsemDomUnfoldGath =-                               ({-# LINE 744 "src-ag/GenerateCode.ag" #-}-                                _hdIsemDomUnfoldGath `Map.union` _tlIsemDomUnfoldGath-                                {-# LINE 4418 "dist/build/GenerateCode" #-}-                                )-                           -- use rule "src-ag/GenerateCode.ag"(line 829, column 52)-                           _lhsOwrapDecls =-                               ({-# LINE 829 "src-ag/GenerateCode.ag" #-}-                                _hdIwrapDecls ++ _tlIwrapDecls-                                {-# LINE 4424 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOinh =-                               ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                _lhsIinh-                                {-# LINE 4430 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOnr =-                               ({-# LINE 278 "src-ag/GenerateCode.ag" #-}-                                _lhsInr-                                {-# LINE 4436 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOnt =-                               ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                _lhsInt-                                {-# LINE 4442 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOo_case =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_case-                                {-# LINE 4448 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOo_cata =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_cata-                                {-# LINE 4454 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOo_costcentre =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_costcentre-                                {-# LINE 4460 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOo_data =-                               ({-# LINE 48 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_data-                                {-# LINE 4466 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOo_linePragmas =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_linePragmas-                                {-# LINE 4472 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOo_monadic =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_monadic-                                {-# LINE 4478 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOo_newtypes =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_newtypes-                                {-# LINE 4484 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOo_pretty =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_pretty-                                {-# LINE 4490 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOo_rename =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_rename-                                {-# LINE 4496 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOo_sem =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_sem-                                {-# LINE 4502 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOo_sig =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_sig-                                {-# LINE 4508 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOo_splitsems =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_splitsems-                                {-# LINE 4514 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOo_strictwrap =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_strictwrap-                                {-# LINE 4520 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOo_traces =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_traces-                                {-# LINE 4526 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOo_unbox =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_unbox-                                {-# LINE 4532 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOoptions =-                               ({-# LINE 50 "src-ag/GenerateCode.ag" #-}-                                _lhsIoptions-                                {-# LINE 4538 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOparamMap =-                               ({-# LINE 95 "src-ag/GenerateCode.ag" #-}-                                _lhsIparamMap-                                {-# LINE 4544 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOprefix =-                               ({-# LINE 49 "src-ag/GenerateCode.ag" #-}-                                _lhsIprefix-                                {-# LINE 4550 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _hdOsyn =-                               ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                _lhsIsyn-                                {-# LINE 4556 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOinh =-                               ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                _lhsIinh-                                {-# LINE 4562 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOnt =-                               ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                _lhsInt-                                {-# LINE 4568 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOo_case =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_case-                                {-# LINE 4574 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOo_cata =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_cata-                                {-# LINE 4580 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOo_costcentre =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_costcentre-                                {-# LINE 4586 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOo_data =-                               ({-# LINE 48 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_data-                                {-# LINE 4592 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOo_linePragmas =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_linePragmas-                                {-# LINE 4598 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOo_monadic =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_monadic-                                {-# LINE 4604 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOo_newtypes =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_newtypes-                                {-# LINE 4610 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOo_pretty =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_pretty-                                {-# LINE 4616 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOo_rename =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_rename-                                {-# LINE 4622 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOo_sem =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_sem-                                {-# LINE 4628 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOo_sig =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_sig-                                {-# LINE 4634 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOo_splitsems =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_splitsems-                                {-# LINE 4640 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOo_strictwrap =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_strictwrap-                                {-# LINE 4646 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOo_traces =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_traces-                                {-# LINE 4652 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOo_unbox =-                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                                _lhsIo_unbox-                                {-# LINE 4658 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOoptions =-                               ({-# LINE 50 "src-ag/GenerateCode.ag" #-}-                                _lhsIoptions-                                {-# LINE 4664 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOparamMap =-                               ({-# LINE 95 "src-ag/GenerateCode.ag" #-}-                                _lhsIparamMap-                                {-# LINE 4670 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOprefix =-                               ({-# LINE 49 "src-ag/GenerateCode.ag" #-}-                                _lhsIprefix-                                {-# LINE 4676 "dist/build/GenerateCode" #-}-                                )-                           -- copy rule (down)-                           _tlOsyn =-                               ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                                _lhsIsyn-                                {-# LINE 4682 "dist/build/GenerateCode" #-}-                                )-                           ( _hdIcomments,_hdIsemDom,_hdIsemDomUnfoldGath,_hdIwrapDecls) =-                               hd_ _hdOinh _hdOisLast _hdOnr _hdOnt _hdOo_case _hdOo_cata _hdOo_costcentre _hdOo_data _hdOo_linePragmas _hdOo_monadic _hdOo_newtypes _hdOo_pretty _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_splitsems _hdOo_strictwrap _hdOo_traces _hdOo_unbox _hdOoptions _hdOparamMap _hdOprefix _hdOsyn-                           ( _tlIcomments,_tlIisNil,_tlIsemDom,_tlIsemDomUnfoldGath,_tlIwrapDecls) =-                               tl_ _tlOinh _tlOnr _tlOnt _tlOo_case _tlOo_cata _tlOo_costcentre _tlOo_data _tlOo_linePragmas _tlOo_monadic _tlOo_newtypes _tlOo_pretty _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_splitsems _tlOo_strictwrap _tlOo_traces _tlOo_unbox _tlOoptions _tlOparamMap _tlOprefix _tlOsyn-                       in  ( _lhsOcomments,_lhsOisNil,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls))))-sem_CSegments_Nil :: T_CSegments-sem_CSegments_Nil =-    (T_CSegments (\ _lhsIinh-                    _lhsInr-                    _lhsInt-                    _lhsIo_case-                    _lhsIo_cata-                    _lhsIo_costcentre-                    _lhsIo_data-                    _lhsIo_linePragmas-                    _lhsIo_monadic-                    _lhsIo_newtypes-                    _lhsIo_pretty-                    _lhsIo_rename-                    _lhsIo_sem-                    _lhsIo_sig-                    _lhsIo_splitsems-                    _lhsIo_strictwrap-                    _lhsIo_traces-                    _lhsIo_unbox-                    _lhsIoptions-                    _lhsIparamMap-                    _lhsIprefix-                    _lhsIsyn ->-                      (let _lhsOisNil :: Bool-                           _lhsOcomments :: ([String])-                           _lhsOsemDom :: ([Decl])-                           _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))-                           _lhsOwrapDecls :: Decls-                           -- "src-ag/GenerateCode.ag"(line 301, column 10)-                           _lhsOisNil =-                               ({-# LINE 301 "src-ag/GenerateCode.ag" #-}-                                True-                                {-# LINE 4722 "dist/build/GenerateCode" #-}-                                )-                           -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)-                           _lhsOcomments =-                               ({-# LINE 868 "src-ag/GenerateCode.ag" #-}-                                []-                                {-# LINE 4728 "dist/build/GenerateCode" #-}-                                )-                           -- use rule "src-ag/GenerateCode.ag"(line 710, column 50)-                           _lhsOsemDom =-                               ({-# LINE 710 "src-ag/GenerateCode.ag" #-}-                                []-                                {-# LINE 4734 "dist/build/GenerateCode" #-}-                                )-                           -- use rule "src-ag/GenerateCode.ag"(line 744, column 86)-                           _lhsOsemDomUnfoldGath =-                               ({-# LINE 744 "src-ag/GenerateCode.ag" #-}-                                Map.empty-                                {-# LINE 4740 "dist/build/GenerateCode" #-}-                                )-                           -- use rule "src-ag/GenerateCode.ag"(line 829, column 52)-                           _lhsOwrapDecls =-                               ({-# LINE 829 "src-ag/GenerateCode.ag" #-}-                                []-                                {-# LINE 4746 "dist/build/GenerateCode" #-}-                                )-                       in  ( _lhsOcomments,_lhsOisNil,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls))))--- CVisit -------------------------------------------------------{--   visit 0:-      inherited attributes:-         allNts               : Set NontermIdent-         allPragmas           : PragmaMap-         aroundMap            : Set Identifier-         children             : [(Identifier,Type, ChildKind)]-         con                  : ConstructorIdent-         contextMap           : ContextMap-         inh                  : Attributes-         instVisitNrs         : Map Identifier Int-         isLast               : Bool-         mergeMap             : Map Identifier (Identifier, [Identifier])-         nextIntra            : Exprs-         nextIntraVars        : Set String-         nr                   : Int-         nt                   : NontermIdent-         o_case               : Bool-         o_cata               : Bool-         o_costcentre         : Bool-         o_data               : Maybe Bool-         o_linePragmas        : Bool-         o_monadic            : Bool-         o_newtypes           : Bool-         o_pretty             : Bool-         o_rename             : Bool-         o_sem                : Bool-         o_sig                : Bool-         o_splitsems          : Bool-         o_strictwrap         : Bool-         o_traces             : Bool-         o_unbox              : Bool-         options              : Options-         paramInstMap         : Map Identifier (NontermIdent, [String])-         paramMap             : ParamMap-         prefix               : String-         quantMap             : QuantMap-         syn                  : Attributes-         terminals            : [Identifier]-         unfoldSemDom         : NontermIdent -> Int -> [String] -> Code.Type-         with_sig             : Bool-         wrappers             : Set NontermIdent-      chained attributes:-         decls                : Decls-         visitedSet           : Set Identifier-      synthesized attributes:-         comments             : [String]-         gatherInstVisitNrs   : Map Identifier Int-         intra                : Exprs-         intraVars            : Set String-         semNames             : [String]-   alternatives:-      alternative CVisit:-         child inh            : {Attributes}-         child syn            : {Attributes}-         child vss            : Sequence -         child intra          : Sequence -         child ordered        : {Bool}-         visit 0:-            local higherOrderChildren : _-            local firstOrderChildren : _-            local firstOrderOrig : _-            local funcname    : _-            local nextVisitName : _-            local nextVisitDecl : _-            local isOneVisit  : _-            local hasWrappers : _-            local refDecls    : _-            local decls       : _-            local lastExprVars : _-            local blockFunDecls : _-            local blockFirstFunCall : _-            local costCentreDescr : _-            local addCostCentre : _-            local params      : _-            local semFun      : _-            local tsig        : _-            local semType     : _-            local typeSigs    : _-            local o_do        : _-            local o_case      : _-            local declsType   : _-            local o_splitsems : _--}--- cata-sem_CVisit :: CVisit ->-              T_CVisit-sem_CVisit (CVisit _inh _syn _vss _intra _ordered) =-    (sem_CVisit_CVisit _inh _syn (sem_Sequence _vss) (sem_Sequence _intra) _ordered)--- semantic domain-newtype T_CVisit = T_CVisit ((Set NontermIdent) ->-                             PragmaMap ->-                             (Set Identifier) ->-                             ([(Identifier,Type, ChildKind)]) ->-                             ConstructorIdent ->-                             ContextMap ->-                             Decls ->-                             Attributes ->-                             (Map Identifier Int) ->-                             Bool ->-                             (Map Identifier (Identifier, [Identifier])) ->-                             Exprs ->-                             (Set String) ->-                             Int ->-                             NontermIdent ->-                             Bool ->-                             Bool ->-                             Bool ->-                             (Maybe Bool) ->-                             Bool ->-                             Bool ->-                             Bool ->-                             Bool ->-                             Bool ->-                             Bool ->-                             Bool ->-                             Bool ->-                             Bool ->-                             Bool ->-                             Bool ->-                             Options ->-                             (Map Identifier (NontermIdent, [String])) ->-                             ParamMap ->-                             String ->-                             QuantMap ->-                             Attributes ->-                             ([Identifier]) ->-                             (NontermIdent -> Int -> [String] -> Code.Type) ->-                             (Set Identifier) ->-                             Bool ->-                             (Set NontermIdent) ->-                             ( ([String]),Decls,(Map Identifier Int),Exprs,(Set String),([String]),(Set Identifier)))-data Inh_CVisit = Inh_CVisit {allNts_Inh_CVisit :: !((Set NontermIdent)),allPragmas_Inh_CVisit :: !(PragmaMap),aroundMap_Inh_CVisit :: !((Set Identifier)),children_Inh_CVisit :: !(([(Identifier,Type, ChildKind)])),con_Inh_CVisit :: !(ConstructorIdent),contextMap_Inh_CVisit :: !(ContextMap),decls_Inh_CVisit :: !(Decls),inh_Inh_CVisit :: !(Attributes),instVisitNrs_Inh_CVisit :: !((Map Identifier Int)),isLast_Inh_CVisit :: !(Bool),mergeMap_Inh_CVisit :: !((Map Identifier (Identifier, [Identifier]))),nextIntra_Inh_CVisit :: !(Exprs),nextIntraVars_Inh_CVisit :: !((Set String)),nr_Inh_CVisit :: !(Int),nt_Inh_CVisit :: !(NontermIdent),o_case_Inh_CVisit :: !(Bool),o_cata_Inh_CVisit :: !(Bool),o_costcentre_Inh_CVisit :: !(Bool),o_data_Inh_CVisit :: !((Maybe Bool)),o_linePragmas_Inh_CVisit :: !(Bool),o_monadic_Inh_CVisit :: !(Bool),o_newtypes_Inh_CVisit :: !(Bool),o_pretty_Inh_CVisit :: !(Bool),o_rename_Inh_CVisit :: !(Bool),o_sem_Inh_CVisit :: !(Bool),o_sig_Inh_CVisit :: !(Bool),o_splitsems_Inh_CVisit :: !(Bool),o_strictwrap_Inh_CVisit :: !(Bool),o_traces_Inh_CVisit :: !(Bool),o_unbox_Inh_CVisit :: !(Bool),options_Inh_CVisit :: !(Options),paramInstMap_Inh_CVisit :: !((Map Identifier (NontermIdent, [String]))),paramMap_Inh_CVisit :: !(ParamMap),prefix_Inh_CVisit :: !(String),quantMap_Inh_CVisit :: !(QuantMap),syn_Inh_CVisit :: !(Attributes),terminals_Inh_CVisit :: !(([Identifier])),unfoldSemDom_Inh_CVisit :: !((NontermIdent -> Int -> [String] -> Code.Type)),visitedSet_Inh_CVisit :: !((Set Identifier)),with_sig_Inh_CVisit :: !(Bool),wrappers_Inh_CVisit :: !((Set NontermIdent))}-data Syn_CVisit = Syn_CVisit {comments_Syn_CVisit :: !(([String])),decls_Syn_CVisit :: !(Decls),gatherInstVisitNrs_Syn_CVisit :: !((Map Identifier Int)),intra_Syn_CVisit :: !(Exprs),intraVars_Syn_CVisit :: !((Set String)),semNames_Syn_CVisit :: !(([String])),visitedSet_Syn_CVisit :: !((Set Identifier))}-wrap_CVisit :: T_CVisit ->-               Inh_CVisit ->-               Syn_CVisit-wrap_CVisit (T_CVisit sem) (Inh_CVisit _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIcontextMap _lhsIdecls _lhsIinh _lhsIinstVisitNrs _lhsIisLast _lhsImergeMap _lhsInextIntra _lhsInextIntraVars _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIvisitedSet _lhsIwith_sig _lhsIwrappers) =-    (let ( _lhsOcomments,_lhsOdecls,_lhsOgatherInstVisitNrs,_lhsOintra,_lhsOintraVars,_lhsOsemNames,_lhsOvisitedSet) = sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIcontextMap _lhsIdecls _lhsIinh _lhsIinstVisitNrs _lhsIisLast _lhsImergeMap _lhsInextIntra _lhsInextIntraVars _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIvisitedSet _lhsIwith_sig _lhsIwrappers-     in  (Syn_CVisit _lhsOcomments _lhsOdecls _lhsOgatherInstVisitNrs _lhsOintra _lhsOintraVars _lhsOsemNames _lhsOvisitedSet))-sem_CVisit_CVisit :: Attributes ->-                     Attributes ->-                     T_Sequence ->-                     T_Sequence ->-                     Bool ->-                     T_CVisit-sem_CVisit_CVisit inh_ syn_ (T_Sequence vss_) (T_Sequence intra_) ordered_ =-    (T_CVisit (\ _lhsIallNts-                 _lhsIallPragmas-                 _lhsIaroundMap-                 _lhsIchildren-                 _lhsIcon-                 _lhsIcontextMap-                 _lhsIdecls-                 _lhsIinh-                 _lhsIinstVisitNrs-                 _lhsIisLast-                 _lhsImergeMap-                 _lhsInextIntra-                 _lhsInextIntraVars-                 _lhsInr-                 _lhsInt-                 _lhsIo_case-                 _lhsIo_cata-                 _lhsIo_costcentre-                 _lhsIo_data-                 _lhsIo_linePragmas-                 _lhsIo_monadic-                 _lhsIo_newtypes-                 _lhsIo_pretty-                 _lhsIo_rename-                 _lhsIo_sem-                 _lhsIo_sig-                 _lhsIo_splitsems-                 _lhsIo_strictwrap-                 _lhsIo_traces-                 _lhsIo_unbox-                 _lhsIoptions-                 _lhsIparamInstMap-                 _lhsIparamMap-                 _lhsIprefix-                 _lhsIquantMap-                 _lhsIsyn-                 _lhsIterminals-                 _lhsIunfoldSemDom-                 _lhsIvisitedSet-                 _lhsIwith_sig-                 _lhsIwrappers ->-                   (let _lhsOintra :: Exprs-                        _lhsOintraVars :: (Set String)-                        _vssOlastExpr :: Expr-                        _intraOlastExpr :: Expr-                        _lhsOdecls :: Decls-                        _lhsOgatherInstVisitNrs :: (Map Identifier Int)-                        _vssOdeclsAbove :: ([Decl])-                        _intraOdeclsAbove :: ([Decl])-                        _lhsOcomments :: ([String])-                        _vssOwhat :: String-                        _intraOwhat :: String-                        _lhsOsemNames :: ([String])-                        _lhsOvisitedSet :: (Set Identifier)-                        _vssOallNts :: (Set NontermIdent)-                        _vssOaroundMap :: (Set Identifier)-                        _vssOchildren :: ([(Identifier,Type,ChildKind)])-                        _vssOcon :: ConstructorIdent-                        _vssOinh :: Attributes-                        _vssOinstVisitNrs :: (Map Identifier Int)-                        _vssOmergeMap :: (Map Identifier (Identifier, [Identifier]))-                        _vssOnr :: Int-                        _vssOnt :: NontermIdent-                        _vssOo_case :: Bool-                        _vssOo_cata :: Bool-                        _vssOo_costcentre :: Bool-                        _vssOo_data :: (Maybe Bool)-                        _vssOo_linePragmas :: Bool-                        _vssOo_monadic :: Bool-                        _vssOo_newtypes :: Bool-                        _vssOo_pretty :: Bool-                        _vssOo_rename :: Bool-                        _vssOo_sem :: Bool-                        _vssOo_sig :: Bool-                        _vssOo_splitsems :: Bool-                        _vssOo_strictwrap :: Bool-                        _vssOo_traces :: Bool-                        _vssOo_unbox :: Bool-                        _vssOoptions :: Options-                        _vssOparamInstMap :: (Map Identifier (NontermIdent, [String]))-                        _vssOparamMap :: ParamMap-                        _vssOprefix :: String-                        _vssOsyn :: Attributes-                        _vssOterminals :: ([Identifier])-                        _vssOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)-                        _vssOvisitedSet :: (Set Identifier)-                        _intraOallNts :: (Set NontermIdent)-                        _intraOaroundMap :: (Set Identifier)-                        _intraOchildren :: ([(Identifier,Type,ChildKind)])-                        _intraOcon :: ConstructorIdent-                        _intraOinh :: Attributes-                        _intraOinstVisitNrs :: (Map Identifier Int)-                        _intraOmergeMap :: (Map Identifier (Identifier, [Identifier]))-                        _intraOnr :: Int-                        _intraOnt :: NontermIdent-                        _intraOo_case :: Bool-                        _intraOo_cata :: Bool-                        _intraOo_costcentre :: Bool-                        _intraOo_data :: (Maybe Bool)-                        _intraOo_linePragmas :: Bool-                        _intraOo_monadic :: Bool-                        _intraOo_newtypes :: Bool-                        _intraOo_pretty :: Bool-                        _intraOo_rename :: Bool-                        _intraOo_sem :: Bool-                        _intraOo_sig :: Bool-                        _intraOo_splitsems :: Bool-                        _intraOo_strictwrap :: Bool-                        _intraOo_traces :: Bool-                        _intraOo_unbox :: Bool-                        _intraOoptions :: Options-                        _intraOparamInstMap :: (Map Identifier (NontermIdent, [String]))-                        _intraOparamMap :: ParamMap-                        _intraOprefix :: String-                        _intraOsyn :: Attributes-                        _intraOterminals :: ([Identifier])-                        _intraOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)-                        _intraOvisitedSet :: (Set Identifier)-                        _vssIallTpsFound :: Bool-                        _vssIblockDecls :: DeclBlocks-                        _vssIcomments :: ([String])-                        _vssIdecls :: Decls-                        _vssIdeclsAbove :: ([Decl])-                        _vssIdefinedInsts :: ([Identifier])-                        _vssIexprs :: Exprs-                        _vssItSigs :: ([Decl])-                        _vssItps :: ([Type])-                        _vssIusedVars :: (Set String)-                        _vssIvisitedSet :: (Set Identifier)-                        _intraIallTpsFound :: Bool-                        _intraIblockDecls :: DeclBlocks-                        _intraIcomments :: ([String])-                        _intraIdecls :: Decls-                        _intraIdeclsAbove :: ([Decl])-                        _intraIdefinedInsts :: ([Identifier])-                        _intraIexprs :: Exprs-                        _intraItSigs :: ([Decl])-                        _intraItps :: ([Type])-                        _intraIusedVars :: (Set String)-                        _intraIvisitedSet :: (Set Identifier)-                        -- "src-ag/GenerateCode.ag"(line 310, column 13)-                        _lhsOintra =-                            ({-# LINE 310 "src-ag/GenerateCode.ag" #-}-                             _intraIexprs-                             {-# LINE 5041 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 311, column 13)-                        _lhsOintraVars =-                            ({-# LINE 311 "src-ag/GenerateCode.ag" #-}-                             _intraIusedVars-                             {-# LINE 5047 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 441, column 13)-                        (_higherOrderChildren,_firstOrderChildren) =-                            ({-# LINE 441 "src-ag/GenerateCode.ag" #-}-                             partition (\(_,_,virt) -> isHigherOrder virt) _lhsIchildren-                             {-# LINE 5053 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 442, column 13)-                        _firstOrderOrig =-                            ({-# LINE 442 "src-ag/GenerateCode.ag" #-}-                             map pickOrigType _firstOrderChildren-                             {-# LINE 5059 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 443, column 13)-                        _funcname =-                            ({-# LINE 443 "src-ag/GenerateCode.ag" #-}-                             seqSemname _lhsIprefix _lhsInt _lhsIcon _lhsInr-                             {-# LINE 5065 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 444, column 13)-                        _nextVisitName =-                            ({-# LINE 444 "src-ag/GenerateCode.ag" #-}-                             if _lhsIisLast then [] else [visitname _lhsIprefix _lhsInt (_lhsInr+1)]-                             {-# LINE 5071 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 445, column 13)-                        _nextVisitDecl =-                            ({-# LINE 445 "src-ag/GenerateCode.ag" #-}-                             let  lhs = TupleLhs _nextVisitName-                                  rhs = Let _lhsIdecls (SimpleExpr fun)-                                  fun = seqSemname _lhsIprefix _lhsInt _lhsIcon (_lhsInr+1)-                             in if _lhsIisLast-                                then []-                                else [Decl lhs rhs (Set.fromList _nextVisitName) _lhsInextIntraVars]-                             {-# LINE 5082 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 452, column 13)-                        _isOneVisit =-                            ({-# LINE 452 "src-ag/GenerateCode.ag" #-}-                             _lhsIisLast && _lhsInr == 0-                             {-# LINE 5088 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 453, column 13)-                        _hasWrappers =-                            ({-# LINE 453 "src-ag/GenerateCode.ag" #-}-                             _lhsInt `Set.member` _lhsIwrappers-                             {-# LINE 5094 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 454, column 13)-                        _refDecls =-                            ({-# LINE 454 "src-ag/GenerateCode.ag" #-}-                             if _isOneVisit     && _hasWrappers     && reference _lhsIoptions-                             then let synAttrs = Map.toList syn_-                                      synNT = "Syn" ++ "_" ++ getName _lhsInt-                                      synVars = [ SimpleExpr (attrname False _LHS a) | (a,_) <- synAttrs ]-                                      rhs = App synNT synVars-                                      lhs = Fun "___node" []-                                  in [Decl lhs rhs Set.empty Set.empty]-                             else []-                             {-# LINE 5107 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 462, column 13)-                        _decls =-                            ({-# LINE 462 "src-ag/GenerateCode.ag" #-}-                             _typeSigs ++ _vssIdecls ++ _nextVisitDecl ++ _refDecls-                             {-# LINE 5113 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 463, column 13)-                        _vssOlastExpr =-                            ({-# LINE 463 "src-ag/GenerateCode.ag" #-}-                             mkTupleExpr _lhsIo_unbox (null $ Map.keys inh_) $ map (SimpleExpr . lhsname False) (Map.keys syn_) ++ map SimpleExpr _nextVisitName-                             {-# LINE 5119 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 464, column 13)-                        _intraOlastExpr =-                            ({-# LINE 464 "src-ag/GenerateCode.ag" #-}-                             error "lastExpr: not used here"-                             {-# LINE 5125 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 465, column 13)-                        _lastExprVars =-                            ({-# LINE 465 "src-ag/GenerateCode.ag" #-}-                             map (lhsname False) (Map.keys syn_) ++ _nextVisitName-                             {-# LINE 5131 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 466, column 13)-                        (_blockFunDecls,_blockFirstFunCall) =-                            ({-# LINE 466 "src-ag/GenerateCode.ag" #-}-                             mkPartitionedFunction _funcname     _o_case     _nextVisitDecl     _lastExprVars     _vssIblockDecls-                             {-# LINE 5137 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 468, column 13)-                        _costCentreDescr =-                            ({-# LINE 468 "src-ag/GenerateCode.ag" #-}-                             "b" ++ ":" ++ show _lhsInt ++ ":" ++ show _lhsIcon ++ ":" ++ show _lhsInr-                             {-# LINE 5143 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 469, column 13)-                        _addCostCentre =-                            ({-# LINE 469 "src-ag/GenerateCode.ag" #-}-                             \v -> if _lhsIo_costcentre-                                   then PragmaExpr True False ("SCC \"" ++ _costCentreDescr     ++ "\"") v-                                   else v-                             {-# LINE 5151 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 473, column 13)-                        _params =-                            ({-# LINE 473 "src-ag/GenerateCode.ag" #-}-                             map getName $ Map.findWithDefault [] _lhsInt _lhsIparamMap-                             {-# LINE 5157 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 474, column 13)-                        _semFun =-                            ({-# LINE 474 "src-ag/GenerateCode.ag" #-}-                             let  lhs = Fun _funcname lhs_args-                                  lhs_args = if _lhsInr == 0 then map field _firstOrderOrig     else []-                                  field (name,NT tp tps _,_) = let unwrap | _lhsIo_newtypes = \x -> App (sdtype tp) [x]-                                                                          | otherwise       = id-                                                                   addType expr | null tps  = expr-                                                                                | otherwise = TypedExpr expr (_lhsIunfoldSemDom tp 0 tps)-                                                               in unwrap $ addType $ SimpleExpr $ funname name 0-                                  field (name,tp,_)        = let expr = SimpleExpr (funname name 0)-                                                             in if null _params-                                                                then expr-                                                                else TypedExpr expr (idEvalType $ typeToCodeType (Just _lhsInt) _params     $ removeDeforested tp)-                                  mbEvalTp | null _params     = const Nothing-                                           | otherwise        = Just . idEvalType-                                  rhs = wrap-                                      . mkSemFun _lhsInt _lhsInr [mkLambdaArg (lhsname True nm) (mbEvalTp $ typeToCodeType (Just _lhsInt) _params     $ removeDeforested tp) | (nm,tp) <- Map.assocs inh_]-                                      $ _addCostCentre-                                      $ if ordered_ && _o_splitsems-                                        then _blockFirstFunCall-                                        else mkDecls _declsType     _decls-                                             . ResultExpr (typeName _lhsInt _lhsInr)-                                             . mkTupleExpr _lhsIo_unbox (null $ Map.keys inh_)-                                             $ map (SimpleExpr . lhsname False) (Map.keys syn_) ++ map SimpleExpr _nextVisitName-                                  wrap = if  _lhsIo_newtypes-                                             then \x -> App (typeName _lhsInt _lhsInr) [x]-                                             else id-                             in Decl lhs rhs Set.empty Set.empty-                             {-# LINE 5188 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 505, column 13)-                        _tsig =-                            ({-# LINE 505 "src-ag/GenerateCode.ag" #-}-                             TSig _funcname _semType-                             {-# LINE 5194 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 506, column 13)-                        _semType =-                            ({-# LINE 506 "src-ag/GenerateCode.ag" #-}-                             let argType (NT tp tps _)  r | tp /= _SELF = typeAppStrs (sdtype tp) tps `Arr` r-                                                          | tp == _SELF = error "GenerateCode: found an intra-type with type SELF, which should have been prevented by CRule.tps"-                                 argType (Haskell tp) r                 = SimpleType tp          `Arr` r-                                 evalTp | null _params     = id-                                        | otherwise        = idEvalType-                             in appQuant _lhsIquantMap _lhsInt $ appContext _lhsIcontextMap _lhsInt $ evalTp $-                                if  _lhsInr == 0-                                    then foldr argType (typeAppStrs (sdtype   _lhsInt        ) _params    ) (map (\(_,t,_) -> t) _firstOrderOrig    )-                                    else foldr argType (typeAppStrs (typeName _lhsInt _lhsInr) _params    ) []-                             {-# LINE 5208 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 517, column 13)-                        _lhsOdecls =-                            ({-# LINE 517 "src-ag/GenerateCode.ag" #-}-                             ( if  _lhsIwith_sig-                               then [_tsig, _semFun]-                               else [_semFun]-                             ) ++-                             ( if ordered_ && _o_splitsems-                               then _blockFunDecls-                               else []-                             )-                             {-# LINE 5221 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 525, column 13)-                        _typeSigs =-                            ({-# LINE 525 "src-ag/GenerateCode.ag" #-}-                             if  _lhsIo_sig && not _o_case-                                 then  _vssItSigs-                                 else  []-                             {-# LINE 5229 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 528, column 13)-                        _o_do =-                            ({-# LINE 528 "src-ag/GenerateCode.ag" #-}-                             ordered_ && _lhsIo_monadic-                             {-# LINE 5235 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 529, column 13)-                        _o_case =-                            ({-# LINE 529 "src-ag/GenerateCode.ag" #-}-                             not _o_do     && _lhsIo_case && ordered_ && not (hasPragma _lhsIallPragmas _lhsInt _lhsIcon _NOCASE)-                             {-# LINE 5241 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 530, column 13)-                        _declsType =-                            ({-# LINE 530 "src-ag/GenerateCode.ag" #-}-                             if _o_do-                             then DeclsDo-                             else if _o_case-                                  then DeclsCase-                                  else DeclsLet-                             {-# LINE 5251 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 535, column 13)-                        _o_splitsems =-                            ({-# LINE 535 "src-ag/GenerateCode.ag" #-}-                             ordered_ && _lhsIo_splitsems-                             {-# LINE 5257 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 568, column 7)-                        _lhsOgatherInstVisitNrs =-                            ({-# LINE 568 "src-ag/GenerateCode.ag" #-}-                             Map.fromList [(i,_lhsInr) | i <- _vssIdefinedInsts]-                             {-# LINE 5263 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 611, column 7)-                        _vssOdeclsAbove =-                            ({-# LINE 611 "src-ag/GenerateCode.ag" #-}-                             []-                             {-# LINE 5269 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 612, column 7)-                        _intraOdeclsAbove =-                            ({-# LINE 612 "src-ag/GenerateCode.ag" #-}-                             error "declsAbove: not used here"-                             {-# LINE 5275 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 894, column 18)-                        _lhsOcomments =-                            ({-# LINE 894 "src-ag/GenerateCode.ag" #-}-                             let body = map ind (_vssIcomments ++ _intraIcomments)-                             in if null body-                                then []-                                else ("visit " ++ show _lhsInr ++ ":") : body-                             {-# LINE 5284 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 898, column 18)-                        _vssOwhat =-                            ({-# LINE 898 "src-ag/GenerateCode.ag" #-}-                             "local"-                             {-# LINE 5290 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 899, column 18)-                        _intraOwhat =-                            ({-# LINE 899 "src-ag/GenerateCode.ag" #-}-                             "intra"-                             {-# LINE 5296 "dist/build/GenerateCode" #-}-                             )-                        -- "src-ag/GenerateCode.ag"(line 1156, column 7)-                        _lhsOsemNames =-                            ({-# LINE 1156 "src-ag/GenerateCode.ag" #-}-                             [_funcname    ]-                             {-# LINE 5302 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (up)-                        _lhsOvisitedSet =-                            ({-# LINE 145 "src-ag/GenerateCode.ag" #-}-                             _intraIvisitedSet-                             {-# LINE 5308 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOallNts =-                            ({-# LINE 132 "src-ag/GenerateCode.ag" #-}-                             _lhsIallNts-                             {-# LINE 5314 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOaroundMap =-                            ({-# LINE 580 "src-ag/GenerateCode.ag" #-}-                             _lhsIaroundMap-                             {-# LINE 5320 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOchildren =-                            ({-# LINE 259 "src-ag/GenerateCode.ag" #-}-                             _lhsIchildren-                             {-# LINE 5326 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOcon =-                            ({-# LINE 89 "src-ag/GenerateCode.ag" #-}-                             _lhsIcon-                             {-# LINE 5332 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOinh =-                            ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                             _lhsIinh-                             {-# LINE 5338 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOinstVisitNrs =-                            ({-# LINE 560 "src-ag/GenerateCode.ag" #-}-                             _lhsIinstVisitNrs-                             {-# LINE 5344 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOmergeMap =-                            ({-# LINE 596 "src-ag/GenerateCode.ag" #-}-                             _lhsImergeMap-                             {-# LINE 5350 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOnr =-                            ({-# LINE 278 "src-ag/GenerateCode.ag" #-}-                             _lhsInr-                             {-# LINE 5356 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOnt =-                            ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                             _lhsInt-                             {-# LINE 5362 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (from local)-                        _vssOo_case =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _o_case-                             {-# LINE 5368 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOo_cata =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_cata-                             {-# LINE 5374 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOo_costcentre =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_costcentre-                             {-# LINE 5380 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOo_data =-                            ({-# LINE 48 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_data-                             {-# LINE 5386 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOo_linePragmas =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_linePragmas-                             {-# LINE 5392 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOo_monadic =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_monadic-                             {-# LINE 5398 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOo_newtypes =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_newtypes-                             {-# LINE 5404 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOo_pretty =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_pretty-                             {-# LINE 5410 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOo_rename =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_rename-                             {-# LINE 5416 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOo_sem =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_sem-                             {-# LINE 5422 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOo_sig =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_sig-                             {-# LINE 5428 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (from local)-                        _vssOo_splitsems =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _o_splitsems-                             {-# LINE 5434 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOo_strictwrap =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_strictwrap-                             {-# LINE 5440 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOo_traces =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_traces-                             {-# LINE 5446 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOo_unbox =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_unbox-                             {-# LINE 5452 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOoptions =-                            ({-# LINE 50 "src-ag/GenerateCode.ag" #-}-                             _lhsIoptions-                             {-# LINE 5458 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOparamInstMap =-                            ({-# LINE 101 "src-ag/GenerateCode.ag" #-}-                             _lhsIparamInstMap-                             {-# LINE 5464 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOparamMap =-                            ({-# LINE 95 "src-ag/GenerateCode.ag" #-}-                             _lhsIparamMap-                             {-# LINE 5470 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOprefix =-                            ({-# LINE 49 "src-ag/GenerateCode.ag" #-}-                             _lhsIprefix-                             {-# LINE 5476 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOsyn =-                            ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                             _lhsIsyn-                             {-# LINE 5482 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOterminals =-                            ({-# LINE 90 "src-ag/GenerateCode.ag" #-}-                             _lhsIterminals-                             {-# LINE 5488 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOunfoldSemDom =-                            ({-# LINE 750 "src-ag/GenerateCode.ag" #-}-                             _lhsIunfoldSemDom-                             {-# LINE 5494 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _vssOvisitedSet =-                            ({-# LINE 145 "src-ag/GenerateCode.ag" #-}-                             _lhsIvisitedSet-                             {-# LINE 5500 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOallNts =-                            ({-# LINE 132 "src-ag/GenerateCode.ag" #-}-                             _lhsIallNts-                             {-# LINE 5506 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOaroundMap =-                            ({-# LINE 580 "src-ag/GenerateCode.ag" #-}-                             _lhsIaroundMap-                             {-# LINE 5512 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOchildren =-                            ({-# LINE 259 "src-ag/GenerateCode.ag" #-}-                             _lhsIchildren-                             {-# LINE 5518 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOcon =-                            ({-# LINE 89 "src-ag/GenerateCode.ag" #-}-                             _lhsIcon-                             {-# LINE 5524 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOinh =-                            ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                             _lhsIinh-                             {-# LINE 5530 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOinstVisitNrs =-                            ({-# LINE 560 "src-ag/GenerateCode.ag" #-}-                             _lhsIinstVisitNrs-                             {-# LINE 5536 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOmergeMap =-                            ({-# LINE 596 "src-ag/GenerateCode.ag" #-}-                             _lhsImergeMap-                             {-# LINE 5542 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOnr =-                            ({-# LINE 278 "src-ag/GenerateCode.ag" #-}-                             _lhsInr-                             {-# LINE 5548 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOnt =-                            ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                             _lhsInt-                             {-# LINE 5554 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (from local)-                        _intraOo_case =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _o_case-                             {-# LINE 5560 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOo_cata =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_cata-                             {-# LINE 5566 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOo_costcentre =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_costcentre-                             {-# LINE 5572 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOo_data =-                            ({-# LINE 48 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_data-                             {-# LINE 5578 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOo_linePragmas =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_linePragmas-                             {-# LINE 5584 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOo_monadic =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_monadic-                             {-# LINE 5590 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOo_newtypes =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_newtypes-                             {-# LINE 5596 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOo_pretty =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_pretty-                             {-# LINE 5602 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOo_rename =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_rename-                             {-# LINE 5608 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOo_sem =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_sem-                             {-# LINE 5614 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOo_sig =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_sig-                             {-# LINE 5620 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (from local)-                        _intraOo_splitsems =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _o_splitsems-                             {-# LINE 5626 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOo_strictwrap =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_strictwrap-                             {-# LINE 5632 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOo_traces =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_traces-                             {-# LINE 5638 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOo_unbox =-                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                             _lhsIo_unbox-                             {-# LINE 5644 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOoptions =-                            ({-# LINE 50 "src-ag/GenerateCode.ag" #-}-                             _lhsIoptions-                             {-# LINE 5650 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOparamInstMap =-                            ({-# LINE 101 "src-ag/GenerateCode.ag" #-}-                             _lhsIparamInstMap-                             {-# LINE 5656 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOparamMap =-                            ({-# LINE 95 "src-ag/GenerateCode.ag" #-}-                             _lhsIparamMap-                             {-# LINE 5662 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOprefix =-                            ({-# LINE 49 "src-ag/GenerateCode.ag" #-}-                             _lhsIprefix-                             {-# LINE 5668 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOsyn =-                            ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                             _lhsIsyn-                             {-# LINE 5674 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOterminals =-                            ({-# LINE 90 "src-ag/GenerateCode.ag" #-}-                             _lhsIterminals-                             {-# LINE 5680 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (down)-                        _intraOunfoldSemDom =-                            ({-# LINE 750 "src-ag/GenerateCode.ag" #-}-                             _lhsIunfoldSemDom-                             {-# LINE 5686 "dist/build/GenerateCode" #-}-                             )-                        -- copy rule (chain)-                        _intraOvisitedSet =-                            ({-# LINE 145 "src-ag/GenerateCode.ag" #-}-                             _vssIvisitedSet-                             {-# LINE 5692 "dist/build/GenerateCode" #-}-                             )-                        ( _vssIallTpsFound,_vssIblockDecls,_vssIcomments,_vssIdecls,_vssIdeclsAbove,_vssIdefinedInsts,_vssIexprs,_vssItSigs,_vssItps,_vssIusedVars,_vssIvisitedSet) =-                            vss_ _vssOallNts _vssOaroundMap _vssOchildren _vssOcon _vssOdeclsAbove _vssOinh _vssOinstVisitNrs _vssOlastExpr _vssOmergeMap _vssOnr _vssOnt _vssOo_case _vssOo_cata _vssOo_costcentre _vssOo_data _vssOo_linePragmas _vssOo_monadic _vssOo_newtypes _vssOo_pretty _vssOo_rename _vssOo_sem _vssOo_sig _vssOo_splitsems _vssOo_strictwrap _vssOo_traces _vssOo_unbox _vssOoptions _vssOparamInstMap _vssOparamMap _vssOprefix _vssOsyn _vssOterminals _vssOunfoldSemDom _vssOvisitedSet _vssOwhat-                        ( _intraIallTpsFound,_intraIblockDecls,_intraIcomments,_intraIdecls,_intraIdeclsAbove,_intraIdefinedInsts,_intraIexprs,_intraItSigs,_intraItps,_intraIusedVars,_intraIvisitedSet) =-                            intra_ _intraOallNts _intraOaroundMap _intraOchildren _intraOcon _intraOdeclsAbove _intraOinh _intraOinstVisitNrs _intraOlastExpr _intraOmergeMap _intraOnr _intraOnt _intraOo_case _intraOo_cata _intraOo_costcentre _intraOo_data _intraOo_linePragmas _intraOo_monadic _intraOo_newtypes _intraOo_pretty _intraOo_rename _intraOo_sem _intraOo_sig _intraOo_splitsems _intraOo_strictwrap _intraOo_traces _intraOo_unbox _intraOoptions _intraOparamInstMap _intraOparamMap _intraOprefix _intraOsyn _intraOterminals _intraOunfoldSemDom _intraOvisitedSet _intraOwhat-                    in  ( _lhsOcomments,_lhsOdecls,_lhsOgatherInstVisitNrs,_lhsOintra,_lhsOintraVars,_lhsOsemNames,_lhsOvisitedSet))))--- CVisits ------------------------------------------------------{--   visit 0:-      inherited attributes:-         allNts               : Set NontermIdent-         allPragmas           : PragmaMap-         aroundMap            : Set Identifier-         children             : [(Identifier,Type, ChildKind)]-         con                  : ConstructorIdent-         contextMap           : ContextMap-         inh                  : Attributes-         instVisitNrs         : Map Identifier Int-         mergeMap             : Map Identifier (Identifier, [Identifier])-         nr                   : Int-         nt                   : NontermIdent-         o_case               : Bool-         o_cata               : Bool-         o_costcentre         : Bool-         o_data               : Maybe Bool-         o_linePragmas        : Bool-         o_monadic            : Bool-         o_newtypes           : Bool-         o_pretty             : Bool-         o_rename             : Bool-         o_sem                : Bool-         o_sig                : Bool-         o_splitsems          : Bool-         o_strictwrap         : Bool-         o_traces             : Bool-         o_unbox              : Bool-         options              : Options-         paramInstMap         : Map Identifier (NontermIdent, [String])-         paramMap             : ParamMap-         prefix               : String-         quantMap             : QuantMap-         syn                  : Attributes-         terminals            : [Identifier]-         unfoldSemDom         : NontermIdent -> Int -> [String] -> Code.Type-         with_sig             : Bool-         wrappers             : Set NontermIdent-      chained attribute:-         visitedSet           : Set Identifier-      synthesized attributes:-         comments             : [String]-         decls                : Decls-         gatherInstVisitNrs   : Map Identifier Int-         intra                : Exprs-         intraVars            : Set String-         isNil                : Bool-         semNames             : [String]-   alternatives:-      alternative Cons:-         child hd             : CVisit -         child tl             : CVisits -      alternative Nil:--}--- cata-sem_CVisits :: CVisits ->-               T_CVisits-sem_CVisits list =-    (Prelude.foldr sem_CVisits_Cons sem_CVisits_Nil (Prelude.map sem_CVisit list))--- semantic domain-newtype T_CVisits = T_CVisits ((Set NontermIdent) ->-                               PragmaMap ->-                               (Set Identifier) ->-                               ([(Identifier,Type, ChildKind)]) ->-                               ConstructorIdent ->-                               ContextMap ->-                               Attributes ->-                               (Map Identifier Int) ->-                               (Map Identifier (Identifier, [Identifier])) ->-                               Int ->-                               NontermIdent ->-                               Bool ->-                               Bool ->-                               Bool ->-                               (Maybe Bool) ->-                               Bool ->-                               Bool ->-                               Bool ->-                               Bool ->-                               Bool ->-                               Bool ->-                               Bool ->-                               Bool ->-                               Bool ->-                               Bool ->-                               Bool ->-                               Options ->-                               (Map Identifier (NontermIdent, [String])) ->-                               ParamMap ->-                               String ->-                               QuantMap ->-                               Attributes ->-                               ([Identifier]) ->-                               (NontermIdent -> Int -> [String] -> Code.Type) ->-                               (Set Identifier) ->-                               Bool ->-                               (Set NontermIdent) ->-                               ( ([String]),Decls,(Map Identifier Int),Exprs,(Set String),Bool,([String]),(Set Identifier)))-data Inh_CVisits = Inh_CVisits {allNts_Inh_CVisits :: !((Set NontermIdent)),allPragmas_Inh_CVisits :: !(PragmaMap),aroundMap_Inh_CVisits :: !((Set Identifier)),children_Inh_CVisits :: !(([(Identifier,Type, ChildKind)])),con_Inh_CVisits :: !(ConstructorIdent),contextMap_Inh_CVisits :: !(ContextMap),inh_Inh_CVisits :: !(Attributes),instVisitNrs_Inh_CVisits :: !((Map Identifier Int)),mergeMap_Inh_CVisits :: !((Map Identifier (Identifier, [Identifier]))),nr_Inh_CVisits :: !(Int),nt_Inh_CVisits :: !(NontermIdent),o_case_Inh_CVisits :: !(Bool),o_cata_Inh_CVisits :: !(Bool),o_costcentre_Inh_CVisits :: !(Bool),o_data_Inh_CVisits :: !((Maybe Bool)),o_linePragmas_Inh_CVisits :: !(Bool),o_monadic_Inh_CVisits :: !(Bool),o_newtypes_Inh_CVisits :: !(Bool),o_pretty_Inh_CVisits :: !(Bool),o_rename_Inh_CVisits :: !(Bool),o_sem_Inh_CVisits :: !(Bool),o_sig_Inh_CVisits :: !(Bool),o_splitsems_Inh_CVisits :: !(Bool),o_strictwrap_Inh_CVisits :: !(Bool),o_traces_Inh_CVisits :: !(Bool),o_unbox_Inh_CVisits :: !(Bool),options_Inh_CVisits :: !(Options),paramInstMap_Inh_CVisits :: !((Map Identifier (NontermIdent, [String]))),paramMap_Inh_CVisits :: !(ParamMap),prefix_Inh_CVisits :: !(String),quantMap_Inh_CVisits :: !(QuantMap),syn_Inh_CVisits :: !(Attributes),terminals_Inh_CVisits :: !(([Identifier])),unfoldSemDom_Inh_CVisits :: !((NontermIdent -> Int -> [String] -> Code.Type)),visitedSet_Inh_CVisits :: !((Set Identifier)),with_sig_Inh_CVisits :: !(Bool),wrappers_Inh_CVisits :: !((Set NontermIdent))}-data Syn_CVisits = Syn_CVisits {comments_Syn_CVisits :: !(([String])),decls_Syn_CVisits :: !(Decls),gatherInstVisitNrs_Syn_CVisits :: !((Map Identifier Int)),intra_Syn_CVisits :: !(Exprs),intraVars_Syn_CVisits :: !((Set String)),isNil_Syn_CVisits :: !(Bool),semNames_Syn_CVisits :: !(([String])),visitedSet_Syn_CVisits :: !((Set Identifier))}-wrap_CVisits :: T_CVisits ->-                Inh_CVisits ->-                Syn_CVisits-wrap_CVisits (T_CVisits sem) (Inh_CVisits _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIcontextMap _lhsIinh _lhsIinstVisitNrs _lhsImergeMap _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIvisitedSet _lhsIwith_sig _lhsIwrappers) =-    (let ( _lhsOcomments,_lhsOdecls,_lhsOgatherInstVisitNrs,_lhsOintra,_lhsOintraVars,_lhsOisNil,_lhsOsemNames,_lhsOvisitedSet) = sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIcontextMap _lhsIinh _lhsIinstVisitNrs _lhsImergeMap _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIvisitedSet _lhsIwith_sig _lhsIwrappers-     in  (Syn_CVisits _lhsOcomments _lhsOdecls _lhsOgatherInstVisitNrs _lhsOintra _lhsOintraVars _lhsOisNil _lhsOsemNames _lhsOvisitedSet))-sem_CVisits_Cons :: T_CVisit ->-                    T_CVisits ->-                    T_CVisits-sem_CVisits_Cons (T_CVisit hd_) (T_CVisits tl_) =-    (T_CVisits (\ _lhsIallNts-                  _lhsIallPragmas-                  _lhsIaroundMap-                  _lhsIchildren-                  _lhsIcon-                  _lhsIcontextMap-                  _lhsIinh-                  _lhsIinstVisitNrs-                  _lhsImergeMap-                  _lhsInr-                  _lhsInt-                  _lhsIo_case-                  _lhsIo_cata-                  _lhsIo_costcentre-                  _lhsIo_data-                  _lhsIo_linePragmas-                  _lhsIo_monadic-                  _lhsIo_newtypes-                  _lhsIo_pretty-                  _lhsIo_rename-                  _lhsIo_sem-                  _lhsIo_sig-                  _lhsIo_splitsems-                  _lhsIo_strictwrap-                  _lhsIo_traces-                  _lhsIo_unbox-                  _lhsIoptions-                  _lhsIparamInstMap-                  _lhsIparamMap-                  _lhsIprefix-                  _lhsIquantMap-                  _lhsIsyn-                  _lhsIterminals-                  _lhsIunfoldSemDom-                  _lhsIvisitedSet-                  _lhsIwith_sig-                  _lhsIwrappers ->-                    (let _tlOnr :: Int-                         _lhsOisNil :: Bool-                         _hdOisLast :: Bool-                         _hdOnextIntra :: Exprs-                         _hdOnextIntraVars :: (Set String)-                         _lhsOintra :: Exprs-                         _lhsOintraVars :: (Set String)-                         _lhsOdecls :: Decls-                         _hdOdecls :: Decls-                         _lhsOcomments :: ([String])-                         _lhsOgatherInstVisitNrs :: (Map Identifier Int)-                         _lhsOsemNames :: ([String])-                         _lhsOvisitedSet :: (Set Identifier)-                         _hdOallNts :: (Set NontermIdent)-                         _hdOallPragmas :: PragmaMap-                         _hdOaroundMap :: (Set Identifier)-                         _hdOchildren :: ([(Identifier,Type, ChildKind)])-                         _hdOcon :: ConstructorIdent-                         _hdOcontextMap :: ContextMap-                         _hdOinh :: Attributes-                         _hdOinstVisitNrs :: (Map Identifier Int)-                         _hdOmergeMap :: (Map Identifier (Identifier, [Identifier]))-                         _hdOnr :: Int-                         _hdOnt :: NontermIdent-                         _hdOo_case :: Bool-                         _hdOo_cata :: Bool-                         _hdOo_costcentre :: Bool-                         _hdOo_data :: (Maybe Bool)-                         _hdOo_linePragmas :: Bool-                         _hdOo_monadic :: Bool-                         _hdOo_newtypes :: Bool-                         _hdOo_pretty :: Bool-                         _hdOo_rename :: Bool-                         _hdOo_sem :: Bool-                         _hdOo_sig :: Bool-                         _hdOo_splitsems :: Bool-                         _hdOo_strictwrap :: Bool-                         _hdOo_traces :: Bool-                         _hdOo_unbox :: Bool-                         _hdOoptions :: Options-                         _hdOparamInstMap :: (Map Identifier (NontermIdent, [String]))-                         _hdOparamMap :: ParamMap-                         _hdOprefix :: String-                         _hdOquantMap :: QuantMap-                         _hdOsyn :: Attributes-                         _hdOterminals :: ([Identifier])-                         _hdOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)-                         _hdOvisitedSet :: (Set Identifier)-                         _hdOwith_sig :: Bool-                         _hdOwrappers :: (Set NontermIdent)-                         _tlOallNts :: (Set NontermIdent)-                         _tlOallPragmas :: PragmaMap-                         _tlOaroundMap :: (Set Identifier)-                         _tlOchildren :: ([(Identifier,Type, ChildKind)])-                         _tlOcon :: ConstructorIdent-                         _tlOcontextMap :: ContextMap-                         _tlOinh :: Attributes-                         _tlOinstVisitNrs :: (Map Identifier Int)-                         _tlOmergeMap :: (Map Identifier (Identifier, [Identifier]))-                         _tlOnt :: NontermIdent-                         _tlOo_case :: Bool-                         _tlOo_cata :: Bool-                         _tlOo_costcentre :: Bool-                         _tlOo_data :: (Maybe Bool)-                         _tlOo_linePragmas :: Bool-                         _tlOo_monadic :: Bool-                         _tlOo_newtypes :: Bool-                         _tlOo_pretty :: Bool-                         _tlOo_rename :: Bool-                         _tlOo_sem :: Bool-                         _tlOo_sig :: Bool-                         _tlOo_splitsems :: Bool-                         _tlOo_strictwrap :: Bool-                         _tlOo_traces :: Bool-                         _tlOo_unbox :: Bool-                         _tlOoptions :: Options-                         _tlOparamInstMap :: (Map Identifier (NontermIdent, [String]))-                         _tlOparamMap :: ParamMap-                         _tlOprefix :: String-                         _tlOquantMap :: QuantMap-                         _tlOsyn :: Attributes-                         _tlOterminals :: ([Identifier])-                         _tlOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)-                         _tlOvisitedSet :: (Set Identifier)-                         _tlOwith_sig :: Bool-                         _tlOwrappers :: (Set NontermIdent)-                         _hdIcomments :: ([String])-                         _hdIdecls :: Decls-                         _hdIgatherInstVisitNrs :: (Map Identifier Int)-                         _hdIintra :: Exprs-                         _hdIintraVars :: (Set String)-                         _hdIsemNames :: ([String])-                         _hdIvisitedSet :: (Set Identifier)-                         _tlIcomments :: ([String])-                         _tlIdecls :: Decls-                         _tlIgatherInstVisitNrs :: (Map Identifier Int)-                         _tlIintra :: Exprs-                         _tlIintraVars :: (Set String)-                         _tlIisNil :: Bool-                         _tlIsemNames :: ([String])-                         _tlIvisitedSet :: (Set Identifier)-                         -- "src-ag/GenerateCode.ag"(line 282, column 11)-                         _tlOnr =-                             ({-# LINE 282 "src-ag/GenerateCode.ag" #-}-                              _lhsInr + 1-                              {-# LINE 5953 "dist/build/GenerateCode" #-}-                              )-                         -- "src-ag/GenerateCode.ag"(line 295, column 12)-                         _lhsOisNil =-                             ({-# LINE 295 "src-ag/GenerateCode.ag" #-}-                              False-                              {-# LINE 5959 "dist/build/GenerateCode" #-}-                              )-                         -- "src-ag/GenerateCode.ag"(line 296, column 12)-                         _hdOisLast =-                             ({-# LINE 296 "src-ag/GenerateCode.ag" #-}-                              _tlIisNil-                              {-# LINE 5965 "dist/build/GenerateCode" #-}-                              )-                         -- "src-ag/GenerateCode.ag"(line 313, column 12)-                         _hdOnextIntra =-                             ({-# LINE 313 "src-ag/GenerateCode.ag" #-}-                              _tlIintra-                              {-# LINE 5971 "dist/build/GenerateCode" #-}-                              )-                         -- "src-ag/GenerateCode.ag"(line 314, column 12)-                         _hdOnextIntraVars =-                             ({-# LINE 314 "src-ag/GenerateCode.ag" #-}-                              _tlIintraVars-                              {-# LINE 5977 "dist/build/GenerateCode" #-}-                              )-                         -- "src-ag/GenerateCode.ag"(line 315, column 12)-                         _lhsOintra =-                             ({-# LINE 315 "src-ag/GenerateCode.ag" #-}-                              _hdIintra-                              {-# LINE 5983 "dist/build/GenerateCode" #-}-                              )-                         -- "src-ag/GenerateCode.ag"(line 316, column 12)-                         _lhsOintraVars =-                             ({-# LINE 316 "src-ag/GenerateCode.ag" #-}-                              _hdIintraVars-                              {-# LINE 5989 "dist/build/GenerateCode" #-}-                              )-                         -- "src-ag/GenerateCode.ag"(line 431, column 11)-                         _lhsOdecls =-                             ({-# LINE 431 "src-ag/GenerateCode.ag" #-}-                              _hdIdecls-                              {-# LINE 5995 "dist/build/GenerateCode" #-}-                              )-                         -- "src-ag/GenerateCode.ag"(line 432, column 11)-                         _hdOdecls =-                             ({-# LINE 432 "src-ag/GenerateCode.ag" #-}-                              _tlIdecls-                              {-# LINE 6001 "dist/build/GenerateCode" #-}-                              )-                         -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)-                         _lhsOcomments =-                             ({-# LINE 868 "src-ag/GenerateCode.ag" #-}-                              _hdIcomments ++ _tlIcomments-                              {-# LINE 6007 "dist/build/GenerateCode" #-}-                              )-                         -- use rule "src-ag/GenerateCode.ag"(line 561, column 44)-                         _lhsOgatherInstVisitNrs =-                             ({-# LINE 561 "src-ag/GenerateCode.ag" #-}-                              _hdIgatherInstVisitNrs `Map.union` _tlIgatherInstVisitNrs-                              {-# LINE 6013 "dist/build/GenerateCode" #-}-                              )-                         -- use rule "src-ag/GenerateCode.ag"(line 1146, column 61)-                         _lhsOsemNames =-                             ({-# LINE 1146 "src-ag/GenerateCode.ag" #-}-                              _hdIsemNames ++ _tlIsemNames-                              {-# LINE 6019 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (up)-                         _lhsOvisitedSet =-                             ({-# LINE 145 "src-ag/GenerateCode.ag" #-}-                              _tlIvisitedSet-                              {-# LINE 6025 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOallNts =-                             ({-# LINE 132 "src-ag/GenerateCode.ag" #-}-                              _lhsIallNts-                              {-# LINE 6031 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOallPragmas =-                             ({-# LINE 73 "src-ag/GenerateCode.ag" #-}-                              _lhsIallPragmas-                              {-# LINE 6037 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOaroundMap =-                             ({-# LINE 580 "src-ag/GenerateCode.ag" #-}-                              _lhsIaroundMap-                              {-# LINE 6043 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOchildren =-                             ({-# LINE 410 "src-ag/GenerateCode.ag" #-}-                              _lhsIchildren-                              {-# LINE 6049 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOcon =-                             ({-# LINE 89 "src-ag/GenerateCode.ag" #-}-                              _lhsIcon-                              {-# LINE 6055 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOcontextMap =-                             ({-# LINE 115 "src-ag/GenerateCode.ag" #-}-                              _lhsIcontextMap-                              {-# LINE 6061 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOinh =-                             ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                              _lhsIinh-                              {-# LINE 6067 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOinstVisitNrs =-                             ({-# LINE 560 "src-ag/GenerateCode.ag" #-}-                              _lhsIinstVisitNrs-                              {-# LINE 6073 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOmergeMap =-                             ({-# LINE 596 "src-ag/GenerateCode.ag" #-}-                              _lhsImergeMap-                              {-# LINE 6079 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOnr =-                             ({-# LINE 278 "src-ag/GenerateCode.ag" #-}-                              _lhsInr-                              {-# LINE 6085 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOnt =-                             ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                              _lhsInt-                              {-# LINE 6091 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOo_case =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_case-                              {-# LINE 6097 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOo_cata =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_cata-                              {-# LINE 6103 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOo_costcentre =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_costcentre-                              {-# LINE 6109 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOo_data =-                             ({-# LINE 48 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_data-                              {-# LINE 6115 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOo_linePragmas =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_linePragmas-                              {-# LINE 6121 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOo_monadic =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_monadic-                              {-# LINE 6127 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOo_newtypes =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_newtypes-                              {-# LINE 6133 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOo_pretty =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_pretty-                              {-# LINE 6139 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOo_rename =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_rename-                              {-# LINE 6145 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOo_sem =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_sem-                              {-# LINE 6151 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOo_sig =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_sig-                              {-# LINE 6157 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOo_splitsems =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_splitsems-                              {-# LINE 6163 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOo_strictwrap =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_strictwrap-                              {-# LINE 6169 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOo_traces =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_traces-                              {-# LINE 6175 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOo_unbox =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_unbox-                              {-# LINE 6181 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOoptions =-                             ({-# LINE 50 "src-ag/GenerateCode.ag" #-}-                              _lhsIoptions-                              {-# LINE 6187 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOparamInstMap =-                             ({-# LINE 101 "src-ag/GenerateCode.ag" #-}-                              _lhsIparamInstMap-                              {-# LINE 6193 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOparamMap =-                             ({-# LINE 95 "src-ag/GenerateCode.ag" #-}-                              _lhsIparamMap-                              {-# LINE 6199 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOprefix =-                             ({-# LINE 49 "src-ag/GenerateCode.ag" #-}-                              _lhsIprefix-                              {-# LINE 6205 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOquantMap =-                             ({-# LINE 115 "src-ag/GenerateCode.ag" #-}-                              _lhsIquantMap-                              {-# LINE 6211 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOsyn =-                             ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                              _lhsIsyn-                              {-# LINE 6217 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOterminals =-                             ({-# LINE 90 "src-ag/GenerateCode.ag" #-}-                              _lhsIterminals-                              {-# LINE 6223 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOunfoldSemDom =-                             ({-# LINE 750 "src-ag/GenerateCode.ag" #-}-                              _lhsIunfoldSemDom-                              {-# LINE 6229 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOvisitedSet =-                             ({-# LINE 145 "src-ag/GenerateCode.ag" #-}-                              _lhsIvisitedSet-                              {-# LINE 6235 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOwith_sig =-                             ({-# LINE 851 "src-ag/GenerateCode.ag" #-}-                              _lhsIwith_sig-                              {-# LINE 6241 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _hdOwrappers =-                             ({-# LINE 987 "src-ag/GenerateCode.ag" #-}-                              _lhsIwrappers-                              {-# LINE 6247 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOallNts =-                             ({-# LINE 132 "src-ag/GenerateCode.ag" #-}-                              _lhsIallNts-                              {-# LINE 6253 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOallPragmas =-                             ({-# LINE 73 "src-ag/GenerateCode.ag" #-}-                              _lhsIallPragmas-                              {-# LINE 6259 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOaroundMap =-                             ({-# LINE 580 "src-ag/GenerateCode.ag" #-}-                              _lhsIaroundMap-                              {-# LINE 6265 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOchildren =-                             ({-# LINE 410 "src-ag/GenerateCode.ag" #-}-                              _lhsIchildren-                              {-# LINE 6271 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOcon =-                             ({-# LINE 89 "src-ag/GenerateCode.ag" #-}-                              _lhsIcon-                              {-# LINE 6277 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOcontextMap =-                             ({-# LINE 115 "src-ag/GenerateCode.ag" #-}-                              _lhsIcontextMap-                              {-# LINE 6283 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOinh =-                             ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                              _lhsIinh-                              {-# LINE 6289 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOinstVisitNrs =-                             ({-# LINE 560 "src-ag/GenerateCode.ag" #-}-                              _lhsIinstVisitNrs-                              {-# LINE 6295 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOmergeMap =-                             ({-# LINE 596 "src-ag/GenerateCode.ag" #-}-                              _lhsImergeMap-                              {-# LINE 6301 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOnt =-                             ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                              _lhsInt-                              {-# LINE 6307 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOo_case =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_case-                              {-# LINE 6313 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOo_cata =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_cata-                              {-# LINE 6319 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOo_costcentre =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_costcentre-                              {-# LINE 6325 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOo_data =-                             ({-# LINE 48 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_data-                              {-# LINE 6331 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOo_linePragmas =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_linePragmas-                              {-# LINE 6337 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOo_monadic =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_monadic-                              {-# LINE 6343 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOo_newtypes =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_newtypes-                              {-# LINE 6349 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOo_pretty =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_pretty-                              {-# LINE 6355 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOo_rename =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_rename-                              {-# LINE 6361 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOo_sem =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_sem-                              {-# LINE 6367 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOo_sig =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_sig-                              {-# LINE 6373 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOo_splitsems =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_splitsems-                              {-# LINE 6379 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOo_strictwrap =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_strictwrap-                              {-# LINE 6385 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOo_traces =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_traces-                              {-# LINE 6391 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOo_unbox =-                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                              _lhsIo_unbox-                              {-# LINE 6397 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOoptions =-                             ({-# LINE 50 "src-ag/GenerateCode.ag" #-}-                              _lhsIoptions-                              {-# LINE 6403 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOparamInstMap =-                             ({-# LINE 101 "src-ag/GenerateCode.ag" #-}-                              _lhsIparamInstMap-                              {-# LINE 6409 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOparamMap =-                             ({-# LINE 95 "src-ag/GenerateCode.ag" #-}-                              _lhsIparamMap-                              {-# LINE 6415 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOprefix =-                             ({-# LINE 49 "src-ag/GenerateCode.ag" #-}-                              _lhsIprefix-                              {-# LINE 6421 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOquantMap =-                             ({-# LINE 115 "src-ag/GenerateCode.ag" #-}-                              _lhsIquantMap-                              {-# LINE 6427 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOsyn =-                             ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                              _lhsIsyn-                              {-# LINE 6433 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOterminals =-                             ({-# LINE 90 "src-ag/GenerateCode.ag" #-}-                              _lhsIterminals-                              {-# LINE 6439 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOunfoldSemDom =-                             ({-# LINE 750 "src-ag/GenerateCode.ag" #-}-                              _lhsIunfoldSemDom-                              {-# LINE 6445 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (chain)-                         _tlOvisitedSet =-                             ({-# LINE 145 "src-ag/GenerateCode.ag" #-}-                              _hdIvisitedSet-                              {-# LINE 6451 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOwith_sig =-                             ({-# LINE 851 "src-ag/GenerateCode.ag" #-}-                              _lhsIwith_sig-                              {-# LINE 6457 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (down)-                         _tlOwrappers =-                             ({-# LINE 987 "src-ag/GenerateCode.ag" #-}-                              _lhsIwrappers-                              {-# LINE 6463 "dist/build/GenerateCode" #-}-                              )-                         ( _hdIcomments,_hdIdecls,_hdIgatherInstVisitNrs,_hdIintra,_hdIintraVars,_hdIsemNames,_hdIvisitedSet) =-                             hd_ _hdOallNts _hdOallPragmas _hdOaroundMap _hdOchildren _hdOcon _hdOcontextMap _hdOdecls _hdOinh _hdOinstVisitNrs _hdOisLast _hdOmergeMap _hdOnextIntra _hdOnextIntraVars _hdOnr _hdOnt _hdOo_case _hdOo_cata _hdOo_costcentre _hdOo_data _hdOo_linePragmas _hdOo_monadic _hdOo_newtypes _hdOo_pretty _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_splitsems _hdOo_strictwrap _hdOo_traces _hdOo_unbox _hdOoptions _hdOparamInstMap _hdOparamMap _hdOprefix _hdOquantMap _hdOsyn _hdOterminals _hdOunfoldSemDom _hdOvisitedSet _hdOwith_sig _hdOwrappers-                         ( _tlIcomments,_tlIdecls,_tlIgatherInstVisitNrs,_tlIintra,_tlIintraVars,_tlIisNil,_tlIsemNames,_tlIvisitedSet) =-                             tl_ _tlOallNts _tlOallPragmas _tlOaroundMap _tlOchildren _tlOcon _tlOcontextMap _tlOinh _tlOinstVisitNrs _tlOmergeMap _tlOnr _tlOnt _tlOo_case _tlOo_cata _tlOo_costcentre _tlOo_data _tlOo_linePragmas _tlOo_monadic _tlOo_newtypes _tlOo_pretty _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_splitsems _tlOo_strictwrap _tlOo_traces _tlOo_unbox _tlOoptions _tlOparamInstMap _tlOparamMap _tlOprefix _tlOquantMap _tlOsyn _tlOterminals _tlOunfoldSemDom _tlOvisitedSet _tlOwith_sig _tlOwrappers-                     in  ( _lhsOcomments,_lhsOdecls,_lhsOgatherInstVisitNrs,_lhsOintra,_lhsOintraVars,_lhsOisNil,_lhsOsemNames,_lhsOvisitedSet))))-sem_CVisits_Nil :: T_CVisits-sem_CVisits_Nil =-    (T_CVisits (\ _lhsIallNts-                  _lhsIallPragmas-                  _lhsIaroundMap-                  _lhsIchildren-                  _lhsIcon-                  _lhsIcontextMap-                  _lhsIinh-                  _lhsIinstVisitNrs-                  _lhsImergeMap-                  _lhsInr-                  _lhsInt-                  _lhsIo_case-                  _lhsIo_cata-                  _lhsIo_costcentre-                  _lhsIo_data-                  _lhsIo_linePragmas-                  _lhsIo_monadic-                  _lhsIo_newtypes-                  _lhsIo_pretty-                  _lhsIo_rename-                  _lhsIo_sem-                  _lhsIo_sig-                  _lhsIo_splitsems-                  _lhsIo_strictwrap-                  _lhsIo_traces-                  _lhsIo_unbox-                  _lhsIoptions-                  _lhsIparamInstMap-                  _lhsIparamMap-                  _lhsIprefix-                  _lhsIquantMap-                  _lhsIsyn-                  _lhsIterminals-                  _lhsIunfoldSemDom-                  _lhsIvisitedSet-                  _lhsIwith_sig-                  _lhsIwrappers ->-                    (let _lhsOisNil :: Bool-                         _lhsOintra :: Exprs-                         _lhsOintraVars :: (Set String)-                         _lhsOdecls :: Decls-                         _lhsOcomments :: ([String])-                         _lhsOgatherInstVisitNrs :: (Map Identifier Int)-                         _lhsOsemNames :: ([String])-                         _lhsOvisitedSet :: (Set Identifier)-                         -- "src-ag/GenerateCode.ag"(line 297, column 10)-                         _lhsOisNil =-                             ({-# LINE 297 "src-ag/GenerateCode.ag" #-}-                              True-                              {-# LINE 6521 "dist/build/GenerateCode" #-}-                              )-                         -- "src-ag/GenerateCode.ag"(line 317, column 10)-                         _lhsOintra =-                             ({-# LINE 317 "src-ag/GenerateCode.ag" #-}-                              []-                              {-# LINE 6527 "dist/build/GenerateCode" #-}-                              )-                         -- "src-ag/GenerateCode.ag"(line 318, column 10)-                         _lhsOintraVars =-                             ({-# LINE 318 "src-ag/GenerateCode.ag" #-}-                              Set.empty-                              {-# LINE 6533 "dist/build/GenerateCode" #-}-                              )-                         -- "src-ag/GenerateCode.ag"(line 430, column 11)-                         _lhsOdecls =-                             ({-# LINE 430 "src-ag/GenerateCode.ag" #-}-                              []-                              {-# LINE 6539 "dist/build/GenerateCode" #-}-                              )-                         -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)-                         _lhsOcomments =-                             ({-# LINE 868 "src-ag/GenerateCode.ag" #-}-                              []-                              {-# LINE 6545 "dist/build/GenerateCode" #-}-                              )-                         -- use rule "src-ag/GenerateCode.ag"(line 561, column 44)-                         _lhsOgatherInstVisitNrs =-                             ({-# LINE 561 "src-ag/GenerateCode.ag" #-}-                              Map.empty-                              {-# LINE 6551 "dist/build/GenerateCode" #-}-                              )-                         -- use rule "src-ag/GenerateCode.ag"(line 1146, column 61)-                         _lhsOsemNames =-                             ({-# LINE 1146 "src-ag/GenerateCode.ag" #-}-                              []-                              {-# LINE 6557 "dist/build/GenerateCode" #-}-                              )-                         -- copy rule (chain)-                         _lhsOvisitedSet =-                             ({-# LINE 145 "src-ag/GenerateCode.ag" #-}-                              _lhsIvisitedSet-                              {-# LINE 6563 "dist/build/GenerateCode" #-}-                              )-                     in  ( _lhsOcomments,_lhsOdecls,_lhsOgatherInstVisitNrs,_lhsOintra,_lhsOintraVars,_lhsOisNil,_lhsOsemNames,_lhsOvisitedSet))))--- DeclBlocks ---------------------------------------------------{--   visit 0:-      inherited attributes:-         blockNr              : Int-         lastExprVars         : [String]-         nextVisitDecls       : [Decl]-         optCase              : Bool-         prefix               : String-      synthesized attributes:-         callExpr             : Expr-         decls                : [Decl]-         freeVars             : [String]-   alternatives:-      alternative DeclBlock:-         child defs           : {[Decl]}-         child visit          : {Decl}-         child next           : DeclBlocks -         visit 0:-            local lambdaName  : _-            local pragmaDecl  : _-            local freeVars    : _-            local decl        : _-      alternative DeclTerminator:-         child defs           : {[Decl]}-         child result         : {Expr}-         visit 0:-            local lambdaName  : _-            local pragmaDecl  : _-            local freeVars    : _--}--- cata-sem_DeclBlocks :: DeclBlocks ->-                  T_DeclBlocks-sem_DeclBlocks (DeclBlock _defs _visit _next) =-    (sem_DeclBlocks_DeclBlock _defs _visit (sem_DeclBlocks _next))-sem_DeclBlocks (DeclTerminator _defs _result) =-    (sem_DeclBlocks_DeclTerminator _defs _result)--- semantic domain-newtype T_DeclBlocks = T_DeclBlocks (Int ->-                                     ([String]) ->-                                     ([Decl]) ->-                                     Bool ->-                                     String ->-                                     ( Expr,([Decl]),([String])))-data Inh_DeclBlocks = Inh_DeclBlocks {blockNr_Inh_DeclBlocks :: !(Int),lastExprVars_Inh_DeclBlocks :: !(([String])),nextVisitDecls_Inh_DeclBlocks :: !(([Decl])),optCase_Inh_DeclBlocks :: !(Bool),prefix_Inh_DeclBlocks :: !(String)}-data Syn_DeclBlocks = Syn_DeclBlocks {callExpr_Syn_DeclBlocks :: !(Expr),decls_Syn_DeclBlocks :: !(([Decl])),freeVars_Syn_DeclBlocks :: !(([String]))}-wrap_DeclBlocks :: T_DeclBlocks ->-                   Inh_DeclBlocks ->-                   Syn_DeclBlocks-wrap_DeclBlocks (T_DeclBlocks sem) (Inh_DeclBlocks _lhsIblockNr _lhsIlastExprVars _lhsInextVisitDecls _lhsIoptCase _lhsIprefix) =-    (let ( _lhsOcallExpr,_lhsOdecls,_lhsOfreeVars) = sem _lhsIblockNr _lhsIlastExprVars _lhsInextVisitDecls _lhsIoptCase _lhsIprefix-     in  (Syn_DeclBlocks _lhsOcallExpr _lhsOdecls _lhsOfreeVars))-sem_DeclBlocks_DeclBlock :: ([Decl]) ->-                            Decl ->-                            T_DeclBlocks ->-                            T_DeclBlocks-sem_DeclBlocks_DeclBlock defs_ visit_ (T_DeclBlocks next_) =-    (T_DeclBlocks (\ _lhsIblockNr-                     _lhsIlastExprVars-                     _lhsInextVisitDecls-                     _lhsIoptCase-                     _lhsIprefix ->-                       (let _nextOblockNr :: Int-                            _lhsOcallExpr :: Expr-                            _lhsOdecls :: ([Decl])-                            _lhsOfreeVars :: ([String])-                            _nextOlastExprVars :: ([String])-                            _nextOnextVisitDecls :: ([Decl])-                            _nextOoptCase :: Bool-                            _nextOprefix :: String-                            _nextIcallExpr :: Expr-                            _nextIdecls :: ([Decl])-                            _nextIfreeVars :: ([String])-                            -- "src-ag/GenerateCode.ag"(line 662, column 7)-                            _nextOblockNr =-                                ({-# LINE 662 "src-ag/GenerateCode.ag" #-}-                                 _lhsIblockNr + 1-                                 {-# LINE 6644 "dist/build/GenerateCode" #-}-                                 )-                            -- "src-ag/GenerateCode.ag"(line 667, column 7)-                            _lambdaName =-                                ({-# LINE 667 "src-ag/GenerateCode.ag" #-}-                                 _lhsIprefix ++ "_block" ++ show _lhsIblockNr-                                 {-# LINE 6650 "dist/build/GenerateCode" #-}-                                 )-                            -- "src-ag/GenerateCode.ag"(line 668, column 7)-                            _pragmaDecl =-                                ({-# LINE 668 "src-ag/GenerateCode.ag" #-}-                                 PragmaDecl ("NOINLINE " ++ _lambdaName    )-                                 {-# LINE 6656 "dist/build/GenerateCode" #-}-                                 )-                            -- "src-ag/GenerateCode.ag"(line 669, column 7)-                            _lhsOcallExpr =-                                ({-# LINE 669 "src-ag/GenerateCode.ag" #-}-                                 App _lambdaName     (map SimpleExpr _freeVars    )-                                 {-# LINE 6662 "dist/build/GenerateCode" #-}-                                 )-                            -- "src-ag/GenerateCode.ag"(line 673, column 7)-                            _freeVars =-                                ({-# LINE 673 "src-ag/GenerateCode.ag" #-}-                                 freevars _nextIfreeVars (visit_ : defs_)-                                 {-# LINE 6668 "dist/build/GenerateCode" #-}-                                 )-                            -- "src-ag/GenerateCode.ag"(line 680, column 7)-                            _decl =-                                ({-# LINE 680 "src-ag/GenerateCode.ag" #-}-                                 mkBlockLambda _lhsIoptCase _lambdaName     _freeVars     (defs_ ++ [visit_]) _nextIcallExpr-                                 {-# LINE 6674 "dist/build/GenerateCode" #-}-                                 )-                            -- "src-ag/GenerateCode.ag"(line 681, column 7)-                            _lhsOdecls =-                                ({-# LINE 681 "src-ag/GenerateCode.ag" #-}-                                 (if _lhsIblockNr > 1 then [_pragmaDecl    ] else []) ++ [_decl    ] ++ _nextIdecls-                                 {-# LINE 6680 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (from local)-                            _lhsOfreeVars =-                                ({-# LINE 664 "src-ag/GenerateCode.ag" #-}-                                 _freeVars-                                 {-# LINE 6686 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _nextOlastExprVars =-                                ({-# LINE 648 "src-ag/GenerateCode.ag" #-}-                                 _lhsIlastExprVars-                                 {-# LINE 6692 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _nextOnextVisitDecls =-                                ({-# LINE 648 "src-ag/GenerateCode.ag" #-}-                                 _lhsInextVisitDecls-                                 {-# LINE 6698 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _nextOoptCase =-                                ({-# LINE 648 "src-ag/GenerateCode.ag" #-}-                                 _lhsIoptCase-                                 {-# LINE 6704 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (down)-                            _nextOprefix =-                                ({-# LINE 648 "src-ag/GenerateCode.ag" #-}-                                 _lhsIprefix-                                 {-# LINE 6710 "dist/build/GenerateCode" #-}-                                 )-                            ( _nextIcallExpr,_nextIdecls,_nextIfreeVars) =-                                next_ _nextOblockNr _nextOlastExprVars _nextOnextVisitDecls _nextOoptCase _nextOprefix-                        in  ( _lhsOcallExpr,_lhsOdecls,_lhsOfreeVars))))-sem_DeclBlocks_DeclTerminator :: ([Decl]) ->-                                 Expr ->-                                 T_DeclBlocks-sem_DeclBlocks_DeclTerminator defs_ result_ =-    (T_DeclBlocks (\ _lhsIblockNr-                     _lhsIlastExprVars-                     _lhsInextVisitDecls-                     _lhsIoptCase-                     _lhsIprefix ->-                       (let _lhsOcallExpr :: Expr-                            _lhsOdecls :: ([Decl])-                            _lhsOfreeVars :: ([String])-                            -- "src-ag/GenerateCode.ag"(line 667, column 7)-                            _lambdaName =-                                ({-# LINE 667 "src-ag/GenerateCode.ag" #-}-                                 _lhsIprefix ++ "_block" ++ show _lhsIblockNr-                                 {-# LINE 6731 "dist/build/GenerateCode" #-}-                                 )-                            -- "src-ag/GenerateCode.ag"(line 668, column 7)-                            _pragmaDecl =-                                ({-# LINE 668 "src-ag/GenerateCode.ag" #-}-                                 PragmaDecl ("NOINLINE " ++ _lambdaName    )-                                 {-# LINE 6737 "dist/build/GenerateCode" #-}-                                 )-                            -- "src-ag/GenerateCode.ag"(line 669, column 7)-                            _lhsOcallExpr =-                                ({-# LINE 669 "src-ag/GenerateCode.ag" #-}-                                 App _lambdaName     (map SimpleExpr _freeVars    )-                                 {-# LINE 6743 "dist/build/GenerateCode" #-}-                                 )-                            -- "src-ag/GenerateCode.ag"(line 671, column 7)-                            _freeVars =-                                ({-# LINE 671 "src-ag/GenerateCode.ag" #-}-                                 freevars _lhsIlastExprVars (defs_ ++ _lhsInextVisitDecls)-                                 {-# LINE 6749 "dist/build/GenerateCode" #-}-                                 )-                            -- "src-ag/GenerateCode.ag"(line 678, column 7)-                            _lhsOdecls =-                                ({-# LINE 678 "src-ag/GenerateCode.ag" #-}-                                 [ mkBlockLambda _lhsIoptCase _lambdaName     _freeVars     (defs_ ++ _lhsInextVisitDecls) result_ ]-                                 {-# LINE 6755 "dist/build/GenerateCode" #-}-                                 )-                            -- copy rule (from local)-                            _lhsOfreeVars =-                                ({-# LINE 664 "src-ag/GenerateCode.ag" #-}-                                 _freeVars-                                 {-# LINE 6761 "dist/build/GenerateCode" #-}-                                 )-                        in  ( _lhsOcallExpr,_lhsOdecls,_lhsOfreeVars))))--- DeclBlocksRoot -----------------------------------------------{--   visit 0:-      inherited attributes:-         lastExprVars         : [String]-         nextVisitDecls       : [Decl]-         optCase              : Bool-         prefix               : String-      synthesized attributes:-         firstCall            : Expr-         lambdas              : [Decl]-   alternatives:-      alternative DeclBlocksRoot:-         child blocks         : DeclBlocks --}--- cata-sem_DeclBlocksRoot :: DeclBlocksRoot ->-                      T_DeclBlocksRoot-sem_DeclBlocksRoot (DeclBlocksRoot _blocks) =-    (sem_DeclBlocksRoot_DeclBlocksRoot (sem_DeclBlocks _blocks))--- semantic domain-newtype T_DeclBlocksRoot = T_DeclBlocksRoot (([String]) ->-                                             ([Decl]) ->-                                             Bool ->-                                             String ->-                                             ( Expr,([Decl])))-data Inh_DeclBlocksRoot = Inh_DeclBlocksRoot {lastExprVars_Inh_DeclBlocksRoot :: !(([String])),nextVisitDecls_Inh_DeclBlocksRoot :: !(([Decl])),optCase_Inh_DeclBlocksRoot :: !(Bool),prefix_Inh_DeclBlocksRoot :: !(String)}-data Syn_DeclBlocksRoot = Syn_DeclBlocksRoot {firstCall_Syn_DeclBlocksRoot :: !(Expr),lambdas_Syn_DeclBlocksRoot :: !(([Decl]))}-wrap_DeclBlocksRoot :: T_DeclBlocksRoot ->-                       Inh_DeclBlocksRoot ->-                       Syn_DeclBlocksRoot-wrap_DeclBlocksRoot (T_DeclBlocksRoot sem) (Inh_DeclBlocksRoot _lhsIlastExprVars _lhsInextVisitDecls _lhsIoptCase _lhsIprefix) =-    (let ( _lhsOfirstCall,_lhsOlambdas) = sem _lhsIlastExprVars _lhsInextVisitDecls _lhsIoptCase _lhsIprefix-     in  (Syn_DeclBlocksRoot _lhsOfirstCall _lhsOlambdas))-sem_DeclBlocksRoot_DeclBlocksRoot :: T_DeclBlocks ->-                                     T_DeclBlocksRoot-sem_DeclBlocksRoot_DeclBlocksRoot (T_DeclBlocks blocks_) =-    (T_DeclBlocksRoot (\ _lhsIlastExprVars-                         _lhsInextVisitDecls-                         _lhsIoptCase-                         _lhsIprefix ->-                           (let _lhsOlambdas :: ([Decl])-                                _lhsOfirstCall :: Expr-                                _blocksOblockNr :: Int-                                _blocksOlastExprVars :: ([String])-                                _blocksOnextVisitDecls :: ([Decl])-                                _blocksOoptCase :: Bool-                                _blocksOprefix :: String-                                _blocksIcallExpr :: Expr-                                _blocksIdecls :: ([Decl])-                                _blocksIfreeVars :: ([String])-                                -- "src-ag/GenerateCode.ag"(line 653, column 7)-                                _lhsOlambdas =-                                    ({-# LINE 653 "src-ag/GenerateCode.ag" #-}-                                     _blocksIdecls-                                     {-# LINE 6819 "dist/build/GenerateCode" #-}-                                     )-                                -- "src-ag/GenerateCode.ag"(line 654, column 7)-                                _lhsOfirstCall =-                                    ({-# LINE 654 "src-ag/GenerateCode.ag" #-}-                                     _blocksIcallExpr-                                     {-# LINE 6825 "dist/build/GenerateCode" #-}-                                     )-                                -- "src-ag/GenerateCode.ag"(line 659, column 7)-                                _blocksOblockNr =-                                    ({-# LINE 659 "src-ag/GenerateCode.ag" #-}-                                     1-                                     {-# LINE 6831 "dist/build/GenerateCode" #-}-                                     )-                                -- copy rule (down)-                                _blocksOlastExprVars =-                                    ({-# LINE 648 "src-ag/GenerateCode.ag" #-}-                                     _lhsIlastExprVars-                                     {-# LINE 6837 "dist/build/GenerateCode" #-}-                                     )-                                -- copy rule (down)-                                _blocksOnextVisitDecls =-                                    ({-# LINE 648 "src-ag/GenerateCode.ag" #-}-                                     _lhsInextVisitDecls-                                     {-# LINE 6843 "dist/build/GenerateCode" #-}-                                     )-                                -- copy rule (down)-                                _blocksOoptCase =-                                    ({-# LINE 648 "src-ag/GenerateCode.ag" #-}-                                     _lhsIoptCase-                                     {-# LINE 6849 "dist/build/GenerateCode" #-}-                                     )-                                -- copy rule (down)-                                _blocksOprefix =-                                    ({-# LINE 648 "src-ag/GenerateCode.ag" #-}-                                     _lhsIprefix-                                     {-# LINE 6855 "dist/build/GenerateCode" #-}-                                     )-                                ( _blocksIcallExpr,_blocksIdecls,_blocksIfreeVars) =-                                    blocks_ _blocksOblockNr _blocksOlastExprVars _blocksOnextVisitDecls _blocksOoptCase _blocksOprefix-                            in  ( _lhsOfirstCall,_lhsOlambdas))))--- Pattern ------------------------------------------------------{--   visit 0:-      synthesized attributes:-         copy                 : Pattern -         definedInsts         : [Identifier]-         patternAttributes    : [(Identifier, Identifier)]-   alternatives:-      alternative Alias:-         child field          : {Identifier}-         child attr           : {Identifier}-         child pat            : Pattern -         visit 0:-            local copy        : _-      alternative Constr:-         child name           : {ConstructorIdent}-         child pats           : Patterns -         visit 0:-            local copy        : _-      alternative Irrefutable:-         child pat            : Pattern -         visit 0:-            local copy        : _-      alternative Product:-         child pos            : {Pos}-         child pats           : Patterns -         visit 0:-            local copy        : _-      alternative Underscore:-         child pos            : {Pos}-         visit 0:-            local copy        : _--}--- cata-sem_Pattern :: Pattern ->-               T_Pattern-sem_Pattern (Alias _field _attr _pat) =-    (sem_Pattern_Alias _field _attr (sem_Pattern _pat))-sem_Pattern (Constr _name _pats) =-    (sem_Pattern_Constr _name (sem_Patterns _pats))-sem_Pattern (Irrefutable _pat) =-    (sem_Pattern_Irrefutable (sem_Pattern _pat))-sem_Pattern (Product _pos _pats) =-    (sem_Pattern_Product _pos (sem_Patterns _pats))-sem_Pattern (Underscore _pos) =-    (sem_Pattern_Underscore _pos)--- semantic domain-newtype T_Pattern = T_Pattern (( Pattern,([Identifier]),([(Identifier, Identifier)])))-data Inh_Pattern = Inh_Pattern {}-data Syn_Pattern = Syn_Pattern {copy_Syn_Pattern :: !(Pattern),definedInsts_Syn_Pattern :: !(([Identifier])),patternAttributes_Syn_Pattern :: !(([(Identifier, Identifier)]))}-wrap_Pattern :: T_Pattern ->-                Inh_Pattern ->-                Syn_Pattern-wrap_Pattern (T_Pattern sem) (Inh_Pattern) =-    (let ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes) = sem-     in  (Syn_Pattern _lhsOcopy _lhsOdefinedInsts _lhsOpatternAttributes))-sem_Pattern_Alias :: Identifier ->-                     Identifier ->-                     T_Pattern ->-                     T_Pattern-sem_Pattern_Alias field_ attr_ (T_Pattern pat_) =-    (T_Pattern (let _lhsOdefinedInsts :: ([Identifier])-                    _lhsOpatternAttributes :: ([(Identifier, Identifier)])-                    _lhsOcopy :: Pattern-                    _patIcopy :: Pattern-                    _patIdefinedInsts :: ([Identifier])-                    _patIpatternAttributes :: ([(Identifier, Identifier)])-                    -- "src-ag/GenerateCode.ag"(line 263, column 11)-                    _lhsOdefinedInsts =-                        ({-# LINE 263 "src-ag/GenerateCode.ag" #-}-                         (if field_ == _INST then [attr_] else []) ++ _patIdefinedInsts-                         {-# LINE 6931 "dist/build/GenerateCode" #-}-                         )-                    -- "src-ag/GenerateCode.ag"(line 271, column 7)-                    _lhsOpatternAttributes =-                        ({-# LINE 271 "src-ag/GenerateCode.ag" #-}-                         (field_,attr_) : _patIpatternAttributes-                         {-# LINE 6937 "dist/build/GenerateCode" #-}-                         )-                    -- self rule-                    _copy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         Alias field_ attr_ _patIcopy-                         {-# LINE 6943 "dist/build/GenerateCode" #-}-                         )-                    -- self rule-                    _lhsOcopy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         _copy-                         {-# LINE 6949 "dist/build/GenerateCode" #-}-                         )-                    ( _patIcopy,_patIdefinedInsts,_patIpatternAttributes) =-                        pat_-                in  ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)))-sem_Pattern_Constr :: ConstructorIdent ->-                      T_Patterns ->-                      T_Pattern-sem_Pattern_Constr name_ (T_Patterns pats_) =-    (T_Pattern (let _lhsOdefinedInsts :: ([Identifier])-                    _lhsOpatternAttributes :: ([(Identifier, Identifier)])-                    _lhsOcopy :: Pattern-                    _patsIcopy :: Patterns-                    _patsIdefinedInsts :: ([Identifier])-                    _patsIpatternAttributes :: ([(Identifier, Identifier)])-                    -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)-                    _lhsOdefinedInsts =-                        ({-# LINE 261 "src-ag/GenerateCode.ag" #-}-                         _patsIdefinedInsts-                         {-# LINE 6968 "dist/build/GenerateCode" #-}-                         )-                    -- use rule "src-ag/GenerateCode.ag"(line 268, column 47)-                    _lhsOpatternAttributes =-                        ({-# LINE 268 "src-ag/GenerateCode.ag" #-}-                         _patsIpatternAttributes-                         {-# LINE 6974 "dist/build/GenerateCode" #-}-                         )-                    -- self rule-                    _copy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         Constr name_ _patsIcopy-                         {-# LINE 6980 "dist/build/GenerateCode" #-}-                         )-                    -- self rule-                    _lhsOcopy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         _copy-                         {-# LINE 6986 "dist/build/GenerateCode" #-}-                         )-                    ( _patsIcopy,_patsIdefinedInsts,_patsIpatternAttributes) =-                        pats_-                in  ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)))-sem_Pattern_Irrefutable :: T_Pattern ->-                           T_Pattern-sem_Pattern_Irrefutable (T_Pattern pat_) =-    (T_Pattern (let _lhsOdefinedInsts :: ([Identifier])-                    _lhsOpatternAttributes :: ([(Identifier, Identifier)])-                    _lhsOcopy :: Pattern-                    _patIcopy :: Pattern-                    _patIdefinedInsts :: ([Identifier])-                    _patIpatternAttributes :: ([(Identifier, Identifier)])-                    -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)-                    _lhsOdefinedInsts =-                        ({-# LINE 261 "src-ag/GenerateCode.ag" #-}-                         _patIdefinedInsts-                         {-# LINE 7004 "dist/build/GenerateCode" #-}-                         )-                    -- use rule "src-ag/GenerateCode.ag"(line 268, column 47)-                    _lhsOpatternAttributes =-                        ({-# LINE 268 "src-ag/GenerateCode.ag" #-}-                         _patIpatternAttributes-                         {-# LINE 7010 "dist/build/GenerateCode" #-}-                         )-                    -- self rule-                    _copy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         Irrefutable _patIcopy-                         {-# LINE 7016 "dist/build/GenerateCode" #-}-                         )-                    -- self rule-                    _lhsOcopy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         _copy-                         {-# LINE 7022 "dist/build/GenerateCode" #-}-                         )-                    ( _patIcopy,_patIdefinedInsts,_patIpatternAttributes) =-                        pat_-                in  ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)))-sem_Pattern_Product :: Pos ->-                       T_Patterns ->-                       T_Pattern-sem_Pattern_Product pos_ (T_Patterns pats_) =-    (T_Pattern (let _lhsOdefinedInsts :: ([Identifier])-                    _lhsOpatternAttributes :: ([(Identifier, Identifier)])-                    _lhsOcopy :: Pattern-                    _patsIcopy :: Patterns-                    _patsIdefinedInsts :: ([Identifier])-                    _patsIpatternAttributes :: ([(Identifier, Identifier)])-                    -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)-                    _lhsOdefinedInsts =-                        ({-# LINE 261 "src-ag/GenerateCode.ag" #-}-                         _patsIdefinedInsts-                         {-# LINE 7041 "dist/build/GenerateCode" #-}-                         )-                    -- use rule "src-ag/GenerateCode.ag"(line 268, column 47)-                    _lhsOpatternAttributes =-                        ({-# LINE 268 "src-ag/GenerateCode.ag" #-}-                         _patsIpatternAttributes-                         {-# LINE 7047 "dist/build/GenerateCode" #-}-                         )-                    -- self rule-                    _copy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         Product pos_ _patsIcopy-                         {-# LINE 7053 "dist/build/GenerateCode" #-}-                         )-                    -- self rule-                    _lhsOcopy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         _copy-                         {-# LINE 7059 "dist/build/GenerateCode" #-}-                         )-                    ( _patsIcopy,_patsIdefinedInsts,_patsIpatternAttributes) =-                        pats_-                in  ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)))-sem_Pattern_Underscore :: Pos ->-                          T_Pattern-sem_Pattern_Underscore pos_ =-    (T_Pattern (let _lhsOdefinedInsts :: ([Identifier])-                    _lhsOpatternAttributes :: ([(Identifier, Identifier)])-                    _lhsOcopy :: Pattern-                    -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)-                    _lhsOdefinedInsts =-                        ({-# LINE 261 "src-ag/GenerateCode.ag" #-}-                         []-                         {-# LINE 7074 "dist/build/GenerateCode" #-}-                         )-                    -- use rule "src-ag/GenerateCode.ag"(line 268, column 47)-                    _lhsOpatternAttributes =-                        ({-# LINE 268 "src-ag/GenerateCode.ag" #-}-                         []-                         {-# LINE 7080 "dist/build/GenerateCode" #-}-                         )-                    -- self rule-                    _copy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         Underscore pos_-                         {-# LINE 7086 "dist/build/GenerateCode" #-}-                         )-                    -- self rule-                    _lhsOcopy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         _copy-                         {-# LINE 7092 "dist/build/GenerateCode" #-}-                         )-                in  ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)))--- Patterns -----------------------------------------------------{--   visit 0:-      synthesized attributes:-         copy                 : Patterns -         definedInsts         : [Identifier]-         patternAttributes    : [(Identifier, Identifier)]-   alternatives:-      alternative Cons:-         child hd             : Pattern -         child tl             : Patterns -         visit 0:-            local copy        : _-      alternative Nil:-         visit 0:-            local copy        : _--}--- cata-sem_Patterns :: Patterns ->-                T_Patterns-sem_Patterns list =-    (Prelude.foldr sem_Patterns_Cons sem_Patterns_Nil (Prelude.map sem_Pattern list))--- semantic domain-newtype T_Patterns = T_Patterns (( Patterns,([Identifier]),([(Identifier, Identifier)])))-data Inh_Patterns = Inh_Patterns {}-data Syn_Patterns = Syn_Patterns {copy_Syn_Patterns :: !(Patterns),definedInsts_Syn_Patterns :: !(([Identifier])),patternAttributes_Syn_Patterns :: !(([(Identifier, Identifier)]))}-wrap_Patterns :: T_Patterns ->-                 Inh_Patterns ->-                 Syn_Patterns-wrap_Patterns (T_Patterns sem) (Inh_Patterns) =-    (let ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes) = sem-     in  (Syn_Patterns _lhsOcopy _lhsOdefinedInsts _lhsOpatternAttributes))-sem_Patterns_Cons :: T_Pattern ->-                     T_Patterns ->-                     T_Patterns-sem_Patterns_Cons (T_Pattern hd_) (T_Patterns tl_) =-    (T_Patterns (let _lhsOdefinedInsts :: ([Identifier])-                     _lhsOpatternAttributes :: ([(Identifier, Identifier)])-                     _lhsOcopy :: Patterns-                     _hdIcopy :: Pattern-                     _hdIdefinedInsts :: ([Identifier])-                     _hdIpatternAttributes :: ([(Identifier, Identifier)])-                     _tlIcopy :: Patterns-                     _tlIdefinedInsts :: ([Identifier])-                     _tlIpatternAttributes :: ([(Identifier, Identifier)])-                     -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)-                     _lhsOdefinedInsts =-                         ({-# LINE 261 "src-ag/GenerateCode.ag" #-}-                          _hdIdefinedInsts ++ _tlIdefinedInsts-                          {-# LINE 7144 "dist/build/GenerateCode" #-}-                          )-                     -- use rule "src-ag/GenerateCode.ag"(line 268, column 47)-                     _lhsOpatternAttributes =-                         ({-# LINE 268 "src-ag/GenerateCode.ag" #-}-                          _hdIpatternAttributes ++ _tlIpatternAttributes-                          {-# LINE 7150 "dist/build/GenerateCode" #-}-                          )-                     -- self rule-                     _copy =-                         ({-# LINE 22 "src-ag/Patterns.ag" #-}-                          (:) _hdIcopy _tlIcopy-                          {-# LINE 7156 "dist/build/GenerateCode" #-}-                          )-                     -- self rule-                     _lhsOcopy =-                         ({-# LINE 22 "src-ag/Patterns.ag" #-}-                          _copy-                          {-# LINE 7162 "dist/build/GenerateCode" #-}-                          )-                     ( _hdIcopy,_hdIdefinedInsts,_hdIpatternAttributes) =-                         hd_-                     ( _tlIcopy,_tlIdefinedInsts,_tlIpatternAttributes) =-                         tl_-                 in  ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)))-sem_Patterns_Nil :: T_Patterns-sem_Patterns_Nil =-    (T_Patterns (let _lhsOdefinedInsts :: ([Identifier])-                     _lhsOpatternAttributes :: ([(Identifier, Identifier)])-                     _lhsOcopy :: Patterns-                     -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)-                     _lhsOdefinedInsts =-                         ({-# LINE 261 "src-ag/GenerateCode.ag" #-}-                          []-                          {-# LINE 7178 "dist/build/GenerateCode" #-}-                          )-                     -- use rule "src-ag/GenerateCode.ag"(line 268, column 47)-                     _lhsOpatternAttributes =-                         ({-# LINE 268 "src-ag/GenerateCode.ag" #-}-                          []-                          {-# LINE 7184 "dist/build/GenerateCode" #-}-                          )-                     -- self rule-                     _copy =-                         ({-# LINE 22 "src-ag/Patterns.ag" #-}-                          []-                          {-# LINE 7190 "dist/build/GenerateCode" #-}-                          )-                     -- self rule-                     _lhsOcopy =-                         ({-# LINE 22 "src-ag/Patterns.ag" #-}-                          _copy-                          {-# LINE 7196 "dist/build/GenerateCode" #-}-                          )-                 in  ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)))--- Sequence -----------------------------------------------------{--   visit 0:-      inherited attributes:-         allNts               : Set NontermIdent-         aroundMap            : Set Identifier-         children             : [(Identifier,Type,ChildKind)]-         con                  : ConstructorIdent-         inh                  : Attributes-         instVisitNrs         : Map Identifier Int-         lastExpr             : Expr-         mergeMap             : Map Identifier (Identifier, [Identifier])-         nr                   : Int-         nt                   : NontermIdent-         o_case               : Bool-         o_cata               : Bool-         o_costcentre         : Bool-         o_data               : Maybe Bool-         o_linePragmas        : Bool-         o_monadic            : Bool-         o_newtypes           : Bool-         o_pretty             : Bool-         o_rename             : Bool-         o_sem                : Bool-         o_sig                : Bool-         o_splitsems          : Bool-         o_strictwrap         : Bool-         o_traces             : Bool-         o_unbox              : Bool-         options              : Options-         paramInstMap         : Map Identifier (NontermIdent, [String])-         paramMap             : ParamMap-         prefix               : String-         syn                  : Attributes-         terminals            : [Identifier]-         unfoldSemDom         : NontermIdent -> Int -> [String] -> Code.Type-         what                 : String-      chained attributes:-         declsAbove           : [Decl]-         visitedSet           : Set Identifier-      synthesized attributes:-         allTpsFound          : Bool-         blockDecls           : DeclBlocks -         comments             : [String]-         decls                : Decls-         definedInsts         : [Identifier]-         exprs                : Exprs-         tSigs                : [Decl]-         tps                  : [Type]-         usedVars             : Set String-   alternatives:-      alternative Cons:-         child hd             : CRule -         child tl             : Sequence -      alternative Nil:--}--- cata-sem_Sequence :: Sequence ->-                T_Sequence-sem_Sequence list =-    (Prelude.foldr sem_Sequence_Cons sem_Sequence_Nil (Prelude.map sem_CRule list))--- semantic domain-newtype T_Sequence = T_Sequence ((Set NontermIdent) ->-                                 (Set Identifier) ->-                                 ([(Identifier,Type,ChildKind)]) ->-                                 ConstructorIdent ->-                                 ([Decl]) ->-                                 Attributes ->-                                 (Map Identifier Int) ->-                                 Expr ->-                                 (Map Identifier (Identifier, [Identifier])) ->-                                 Int ->-                                 NontermIdent ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 (Maybe Bool) ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Bool ->-                                 Options ->-                                 (Map Identifier (NontermIdent, [String])) ->-                                 ParamMap ->-                                 String ->-                                 Attributes ->-                                 ([Identifier]) ->-                                 (NontermIdent -> Int -> [String] -> Code.Type) ->-                                 (Set Identifier) ->-                                 String ->-                                 ( Bool,DeclBlocks,([String]),Decls,([Decl]),([Identifier]),Exprs,([Decl]),([Type]),(Set String),(Set Identifier)))-data Inh_Sequence = Inh_Sequence {allNts_Inh_Sequence :: !((Set NontermIdent)),aroundMap_Inh_Sequence :: !((Set Identifier)),children_Inh_Sequence :: !(([(Identifier,Type,ChildKind)])),con_Inh_Sequence :: !(ConstructorIdent),declsAbove_Inh_Sequence :: !(([Decl])),inh_Inh_Sequence :: !(Attributes),instVisitNrs_Inh_Sequence :: !((Map Identifier Int)),lastExpr_Inh_Sequence :: !(Expr),mergeMap_Inh_Sequence :: !((Map Identifier (Identifier, [Identifier]))),nr_Inh_Sequence :: !(Int),nt_Inh_Sequence :: !(NontermIdent),o_case_Inh_Sequence :: !(Bool),o_cata_Inh_Sequence :: !(Bool),o_costcentre_Inh_Sequence :: !(Bool),o_data_Inh_Sequence :: !((Maybe Bool)),o_linePragmas_Inh_Sequence :: !(Bool),o_monadic_Inh_Sequence :: !(Bool),o_newtypes_Inh_Sequence :: !(Bool),o_pretty_Inh_Sequence :: !(Bool),o_rename_Inh_Sequence :: !(Bool),o_sem_Inh_Sequence :: !(Bool),o_sig_Inh_Sequence :: !(Bool),o_splitsems_Inh_Sequence :: !(Bool),o_strictwrap_Inh_Sequence :: !(Bool),o_traces_Inh_Sequence :: !(Bool),o_unbox_Inh_Sequence :: !(Bool),options_Inh_Sequence :: !(Options),paramInstMap_Inh_Sequence :: !((Map Identifier (NontermIdent, [String]))),paramMap_Inh_Sequence :: !(ParamMap),prefix_Inh_Sequence :: !(String),syn_Inh_Sequence :: !(Attributes),terminals_Inh_Sequence :: !(([Identifier])),unfoldSemDom_Inh_Sequence :: !((NontermIdent -> Int -> [String] -> Code.Type)),visitedSet_Inh_Sequence :: !((Set Identifier)),what_Inh_Sequence :: !(String)}-data Syn_Sequence = Syn_Sequence {allTpsFound_Syn_Sequence :: !(Bool),blockDecls_Syn_Sequence :: !(DeclBlocks),comments_Syn_Sequence :: !(([String])),decls_Syn_Sequence :: !(Decls),declsAbove_Syn_Sequence :: !(([Decl])),definedInsts_Syn_Sequence :: !(([Identifier])),exprs_Syn_Sequence :: !(Exprs),tSigs_Syn_Sequence :: !(([Decl])),tps_Syn_Sequence :: !(([Type])),usedVars_Syn_Sequence :: !((Set String)),visitedSet_Syn_Sequence :: !((Set Identifier))}-wrap_Sequence :: T_Sequence ->-                 Inh_Sequence ->-                 Syn_Sequence-wrap_Sequence (T_Sequence sem) (Inh_Sequence _lhsIallNts _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIdeclsAbove _lhsIinh _lhsIinstVisitNrs _lhsIlastExpr _lhsImergeMap _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIvisitedSet _lhsIwhat) =-    (let ( _lhsOallTpsFound,_lhsOblockDecls,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars,_lhsOvisitedSet) = sem _lhsIallNts _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIdeclsAbove _lhsIinh _lhsIinstVisitNrs _lhsIlastExpr _lhsImergeMap _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIvisitedSet _lhsIwhat-     in  (Syn_Sequence _lhsOallTpsFound _lhsOblockDecls _lhsOcomments _lhsOdecls _lhsOdeclsAbove _lhsOdefinedInsts _lhsOexprs _lhsOtSigs _lhsOtps _lhsOusedVars _lhsOvisitedSet))-sem_Sequence_Cons :: T_CRule ->-                     T_Sequence ->-                     T_Sequence-sem_Sequence_Cons (T_CRule hd_) (T_Sequence tl_) =-    (T_Sequence (\ _lhsIallNts-                   _lhsIaroundMap-                   _lhsIchildren-                   _lhsIcon-                   _lhsIdeclsAbove-                   _lhsIinh-                   _lhsIinstVisitNrs-                   _lhsIlastExpr-                   _lhsImergeMap-                   _lhsInr-                   _lhsInt-                   _lhsIo_case-                   _lhsIo_cata-                   _lhsIo_costcentre-                   _lhsIo_data-                   _lhsIo_linePragmas-                   _lhsIo_monadic-                   _lhsIo_newtypes-                   _lhsIo_pretty-                   _lhsIo_rename-                   _lhsIo_sem-                   _lhsIo_sig-                   _lhsIo_splitsems-                   _lhsIo_strictwrap-                   _lhsIo_traces-                   _lhsIo_unbox-                   _lhsIoptions-                   _lhsIparamInstMap-                   _lhsIparamMap-                   _lhsIprefix-                   _lhsIsyn-                   _lhsIterminals-                   _lhsIunfoldSemDom-                   _lhsIvisitedSet-                   _lhsIwhat ->-                     (let _lhsOblockDecls :: DeclBlocks-                          _lhsOallTpsFound :: Bool-                          _lhsOcomments :: ([String])-                          _lhsOdecls :: Decls-                          _lhsOdefinedInsts :: ([Identifier])-                          _lhsOexprs :: Exprs-                          _lhsOtSigs :: ([Decl])-                          _lhsOtps :: ([Type])-                          _lhsOusedVars :: (Set String)-                          _lhsOdeclsAbove :: ([Decl])-                          _lhsOvisitedSet :: (Set Identifier)-                          _hdOallNts :: (Set NontermIdent)-                          _hdOaroundMap :: (Set Identifier)-                          _hdOchildren :: ([(Identifier,Type,ChildKind)])-                          _hdOcon :: ConstructorIdent-                          _hdOdeclsAbove :: ([Decl])-                          _hdOinh :: Attributes-                          _hdOinstVisitNrs :: (Map Identifier Int)-                          _hdOmergeMap :: (Map Identifier (Identifier, [Identifier]))-                          _hdOnr :: Int-                          _hdOnt :: NontermIdent-                          _hdOo_case :: Bool-                          _hdOo_cata :: Bool-                          _hdOo_costcentre :: Bool-                          _hdOo_data :: (Maybe Bool)-                          _hdOo_linePragmas :: Bool-                          _hdOo_monadic :: Bool-                          _hdOo_newtypes :: Bool-                          _hdOo_pretty :: Bool-                          _hdOo_rename :: Bool-                          _hdOo_sem :: Bool-                          _hdOo_sig :: Bool-                          _hdOo_splitsems :: Bool-                          _hdOo_strictwrap :: Bool-                          _hdOo_traces :: Bool-                          _hdOo_unbox :: Bool-                          _hdOoptions :: Options-                          _hdOparamInstMap :: (Map Identifier (NontermIdent, [String]))-                          _hdOparamMap :: ParamMap-                          _hdOprefix :: String-                          _hdOsyn :: Attributes-                          _hdOterminals :: ([Identifier])-                          _hdOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)-                          _hdOvisitedSet :: (Set Identifier)-                          _hdOwhat :: String-                          _tlOallNts :: (Set NontermIdent)-                          _tlOaroundMap :: (Set Identifier)-                          _tlOchildren :: ([(Identifier,Type,ChildKind)])-                          _tlOcon :: ConstructorIdent-                          _tlOdeclsAbove :: ([Decl])-                          _tlOinh :: Attributes-                          _tlOinstVisitNrs :: (Map Identifier Int)-                          _tlOlastExpr :: Expr-                          _tlOmergeMap :: (Map Identifier (Identifier, [Identifier]))-                          _tlOnr :: Int-                          _tlOnt :: NontermIdent-                          _tlOo_case :: Bool-                          _tlOo_cata :: Bool-                          _tlOo_costcentre :: Bool-                          _tlOo_data :: (Maybe Bool)-                          _tlOo_linePragmas :: Bool-                          _tlOo_monadic :: Bool-                          _tlOo_newtypes :: Bool-                          _tlOo_pretty :: Bool-                          _tlOo_rename :: Bool-                          _tlOo_sem :: Bool-                          _tlOo_sig :: Bool-                          _tlOo_splitsems :: Bool-                          _tlOo_strictwrap :: Bool-                          _tlOo_traces :: Bool-                          _tlOo_unbox :: Bool-                          _tlOoptions :: Options-                          _tlOparamInstMap :: (Map Identifier (NontermIdent, [String]))-                          _tlOparamMap :: ParamMap-                          _tlOprefix :: String-                          _tlOsyn :: Attributes-                          _tlOterminals :: ([Identifier])-                          _tlOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)-                          _tlOvisitedSet :: (Set Identifier)-                          _tlOwhat :: String-                          _hdIallTpsFound :: Bool-                          _hdIbldBlocksFun :: (DeclBlocks -> DeclBlocks)-                          _hdIcomments :: ([String])-                          _hdIdecls :: Decls-                          _hdIdeclsAbove :: ([Decl])-                          _hdIdefinedInsts :: ([Identifier])-                          _hdIexprs :: Exprs-                          _hdItSigs :: ([Decl])-                          _hdItps :: ([Type])-                          _hdIusedVars :: (Set String)-                          _hdIvisitedSet :: (Set Identifier)-                          _tlIallTpsFound :: Bool-                          _tlIblockDecls :: DeclBlocks-                          _tlIcomments :: ([String])-                          _tlIdecls :: Decls-                          _tlIdeclsAbove :: ([Decl])-                          _tlIdefinedInsts :: ([Identifier])-                          _tlIexprs :: Exprs-                          _tlItSigs :: ([Decl])-                          _tlItps :: ([Type])-                          _tlIusedVars :: (Set String)-                          _tlIvisitedSet :: (Set Identifier)-                          -- "src-ag/GenerateCode.ag"(line 622, column 7)-                          _lhsOblockDecls =-                              ({-# LINE 622 "src-ag/GenerateCode.ag" #-}-                               _hdIbldBlocksFun _tlIblockDecls-                               {-# LINE 7450 "dist/build/GenerateCode" #-}-                               )-                          -- use rule "src-ag/GenerateCode.ag"(line 416, column 39)-                          _lhsOallTpsFound =-                              ({-# LINE 416 "src-ag/GenerateCode.ag" #-}-                               _hdIallTpsFound && _tlIallTpsFound-                               {-# LINE 7456 "dist/build/GenerateCode" #-}-                               )-                          -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)-                          _lhsOcomments =-                              ({-# LINE 868 "src-ag/GenerateCode.ag" #-}-                               _hdIcomments ++ _tlIcomments-                               {-# LINE 7462 "dist/build/GenerateCode" #-}-                               )-                          -- use rule "src-ag/GenerateCode.ag"(line 155, column 34)-                          _lhsOdecls =-                              ({-# LINE 155 "src-ag/GenerateCode.ag" #-}-                               _hdIdecls ++ _tlIdecls-                               {-# LINE 7468 "dist/build/GenerateCode" #-}-                               )-                          -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)-                          _lhsOdefinedInsts =-                              ({-# LINE 261 "src-ag/GenerateCode.ag" #-}-                               _hdIdefinedInsts ++ _tlIdefinedInsts-                               {-# LINE 7474 "dist/build/GenerateCode" #-}-                               )-                          -- use rule "src-ag/GenerateCode.ag"(line 334, column 34)-                          _lhsOexprs =-                              ({-# LINE 334 "src-ag/GenerateCode.ag" #-}-                               _hdIexprs ++ _tlIexprs-                               {-# LINE 7480 "dist/build/GenerateCode" #-}-                               )-                          -- use rule "src-ag/GenerateCode.ag"(line 363, column 33)-                          _lhsOtSigs =-                              ({-# LINE 363 "src-ag/GenerateCode.ag" #-}-                               _hdItSigs ++ _tlItSigs-                               {-# LINE 7486 "dist/build/GenerateCode" #-}-                               )-                          -- use rule "src-ag/GenerateCode.ag"(line 415, column 31)-                          _lhsOtps =-                              ({-# LINE 415 "src-ag/GenerateCode.ag" #-}-                               _hdItps ++ _tlItps-                               {-# LINE 7492 "dist/build/GenerateCode" #-}-                               )-                          -- use rule "src-ag/GenerateCode.ag"(line 352, column 37)-                          _lhsOusedVars =-                              ({-# LINE 352 "src-ag/GenerateCode.ag" #-}-                               _hdIusedVars `Set.union` _tlIusedVars-                               {-# LINE 7498 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (up)-                          _lhsOdeclsAbove =-                              ({-# LINE 608 "src-ag/GenerateCode.ag" #-}-                               _tlIdeclsAbove-                               {-# LINE 7504 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (up)-                          _lhsOvisitedSet =-                              ({-# LINE 145 "src-ag/GenerateCode.ag" #-}-                               _tlIvisitedSet-                               {-# LINE 7510 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOallNts =-                              ({-# LINE 132 "src-ag/GenerateCode.ag" #-}-                               _lhsIallNts-                               {-# LINE 7516 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOaroundMap =-                              ({-# LINE 580 "src-ag/GenerateCode.ag" #-}-                               _lhsIaroundMap-                               {-# LINE 7522 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOchildren =-                              ({-# LINE 259 "src-ag/GenerateCode.ag" #-}-                               _lhsIchildren-                               {-# LINE 7528 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOcon =-                              ({-# LINE 89 "src-ag/GenerateCode.ag" #-}-                               _lhsIcon-                               {-# LINE 7534 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOdeclsAbove =-                              ({-# LINE 608 "src-ag/GenerateCode.ag" #-}-                               _lhsIdeclsAbove-                               {-# LINE 7540 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOinh =-                              ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                               _lhsIinh-                               {-# LINE 7546 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOinstVisitNrs =-                              ({-# LINE 560 "src-ag/GenerateCode.ag" #-}-                               _lhsIinstVisitNrs-                               {-# LINE 7552 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOmergeMap =-                              ({-# LINE 596 "src-ag/GenerateCode.ag" #-}-                               _lhsImergeMap-                               {-# LINE 7558 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOnr =-                              ({-# LINE 278 "src-ag/GenerateCode.ag" #-}-                               _lhsInr-                               {-# LINE 7564 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOnt =-                              ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                               _lhsInt-                               {-# LINE 7570 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOo_case =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_case-                               {-# LINE 7576 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOo_cata =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_cata-                               {-# LINE 7582 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOo_costcentre =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_costcentre-                               {-# LINE 7588 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOo_data =-                              ({-# LINE 48 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_data-                               {-# LINE 7594 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOo_linePragmas =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_linePragmas-                               {-# LINE 7600 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOo_monadic =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_monadic-                               {-# LINE 7606 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOo_newtypes =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_newtypes-                               {-# LINE 7612 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOo_pretty =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_pretty-                               {-# LINE 7618 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOo_rename =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_rename-                               {-# LINE 7624 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOo_sem =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_sem-                               {-# LINE 7630 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOo_sig =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_sig-                               {-# LINE 7636 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOo_splitsems =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_splitsems-                               {-# LINE 7642 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOo_strictwrap =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_strictwrap-                               {-# LINE 7648 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOo_traces =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_traces-                               {-# LINE 7654 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOo_unbox =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_unbox-                               {-# LINE 7660 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOoptions =-                              ({-# LINE 50 "src-ag/GenerateCode.ag" #-}-                               _lhsIoptions-                               {-# LINE 7666 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOparamInstMap =-                              ({-# LINE 101 "src-ag/GenerateCode.ag" #-}-                               _lhsIparamInstMap-                               {-# LINE 7672 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOparamMap =-                              ({-# LINE 95 "src-ag/GenerateCode.ag" #-}-                               _lhsIparamMap-                               {-# LINE 7678 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOprefix =-                              ({-# LINE 49 "src-ag/GenerateCode.ag" #-}-                               _lhsIprefix-                               {-# LINE 7684 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOsyn =-                              ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                               _lhsIsyn-                               {-# LINE 7690 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOterminals =-                              ({-# LINE 90 "src-ag/GenerateCode.ag" #-}-                               _lhsIterminals-                               {-# LINE 7696 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOunfoldSemDom =-                              ({-# LINE 750 "src-ag/GenerateCode.ag" #-}-                               _lhsIunfoldSemDom-                               {-# LINE 7702 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOvisitedSet =-                              ({-# LINE 145 "src-ag/GenerateCode.ag" #-}-                               _lhsIvisitedSet-                               {-# LINE 7708 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _hdOwhat =-                              ({-# LINE 870 "src-ag/GenerateCode.ag" #-}-                               _lhsIwhat-                               {-# LINE 7714 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOallNts =-                              ({-# LINE 132 "src-ag/GenerateCode.ag" #-}-                               _lhsIallNts-                               {-# LINE 7720 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOaroundMap =-                              ({-# LINE 580 "src-ag/GenerateCode.ag" #-}-                               _lhsIaroundMap-                               {-# LINE 7726 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOchildren =-                              ({-# LINE 259 "src-ag/GenerateCode.ag" #-}-                               _lhsIchildren-                               {-# LINE 7732 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOcon =-                              ({-# LINE 89 "src-ag/GenerateCode.ag" #-}-                               _lhsIcon-                               {-# LINE 7738 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (chain)-                          _tlOdeclsAbove =-                              ({-# LINE 608 "src-ag/GenerateCode.ag" #-}-                               _hdIdeclsAbove-                               {-# LINE 7744 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOinh =-                              ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                               _lhsIinh-                               {-# LINE 7750 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOinstVisitNrs =-                              ({-# LINE 560 "src-ag/GenerateCode.ag" #-}-                               _lhsIinstVisitNrs-                               {-# LINE 7756 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOlastExpr =-                              ({-# LINE 606 "src-ag/GenerateCode.ag" #-}-                               _lhsIlastExpr-                               {-# LINE 7762 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOmergeMap =-                              ({-# LINE 596 "src-ag/GenerateCode.ag" #-}-                               _lhsImergeMap-                               {-# LINE 7768 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOnr =-                              ({-# LINE 278 "src-ag/GenerateCode.ag" #-}-                               _lhsInr-                               {-# LINE 7774 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOnt =-                              ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                               _lhsInt-                               {-# LINE 7780 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOo_case =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_case-                               {-# LINE 7786 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOo_cata =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_cata-                               {-# LINE 7792 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOo_costcentre =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_costcentre-                               {-# LINE 7798 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOo_data =-                              ({-# LINE 48 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_data-                               {-# LINE 7804 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOo_linePragmas =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_linePragmas-                               {-# LINE 7810 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOo_monadic =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_monadic-                               {-# LINE 7816 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOo_newtypes =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_newtypes-                               {-# LINE 7822 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOo_pretty =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_pretty-                               {-# LINE 7828 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOo_rename =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_rename-                               {-# LINE 7834 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOo_sem =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_sem-                               {-# LINE 7840 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOo_sig =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_sig-                               {-# LINE 7846 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOo_splitsems =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_splitsems-                               {-# LINE 7852 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOo_strictwrap =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_strictwrap-                               {-# LINE 7858 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOo_traces =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_traces-                               {-# LINE 7864 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOo_unbox =-                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}-                               _lhsIo_unbox-                               {-# LINE 7870 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOoptions =-                              ({-# LINE 50 "src-ag/GenerateCode.ag" #-}-                               _lhsIoptions-                               {-# LINE 7876 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOparamInstMap =-                              ({-# LINE 101 "src-ag/GenerateCode.ag" #-}-                               _lhsIparamInstMap-                               {-# LINE 7882 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOparamMap =-                              ({-# LINE 95 "src-ag/GenerateCode.ag" #-}-                               _lhsIparamMap-                               {-# LINE 7888 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOprefix =-                              ({-# LINE 49 "src-ag/GenerateCode.ag" #-}-                               _lhsIprefix-                               {-# LINE 7894 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOsyn =-                              ({-# LINE 84 "src-ag/GenerateCode.ag" #-}-                               _lhsIsyn-                               {-# LINE 7900 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOterminals =-                              ({-# LINE 90 "src-ag/GenerateCode.ag" #-}-                               _lhsIterminals-                               {-# LINE 7906 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOunfoldSemDom =-                              ({-# LINE 750 "src-ag/GenerateCode.ag" #-}-                               _lhsIunfoldSemDom-                               {-# LINE 7912 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (chain)-                          _tlOvisitedSet =-                              ({-# LINE 145 "src-ag/GenerateCode.ag" #-}-                               _hdIvisitedSet-                               {-# LINE 7918 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (down)-                          _tlOwhat =-                              ({-# LINE 870 "src-ag/GenerateCode.ag" #-}-                               _lhsIwhat-                               {-# LINE 7924 "dist/build/GenerateCode" #-}-                               )-                          ( _hdIallTpsFound,_hdIbldBlocksFun,_hdIcomments,_hdIdecls,_hdIdeclsAbove,_hdIdefinedInsts,_hdIexprs,_hdItSigs,_hdItps,_hdIusedVars,_hdIvisitedSet) =-                              hd_ _hdOallNts _hdOaroundMap _hdOchildren _hdOcon _hdOdeclsAbove _hdOinh _hdOinstVisitNrs _hdOmergeMap _hdOnr _hdOnt _hdOo_case _hdOo_cata _hdOo_costcentre _hdOo_data _hdOo_linePragmas _hdOo_monadic _hdOo_newtypes _hdOo_pretty _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_splitsems _hdOo_strictwrap _hdOo_traces _hdOo_unbox _hdOoptions _hdOparamInstMap _hdOparamMap _hdOprefix _hdOsyn _hdOterminals _hdOunfoldSemDom _hdOvisitedSet _hdOwhat-                          ( _tlIallTpsFound,_tlIblockDecls,_tlIcomments,_tlIdecls,_tlIdeclsAbove,_tlIdefinedInsts,_tlIexprs,_tlItSigs,_tlItps,_tlIusedVars,_tlIvisitedSet) =-                              tl_ _tlOallNts _tlOaroundMap _tlOchildren _tlOcon _tlOdeclsAbove _tlOinh _tlOinstVisitNrs _tlOlastExpr _tlOmergeMap _tlOnr _tlOnt _tlOo_case _tlOo_cata _tlOo_costcentre _tlOo_data _tlOo_linePragmas _tlOo_monadic _tlOo_newtypes _tlOo_pretty _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_splitsems _tlOo_strictwrap _tlOo_traces _tlOo_unbox _tlOoptions _tlOparamInstMap _tlOparamMap _tlOprefix _tlOsyn _tlOterminals _tlOunfoldSemDom _tlOvisitedSet _tlOwhat-                      in  ( _lhsOallTpsFound,_lhsOblockDecls,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars,_lhsOvisitedSet))))-sem_Sequence_Nil :: T_Sequence-sem_Sequence_Nil =-    (T_Sequence (\ _lhsIallNts-                   _lhsIaroundMap-                   _lhsIchildren-                   _lhsIcon-                   _lhsIdeclsAbove-                   _lhsIinh-                   _lhsIinstVisitNrs-                   _lhsIlastExpr-                   _lhsImergeMap-                   _lhsInr-                   _lhsInt-                   _lhsIo_case-                   _lhsIo_cata-                   _lhsIo_costcentre-                   _lhsIo_data-                   _lhsIo_linePragmas-                   _lhsIo_monadic-                   _lhsIo_newtypes-                   _lhsIo_pretty-                   _lhsIo_rename-                   _lhsIo_sem-                   _lhsIo_sig-                   _lhsIo_splitsems-                   _lhsIo_strictwrap-                   _lhsIo_traces-                   _lhsIo_unbox-                   _lhsIoptions-                   _lhsIparamInstMap-                   _lhsIparamMap-                   _lhsIprefix-                   _lhsIsyn-                   _lhsIterminals-                   _lhsIunfoldSemDom-                   _lhsIvisitedSet-                   _lhsIwhat ->-                     (let _lhsOblockDecls :: DeclBlocks-                          _lhsOallTpsFound :: Bool-                          _lhsOcomments :: ([String])-                          _lhsOdecls :: Decls-                          _lhsOdefinedInsts :: ([Identifier])-                          _lhsOexprs :: Exprs-                          _lhsOtSigs :: ([Decl])-                          _lhsOtps :: ([Type])-                          _lhsOusedVars :: (Set String)-                          _lhsOdeclsAbove :: ([Decl])-                          _lhsOvisitedSet :: (Set Identifier)-                          -- "src-ag/GenerateCode.ag"(line 624, column 7)-                          _lhsOblockDecls =-                              ({-# LINE 624 "src-ag/GenerateCode.ag" #-}-                               DeclTerminator _lhsIdeclsAbove _lhsIlastExpr-                               {-# LINE 7983 "dist/build/GenerateCode" #-}-                               )-                          -- use rule "src-ag/GenerateCode.ag"(line 416, column 39)-                          _lhsOallTpsFound =-                              ({-# LINE 416 "src-ag/GenerateCode.ag" #-}-                               True-                               {-# LINE 7989 "dist/build/GenerateCode" #-}-                               )-                          -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)-                          _lhsOcomments =-                              ({-# LINE 868 "src-ag/GenerateCode.ag" #-}-                               []-                               {-# LINE 7995 "dist/build/GenerateCode" #-}-                               )-                          -- use rule "src-ag/GenerateCode.ag"(line 155, column 34)-                          _lhsOdecls =-                              ({-# LINE 155 "src-ag/GenerateCode.ag" #-}-                               []-                               {-# LINE 8001 "dist/build/GenerateCode" #-}-                               )-                          -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)-                          _lhsOdefinedInsts =-                              ({-# LINE 261 "src-ag/GenerateCode.ag" #-}-                               []-                               {-# LINE 8007 "dist/build/GenerateCode" #-}-                               )-                          -- use rule "src-ag/GenerateCode.ag"(line 334, column 34)-                          _lhsOexprs =-                              ({-# LINE 334 "src-ag/GenerateCode.ag" #-}-                               []-                               {-# LINE 8013 "dist/build/GenerateCode" #-}-                               )-                          -- use rule "src-ag/GenerateCode.ag"(line 363, column 33)-                          _lhsOtSigs =-                              ({-# LINE 363 "src-ag/GenerateCode.ag" #-}-                               []-                               {-# LINE 8019 "dist/build/GenerateCode" #-}-                               )-                          -- use rule "src-ag/GenerateCode.ag"(line 415, column 31)-                          _lhsOtps =-                              ({-# LINE 415 "src-ag/GenerateCode.ag" #-}-                               []-                               {-# LINE 8025 "dist/build/GenerateCode" #-}-                               )-                          -- use rule "src-ag/GenerateCode.ag"(line 352, column 37)-                          _lhsOusedVars =-                              ({-# LINE 352 "src-ag/GenerateCode.ag" #-}-                               Set.empty-                               {-# LINE 8031 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (chain)-                          _lhsOdeclsAbove =-                              ({-# LINE 608 "src-ag/GenerateCode.ag" #-}-                               _lhsIdeclsAbove-                               {-# LINE 8037 "dist/build/GenerateCode" #-}-                               )-                          -- copy rule (chain)-                          _lhsOvisitedSet =-                              ({-# LINE 145 "src-ag/GenerateCode.ag" #-}-                               _lhsIvisitedSet-                               {-# LINE 8043 "dist/build/GenerateCode" #-}-                               )+                          ___node =+                              (Syn_CGrammar _lhsOerrors _lhsOoutput)+                      in  ( _lhsOerrors,_lhsOoutput))))+-- CInterface --------------------------------------------------+{-+   visit 0:+      inherited attributes:+         inh                  : Attributes+         nt                   : NontermIdent+         o_case               : Bool+         o_cata               : Bool+         o_costcentre         : Bool+         o_data               : Maybe Bool+         o_linePragmas        : Bool+         o_monadic            : Bool+         o_newtypes           : Bool+         o_pretty             : Bool+         o_rename             : Bool+         o_sem                : Bool+         o_sig                : Bool+         o_splitsems          : Bool+         o_strictwrap         : Bool+         o_traces             : Bool+         o_unbox              : Bool+         options              : Options+         paramMap             : ParamMap+         prefix               : String+         syn                  : Attributes+      synthesized attributes:+         comments             : [String]+         semDom               : [Decl]+         semDomUnfoldGath     : Map (NontermIdent, Int) ([String], Code.Type)+         wrapDecls            : Decls+   alternatives:+      alternative CInterface:+         child seg            : CSegments +-}+-- cata+sem_CInterface :: CInterface ->+                  T_CInterface+sem_CInterface (CInterface _seg) =+    (sem_CInterface_CInterface (sem_CSegments _seg))+-- semantic domain+newtype T_CInterface = T_CInterface (Attributes ->+                                     NontermIdent ->+                                     Bool ->+                                     Bool ->+                                     Bool ->+                                     (Maybe Bool) ->+                                     Bool ->+                                     Bool ->+                                     Bool ->+                                     Bool ->+                                     Bool ->+                                     Bool ->+                                     Bool ->+                                     Bool ->+                                     Bool ->+                                     Bool ->+                                     Bool ->+                                     Options ->+                                     ParamMap ->+                                     String ->+                                     Attributes ->+                                     ( ([String]),([Decl]),(Map (NontermIdent, Int) ([String], Code.Type)),Decls))+data Inh_CInterface = Inh_CInterface {inh_Inh_CInterface :: !(Attributes),nt_Inh_CInterface :: !(NontermIdent),o_case_Inh_CInterface :: !(Bool),o_cata_Inh_CInterface :: !(Bool),o_costcentre_Inh_CInterface :: !(Bool),o_data_Inh_CInterface :: !((Maybe Bool)),o_linePragmas_Inh_CInterface :: !(Bool),o_monadic_Inh_CInterface :: !(Bool),o_newtypes_Inh_CInterface :: !(Bool),o_pretty_Inh_CInterface :: !(Bool),o_rename_Inh_CInterface :: !(Bool),o_sem_Inh_CInterface :: !(Bool),o_sig_Inh_CInterface :: !(Bool),o_splitsems_Inh_CInterface :: !(Bool),o_strictwrap_Inh_CInterface :: !(Bool),o_traces_Inh_CInterface :: !(Bool),o_unbox_Inh_CInterface :: !(Bool),options_Inh_CInterface :: !(Options),paramMap_Inh_CInterface :: !(ParamMap),prefix_Inh_CInterface :: !(String),syn_Inh_CInterface :: !(Attributes)}+data Syn_CInterface = Syn_CInterface {comments_Syn_CInterface :: !(([String])),semDom_Syn_CInterface :: !(([Decl])),semDomUnfoldGath_Syn_CInterface :: !((Map (NontermIdent, Int) ([String], Code.Type))),wrapDecls_Syn_CInterface :: !(Decls)}+wrap_CInterface :: T_CInterface ->+                   Inh_CInterface ->+                   Syn_CInterface+wrap_CInterface (T_CInterface sem) (Inh_CInterface _lhsIinh _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIsyn) =+    (let ( _lhsOcomments,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls) = sem _lhsIinh _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIsyn+     in  (Syn_CInterface _lhsOcomments _lhsOsemDom _lhsOsemDomUnfoldGath _lhsOwrapDecls))+sem_CInterface_CInterface :: T_CSegments ->+                             T_CInterface+sem_CInterface_CInterface (T_CSegments seg_) =+    (T_CInterface (\ _lhsIinh+                     _lhsInt+                     _lhsIo_case+                     _lhsIo_cata+                     _lhsIo_costcentre+                     _lhsIo_data+                     _lhsIo_linePragmas+                     _lhsIo_monadic+                     _lhsIo_newtypes+                     _lhsIo_pretty+                     _lhsIo_rename+                     _lhsIo_sem+                     _lhsIo_sig+                     _lhsIo_splitsems+                     _lhsIo_strictwrap+                     _lhsIo_traces+                     _lhsIo_unbox+                     _lhsIoptions+                     _lhsIparamMap+                     _lhsIprefix+                     _lhsIsyn ->+                       (let _segOnr :: Int+                            _lhsOsemDom :: ([Decl])+                            _lhsOcomments :: ([String])+                            _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))+                            _lhsOwrapDecls :: Decls+                            _segOinh :: Attributes+                            _segOnt :: NontermIdent+                            _segOo_case :: Bool+                            _segOo_cata :: Bool+                            _segOo_costcentre :: Bool+                            _segOo_data :: (Maybe Bool)+                            _segOo_linePragmas :: Bool+                            _segOo_monadic :: Bool+                            _segOo_newtypes :: Bool+                            _segOo_pretty :: Bool+                            _segOo_rename :: Bool+                            _segOo_sem :: Bool+                            _segOo_sig :: Bool+                            _segOo_splitsems :: Bool+                            _segOo_strictwrap :: Bool+                            _segOo_traces :: Bool+                            _segOo_unbox :: Bool+                            _segOoptions :: Options+                            _segOparamMap :: ParamMap+                            _segOprefix :: String+                            _segOsyn :: Attributes+                            _segIcomments :: ([String])+                            _segIisNil :: Bool+                            _segIsemDom :: ([Decl])+                            _segIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))+                            _segIwrapDecls :: Decls+                            -- "src-ag/GenerateCode.ag"(line 284, column 17)+                            _segOnr =+                                ({-# LINE 284 "src-ag/GenerateCode.ag" #-}+                                 0+                                 {-# LINE 696 "dist/build/GenerateCode" #-}+                                 )+                            -- "src-ag/GenerateCode.ag"(line 712, column 18)+                            _lhsOsemDom =+                                ({-# LINE 712 "src-ag/GenerateCode.ag" #-}+                                 Comment "semantic domain" : _segIsemDom+                                 {-# LINE 702 "dist/build/GenerateCode" #-}+                                 )+                            -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)+                            _lhsOcomments =+                                ({-# LINE 868 "src-ag/GenerateCode.ag" #-}+                                 _segIcomments+                                 {-# LINE 708 "dist/build/GenerateCode" #-}+                                 )+                            -- use rule "src-ag/GenerateCode.ag"(line 744, column 86)+                            _lhsOsemDomUnfoldGath =+                                ({-# LINE 744 "src-ag/GenerateCode.ag" #-}+                                 _segIsemDomUnfoldGath+                                 {-# LINE 714 "dist/build/GenerateCode" #-}+                                 )+                            -- use rule "src-ag/GenerateCode.ag"(line 829, column 52)+                            _lhsOwrapDecls =+                                ({-# LINE 829 "src-ag/GenerateCode.ag" #-}+                                 _segIwrapDecls+                                 {-# LINE 720 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOinh =+                                ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                 _lhsIinh+                                 {-# LINE 726 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOnt =+                                ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                 _lhsInt+                                 {-# LINE 732 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOo_case =+                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                 _lhsIo_case+                                 {-# LINE 738 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOo_cata =+                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                 _lhsIo_cata+                                 {-# LINE 744 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOo_costcentre =+                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                 _lhsIo_costcentre+                                 {-# LINE 750 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOo_data =+                                ({-# LINE 48 "src-ag/GenerateCode.ag" #-}+                                 _lhsIo_data+                                 {-# LINE 756 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOo_linePragmas =+                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                 _lhsIo_linePragmas+                                 {-# LINE 762 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOo_monadic =+                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                 _lhsIo_monadic+                                 {-# LINE 768 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOo_newtypes =+                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                 _lhsIo_newtypes+                                 {-# LINE 774 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOo_pretty =+                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                 _lhsIo_pretty+                                 {-# LINE 780 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOo_rename =+                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                 _lhsIo_rename+                                 {-# LINE 786 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOo_sem =+                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                 _lhsIo_sem+                                 {-# LINE 792 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOo_sig =+                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                 _lhsIo_sig+                                 {-# LINE 798 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOo_splitsems =+                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                 _lhsIo_splitsems+                                 {-# LINE 804 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOo_strictwrap =+                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                 _lhsIo_strictwrap+                                 {-# LINE 810 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOo_traces =+                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                 _lhsIo_traces+                                 {-# LINE 816 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOo_unbox =+                                ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                 _lhsIo_unbox+                                 {-# LINE 822 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOoptions =+                                ({-# LINE 50 "src-ag/GenerateCode.ag" #-}+                                 _lhsIoptions+                                 {-# LINE 828 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOparamMap =+                                ({-# LINE 95 "src-ag/GenerateCode.ag" #-}+                                 _lhsIparamMap+                                 {-# LINE 834 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOprefix =+                                ({-# LINE 49 "src-ag/GenerateCode.ag" #-}+                                 _lhsIprefix+                                 {-# LINE 840 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _segOsyn =+                                ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                 _lhsIsyn+                                 {-# LINE 846 "dist/build/GenerateCode" #-}+                                 )+                            ( _segIcomments,_segIisNil,_segIsemDom,_segIsemDomUnfoldGath,_segIwrapDecls) =+                                seg_ _segOinh _segOnr _segOnt _segOo_case _segOo_cata _segOo_costcentre _segOo_data _segOo_linePragmas _segOo_monadic _segOo_newtypes _segOo_pretty _segOo_rename _segOo_sem _segOo_sig _segOo_splitsems _segOo_strictwrap _segOo_traces _segOo_unbox _segOoptions _segOparamMap _segOprefix _segOsyn+                            ___node =+                                (Syn_CInterface _lhsOcomments _lhsOsemDom _lhsOsemDomUnfoldGath _lhsOwrapDecls)+                        in  ( _lhsOcomments,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls))))+-- CNonterminal ------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allNts               : Set NontermIdent+         allPragmas           : PragmaMap+         aroundMap            : Map NontermIdent (Map ConstructorIdent (Set Identifier))+         contextMap           : ContextMap+         derivings            : Derivings+         mergeMap             : Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))+         o_case               : Bool+         o_cata               : Bool+         o_costcentre         : Bool+         o_data               : Maybe Bool+         o_linePragmas        : Bool+         o_monadic            : Bool+         o_newtypes           : Bool+         o_pretty             : Bool+         o_rename             : Bool+         o_sem                : Bool+         o_sig                : Bool+         o_splitsems          : Bool+         o_strictwrap         : Bool+         o_traces             : Bool+         o_unbox              : Bool+         options              : Options+         paramMap             : ParamMap+         prefix               : String+         quantMap             : QuantMap+         typeSyns             : TypeSyns+         unfoldSemDom         : NontermIdent -> Int -> [String] -> Code.Type+         with_sig             : Bool+         wrappers             : Set NontermIdent+      synthesized attributes:+         chunks               : Chunks+         gathNts              : Set NontermIdent+         semDomUnfoldGath     : Map (NontermIdent, Int) ([String], Code.Type)+   alternatives:+      alternative CNonterminal:+         child nt             : {NontermIdent}+         child params         : {[Identifier]}+         child inh            : {Attributes}+         child syn            : {Attributes}+         child prods          : CProductions +         child inter          : CInterface +         visit 0:+            local aroundMap   : _+            local mergeMap    : _+            local semWrapper  : _+            local comment     : _+            local dataDef     : _+            local genCata     : _+            local cataFun     : _+-}+-- cata+sem_CNonterminal :: CNonterminal ->+                    T_CNonterminal+sem_CNonterminal (CNonterminal _nt _params _inh _syn _prods _inter) =+    (sem_CNonterminal_CNonterminal _nt _params _inh _syn (sem_CProductions _prods) (sem_CInterface _inter))+-- semantic domain+newtype T_CNonterminal = T_CNonterminal ((Set NontermIdent) ->+                                         PragmaMap ->+                                         (Map NontermIdent (Map ConstructorIdent (Set Identifier))) ->+                                         ContextMap ->+                                         Derivings ->+                                         (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))) ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         (Maybe Bool) ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Options ->+                                         ParamMap ->+                                         String ->+                                         QuantMap ->+                                         TypeSyns ->+                                         (NontermIdent -> Int -> [String] -> Code.Type) ->+                                         Bool ->+                                         (Set NontermIdent) ->+                                         ( Chunks,(Set NontermIdent),(Map (NontermIdent, Int) ([String], Code.Type))))+data Inh_CNonterminal = Inh_CNonterminal {allNts_Inh_CNonterminal :: !((Set NontermIdent)),allPragmas_Inh_CNonterminal :: !(PragmaMap),aroundMap_Inh_CNonterminal :: !((Map NontermIdent (Map ConstructorIdent (Set Identifier)))),contextMap_Inh_CNonterminal :: !(ContextMap),derivings_Inh_CNonterminal :: !(Derivings),mergeMap_Inh_CNonterminal :: !((Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier]))))),o_case_Inh_CNonterminal :: !(Bool),o_cata_Inh_CNonterminal :: !(Bool),o_costcentre_Inh_CNonterminal :: !(Bool),o_data_Inh_CNonterminal :: !((Maybe Bool)),o_linePragmas_Inh_CNonterminal :: !(Bool),o_monadic_Inh_CNonterminal :: !(Bool),o_newtypes_Inh_CNonterminal :: !(Bool),o_pretty_Inh_CNonterminal :: !(Bool),o_rename_Inh_CNonterminal :: !(Bool),o_sem_Inh_CNonterminal :: !(Bool),o_sig_Inh_CNonterminal :: !(Bool),o_splitsems_Inh_CNonterminal :: !(Bool),o_strictwrap_Inh_CNonterminal :: !(Bool),o_traces_Inh_CNonterminal :: !(Bool),o_unbox_Inh_CNonterminal :: !(Bool),options_Inh_CNonterminal :: !(Options),paramMap_Inh_CNonterminal :: !(ParamMap),prefix_Inh_CNonterminal :: !(String),quantMap_Inh_CNonterminal :: !(QuantMap),typeSyns_Inh_CNonterminal :: !(TypeSyns),unfoldSemDom_Inh_CNonterminal :: !((NontermIdent -> Int -> [String] -> Code.Type)),with_sig_Inh_CNonterminal :: !(Bool),wrappers_Inh_CNonterminal :: !((Set NontermIdent))}+data Syn_CNonterminal = Syn_CNonterminal {chunks_Syn_CNonterminal :: !(Chunks),gathNts_Syn_CNonterminal :: !((Set NontermIdent)),semDomUnfoldGath_Syn_CNonterminal :: !((Map (NontermIdent, Int) ([String], Code.Type)))}+wrap_CNonterminal :: T_CNonterminal ->+                     Inh_CNonterminal ->+                     Syn_CNonterminal+wrap_CNonterminal (T_CNonterminal sem) (Inh_CNonterminal _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIderivings _lhsImergeMap _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsItypeSyns _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers) =+    (let ( _lhsOchunks,_lhsOgathNts,_lhsOsemDomUnfoldGath) = sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIderivings _lhsImergeMap _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsItypeSyns _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers+     in  (Syn_CNonterminal _lhsOchunks _lhsOgathNts _lhsOsemDomUnfoldGath))+sem_CNonterminal_CNonterminal :: NontermIdent ->+                                 ([Identifier]) ->+                                 Attributes ->+                                 Attributes ->+                                 T_CProductions ->+                                 T_CInterface ->+                                 T_CNonterminal+sem_CNonterminal_CNonterminal nt_ params_ inh_ syn_ (T_CProductions prods_) (T_CInterface inter_) =+    (T_CNonterminal (\ _lhsIallNts+                       _lhsIallPragmas+                       _lhsIaroundMap+                       _lhsIcontextMap+                       _lhsIderivings+                       _lhsImergeMap+                       _lhsIo_case+                       _lhsIo_cata+                       _lhsIo_costcentre+                       _lhsIo_data+                       _lhsIo_linePragmas+                       _lhsIo_monadic+                       _lhsIo_newtypes+                       _lhsIo_pretty+                       _lhsIo_rename+                       _lhsIo_sem+                       _lhsIo_sig+                       _lhsIo_splitsems+                       _lhsIo_strictwrap+                       _lhsIo_traces+                       _lhsIo_unbox+                       _lhsIoptions+                       _lhsIparamMap+                       _lhsIprefix+                       _lhsIquantMap+                       _lhsItypeSyns+                       _lhsIunfoldSemDom+                       _lhsIwith_sig+                       _lhsIwrappers ->+                         (let _interOinh :: Attributes+                              _interOsyn :: Attributes+                              _interOnt :: NontermIdent+                              _prodsOinh :: Attributes+                              _prodsOsyn :: Attributes+                              _prodsOnt :: NontermIdent+                              _lhsOgathNts :: (Set NontermIdent)+                              _lhsOchunks :: Chunks+                              _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))+                              _prodsOallNts :: (Set NontermIdent)+                              _prodsOallPragmas :: PragmaMap+                              _prodsOaroundMap :: (Map ConstructorIdent (Set Identifier))+                              _prodsOcontextMap :: ContextMap+                              _prodsOmergeMap :: (Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))+                              _prodsOo_case :: Bool+                              _prodsOo_cata :: Bool+                              _prodsOo_costcentre :: Bool+                              _prodsOo_data :: (Maybe Bool)+                              _prodsOo_linePragmas :: Bool+                              _prodsOo_monadic :: Bool+                              _prodsOo_newtypes :: Bool+                              _prodsOo_pretty :: Bool+                              _prodsOo_rename :: Bool+                              _prodsOo_sem :: Bool+                              _prodsOo_sig :: Bool+                              _prodsOo_splitsems :: Bool+                              _prodsOo_strictwrap :: Bool+                              _prodsOo_traces :: Bool+                              _prodsOo_unbox :: Bool+                              _prodsOoptions :: Options+                              _prodsOparamMap :: ParamMap+                              _prodsOprefix :: String+                              _prodsOquantMap :: QuantMap+                              _prodsOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)+                              _prodsOwith_sig :: Bool+                              _prodsOwrappers :: (Set NontermIdent)+                              _interOo_case :: Bool+                              _interOo_cata :: Bool+                              _interOo_costcentre :: Bool+                              _interOo_data :: (Maybe Bool)+                              _interOo_linePragmas :: Bool+                              _interOo_monadic :: Bool+                              _interOo_newtypes :: Bool+                              _interOo_pretty :: Bool+                              _interOo_rename :: Bool+                              _interOo_sem :: Bool+                              _interOo_sig :: Bool+                              _interOo_splitsems :: Bool+                              _interOo_strictwrap :: Bool+                              _interOo_traces :: Bool+                              _interOo_unbox :: Bool+                              _interOoptions :: Options+                              _interOparamMap :: ParamMap+                              _interOprefix :: String+                              _prodsIcataAlts :: Decls+                              _prodsIcomments :: ([String])+                              _prodsIdataAlts :: DataAlts+                              _prodsIdecls :: Decls+                              _prodsIsemNames :: ([String])+                              _interIcomments :: ([String])+                              _interIsemDom :: ([Decl])+                              _interIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))+                              _interIwrapDecls :: Decls+                              -- "src-ag/GenerateCode.ag"(line 86, column 26)+                              (_interOinh,_interOsyn,_interOnt) =+                                  ({-# LINE 86 "src-ag/GenerateCode.ag" #-}+                                   (inh_,syn_,nt_)+                                   {-# LINE 1055 "dist/build/GenerateCode" #-}+                                   )+                              -- "src-ag/GenerateCode.ag"(line 87, column 25)+                              (_prodsOinh,_prodsOsyn,_prodsOnt) =+                                  ({-# LINE 87 "src-ag/GenerateCode.ag" #-}+                                   (inh_,syn_,nt_)+                                   {-# LINE 1061 "dist/build/GenerateCode" #-}+                                   )+                              -- "src-ag/GenerateCode.ag"(line 142, column 7)+                              _lhsOgathNts =+                                  ({-# LINE 142 "src-ag/GenerateCode.ag" #-}+                                   Set.singleton nt_+                                   {-# LINE 1067 "dist/build/GenerateCode" #-}+                                   )+                              -- "src-ag/GenerateCode.ag"(line 583, column 34)+                              _aroundMap =+                                  ({-# LINE 583 "src-ag/GenerateCode.ag" #-}+                                   Map.findWithDefault Map.empty nt_ _lhsIaroundMap+                                   {-# LINE 1073 "dist/build/GenerateCode" #-}+                                   )+                              -- "src-ag/GenerateCode.ag"(line 599, column 34)+                              _mergeMap =+                                  ({-# LINE 599 "src-ag/GenerateCode.ag" #-}+                                   Map.findWithDefault Map.empty nt_ _lhsImergeMap+                                   {-# LINE 1079 "dist/build/GenerateCode" #-}+                                   )+                              -- "src-ag/GenerateCode.ag"(line 803, column 18)+                              _semWrapper =+                                  ({-# LINE 803 "src-ag/GenerateCode.ag" #-}+                                   let params' = map getName params_+                                       inhAttrs = Map.toList inh_+                                       synAttrs = Map.toList syn_+                                       inhVars = [ SimpleExpr (attrname True _LHS a) | (a,_) <- inhAttrs ]+                                       synVars = [ SimpleExpr (attrname False _LHS a) | (a,_) <- synAttrs ]+                                       var = "sem"+                                       wrapNT = "wrap" ++ "_" ++ getName nt_+                                       inhNT = "Inh" ++ "_" ++ getName nt_+                                       synNT = "Syn" ++ "_" ++ getName nt_+                                       varPat = if  _lhsIo_newtypes+                                                    then App (sdtype nt_) [SimpleExpr var]+                                                    else SimpleExpr var+                                       evalTp | null params' = id+                                              | otherwise    = idEvalType+                                       appParams nm = TypeApp (SimpleType nm) (map SimpleType params')+                                       typeSig = TSig wrapNT (evalTp $ appParams (sdtype nt_) `Arr` (appParams inhNT `Arr` appParams synNT))+                                       mkstrict = Named _lhsIo_strictwrap+                                       mkdata n attrs = Data n params' [Record n [mkstrict (getName f++"_"++n) $ evalTp $ typeToCodeType (Just nt_) params' $ removeDeforested t | (f,t) <- attrs]] False []+                                       datas = [mkdata inhNT inhAttrs, mkdata synNT synAttrs]+                                   in datas ++ [ typeSig+                                               , Decl (Fun wrapNT [varPat, App inhNT inhVars])+                                                     (Let _interIwrapDecls (App synNT synVars))+                                                     Set.empty Set.empty+                                               ]+                                   {-# LINE 1108 "dist/build/GenerateCode" #-}+                                   )+                              -- "src-ag/GenerateCode.ag"(line 864, column 18)+                              _comment =+                                  ({-# LINE 864 "src-ag/GenerateCode.ag" #-}+                                   Comment . unlines . map ind $ ( _interIcomments ++ ("alternatives:" : map ind _prodsIcomments) )+                                   {-# LINE 1114 "dist/build/GenerateCode" #-}+                                   )+                              -- "src-ag/GenerateCode.ag"(line 926, column 19)+                              _lhsOchunks =+                                  ({-# LINE 926 "src-ag/GenerateCode.ag" #-}+                                   [ Chunk (getName nt_)+                                          (Comment (getName nt_ ++ " " ++ replicate (60 - length (getName nt_)) '-'))+                                          (if _lhsIo_pretty                  then [_comment    ]   else [])+                                          (if isJust _lhsIo_data             then [_dataDef    ]   else [])+                                          (if _lhsIo_cata && _genCata        then  _cataFun        else [])+                                          (if _lhsIo_sig                     then  _interIsemDom   else [])+                                          (if nt_ `Set.member` _lhsIwrappers then  _semWrapper     else [])+                                          (if _lhsIo_sem                     then  _prodsIdecls     else [])+                                          (if _lhsIo_sem                     then  _prodsIsemNames  else [])+                                   ]+                                   {-# LINE 1129 "dist/build/GenerateCode" #-}+                                   )+                              -- "src-ag/GenerateCode.ag"(line 995, column 18)+                              _dataDef =+                                  ({-# LINE 995 "src-ag/GenerateCode.ag" #-}+                                   let params' = map getName params_+                                       typeSyn tp = let theType =+                                                          case tp of+                                                            CommonTypes.Maybe t      -> TMaybe $ typeToCodeType (Just nt_) params' t+                                                            CommonTypes.Either t1 t2 -> TEither (typeToCodeType (Just nt_) params' t1) (typeToCodeType (Just nt_) params' t2)+                                                            CommonTypes.Map t1 t2    -> TMap (typeToCodeType (Just nt_) params' t1) (typeToCodeType (Just nt_) params' t2)+                                                            CommonTypes.IntMap t     -> TIntMap $ typeToCodeType (Just nt_) params' t+                                                            CommonTypes.List t       -> Code.List $ typeToCodeType (Just nt_) params' t+                                                            CommonTypes.Tuple ts     -> Code.TupleType [typeToCodeType (Just nt_) params' t+                                                                                                   | (_,t) <- ts+                                                                                                   ]+                                                     in Code.Type (getName nt_) params' (idEvalType theType)+                                       derivings  = maybe [] (map getName . Set.toList) (Map.lookup nt_ _lhsIderivings)+                                       dataDef    = Data (getName nt_) (map getName params_) _prodsIdataAlts (maybe False id _lhsIo_data) derivings+                                   in maybe dataDef typeSyn $ lookup nt_ _lhsItypeSyns+                                   {-# LINE 1149 "dist/build/GenerateCode" #-}+                                   )+                              -- "src-ag/GenerateCode.ag"(line 1038, column 18)+                              _genCata =+                                  ({-# LINE 1038 "src-ag/GenerateCode.ag" #-}+                                   not (nt_ `Set.member` nocatas _lhsIoptions)+                                   {-# LINE 1155 "dist/build/GenerateCode" #-}+                                   )+                              -- "src-ag/GenerateCode.ag"(line 1039, column 18)+                              _cataFun =+                                  ({-# LINE 1039 "src-ag/GenerateCode.ag" #-}+                                   let appParams nm = TypeApp (SimpleType nm) (map SimpleType (map getName params_))+                                       evalTp | null params_ = id+                                              | otherwise    = idEvalType+                                       tSig = TSig (cataname _lhsIprefix nt_)+                                                   (appQuant _lhsIquantMap nt_ $ appContext _lhsIcontextMap nt_ $ evalTp $ appParams (getName nt_) `Arr` appParams (sdtype nt_))+                                       special typ = case typ of+                                                     CommonTypes.List tp ->+                                                         let cons = SimpleExpr (semname _lhsIprefix nt_ (identifier "Cons"))+                                                             nil  = SimpleExpr (semname _lhsIprefix nt_ (identifier "Nil" ))+                                                             arg  = SimpleExpr "list"+                                                             rarg = case tp of+                                                                      NT t _ _ -> let t' = maybe t id (deforestedNt t)+                                                                                  in SimpleExpr ("(Prelude.map " ++ (cataname _lhsIprefix t') ++ " list)")+                                                                      _        -> arg+                                                             lhs = Fun (cataname _lhsIprefix nt_) [arg]+                                                             rhs = (App "Prelude.foldr" [cons,nil,rarg])+                                                         in  [Decl lhs rhs Set.empty Set.empty]+                                                     CommonTypes.Maybe tp ->+                                                         let just    = semname _lhsIprefix nt_ (identifier "Just")+                                                             nothing = semname _lhsIprefix nt_ (identifier "Nothing" )+                                                             arg  = SimpleExpr "x"+                                                             rarg = case tp of+                                                                      NT t _ _ -> let t' = maybe t id (deforestedNt t)+                                                                                  in App (cataname _lhsIprefix t') [arg]+                                                                      _        -> arg+                                                             lhs a = Fun (cataname _lhsIprefix nt_) [a]+                                                         in  [Decl (lhs (App "Prelude.Just" [arg]))     (App just [rarg])    Set.empty Set.empty+                                                             ,Decl (lhs (SimpleExpr "Prelude.Nothing")) (SimpleExpr nothing) Set.empty Set.empty+                                                             ]+                                                     CommonTypes.Either tp1 tp2 ->+                                                         let left  = semname _lhsIprefix nt_ (identifier "Left")+                                                             right = semname _lhsIprefix nt_ (identifier "Right" )+                                                             arg   = SimpleExpr "x"+                                                             rarg0 = case tp1 of+                                                                      NT t _ _ -> let t' = maybe t id (deforestedNt t)+                                                                                  in App (cataname _lhsIprefix t') [arg]+                                                                      _        -> arg+                                                             rarg1 = case tp2 of+                                                                      NT t _ _ -> let t' = maybe t id (deforestedNt t)+                                                                                  in App (cataname _lhsIprefix t') [arg]+                                                                      _        -> arg+                                                             lhs a = Fun (cataname _lhsIprefix nt_) [a]+                                                         in  [Decl (lhs (App "Prelude.Left"  [arg]))     (App left  [rarg0])    Set.empty Set.empty+                                                             ,Decl (lhs (App "Prelude.Right" [arg]))     (App right [rarg1])    Set.empty Set.empty+                                                             ]+                                                     CommonTypes.Map _ tp ->+                                                       let entry = SimpleExpr (semname _lhsIprefix nt_ (identifier "Entry"))+                                                           nil   = SimpleExpr (semname _lhsIprefix nt_ (identifier "Nil"))+                                                           arg   = SimpleExpr "m"+                                                           rarg  = case tp of+                                                                     NT t _ _ -> let t' = maybe t id (deforestedNt t)+                                                                                 in App "Data.Map.map" [SimpleExpr $ cataname _lhsIprefix t', arg]+                                                                     _        -> arg+                                                           lhs   = Fun (cataname _lhsIprefix nt_) [arg]+                                                           rhs   = App "Data.Map.foldrWithKey" [entry,nil,rarg]+                                                       in [Decl lhs rhs Set.empty Set.empty]+                                                     CommonTypes.IntMap tp ->+                                                       let entry = SimpleExpr (semname _lhsIprefix nt_ (identifier "Entry"))+                                                           nil   = SimpleExpr (semname _lhsIprefix nt_ (identifier "Nil"))+                                                           arg   = SimpleExpr "m"+                                                           rarg  = case tp of+                                                                     NT t _ _ -> let t' = maybe t id (deforestedNt t)+                                                                                 in App "Data.IntMap.map" [SimpleExpr $ cataname _lhsIprefix t', arg]+                                                                     _        -> arg+                                                           lhs   = Fun (cataname _lhsIprefix nt_) [arg]+                                                           rhs   = App "Data.IntMap.foldWithKey" [entry,nil,rarg]+                                                       in [Decl lhs rhs Set.empty Set.empty]+                                                     CommonTypes.Tuple tps ->+                                                         let con  = semname _lhsIprefix nt_ (identifier "Tuple")+                                                             tps' = [ (SimpleExpr (getName x),y) | (x,y) <- tps]+                                                             rargs = map rarg tps'+                                                             rarg (n, tp) = case tp of+                                                                      NT t _ _ -> let t' = maybe t id (deforestedNt t)+                                                                                  in App (cataname _lhsIprefix t') [n]+                                                                      _        -> n+                                                             lhs = Fun (cataname _lhsIprefix nt_) [TupleExpr (map fst tps')]+                                                             rhs = App con rargs+                                                         in  [Decl lhs rhs Set.empty Set.empty]+                                   in  Comment "cata" :+                                       (if _lhsIo_sig then [tSig] else []) +++                                       maybe _prodsIcataAlts special (lookup nt_ _lhsItypeSyns)+                                   {-# LINE 1241 "dist/build/GenerateCode" #-}+                                   )+                              -- use rule "src-ag/GenerateCode.ag"(line 744, column 86)+                              _lhsOsemDomUnfoldGath =+                                  ({-# LINE 744 "src-ag/GenerateCode.ag" #-}+                                   _interIsemDomUnfoldGath+                                   {-# LINE 1247 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOallNts =+                                  ({-# LINE 132 "src-ag/GenerateCode.ag" #-}+                                   _lhsIallNts+                                   {-# LINE 1253 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOallPragmas =+                                  ({-# LINE 73 "src-ag/GenerateCode.ag" #-}+                                   _lhsIallPragmas+                                   {-# LINE 1259 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (from local)+                              _prodsOaroundMap =+                                  ({-# LINE 578 "src-ag/GenerateCode.ag" #-}+                                   _aroundMap+                                   {-# LINE 1265 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOcontextMap =+                                  ({-# LINE 115 "src-ag/GenerateCode.ag" #-}+                                   _lhsIcontextMap+                                   {-# LINE 1271 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (from local)+                              _prodsOmergeMap =+                                  ({-# LINE 594 "src-ag/GenerateCode.ag" #-}+                                   _mergeMap+                                   {-# LINE 1277 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOo_case =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_case+                                   {-# LINE 1283 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOo_cata =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_cata+                                   {-# LINE 1289 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOo_costcentre =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_costcentre+                                   {-# LINE 1295 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOo_data =+                                  ({-# LINE 48 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_data+                                   {-# LINE 1301 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOo_linePragmas =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_linePragmas+                                   {-# LINE 1307 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOo_monadic =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_monadic+                                   {-# LINE 1313 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOo_newtypes =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_newtypes+                                   {-# LINE 1319 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOo_pretty =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_pretty+                                   {-# LINE 1325 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOo_rename =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_rename+                                   {-# LINE 1331 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOo_sem =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_sem+                                   {-# LINE 1337 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOo_sig =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_sig+                                   {-# LINE 1343 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOo_splitsems =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_splitsems+                                   {-# LINE 1349 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOo_strictwrap =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_strictwrap+                                   {-# LINE 1355 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOo_traces =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_traces+                                   {-# LINE 1361 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOo_unbox =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_unbox+                                   {-# LINE 1367 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOoptions =+                                  ({-# LINE 50 "src-ag/GenerateCode.ag" #-}+                                   _lhsIoptions+                                   {-# LINE 1373 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOparamMap =+                                  ({-# LINE 95 "src-ag/GenerateCode.ag" #-}+                                   _lhsIparamMap+                                   {-# LINE 1379 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOprefix =+                                  ({-# LINE 49 "src-ag/GenerateCode.ag" #-}+                                   _lhsIprefix+                                   {-# LINE 1385 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOquantMap =+                                  ({-# LINE 115 "src-ag/GenerateCode.ag" #-}+                                   _lhsIquantMap+                                   {-# LINE 1391 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOunfoldSemDom =+                                  ({-# LINE 750 "src-ag/GenerateCode.ag" #-}+                                   _lhsIunfoldSemDom+                                   {-# LINE 1397 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOwith_sig =+                                  ({-# LINE 851 "src-ag/GenerateCode.ag" #-}+                                   _lhsIwith_sig+                                   {-# LINE 1403 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _prodsOwrappers =+                                  ({-# LINE 987 "src-ag/GenerateCode.ag" #-}+                                   _lhsIwrappers+                                   {-# LINE 1409 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOo_case =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_case+                                   {-# LINE 1415 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOo_cata =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_cata+                                   {-# LINE 1421 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOo_costcentre =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_costcentre+                                   {-# LINE 1427 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOo_data =+                                  ({-# LINE 48 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_data+                                   {-# LINE 1433 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOo_linePragmas =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_linePragmas+                                   {-# LINE 1439 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOo_monadic =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_monadic+                                   {-# LINE 1445 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOo_newtypes =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_newtypes+                                   {-# LINE 1451 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOo_pretty =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_pretty+                                   {-# LINE 1457 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOo_rename =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_rename+                                   {-# LINE 1463 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOo_sem =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_sem+                                   {-# LINE 1469 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOo_sig =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_sig+                                   {-# LINE 1475 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOo_splitsems =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_splitsems+                                   {-# LINE 1481 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOo_strictwrap =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_strictwrap+                                   {-# LINE 1487 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOo_traces =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_traces+                                   {-# LINE 1493 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOo_unbox =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_unbox+                                   {-# LINE 1499 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOoptions =+                                  ({-# LINE 50 "src-ag/GenerateCode.ag" #-}+                                   _lhsIoptions+                                   {-# LINE 1505 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOparamMap =+                                  ({-# LINE 95 "src-ag/GenerateCode.ag" #-}+                                   _lhsIparamMap+                                   {-# LINE 1511 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _interOprefix =+                                  ({-# LINE 49 "src-ag/GenerateCode.ag" #-}+                                   _lhsIprefix+                                   {-# LINE 1517 "dist/build/GenerateCode" #-}+                                   )+                              ( _prodsIcataAlts,_prodsIcomments,_prodsIdataAlts,_prodsIdecls,_prodsIsemNames) =+                                  prods_ _prodsOallNts _prodsOallPragmas _prodsOaroundMap _prodsOcontextMap _prodsOinh _prodsOmergeMap _prodsOnt _prodsOo_case _prodsOo_cata _prodsOo_costcentre _prodsOo_data _prodsOo_linePragmas _prodsOo_monadic _prodsOo_newtypes _prodsOo_pretty _prodsOo_rename _prodsOo_sem _prodsOo_sig _prodsOo_splitsems _prodsOo_strictwrap _prodsOo_traces _prodsOo_unbox _prodsOoptions _prodsOparamMap _prodsOprefix _prodsOquantMap _prodsOsyn _prodsOunfoldSemDom _prodsOwith_sig _prodsOwrappers+                              ( _interIcomments,_interIsemDom,_interIsemDomUnfoldGath,_interIwrapDecls) =+                                  inter_ _interOinh _interOnt _interOo_case _interOo_cata _interOo_costcentre _interOo_data _interOo_linePragmas _interOo_monadic _interOo_newtypes _interOo_pretty _interOo_rename _interOo_sem _interOo_sig _interOo_splitsems _interOo_strictwrap _interOo_traces _interOo_unbox _interOoptions _interOparamMap _interOprefix _interOsyn+                              ___node =+                                  (Syn_CNonterminal _lhsOchunks _lhsOgathNts _lhsOsemDomUnfoldGath)+                          in  ( _lhsOchunks,_lhsOgathNts,_lhsOsemDomUnfoldGath))))+-- CNonterminals -----------------------------------------------+{-+   visit 0:+      inherited attributes:+         allNts               : Set NontermIdent+         allPragmas           : PragmaMap+         aroundMap            : Map NontermIdent (Map ConstructorIdent (Set Identifier))+         contextMap           : ContextMap+         derivings            : Derivings+         mergeMap             : Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))+         o_case               : Bool+         o_cata               : Bool+         o_costcentre         : Bool+         o_data               : Maybe Bool+         o_linePragmas        : Bool+         o_monadic            : Bool+         o_newtypes           : Bool+         o_pretty             : Bool+         o_rename             : Bool+         o_sem                : Bool+         o_sig                : Bool+         o_splitsems          : Bool+         o_strictwrap         : Bool+         o_traces             : Bool+         o_unbox              : Bool+         options              : Options+         paramMap             : ParamMap+         prefix               : String+         quantMap             : QuantMap+         typeSyns             : TypeSyns+         unfoldSemDom         : NontermIdent -> Int -> [String] -> Code.Type+         with_sig             : Bool+         wrappers             : Set NontermIdent+      synthesized attributes:+         chunks               : Chunks+         gathNts              : Set NontermIdent+         semDomUnfoldGath     : Map (NontermIdent, Int) ([String], Code.Type)+   alternatives:+      alternative Cons:+         child hd             : CNonterminal +         child tl             : CNonterminals +      alternative Nil:+-}+-- cata+sem_CNonterminals :: CNonterminals ->+                     T_CNonterminals+sem_CNonterminals list =+    (Prelude.foldr sem_CNonterminals_Cons sem_CNonterminals_Nil (Prelude.map sem_CNonterminal list))+-- semantic domain+newtype T_CNonterminals = T_CNonterminals ((Set NontermIdent) ->+                                           PragmaMap ->+                                           (Map NontermIdent (Map ConstructorIdent (Set Identifier))) ->+                                           ContextMap ->+                                           Derivings ->+                                           (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))) ->+                                           Bool ->+                                           Bool ->+                                           Bool ->+                                           (Maybe Bool) ->+                                           Bool ->+                                           Bool ->+                                           Bool ->+                                           Bool ->+                                           Bool ->+                                           Bool ->+                                           Bool ->+                                           Bool ->+                                           Bool ->+                                           Bool ->+                                           Bool ->+                                           Options ->+                                           ParamMap ->+                                           String ->+                                           QuantMap ->+                                           TypeSyns ->+                                           (NontermIdent -> Int -> [String] -> Code.Type) ->+                                           Bool ->+                                           (Set NontermIdent) ->+                                           ( Chunks,(Set NontermIdent),(Map (NontermIdent, Int) ([String], Code.Type))))+data Inh_CNonterminals = Inh_CNonterminals {allNts_Inh_CNonterminals :: !((Set NontermIdent)),allPragmas_Inh_CNonterminals :: !(PragmaMap),aroundMap_Inh_CNonterminals :: !((Map NontermIdent (Map ConstructorIdent (Set Identifier)))),contextMap_Inh_CNonterminals :: !(ContextMap),derivings_Inh_CNonterminals :: !(Derivings),mergeMap_Inh_CNonterminals :: !((Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier]))))),o_case_Inh_CNonterminals :: !(Bool),o_cata_Inh_CNonterminals :: !(Bool),o_costcentre_Inh_CNonterminals :: !(Bool),o_data_Inh_CNonterminals :: !((Maybe Bool)),o_linePragmas_Inh_CNonterminals :: !(Bool),o_monadic_Inh_CNonterminals :: !(Bool),o_newtypes_Inh_CNonterminals :: !(Bool),o_pretty_Inh_CNonterminals :: !(Bool),o_rename_Inh_CNonterminals :: !(Bool),o_sem_Inh_CNonterminals :: !(Bool),o_sig_Inh_CNonterminals :: !(Bool),o_splitsems_Inh_CNonterminals :: !(Bool),o_strictwrap_Inh_CNonterminals :: !(Bool),o_traces_Inh_CNonterminals :: !(Bool),o_unbox_Inh_CNonterminals :: !(Bool),options_Inh_CNonterminals :: !(Options),paramMap_Inh_CNonterminals :: !(ParamMap),prefix_Inh_CNonterminals :: !(String),quantMap_Inh_CNonterminals :: !(QuantMap),typeSyns_Inh_CNonterminals :: !(TypeSyns),unfoldSemDom_Inh_CNonterminals :: !((NontermIdent -> Int -> [String] -> Code.Type)),with_sig_Inh_CNonterminals :: !(Bool),wrappers_Inh_CNonterminals :: !((Set NontermIdent))}+data Syn_CNonterminals = Syn_CNonterminals {chunks_Syn_CNonterminals :: !(Chunks),gathNts_Syn_CNonterminals :: !((Set NontermIdent)),semDomUnfoldGath_Syn_CNonterminals :: !((Map (NontermIdent, Int) ([String], Code.Type)))}+wrap_CNonterminals :: T_CNonterminals ->+                      Inh_CNonterminals ->+                      Syn_CNonterminals+wrap_CNonterminals (T_CNonterminals sem) (Inh_CNonterminals _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIderivings _lhsImergeMap _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsItypeSyns _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers) =+    (let ( _lhsOchunks,_lhsOgathNts,_lhsOsemDomUnfoldGath) = sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIderivings _lhsImergeMap _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsItypeSyns _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers+     in  (Syn_CNonterminals _lhsOchunks _lhsOgathNts _lhsOsemDomUnfoldGath))+sem_CNonterminals_Cons :: T_CNonterminal ->+                          T_CNonterminals ->+                          T_CNonterminals+sem_CNonterminals_Cons (T_CNonterminal hd_) (T_CNonterminals tl_) =+    (T_CNonterminals (\ _lhsIallNts+                        _lhsIallPragmas+                        _lhsIaroundMap+                        _lhsIcontextMap+                        _lhsIderivings+                        _lhsImergeMap+                        _lhsIo_case+                        _lhsIo_cata+                        _lhsIo_costcentre+                        _lhsIo_data+                        _lhsIo_linePragmas+                        _lhsIo_monadic+                        _lhsIo_newtypes+                        _lhsIo_pretty+                        _lhsIo_rename+                        _lhsIo_sem+                        _lhsIo_sig+                        _lhsIo_splitsems+                        _lhsIo_strictwrap+                        _lhsIo_traces+                        _lhsIo_unbox+                        _lhsIoptions+                        _lhsIparamMap+                        _lhsIprefix+                        _lhsIquantMap+                        _lhsItypeSyns+                        _lhsIunfoldSemDom+                        _lhsIwith_sig+                        _lhsIwrappers ->+                          (let _lhsOchunks :: Chunks+                               _lhsOgathNts :: (Set NontermIdent)+                               _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))+                               _hdOallNts :: (Set NontermIdent)+                               _hdOallPragmas :: PragmaMap+                               _hdOaroundMap :: (Map NontermIdent (Map ConstructorIdent (Set Identifier)))+                               _hdOcontextMap :: ContextMap+                               _hdOderivings :: Derivings+                               _hdOmergeMap :: (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier]))))+                               _hdOo_case :: Bool+                               _hdOo_cata :: Bool+                               _hdOo_costcentre :: Bool+                               _hdOo_data :: (Maybe Bool)+                               _hdOo_linePragmas :: Bool+                               _hdOo_monadic :: Bool+                               _hdOo_newtypes :: Bool+                               _hdOo_pretty :: Bool+                               _hdOo_rename :: Bool+                               _hdOo_sem :: Bool+                               _hdOo_sig :: Bool+                               _hdOo_splitsems :: Bool+                               _hdOo_strictwrap :: Bool+                               _hdOo_traces :: Bool+                               _hdOo_unbox :: Bool+                               _hdOoptions :: Options+                               _hdOparamMap :: ParamMap+                               _hdOprefix :: String+                               _hdOquantMap :: QuantMap+                               _hdOtypeSyns :: TypeSyns+                               _hdOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)+                               _hdOwith_sig :: Bool+                               _hdOwrappers :: (Set NontermIdent)+                               _tlOallNts :: (Set NontermIdent)+                               _tlOallPragmas :: PragmaMap+                               _tlOaroundMap :: (Map NontermIdent (Map ConstructorIdent (Set Identifier)))+                               _tlOcontextMap :: ContextMap+                               _tlOderivings :: Derivings+                               _tlOmergeMap :: (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier]))))+                               _tlOo_case :: Bool+                               _tlOo_cata :: Bool+                               _tlOo_costcentre :: Bool+                               _tlOo_data :: (Maybe Bool)+                               _tlOo_linePragmas :: Bool+                               _tlOo_monadic :: Bool+                               _tlOo_newtypes :: Bool+                               _tlOo_pretty :: Bool+                               _tlOo_rename :: Bool+                               _tlOo_sem :: Bool+                               _tlOo_sig :: Bool+                               _tlOo_splitsems :: Bool+                               _tlOo_strictwrap :: Bool+                               _tlOo_traces :: Bool+                               _tlOo_unbox :: Bool+                               _tlOoptions :: Options+                               _tlOparamMap :: ParamMap+                               _tlOprefix :: String+                               _tlOquantMap :: QuantMap+                               _tlOtypeSyns :: TypeSyns+                               _tlOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)+                               _tlOwith_sig :: Bool+                               _tlOwrappers :: (Set NontermIdent)+                               _hdIchunks :: Chunks+                               _hdIgathNts :: (Set NontermIdent)+                               _hdIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))+                               _tlIchunks :: Chunks+                               _tlIgathNts :: (Set NontermIdent)+                               _tlIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))+                               -- use rule "src-ag/GenerateCode.ag"(line 918, column 49)+                               _lhsOchunks =+                                   ({-# LINE 918 "src-ag/GenerateCode.ag" #-}+                                    _hdIchunks ++ _tlIchunks+                                    {-# LINE 1717 "dist/build/GenerateCode" #-}+                                    )+                               -- use rule "src-ag/GenerateCode.ag"(line 138, column 47)+                               _lhsOgathNts =+                                   ({-# LINE 138 "src-ag/GenerateCode.ag" #-}+                                    _hdIgathNts `Set.union` _tlIgathNts+                                    {-# LINE 1723 "dist/build/GenerateCode" #-}+                                    )+                               -- use rule "src-ag/GenerateCode.ag"(line 744, column 86)+                               _lhsOsemDomUnfoldGath =+                                   ({-# LINE 744 "src-ag/GenerateCode.ag" #-}+                                    _hdIsemDomUnfoldGath `Map.union` _tlIsemDomUnfoldGath+                                    {-# LINE 1729 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOallNts =+                                   ({-# LINE 132 "src-ag/GenerateCode.ag" #-}+                                    _lhsIallNts+                                    {-# LINE 1735 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOallPragmas =+                                   ({-# LINE 73 "src-ag/GenerateCode.ag" #-}+                                    _lhsIallPragmas+                                    {-# LINE 1741 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOaroundMap =+                                   ({-# LINE 575 "src-ag/GenerateCode.ag" #-}+                                    _lhsIaroundMap+                                    {-# LINE 1747 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOcontextMap =+                                   ({-# LINE 115 "src-ag/GenerateCode.ag" #-}+                                    _lhsIcontextMap+                                    {-# LINE 1753 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOderivings =+                                   ({-# LINE 986 "src-ag/GenerateCode.ag" #-}+                                    _lhsIderivings+                                    {-# LINE 1759 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOmergeMap =+                                   ({-# LINE 591 "src-ag/GenerateCode.ag" #-}+                                    _lhsImergeMap+                                    {-# LINE 1765 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOo_case =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_case+                                    {-# LINE 1771 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOo_cata =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_cata+                                    {-# LINE 1777 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOo_costcentre =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_costcentre+                                    {-# LINE 1783 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOo_data =+                                   ({-# LINE 48 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_data+                                    {-# LINE 1789 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOo_linePragmas =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_linePragmas+                                    {-# LINE 1795 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOo_monadic =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_monadic+                                    {-# LINE 1801 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOo_newtypes =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_newtypes+                                    {-# LINE 1807 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOo_pretty =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_pretty+                                    {-# LINE 1813 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOo_rename =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_rename+                                    {-# LINE 1819 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOo_sem =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_sem+                                    {-# LINE 1825 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOo_sig =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_sig+                                    {-# LINE 1831 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOo_splitsems =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_splitsems+                                    {-# LINE 1837 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOo_strictwrap =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_strictwrap+                                    {-# LINE 1843 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOo_traces =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_traces+                                    {-# LINE 1849 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOo_unbox =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_unbox+                                    {-# LINE 1855 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOoptions =+                                   ({-# LINE 50 "src-ag/GenerateCode.ag" #-}+                                    _lhsIoptions+                                    {-# LINE 1861 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOparamMap =+                                   ({-# LINE 95 "src-ag/GenerateCode.ag" #-}+                                    _lhsIparamMap+                                    {-# LINE 1867 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOprefix =+                                   ({-# LINE 49 "src-ag/GenerateCode.ag" #-}+                                    _lhsIprefix+                                    {-# LINE 1873 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOquantMap =+                                   ({-# LINE 115 "src-ag/GenerateCode.ag" #-}+                                    _lhsIquantMap+                                    {-# LINE 1879 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOtypeSyns =+                                   ({-# LINE 986 "src-ag/GenerateCode.ag" #-}+                                    _lhsItypeSyns+                                    {-# LINE 1885 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOunfoldSemDom =+                                   ({-# LINE 750 "src-ag/GenerateCode.ag" #-}+                                    _lhsIunfoldSemDom+                                    {-# LINE 1891 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOwith_sig =+                                   ({-# LINE 851 "src-ag/GenerateCode.ag" #-}+                                    _lhsIwith_sig+                                    {-# LINE 1897 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _hdOwrappers =+                                   ({-# LINE 987 "src-ag/GenerateCode.ag" #-}+                                    _lhsIwrappers+                                    {-# LINE 1903 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOallNts =+                                   ({-# LINE 132 "src-ag/GenerateCode.ag" #-}+                                    _lhsIallNts+                                    {-# LINE 1909 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOallPragmas =+                                   ({-# LINE 73 "src-ag/GenerateCode.ag" #-}+                                    _lhsIallPragmas+                                    {-# LINE 1915 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOaroundMap =+                                   ({-# LINE 575 "src-ag/GenerateCode.ag" #-}+                                    _lhsIaroundMap+                                    {-# LINE 1921 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOcontextMap =+                                   ({-# LINE 115 "src-ag/GenerateCode.ag" #-}+                                    _lhsIcontextMap+                                    {-# LINE 1927 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOderivings =+                                   ({-# LINE 986 "src-ag/GenerateCode.ag" #-}+                                    _lhsIderivings+                                    {-# LINE 1933 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOmergeMap =+                                   ({-# LINE 591 "src-ag/GenerateCode.ag" #-}+                                    _lhsImergeMap+                                    {-# LINE 1939 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOo_case =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_case+                                    {-# LINE 1945 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOo_cata =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_cata+                                    {-# LINE 1951 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOo_costcentre =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_costcentre+                                    {-# LINE 1957 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOo_data =+                                   ({-# LINE 48 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_data+                                    {-# LINE 1963 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOo_linePragmas =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_linePragmas+                                    {-# LINE 1969 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOo_monadic =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_monadic+                                    {-# LINE 1975 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOo_newtypes =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_newtypes+                                    {-# LINE 1981 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOo_pretty =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_pretty+                                    {-# LINE 1987 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOo_rename =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_rename+                                    {-# LINE 1993 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOo_sem =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_sem+                                    {-# LINE 1999 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOo_sig =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_sig+                                    {-# LINE 2005 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOo_splitsems =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_splitsems+                                    {-# LINE 2011 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOo_strictwrap =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_strictwrap+                                    {-# LINE 2017 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOo_traces =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_traces+                                    {-# LINE 2023 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOo_unbox =+                                   ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                    _lhsIo_unbox+                                    {-# LINE 2029 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOoptions =+                                   ({-# LINE 50 "src-ag/GenerateCode.ag" #-}+                                    _lhsIoptions+                                    {-# LINE 2035 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOparamMap =+                                   ({-# LINE 95 "src-ag/GenerateCode.ag" #-}+                                    _lhsIparamMap+                                    {-# LINE 2041 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOprefix =+                                   ({-# LINE 49 "src-ag/GenerateCode.ag" #-}+                                    _lhsIprefix+                                    {-# LINE 2047 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOquantMap =+                                   ({-# LINE 115 "src-ag/GenerateCode.ag" #-}+                                    _lhsIquantMap+                                    {-# LINE 2053 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOtypeSyns =+                                   ({-# LINE 986 "src-ag/GenerateCode.ag" #-}+                                    _lhsItypeSyns+                                    {-# LINE 2059 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOunfoldSemDom =+                                   ({-# LINE 750 "src-ag/GenerateCode.ag" #-}+                                    _lhsIunfoldSemDom+                                    {-# LINE 2065 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOwith_sig =+                                   ({-# LINE 851 "src-ag/GenerateCode.ag" #-}+                                    _lhsIwith_sig+                                    {-# LINE 2071 "dist/build/GenerateCode" #-}+                                    )+                               -- copy rule (down)+                               _tlOwrappers =+                                   ({-# LINE 987 "src-ag/GenerateCode.ag" #-}+                                    _lhsIwrappers+                                    {-# LINE 2077 "dist/build/GenerateCode" #-}+                                    )+                               ( _hdIchunks,_hdIgathNts,_hdIsemDomUnfoldGath) =+                                   hd_ _hdOallNts _hdOallPragmas _hdOaroundMap _hdOcontextMap _hdOderivings _hdOmergeMap _hdOo_case _hdOo_cata _hdOo_costcentre _hdOo_data _hdOo_linePragmas _hdOo_monadic _hdOo_newtypes _hdOo_pretty _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_splitsems _hdOo_strictwrap _hdOo_traces _hdOo_unbox _hdOoptions _hdOparamMap _hdOprefix _hdOquantMap _hdOtypeSyns _hdOunfoldSemDom _hdOwith_sig _hdOwrappers+                               ( _tlIchunks,_tlIgathNts,_tlIsemDomUnfoldGath) =+                                   tl_ _tlOallNts _tlOallPragmas _tlOaroundMap _tlOcontextMap _tlOderivings _tlOmergeMap _tlOo_case _tlOo_cata _tlOo_costcentre _tlOo_data _tlOo_linePragmas _tlOo_monadic _tlOo_newtypes _tlOo_pretty _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_splitsems _tlOo_strictwrap _tlOo_traces _tlOo_unbox _tlOoptions _tlOparamMap _tlOprefix _tlOquantMap _tlOtypeSyns _tlOunfoldSemDom _tlOwith_sig _tlOwrappers+                               ___node =+                                   (Syn_CNonterminals _lhsOchunks _lhsOgathNts _lhsOsemDomUnfoldGath)+                           in  ( _lhsOchunks,_lhsOgathNts,_lhsOsemDomUnfoldGath))))+sem_CNonterminals_Nil :: T_CNonterminals+sem_CNonterminals_Nil =+    (T_CNonterminals (\ _lhsIallNts+                        _lhsIallPragmas+                        _lhsIaroundMap+                        _lhsIcontextMap+                        _lhsIderivings+                        _lhsImergeMap+                        _lhsIo_case+                        _lhsIo_cata+                        _lhsIo_costcentre+                        _lhsIo_data+                        _lhsIo_linePragmas+                        _lhsIo_monadic+                        _lhsIo_newtypes+                        _lhsIo_pretty+                        _lhsIo_rename+                        _lhsIo_sem+                        _lhsIo_sig+                        _lhsIo_splitsems+                        _lhsIo_strictwrap+                        _lhsIo_traces+                        _lhsIo_unbox+                        _lhsIoptions+                        _lhsIparamMap+                        _lhsIprefix+                        _lhsIquantMap+                        _lhsItypeSyns+                        _lhsIunfoldSemDom+                        _lhsIwith_sig+                        _lhsIwrappers ->+                          (let _lhsOchunks :: Chunks+                               _lhsOgathNts :: (Set NontermIdent)+                               _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))+                               -- use rule "src-ag/GenerateCode.ag"(line 918, column 49)+                               _lhsOchunks =+                                   ({-# LINE 918 "src-ag/GenerateCode.ag" #-}+                                    []+                                    {-# LINE 2124 "dist/build/GenerateCode" #-}+                                    )+                               -- use rule "src-ag/GenerateCode.ag"(line 138, column 47)+                               _lhsOgathNts =+                                   ({-# LINE 138 "src-ag/GenerateCode.ag" #-}+                                    Set.empty+                                    {-# LINE 2130 "dist/build/GenerateCode" #-}+                                    )+                               -- use rule "src-ag/GenerateCode.ag"(line 744, column 86)+                               _lhsOsemDomUnfoldGath =+                                   ({-# LINE 744 "src-ag/GenerateCode.ag" #-}+                                    Map.empty+                                    {-# LINE 2136 "dist/build/GenerateCode" #-}+                                    )+                               ___node =+                                   (Syn_CNonterminals _lhsOchunks _lhsOgathNts _lhsOsemDomUnfoldGath)+                           in  ( _lhsOchunks,_lhsOgathNts,_lhsOsemDomUnfoldGath))))+-- CProduction -------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allNts               : Set NontermIdent+         allPragmas           : PragmaMap+         aroundMap            : Map ConstructorIdent (Set Identifier)+         contextMap           : ContextMap+         inh                  : Attributes+         mergeMap             : Map ConstructorIdent (Map Identifier (Identifier, [Identifier]))+         nt                   : NontermIdent+         o_case               : Bool+         o_cata               : Bool+         o_costcentre         : Bool+         o_data               : Maybe Bool+         o_linePragmas        : Bool+         o_monadic            : Bool+         o_newtypes           : Bool+         o_pretty             : Bool+         o_rename             : Bool+         o_sem                : Bool+         o_sig                : Bool+         o_splitsems          : Bool+         o_strictwrap         : Bool+         o_traces             : Bool+         o_unbox              : Bool+         options              : Options+         paramMap             : ParamMap+         prefix               : String+         quantMap             : QuantMap+         syn                  : Attributes+         unfoldSemDom         : NontermIdent -> Int -> [String] -> Code.Type+         with_sig             : Bool+         wrappers             : Set NontermIdent+      synthesized attributes:+         cataAlt              : Decl+         comments             : [String]+         dataAlt              : DataAlt+         decls                : Decls+         semNames             : [String]+   alternatives:+      alternative CProduction:+         child con            : {ConstructorIdent}+         child visits         : CVisits +         child children       : {[(Identifier,Type,ChildKind)]}+         child terminals      : {[Identifier]}+         visit 0:+            local paramInstMap : _+            local aroundMap   : _+            local mergeMap    : _+            local firstOrderChildren : _+            local params      : _+-}+-- cata+sem_CProduction :: CProduction ->+                   T_CProduction+sem_CProduction (CProduction _con _visits _children _terminals) =+    (sem_CProduction_CProduction _con (sem_CVisits _visits) _children _terminals)+-- semantic domain+newtype T_CProduction = T_CProduction ((Set NontermIdent) ->+                                       PragmaMap ->+                                       (Map ConstructorIdent (Set Identifier)) ->+                                       ContextMap ->+                                       Attributes ->+                                       (Map ConstructorIdent (Map Identifier (Identifier, [Identifier]))) ->+                                       NontermIdent ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       (Maybe Bool) ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Options ->+                                       ParamMap ->+                                       String ->+                                       QuantMap ->+                                       Attributes ->+                                       (NontermIdent -> Int -> [String] -> Code.Type) ->+                                       Bool ->+                                       (Set NontermIdent) ->+                                       ( Decl,([String]),DataAlt,Decls,([String])))+data Inh_CProduction = Inh_CProduction {allNts_Inh_CProduction :: !((Set NontermIdent)),allPragmas_Inh_CProduction :: !(PragmaMap),aroundMap_Inh_CProduction :: !((Map ConstructorIdent (Set Identifier))),contextMap_Inh_CProduction :: !(ContextMap),inh_Inh_CProduction :: !(Attributes),mergeMap_Inh_CProduction :: !((Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))),nt_Inh_CProduction :: !(NontermIdent),o_case_Inh_CProduction :: !(Bool),o_cata_Inh_CProduction :: !(Bool),o_costcentre_Inh_CProduction :: !(Bool),o_data_Inh_CProduction :: !((Maybe Bool)),o_linePragmas_Inh_CProduction :: !(Bool),o_monadic_Inh_CProduction :: !(Bool),o_newtypes_Inh_CProduction :: !(Bool),o_pretty_Inh_CProduction :: !(Bool),o_rename_Inh_CProduction :: !(Bool),o_sem_Inh_CProduction :: !(Bool),o_sig_Inh_CProduction :: !(Bool),o_splitsems_Inh_CProduction :: !(Bool),o_strictwrap_Inh_CProduction :: !(Bool),o_traces_Inh_CProduction :: !(Bool),o_unbox_Inh_CProduction :: !(Bool),options_Inh_CProduction :: !(Options),paramMap_Inh_CProduction :: !(ParamMap),prefix_Inh_CProduction :: !(String),quantMap_Inh_CProduction :: !(QuantMap),syn_Inh_CProduction :: !(Attributes),unfoldSemDom_Inh_CProduction :: !((NontermIdent -> Int -> [String] -> Code.Type)),with_sig_Inh_CProduction :: !(Bool),wrappers_Inh_CProduction :: !((Set NontermIdent))}+data Syn_CProduction = Syn_CProduction {cataAlt_Syn_CProduction :: !(Decl),comments_Syn_CProduction :: !(([String])),dataAlt_Syn_CProduction :: !(DataAlt),decls_Syn_CProduction :: !(Decls),semNames_Syn_CProduction :: !(([String]))}+wrap_CProduction :: T_CProduction ->+                    Inh_CProduction ->+                    Syn_CProduction+wrap_CProduction (T_CProduction sem) (Inh_CProduction _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIinh _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsIsyn _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers) =+    (let ( _lhsOcataAlt,_lhsOcomments,_lhsOdataAlt,_lhsOdecls,_lhsOsemNames) = sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIinh _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsIsyn _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers+     in  (Syn_CProduction _lhsOcataAlt _lhsOcomments _lhsOdataAlt _lhsOdecls _lhsOsemNames))+sem_CProduction_CProduction :: ConstructorIdent ->+                               T_CVisits ->+                               ([(Identifier,Type,ChildKind)]) ->+                               ([Identifier]) ->+                               T_CProduction+sem_CProduction_CProduction con_ (T_CVisits visits_) children_ terminals_ =+    (T_CProduction (\ _lhsIallNts+                      _lhsIallPragmas+                      _lhsIaroundMap+                      _lhsIcontextMap+                      _lhsIinh+                      _lhsImergeMap+                      _lhsInt+                      _lhsIo_case+                      _lhsIo_cata+                      _lhsIo_costcentre+                      _lhsIo_data+                      _lhsIo_linePragmas+                      _lhsIo_monadic+                      _lhsIo_newtypes+                      _lhsIo_pretty+                      _lhsIo_rename+                      _lhsIo_sem+                      _lhsIo_sig+                      _lhsIo_splitsems+                      _lhsIo_strictwrap+                      _lhsIo_traces+                      _lhsIo_unbox+                      _lhsIoptions+                      _lhsIparamMap+                      _lhsIprefix+                      _lhsIquantMap+                      _lhsIsyn+                      _lhsIunfoldSemDom+                      _lhsIwith_sig+                      _lhsIwrappers ->+                        (let _visitsOcon :: ConstructorIdent+                             _visitsOterminals :: ([Identifier])+                             _visitsOvisitedSet :: (Set Identifier)+                             _visitsOnr :: Int+                             _visitsOchildren :: ([(Identifier,Type, ChildKind)])+                             _visitsOinstVisitNrs :: (Map Identifier Int)+                             _lhsOcomments :: ([String])+                             _lhsOdataAlt :: DataAlt+                             _lhsOcataAlt :: Decl+                             _lhsOdecls :: Decls+                             _lhsOsemNames :: ([String])+                             _visitsOallNts :: (Set NontermIdent)+                             _visitsOallPragmas :: PragmaMap+                             _visitsOaroundMap :: (Set Identifier)+                             _visitsOcontextMap :: ContextMap+                             _visitsOinh :: Attributes+                             _visitsOmergeMap :: (Map Identifier (Identifier, [Identifier]))+                             _visitsOnt :: NontermIdent+                             _visitsOo_case :: Bool+                             _visitsOo_cata :: Bool+                             _visitsOo_costcentre :: Bool+                             _visitsOo_data :: (Maybe Bool)+                             _visitsOo_linePragmas :: Bool+                             _visitsOo_monadic :: Bool+                             _visitsOo_newtypes :: Bool+                             _visitsOo_pretty :: Bool+                             _visitsOo_rename :: Bool+                             _visitsOo_sem :: Bool+                             _visitsOo_sig :: Bool+                             _visitsOo_splitsems :: Bool+                             _visitsOo_strictwrap :: Bool+                             _visitsOo_traces :: Bool+                             _visitsOo_unbox :: Bool+                             _visitsOoptions :: Options+                             _visitsOparamInstMap :: (Map Identifier (NontermIdent, [String]))+                             _visitsOparamMap :: ParamMap+                             _visitsOprefix :: String+                             _visitsOquantMap :: QuantMap+                             _visitsOsyn :: Attributes+                             _visitsOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)+                             _visitsOwith_sig :: Bool+                             _visitsOwrappers :: (Set NontermIdent)+                             _visitsIcomments :: ([String])+                             _visitsIdecls :: Decls+                             _visitsIgatherInstVisitNrs :: (Map Identifier Int)+                             _visitsIintra :: Exprs+                             _visitsIintraVars :: (Set String)+                             _visitsIisNil :: Bool+                             _visitsIsemNames :: ([String])+                             _visitsIvisitedSet :: (Set Identifier)+                             -- "src-ag/GenerateCode.ag"(line 92, column 19)+                             _visitsOcon =+                                 ({-# LINE 92 "src-ag/GenerateCode.ag" #-}+                                  con_+                                  {-# LINE 2329 "dist/build/GenerateCode" #-}+                                  )+                             -- "src-ag/GenerateCode.ag"(line 93, column 20)+                             _visitsOterminals =+                                 ({-# LINE 93 "src-ag/GenerateCode.ag" #-}+                                  terminals_+                                  {-# LINE 2335 "dist/build/GenerateCode" #-}+                                  )+                             -- "src-ag/GenerateCode.ag"(line 105, column 7)+                             _paramInstMap =+                                 ({-# LINE 105 "src-ag/GenerateCode.ag" #-}+                                  Map.fromList [(nm, (extractNonterminal tp, tps)) | (nm,tp,_) <- children_, let tps = map cleanupArg $ nontermArgs tp, not (null tps) ]+                                  {-# LINE 2341 "dist/build/GenerateCode" #-}+                                  )+                             -- "src-ag/GenerateCode.ag"(line 146, column 32)+                             _visitsOvisitedSet =+                                 ({-# LINE 146 "src-ag/GenerateCode.ag" #-}+                                  Set.empty+                                  {-# LINE 2347 "dist/build/GenerateCode" #-}+                                  )+                             -- "src-ag/GenerateCode.ag"(line 280, column 18)+                             _visitsOnr =+                                 ({-# LINE 280 "src-ag/GenerateCode.ag" #-}+                                  0+                                  {-# LINE 2353 "dist/build/GenerateCode" #-}+                                  )+                             -- "src-ag/GenerateCode.ag"(line 412, column 18)+                             _visitsOchildren =+                                 ({-# LINE 412 "src-ag/GenerateCode.ag" #-}+                                  children_+                                  {-# LINE 2359 "dist/build/GenerateCode" #-}+                                  )+                             -- "src-ag/GenerateCode.ag"(line 564, column 7)+                             _visitsOinstVisitNrs =+                                 ({-# LINE 564 "src-ag/GenerateCode.ag" #-}+                                  _visitsIgatherInstVisitNrs+                                  {-# LINE 2365 "dist/build/GenerateCode" #-}+                                  )+                             -- "src-ag/GenerateCode.ag"(line 584, column 34)+                             _aroundMap =+                                 ({-# LINE 584 "src-ag/GenerateCode.ag" #-}+                                  Map.findWithDefault Set.empty con_ _lhsIaroundMap+                                  {-# LINE 2371 "dist/build/GenerateCode" #-}+                                  )+                             -- "src-ag/GenerateCode.ag"(line 600, column 34)+                             _mergeMap =+                                 ({-# LINE 600 "src-ag/GenerateCode.ag" #-}+                                  Map.findWithDefault Map.empty con_ _lhsImergeMap+                                  {-# LINE 2377 "dist/build/GenerateCode" #-}+                                  )+                             -- "src-ag/GenerateCode.ag"(line 879, column 18)+                             _firstOrderChildren =+                                 ({-# LINE 879 "src-ag/GenerateCode.ag" #-}+                                  [ (nm,fromJust mb,virt) | (nm,tp,virt) <- children_, let mb = isFirstOrder virt tp, isJust mb ]+                                  {-# LINE 2383 "dist/build/GenerateCode" #-}+                                  )+                             -- "src-ag/GenerateCode.ag"(line 880, column 18)+                             _lhsOcomments =+                                 ({-# LINE 880 "src-ag/GenerateCode.ag" #-}+                                  ("alternative " ++ getName con_ ++ ":")+                                  : map ind (  map (\(x,y,_) -> makeLocalComment 14 "child" x (Just y)) _firstOrderChildren+                                            ++ _visitsIcomments+                                            )+                                  {-# LINE 2392 "dist/build/GenerateCode" #-}+                                  )+                             -- "src-ag/GenerateCode.ag"(line 1019, column 17)+                             _params =+                                 ({-# LINE 1019 "src-ag/GenerateCode.ag" #-}+                                  map getName $ Map.findWithDefault [] _lhsInt _lhsIparamMap+                                  {-# LINE 2398 "dist/build/GenerateCode" #-}+                                  )+                             -- "src-ag/GenerateCode.ag"(line 1020, column 17)+                             _lhsOdataAlt =+                                 ({-# LINE 1020 "src-ag/GenerateCode.ag" #-}+                                  let conNm = conname _lhsIo_rename _lhsInt con_+                                      mkFields f = map (\(nm,t,_) -> f _lhsInt con_ nm (typeToCodeType (Just _lhsInt) _params     $ removeDeforested t)) _firstOrderChildren+                                  in if dataRecords _lhsIoptions+                                     then Record conNm $ mkFields $ toNamedType (strictData _lhsIoptions)+                                     else DataAlt conNm $ mkFields $ \_ _ _ t -> t+                                  {-# LINE 2408 "dist/build/GenerateCode" #-}+                                  )+                             -- "src-ag/GenerateCode.ag"(line 1131, column 17)+                             _lhsOcataAlt =+                                 ({-# LINE 1131 "src-ag/GenerateCode.ag" #-}+                                  let lhs = Fun (cataname _lhsIprefix _lhsInt) [lhs_pat]+                                      lhs_pat = App (conname _lhsIo_rename _lhsInt con_)+                                                     (map (\(n,_,_) -> SimpleExpr $ locname $ n) _firstOrderChildren    )+                                      rhs = App (semname _lhsIprefix _lhsInt con_)+                                                 (map argument _firstOrderChildren    )+                                      argument (nm,NT tp _ _,_) = App (cataname _lhsIprefix tp)+                                                                       [SimpleExpr (locname nm)]+                                      argument (nm, _,_)    = SimpleExpr (locname nm)+                                   in Decl lhs rhs Set.empty Set.empty+                                  {-# LINE 2422 "dist/build/GenerateCode" #-}+                                  )+                             -- use rule "src-ag/GenerateCode.ag"(line 919, column 44)+                             _lhsOdecls =+                                 ({-# LINE 919 "src-ag/GenerateCode.ag" #-}+                                  _visitsIdecls+                                  {-# LINE 2428 "dist/build/GenerateCode" #-}+                                  )+                             -- use rule "src-ag/GenerateCode.ag"(line 1146, column 61)+                             _lhsOsemNames =+                                 ({-# LINE 1146 "src-ag/GenerateCode.ag" #-}+                                  _visitsIsemNames+                                  {-# LINE 2434 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOallNts =+                                 ({-# LINE 132 "src-ag/GenerateCode.ag" #-}+                                  _lhsIallNts+                                  {-# LINE 2440 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOallPragmas =+                                 ({-# LINE 73 "src-ag/GenerateCode.ag" #-}+                                  _lhsIallPragmas+                                  {-# LINE 2446 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (from local)+                             _visitsOaroundMap =+                                 ({-# LINE 580 "src-ag/GenerateCode.ag" #-}+                                  _aroundMap+                                  {-# LINE 2452 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOcontextMap =+                                 ({-# LINE 115 "src-ag/GenerateCode.ag" #-}+                                  _lhsIcontextMap+                                  {-# LINE 2458 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOinh =+                                 ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                  _lhsIinh+                                  {-# LINE 2464 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (from local)+                             _visitsOmergeMap =+                                 ({-# LINE 596 "src-ag/GenerateCode.ag" #-}+                                  _mergeMap+                                  {-# LINE 2470 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOnt =+                                 ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                  _lhsInt+                                  {-# LINE 2476 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOo_case =+                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                  _lhsIo_case+                                  {-# LINE 2482 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOo_cata =+                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                  _lhsIo_cata+                                  {-# LINE 2488 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOo_costcentre =+                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                  _lhsIo_costcentre+                                  {-# LINE 2494 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOo_data =+                                 ({-# LINE 48 "src-ag/GenerateCode.ag" #-}+                                  _lhsIo_data+                                  {-# LINE 2500 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOo_linePragmas =+                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                  _lhsIo_linePragmas+                                  {-# LINE 2506 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOo_monadic =+                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                  _lhsIo_monadic+                                  {-# LINE 2512 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOo_newtypes =+                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                  _lhsIo_newtypes+                                  {-# LINE 2518 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOo_pretty =+                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                  _lhsIo_pretty+                                  {-# LINE 2524 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOo_rename =+                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                  _lhsIo_rename+                                  {-# LINE 2530 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOo_sem =+                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                  _lhsIo_sem+                                  {-# LINE 2536 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOo_sig =+                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                  _lhsIo_sig+                                  {-# LINE 2542 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOo_splitsems =+                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                  _lhsIo_splitsems+                                  {-# LINE 2548 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOo_strictwrap =+                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                  _lhsIo_strictwrap+                                  {-# LINE 2554 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOo_traces =+                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                  _lhsIo_traces+                                  {-# LINE 2560 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOo_unbox =+                                 ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                  _lhsIo_unbox+                                  {-# LINE 2566 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOoptions =+                                 ({-# LINE 50 "src-ag/GenerateCode.ag" #-}+                                  _lhsIoptions+                                  {-# LINE 2572 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (from local)+                             _visitsOparamInstMap =+                                 ({-# LINE 101 "src-ag/GenerateCode.ag" #-}+                                  _paramInstMap+                                  {-# LINE 2578 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOparamMap =+                                 ({-# LINE 95 "src-ag/GenerateCode.ag" #-}+                                  _lhsIparamMap+                                  {-# LINE 2584 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOprefix =+                                 ({-# LINE 49 "src-ag/GenerateCode.ag" #-}+                                  _lhsIprefix+                                  {-# LINE 2590 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOquantMap =+                                 ({-# LINE 115 "src-ag/GenerateCode.ag" #-}+                                  _lhsIquantMap+                                  {-# LINE 2596 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOsyn =+                                 ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                  _lhsIsyn+                                  {-# LINE 2602 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOunfoldSemDom =+                                 ({-# LINE 750 "src-ag/GenerateCode.ag" #-}+                                  _lhsIunfoldSemDom+                                  {-# LINE 2608 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOwith_sig =+                                 ({-# LINE 851 "src-ag/GenerateCode.ag" #-}+                                  _lhsIwith_sig+                                  {-# LINE 2614 "dist/build/GenerateCode" #-}+                                  )+                             -- copy rule (down)+                             _visitsOwrappers =+                                 ({-# LINE 987 "src-ag/GenerateCode.ag" #-}+                                  _lhsIwrappers+                                  {-# LINE 2620 "dist/build/GenerateCode" #-}+                                  )+                             ( _visitsIcomments,_visitsIdecls,_visitsIgatherInstVisitNrs,_visitsIintra,_visitsIintraVars,_visitsIisNil,_visitsIsemNames,_visitsIvisitedSet) =+                                 visits_ _visitsOallNts _visitsOallPragmas _visitsOaroundMap _visitsOchildren _visitsOcon _visitsOcontextMap _visitsOinh _visitsOinstVisitNrs _visitsOmergeMap _visitsOnr _visitsOnt _visitsOo_case _visitsOo_cata _visitsOo_costcentre _visitsOo_data _visitsOo_linePragmas _visitsOo_monadic _visitsOo_newtypes _visitsOo_pretty _visitsOo_rename _visitsOo_sem _visitsOo_sig _visitsOo_splitsems _visitsOo_strictwrap _visitsOo_traces _visitsOo_unbox _visitsOoptions _visitsOparamInstMap _visitsOparamMap _visitsOprefix _visitsOquantMap _visitsOsyn _visitsOterminals _visitsOunfoldSemDom _visitsOvisitedSet _visitsOwith_sig _visitsOwrappers+                             ___node =+                                 (Syn_CProduction _lhsOcataAlt _lhsOcomments _lhsOdataAlt _lhsOdecls _lhsOsemNames)+                         in  ( _lhsOcataAlt,_lhsOcomments,_lhsOdataAlt,_lhsOdecls,_lhsOsemNames))))+-- CProductions ------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allNts               : Set NontermIdent+         allPragmas           : PragmaMap+         aroundMap            : Map ConstructorIdent (Set Identifier)+         contextMap           : ContextMap+         inh                  : Attributes+         mergeMap             : Map ConstructorIdent (Map Identifier (Identifier, [Identifier]))+         nt                   : NontermIdent+         o_case               : Bool+         o_cata               : Bool+         o_costcentre         : Bool+         o_data               : Maybe Bool+         o_linePragmas        : Bool+         o_monadic            : Bool+         o_newtypes           : Bool+         o_pretty             : Bool+         o_rename             : Bool+         o_sem                : Bool+         o_sig                : Bool+         o_splitsems          : Bool+         o_strictwrap         : Bool+         o_traces             : Bool+         o_unbox              : Bool+         options              : Options+         paramMap             : ParamMap+         prefix               : String+         quantMap             : QuantMap+         syn                  : Attributes+         unfoldSemDom         : NontermIdent -> Int -> [String] -> Code.Type+         with_sig             : Bool+         wrappers             : Set NontermIdent+      synthesized attributes:+         cataAlts             : Decls+         comments             : [String]+         dataAlts             : DataAlts+         decls                : Decls+         semNames             : [String]+   alternatives:+      alternative Cons:+         child hd             : CProduction +         child tl             : CProductions +      alternative Nil:+-}+-- cata+sem_CProductions :: CProductions ->+                    T_CProductions+sem_CProductions list =+    (Prelude.foldr sem_CProductions_Cons sem_CProductions_Nil (Prelude.map sem_CProduction list))+-- semantic domain+newtype T_CProductions = T_CProductions ((Set NontermIdent) ->+                                         PragmaMap ->+                                         (Map ConstructorIdent (Set Identifier)) ->+                                         ContextMap ->+                                         Attributes ->+                                         (Map ConstructorIdent (Map Identifier (Identifier, [Identifier]))) ->+                                         NontermIdent ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         (Maybe Bool) ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Options ->+                                         ParamMap ->+                                         String ->+                                         QuantMap ->+                                         Attributes ->+                                         (NontermIdent -> Int -> [String] -> Code.Type) ->+                                         Bool ->+                                         (Set NontermIdent) ->+                                         ( Decls,([String]),DataAlts,Decls,([String])))+data Inh_CProductions = Inh_CProductions {allNts_Inh_CProductions :: !((Set NontermIdent)),allPragmas_Inh_CProductions :: !(PragmaMap),aroundMap_Inh_CProductions :: !((Map ConstructorIdent (Set Identifier))),contextMap_Inh_CProductions :: !(ContextMap),inh_Inh_CProductions :: !(Attributes),mergeMap_Inh_CProductions :: !((Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))),nt_Inh_CProductions :: !(NontermIdent),o_case_Inh_CProductions :: !(Bool),o_cata_Inh_CProductions :: !(Bool),o_costcentre_Inh_CProductions :: !(Bool),o_data_Inh_CProductions :: !((Maybe Bool)),o_linePragmas_Inh_CProductions :: !(Bool),o_monadic_Inh_CProductions :: !(Bool),o_newtypes_Inh_CProductions :: !(Bool),o_pretty_Inh_CProductions :: !(Bool),o_rename_Inh_CProductions :: !(Bool),o_sem_Inh_CProductions :: !(Bool),o_sig_Inh_CProductions :: !(Bool),o_splitsems_Inh_CProductions :: !(Bool),o_strictwrap_Inh_CProductions :: !(Bool),o_traces_Inh_CProductions :: !(Bool),o_unbox_Inh_CProductions :: !(Bool),options_Inh_CProductions :: !(Options),paramMap_Inh_CProductions :: !(ParamMap),prefix_Inh_CProductions :: !(String),quantMap_Inh_CProductions :: !(QuantMap),syn_Inh_CProductions :: !(Attributes),unfoldSemDom_Inh_CProductions :: !((NontermIdent -> Int -> [String] -> Code.Type)),with_sig_Inh_CProductions :: !(Bool),wrappers_Inh_CProductions :: !((Set NontermIdent))}+data Syn_CProductions = Syn_CProductions {cataAlts_Syn_CProductions :: !(Decls),comments_Syn_CProductions :: !(([String])),dataAlts_Syn_CProductions :: !(DataAlts),decls_Syn_CProductions :: !(Decls),semNames_Syn_CProductions :: !(([String]))}+wrap_CProductions :: T_CProductions ->+                     Inh_CProductions ->+                     Syn_CProductions+wrap_CProductions (T_CProductions sem) (Inh_CProductions _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIinh _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsIsyn _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers) =+    (let ( _lhsOcataAlts,_lhsOcomments,_lhsOdataAlts,_lhsOdecls,_lhsOsemNames) = sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIcontextMap _lhsIinh _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsIsyn _lhsIunfoldSemDom _lhsIwith_sig _lhsIwrappers+     in  (Syn_CProductions _lhsOcataAlts _lhsOcomments _lhsOdataAlts _lhsOdecls _lhsOsemNames))+sem_CProductions_Cons :: T_CProduction ->+                         T_CProductions ->+                         T_CProductions+sem_CProductions_Cons (T_CProduction hd_) (T_CProductions tl_) =+    (T_CProductions (\ _lhsIallNts+                       _lhsIallPragmas+                       _lhsIaroundMap+                       _lhsIcontextMap+                       _lhsIinh+                       _lhsImergeMap+                       _lhsInt+                       _lhsIo_case+                       _lhsIo_cata+                       _lhsIo_costcentre+                       _lhsIo_data+                       _lhsIo_linePragmas+                       _lhsIo_monadic+                       _lhsIo_newtypes+                       _lhsIo_pretty+                       _lhsIo_rename+                       _lhsIo_sem+                       _lhsIo_sig+                       _lhsIo_splitsems+                       _lhsIo_strictwrap+                       _lhsIo_traces+                       _lhsIo_unbox+                       _lhsIoptions+                       _lhsIparamMap+                       _lhsIprefix+                       _lhsIquantMap+                       _lhsIsyn+                       _lhsIunfoldSemDom+                       _lhsIwith_sig+                       _lhsIwrappers ->+                         (let _lhsOdataAlts :: DataAlts+                              _lhsOcataAlts :: Decls+                              _lhsOcomments :: ([String])+                              _lhsOdecls :: Decls+                              _lhsOsemNames :: ([String])+                              _hdOallNts :: (Set NontermIdent)+                              _hdOallPragmas :: PragmaMap+                              _hdOaroundMap :: (Map ConstructorIdent (Set Identifier))+                              _hdOcontextMap :: ContextMap+                              _hdOinh :: Attributes+                              _hdOmergeMap :: (Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))+                              _hdOnt :: NontermIdent+                              _hdOo_case :: Bool+                              _hdOo_cata :: Bool+                              _hdOo_costcentre :: Bool+                              _hdOo_data :: (Maybe Bool)+                              _hdOo_linePragmas :: Bool+                              _hdOo_monadic :: Bool+                              _hdOo_newtypes :: Bool+                              _hdOo_pretty :: Bool+                              _hdOo_rename :: Bool+                              _hdOo_sem :: Bool+                              _hdOo_sig :: Bool+                              _hdOo_splitsems :: Bool+                              _hdOo_strictwrap :: Bool+                              _hdOo_traces :: Bool+                              _hdOo_unbox :: Bool+                              _hdOoptions :: Options+                              _hdOparamMap :: ParamMap+                              _hdOprefix :: String+                              _hdOquantMap :: QuantMap+                              _hdOsyn :: Attributes+                              _hdOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)+                              _hdOwith_sig :: Bool+                              _hdOwrappers :: (Set NontermIdent)+                              _tlOallNts :: (Set NontermIdent)+                              _tlOallPragmas :: PragmaMap+                              _tlOaroundMap :: (Map ConstructorIdent (Set Identifier))+                              _tlOcontextMap :: ContextMap+                              _tlOinh :: Attributes+                              _tlOmergeMap :: (Map ConstructorIdent (Map Identifier (Identifier, [Identifier])))+                              _tlOnt :: NontermIdent+                              _tlOo_case :: Bool+                              _tlOo_cata :: Bool+                              _tlOo_costcentre :: Bool+                              _tlOo_data :: (Maybe Bool)+                              _tlOo_linePragmas :: Bool+                              _tlOo_monadic :: Bool+                              _tlOo_newtypes :: Bool+                              _tlOo_pretty :: Bool+                              _tlOo_rename :: Bool+                              _tlOo_sem :: Bool+                              _tlOo_sig :: Bool+                              _tlOo_splitsems :: Bool+                              _tlOo_strictwrap :: Bool+                              _tlOo_traces :: Bool+                              _tlOo_unbox :: Bool+                              _tlOoptions :: Options+                              _tlOparamMap :: ParamMap+                              _tlOprefix :: String+                              _tlOquantMap :: QuantMap+                              _tlOsyn :: Attributes+                              _tlOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)+                              _tlOwith_sig :: Bool+                              _tlOwrappers :: (Set NontermIdent)+                              _hdIcataAlt :: Decl+                              _hdIcomments :: ([String])+                              _hdIdataAlt :: DataAlt+                              _hdIdecls :: Decls+                              _hdIsemNames :: ([String])+                              _tlIcataAlts :: Decls+                              _tlIcomments :: ([String])+                              _tlIdataAlts :: DataAlts+                              _tlIdecls :: Decls+                              _tlIsemNames :: ([String])+                              -- "src-ag/GenerateCode.ag"(line 1015, column 17)+                              _lhsOdataAlts =+                                  ({-# LINE 1015 "src-ag/GenerateCode.ag" #-}+                                   _hdIdataAlt : _tlIdataAlts+                                   {-# LINE 2831 "dist/build/GenerateCode" #-}+                                   )+                              -- "src-ag/GenerateCode.ag"(line 1127, column 10)+                              _lhsOcataAlts =+                                  ({-# LINE 1127 "src-ag/GenerateCode.ag" #-}+                                   _hdIcataAlt : _tlIcataAlts+                                   {-# LINE 2837 "dist/build/GenerateCode" #-}+                                   )+                              -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)+                              _lhsOcomments =+                                  ({-# LINE 868 "src-ag/GenerateCode.ag" #-}+                                   _hdIcomments ++ _tlIcomments+                                   {-# LINE 2843 "dist/build/GenerateCode" #-}+                                   )+                              -- use rule "src-ag/GenerateCode.ag"(line 919, column 44)+                              _lhsOdecls =+                                  ({-# LINE 919 "src-ag/GenerateCode.ag" #-}+                                   _hdIdecls ++ _tlIdecls+                                   {-# LINE 2849 "dist/build/GenerateCode" #-}+                                   )+                              -- use rule "src-ag/GenerateCode.ag"(line 1146, column 61)+                              _lhsOsemNames =+                                  ({-# LINE 1146 "src-ag/GenerateCode.ag" #-}+                                   _hdIsemNames ++ _tlIsemNames+                                   {-# LINE 2855 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOallNts =+                                  ({-# LINE 132 "src-ag/GenerateCode.ag" #-}+                                   _lhsIallNts+                                   {-# LINE 2861 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOallPragmas =+                                  ({-# LINE 73 "src-ag/GenerateCode.ag" #-}+                                   _lhsIallPragmas+                                   {-# LINE 2867 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOaroundMap =+                                  ({-# LINE 578 "src-ag/GenerateCode.ag" #-}+                                   _lhsIaroundMap+                                   {-# LINE 2873 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOcontextMap =+                                  ({-# LINE 115 "src-ag/GenerateCode.ag" #-}+                                   _lhsIcontextMap+                                   {-# LINE 2879 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOinh =+                                  ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                   _lhsIinh+                                   {-# LINE 2885 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOmergeMap =+                                  ({-# LINE 594 "src-ag/GenerateCode.ag" #-}+                                   _lhsImergeMap+                                   {-# LINE 2891 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOnt =+                                  ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                   _lhsInt+                                   {-# LINE 2897 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_case =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_case+                                   {-# LINE 2903 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_cata =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_cata+                                   {-# LINE 2909 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_costcentre =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_costcentre+                                   {-# LINE 2915 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_data =+                                  ({-# LINE 48 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_data+                                   {-# LINE 2921 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_linePragmas =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_linePragmas+                                   {-# LINE 2927 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_monadic =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_monadic+                                   {-# LINE 2933 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_newtypes =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_newtypes+                                   {-# LINE 2939 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_pretty =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_pretty+                                   {-# LINE 2945 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_rename =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_rename+                                   {-# LINE 2951 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_sem =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_sem+                                   {-# LINE 2957 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_sig =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_sig+                                   {-# LINE 2963 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_splitsems =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_splitsems+                                   {-# LINE 2969 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_strictwrap =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_strictwrap+                                   {-# LINE 2975 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_traces =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_traces+                                   {-# LINE 2981 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_unbox =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_unbox+                                   {-# LINE 2987 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOoptions =+                                  ({-# LINE 50 "src-ag/GenerateCode.ag" #-}+                                   _lhsIoptions+                                   {-# LINE 2993 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOparamMap =+                                  ({-# LINE 95 "src-ag/GenerateCode.ag" #-}+                                   _lhsIparamMap+                                   {-# LINE 2999 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOprefix =+                                  ({-# LINE 49 "src-ag/GenerateCode.ag" #-}+                                   _lhsIprefix+                                   {-# LINE 3005 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOquantMap =+                                  ({-# LINE 115 "src-ag/GenerateCode.ag" #-}+                                   _lhsIquantMap+                                   {-# LINE 3011 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOsyn =+                                  ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                   _lhsIsyn+                                   {-# LINE 3017 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOunfoldSemDom =+                                  ({-# LINE 750 "src-ag/GenerateCode.ag" #-}+                                   _lhsIunfoldSemDom+                                   {-# LINE 3023 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOwith_sig =+                                  ({-# LINE 851 "src-ag/GenerateCode.ag" #-}+                                   _lhsIwith_sig+                                   {-# LINE 3029 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _hdOwrappers =+                                  ({-# LINE 987 "src-ag/GenerateCode.ag" #-}+                                   _lhsIwrappers+                                   {-# LINE 3035 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOallNts =+                                  ({-# LINE 132 "src-ag/GenerateCode.ag" #-}+                                   _lhsIallNts+                                   {-# LINE 3041 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOallPragmas =+                                  ({-# LINE 73 "src-ag/GenerateCode.ag" #-}+                                   _lhsIallPragmas+                                   {-# LINE 3047 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOaroundMap =+                                  ({-# LINE 578 "src-ag/GenerateCode.ag" #-}+                                   _lhsIaroundMap+                                   {-# LINE 3053 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOcontextMap =+                                  ({-# LINE 115 "src-ag/GenerateCode.ag" #-}+                                   _lhsIcontextMap+                                   {-# LINE 3059 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOinh =+                                  ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                   _lhsIinh+                                   {-# LINE 3065 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOmergeMap =+                                  ({-# LINE 594 "src-ag/GenerateCode.ag" #-}+                                   _lhsImergeMap+                                   {-# LINE 3071 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOnt =+                                  ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                   _lhsInt+                                   {-# LINE 3077 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_case =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_case+                                   {-# LINE 3083 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_cata =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_cata+                                   {-# LINE 3089 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_costcentre =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_costcentre+                                   {-# LINE 3095 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_data =+                                  ({-# LINE 48 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_data+                                   {-# LINE 3101 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_linePragmas =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_linePragmas+                                   {-# LINE 3107 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_monadic =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_monadic+                                   {-# LINE 3113 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_newtypes =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_newtypes+                                   {-# LINE 3119 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_pretty =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_pretty+                                   {-# LINE 3125 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_rename =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_rename+                                   {-# LINE 3131 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_sem =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_sem+                                   {-# LINE 3137 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_sig =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_sig+                                   {-# LINE 3143 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_splitsems =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_splitsems+                                   {-# LINE 3149 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_strictwrap =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_strictwrap+                                   {-# LINE 3155 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_traces =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_traces+                                   {-# LINE 3161 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_unbox =+                                  ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                   _lhsIo_unbox+                                   {-# LINE 3167 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOoptions =+                                  ({-# LINE 50 "src-ag/GenerateCode.ag" #-}+                                   _lhsIoptions+                                   {-# LINE 3173 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOparamMap =+                                  ({-# LINE 95 "src-ag/GenerateCode.ag" #-}+                                   _lhsIparamMap+                                   {-# LINE 3179 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOprefix =+                                  ({-# LINE 49 "src-ag/GenerateCode.ag" #-}+                                   _lhsIprefix+                                   {-# LINE 3185 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOquantMap =+                                  ({-# LINE 115 "src-ag/GenerateCode.ag" #-}+                                   _lhsIquantMap+                                   {-# LINE 3191 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOsyn =+                                  ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                   _lhsIsyn+                                   {-# LINE 3197 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOunfoldSemDom =+                                  ({-# LINE 750 "src-ag/GenerateCode.ag" #-}+                                   _lhsIunfoldSemDom+                                   {-# LINE 3203 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOwith_sig =+                                  ({-# LINE 851 "src-ag/GenerateCode.ag" #-}+                                   _lhsIwith_sig+                                   {-# LINE 3209 "dist/build/GenerateCode" #-}+                                   )+                              -- copy rule (down)+                              _tlOwrappers =+                                  ({-# LINE 987 "src-ag/GenerateCode.ag" #-}+                                   _lhsIwrappers+                                   {-# LINE 3215 "dist/build/GenerateCode" #-}+                                   )+                              ( _hdIcataAlt,_hdIcomments,_hdIdataAlt,_hdIdecls,_hdIsemNames) =+                                  hd_ _hdOallNts _hdOallPragmas _hdOaroundMap _hdOcontextMap _hdOinh _hdOmergeMap _hdOnt _hdOo_case _hdOo_cata _hdOo_costcentre _hdOo_data _hdOo_linePragmas _hdOo_monadic _hdOo_newtypes _hdOo_pretty _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_splitsems _hdOo_strictwrap _hdOo_traces _hdOo_unbox _hdOoptions _hdOparamMap _hdOprefix _hdOquantMap _hdOsyn _hdOunfoldSemDom _hdOwith_sig _hdOwrappers+                              ( _tlIcataAlts,_tlIcomments,_tlIdataAlts,_tlIdecls,_tlIsemNames) =+                                  tl_ _tlOallNts _tlOallPragmas _tlOaroundMap _tlOcontextMap _tlOinh _tlOmergeMap _tlOnt _tlOo_case _tlOo_cata _tlOo_costcentre _tlOo_data _tlOo_linePragmas _tlOo_monadic _tlOo_newtypes _tlOo_pretty _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_splitsems _tlOo_strictwrap _tlOo_traces _tlOo_unbox _tlOoptions _tlOparamMap _tlOprefix _tlOquantMap _tlOsyn _tlOunfoldSemDom _tlOwith_sig _tlOwrappers+                              ___node =+                                  (Syn_CProductions _lhsOcataAlts _lhsOcomments _lhsOdataAlts _lhsOdecls _lhsOsemNames)+                          in  ( _lhsOcataAlts,_lhsOcomments,_lhsOdataAlts,_lhsOdecls,_lhsOsemNames))))+sem_CProductions_Nil :: T_CProductions+sem_CProductions_Nil =+    (T_CProductions (\ _lhsIallNts+                       _lhsIallPragmas+                       _lhsIaroundMap+                       _lhsIcontextMap+                       _lhsIinh+                       _lhsImergeMap+                       _lhsInt+                       _lhsIo_case+                       _lhsIo_cata+                       _lhsIo_costcentre+                       _lhsIo_data+                       _lhsIo_linePragmas+                       _lhsIo_monadic+                       _lhsIo_newtypes+                       _lhsIo_pretty+                       _lhsIo_rename+                       _lhsIo_sem+                       _lhsIo_sig+                       _lhsIo_splitsems+                       _lhsIo_strictwrap+                       _lhsIo_traces+                       _lhsIo_unbox+                       _lhsIoptions+                       _lhsIparamMap+                       _lhsIprefix+                       _lhsIquantMap+                       _lhsIsyn+                       _lhsIunfoldSemDom+                       _lhsIwith_sig+                       _lhsIwrappers ->+                         (let _lhsOdataAlts :: DataAlts+                              _lhsOcataAlts :: Decls+                              _lhsOcomments :: ([String])+                              _lhsOdecls :: Decls+                              _lhsOsemNames :: ([String])+                              -- "src-ag/GenerateCode.ag"(line 1016, column 17)+                              _lhsOdataAlts =+                                  ({-# LINE 1016 "src-ag/GenerateCode.ag" #-}+                                   []+                                   {-# LINE 3265 "dist/build/GenerateCode" #-}+                                   )+                              -- "src-ag/GenerateCode.ag"(line 1128, column 10)+                              _lhsOcataAlts =+                                  ({-# LINE 1128 "src-ag/GenerateCode.ag" #-}+                                   []+                                   {-# LINE 3271 "dist/build/GenerateCode" #-}+                                   )+                              -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)+                              _lhsOcomments =+                                  ({-# LINE 868 "src-ag/GenerateCode.ag" #-}+                                   []+                                   {-# LINE 3277 "dist/build/GenerateCode" #-}+                                   )+                              -- use rule "src-ag/GenerateCode.ag"(line 919, column 44)+                              _lhsOdecls =+                                  ({-# LINE 919 "src-ag/GenerateCode.ag" #-}+                                   []+                                   {-# LINE 3283 "dist/build/GenerateCode" #-}+                                   )+                              -- use rule "src-ag/GenerateCode.ag"(line 1146, column 61)+                              _lhsOsemNames =+                                  ({-# LINE 1146 "src-ag/GenerateCode.ag" #-}+                                   []+                                   {-# LINE 3289 "dist/build/GenerateCode" #-}+                                   )+                              ___node =+                                  (Syn_CProductions _lhsOcataAlts _lhsOcomments _lhsOdataAlts _lhsOdecls _lhsOsemNames)+                          in  ( _lhsOcataAlts,_lhsOcomments,_lhsOdataAlts,_lhsOdecls,_lhsOsemNames))))+-- CRule -------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allNts               : Set NontermIdent+         aroundMap            : Set Identifier+         children             : [(Identifier,Type,ChildKind)]+         con                  : ConstructorIdent+         inh                  : Attributes+         instVisitNrs         : Map Identifier Int+         mergeMap             : Map Identifier (Identifier, [Identifier])+         nr                   : Int+         nt                   : NontermIdent+         o_case               : Bool+         o_cata               : Bool+         o_costcentre         : Bool+         o_data               : Maybe Bool+         o_linePragmas        : Bool+         o_monadic            : Bool+         o_newtypes           : Bool+         o_pretty             : Bool+         o_rename             : Bool+         o_sem                : Bool+         o_sig                : Bool+         o_splitsems          : Bool+         o_strictwrap         : Bool+         o_traces             : Bool+         o_unbox              : Bool+         options              : Options+         paramInstMap         : Map Identifier (NontermIdent, [String])+         paramMap             : ParamMap+         prefix               : String+         syn                  : Attributes+         terminals            : [Identifier]+         unfoldSemDom         : NontermIdent -> Int -> [String] -> Code.Type+         what                 : String+      chained attributes:+         declsAbove           : [Decl]+         visitedSet           : Set Identifier+      synthesized attributes:+         allTpsFound          : Bool+         bldBlocksFun         : DeclBlocks -> DeclBlocks+         comments             : [String]+         decls                : Decls+         definedInsts         : [Identifier]+         exprs                : Exprs+         tSigs                : [Decl]+         tps                  : [Type]+         usedVars             : Set String+   alternatives:+      alternative CChildVisit:+         child name           : {Identifier}+         child nt             : {NontermIdent}+         child nr             : {Int}+         child inh            : {Attributes}+         child syn            : {Attributes}+         child isLast         : {Bool}+         visit 0:+            local visitedSet  : _+            local costCentreDescr : _+            local addCostCentre : _+            local decls       : _+            local isSuperfluousHigherOrderIntra : _+            local names       : _+            local mkTp        : _+            local definedTps  : _+            local nextTp      : _+            local orgParams   : _+            local instParams  : _+            local replParamMap : _+            local replace     : _+            local evalTp      : _+      alternative CRule:+         child name           : {Identifier}+         child isIn           : {Bool}+         child hasCode        : {Bool}+         child nt             : {NontermIdent}+         child con            : {ConstructorIdent}+         child field          : {Identifier}+         child childnt        : {Maybe NontermIdent}+         child tp             : {Maybe Type}+         child pattern        : Pattern +         child rhs            : {[String]}+         child defines        : {Map Int (Identifier,Identifier,Maybe Type)}+         child owrt           : {Bool}+         child origin         : {String}+         child uses           : {Set (Identifier, Identifier)}+         child explicit       : {Bool}+         child mbNamed        : {Maybe Identifier}+         visit 0:+            local instTypes   : _+            local originComment : _+            local instDecls   : _+            local patDescr    : _+            local traceDescr  : _+            local addTrace    : _+            local costCentreDescr : _+            local addCostCentre : _+            local addLinePragma : _+            local decls       : _+            local definedInsts : _+            local rulename    : _+            local mkTp        : _+            local orgParams   : _+            local evalTp      : _+-}+-- cata+sem_CRule :: CRule ->+             T_CRule+sem_CRule (CChildVisit _name _nt _nr _inh _syn _isLast) =+    (sem_CRule_CChildVisit _name _nt _nr _inh _syn _isLast)+sem_CRule (CRule _name _isIn _hasCode _nt _con _field _childnt _tp _pattern _rhs _defines _owrt _origin _uses _explicit _mbNamed) =+    (sem_CRule_CRule _name _isIn _hasCode _nt _con _field _childnt _tp (sem_Pattern _pattern) _rhs _defines _owrt _origin _uses _explicit _mbNamed)+-- semantic domain+newtype T_CRule = T_CRule ((Set NontermIdent) ->+                           (Set Identifier) ->+                           ([(Identifier,Type,ChildKind)]) ->+                           ConstructorIdent ->+                           ([Decl]) ->+                           Attributes ->+                           (Map Identifier Int) ->+                           (Map Identifier (Identifier, [Identifier])) ->+                           Int ->+                           NontermIdent ->+                           Bool ->+                           Bool ->+                           Bool ->+                           (Maybe Bool) ->+                           Bool ->+                           Bool ->+                           Bool ->+                           Bool ->+                           Bool ->+                           Bool ->+                           Bool ->+                           Bool ->+                           Bool ->+                           Bool ->+                           Bool ->+                           Options ->+                           (Map Identifier (NontermIdent, [String])) ->+                           ParamMap ->+                           String ->+                           Attributes ->+                           ([Identifier]) ->+                           (NontermIdent -> Int -> [String] -> Code.Type) ->+                           (Set Identifier) ->+                           String ->+                           ( Bool,(DeclBlocks -> DeclBlocks),([String]),Decls,([Decl]),([Identifier]),Exprs,([Decl]),([Type]),(Set String),(Set Identifier)))+data Inh_CRule = Inh_CRule {allNts_Inh_CRule :: !((Set NontermIdent)),aroundMap_Inh_CRule :: !((Set Identifier)),children_Inh_CRule :: !(([(Identifier,Type,ChildKind)])),con_Inh_CRule :: !(ConstructorIdent),declsAbove_Inh_CRule :: !(([Decl])),inh_Inh_CRule :: !(Attributes),instVisitNrs_Inh_CRule :: !((Map Identifier Int)),mergeMap_Inh_CRule :: !((Map Identifier (Identifier, [Identifier]))),nr_Inh_CRule :: !(Int),nt_Inh_CRule :: !(NontermIdent),o_case_Inh_CRule :: !(Bool),o_cata_Inh_CRule :: !(Bool),o_costcentre_Inh_CRule :: !(Bool),o_data_Inh_CRule :: !((Maybe Bool)),o_linePragmas_Inh_CRule :: !(Bool),o_monadic_Inh_CRule :: !(Bool),o_newtypes_Inh_CRule :: !(Bool),o_pretty_Inh_CRule :: !(Bool),o_rename_Inh_CRule :: !(Bool),o_sem_Inh_CRule :: !(Bool),o_sig_Inh_CRule :: !(Bool),o_splitsems_Inh_CRule :: !(Bool),o_strictwrap_Inh_CRule :: !(Bool),o_traces_Inh_CRule :: !(Bool),o_unbox_Inh_CRule :: !(Bool),options_Inh_CRule :: !(Options),paramInstMap_Inh_CRule :: !((Map Identifier (NontermIdent, [String]))),paramMap_Inh_CRule :: !(ParamMap),prefix_Inh_CRule :: !(String),syn_Inh_CRule :: !(Attributes),terminals_Inh_CRule :: !(([Identifier])),unfoldSemDom_Inh_CRule :: !((NontermIdent -> Int -> [String] -> Code.Type)),visitedSet_Inh_CRule :: !((Set Identifier)),what_Inh_CRule :: !(String)}+data Syn_CRule = Syn_CRule {allTpsFound_Syn_CRule :: !(Bool),bldBlocksFun_Syn_CRule :: !((DeclBlocks -> DeclBlocks)),comments_Syn_CRule :: !(([String])),decls_Syn_CRule :: !(Decls),declsAbove_Syn_CRule :: !(([Decl])),definedInsts_Syn_CRule :: !(([Identifier])),exprs_Syn_CRule :: !(Exprs),tSigs_Syn_CRule :: !(([Decl])),tps_Syn_CRule :: !(([Type])),usedVars_Syn_CRule :: !((Set String)),visitedSet_Syn_CRule :: !((Set Identifier))}+wrap_CRule :: T_CRule ->+              Inh_CRule ->+              Syn_CRule+wrap_CRule (T_CRule sem) (Inh_CRule _lhsIallNts _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIdeclsAbove _lhsIinh _lhsIinstVisitNrs _lhsImergeMap _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIvisitedSet _lhsIwhat) =+    (let ( _lhsOallTpsFound,_lhsObldBlocksFun,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars,_lhsOvisitedSet) = sem _lhsIallNts _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIdeclsAbove _lhsIinh _lhsIinstVisitNrs _lhsImergeMap _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIvisitedSet _lhsIwhat+     in  (Syn_CRule _lhsOallTpsFound _lhsObldBlocksFun _lhsOcomments _lhsOdecls _lhsOdeclsAbove _lhsOdefinedInsts _lhsOexprs _lhsOtSigs _lhsOtps _lhsOusedVars _lhsOvisitedSet))+sem_CRule_CChildVisit :: Identifier ->+                         NontermIdent ->+                         Int ->+                         Attributes ->+                         Attributes ->+                         Bool ->+                         T_CRule+sem_CRule_CChildVisit name_ nt_ nr_ inh_ syn_ isLast_ =+    (T_CRule (\ _lhsIallNts+                _lhsIaroundMap+                _lhsIchildren+                _lhsIcon+                _lhsIdeclsAbove+                _lhsIinh+                _lhsIinstVisitNrs+                _lhsImergeMap+                _lhsInr+                _lhsInt+                _lhsIo_case+                _lhsIo_cata+                _lhsIo_costcentre+                _lhsIo_data+                _lhsIo_linePragmas+                _lhsIo_monadic+                _lhsIo_newtypes+                _lhsIo_pretty+                _lhsIo_rename+                _lhsIo_sem+                _lhsIo_sig+                _lhsIo_splitsems+                _lhsIo_strictwrap+                _lhsIo_traces+                _lhsIo_unbox+                _lhsIoptions+                _lhsIparamInstMap+                _lhsIparamMap+                _lhsIprefix+                _lhsIsyn+                _lhsIterminals+                _lhsIunfoldSemDom+                _lhsIvisitedSet+                _lhsIwhat ->+                  (let _lhsOexprs :: Exprs+                       _lhsOusedVars :: (Set String)+                       _lhsOtSigs :: ([Decl])+                       _lhsOtps :: ([Type])+                       _lhsOdeclsAbove :: ([Decl])+                       _lhsObldBlocksFun :: (DeclBlocks -> DeclBlocks)+                       _lhsOallTpsFound :: Bool+                       _lhsOcomments :: ([String])+                       _lhsOdecls :: Decls+                       _lhsOdefinedInsts :: ([Identifier])+                       _lhsOvisitedSet :: (Set Identifier)+                       -- "src-ag/GenerateCode.ag"(line 147, column 26)+                       _visitedSet =+                           ({-# LINE 147 "src-ag/GenerateCode.ag" #-}+                            Set.insert name_ _lhsIvisitedSet+                            {-# LINE 3508 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 203, column 18)+                       _costCentreDescr =+                           ({-# LINE 203 "src-ag/GenerateCode.ag" #-}+                            show _lhsInt ++ ":" ++ show _lhsIcon ++ ":" ++ show name_ ++ ":" ++ show nt_ ++ ":" ++ show nr_+                            {-# LINE 3514 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 204, column 18)+                       _addCostCentre =+                           ({-# LINE 204 "src-ag/GenerateCode.ag" #-}+                            \v -> if _lhsIo_costcentre+                                  then PragmaExpr True False ("SCC \"" ++ _costCentreDescr     ++ "\"") v+                                  else v+                            {-# LINE 3522 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 207, column 18)+                       _decls =+                           ({-# LINE 207 "src-ag/GenerateCode.ag" #-}+                            let  lhsVars =  map (attrname True name_) (Map.keys syn_)+                                            ++ if isLast_ then [] else [unwrap ++ funname name_ (nr_+1)]+                                 rhsVars = map (attrname False name_) (Map.keys inh_)+                                 unwrap = if _lhsIo_newtypes then typeName nt_ (nr_ + 1) ++ " " else ""+                                 tuple | isMerging = TupleLhs [locname name_ ++ "_comp"]+                                       | otherwise = mkTupleLhs _lhsIo_unbox (null $ Map.keys inh_) lhsVars+                                 rhs = _addCostCentre     $ Code.InvokeExpr (typeName nt_ nr_) (SimpleExpr fun) (map SimpleExpr rhsVars)+                                 isVirtual _ [] = False+                                 isVirtual nm ((n,t,kind) : r)+                                   | nm == n   = case kind of+                                                   ChildAttr -> True+                                                   _         -> False+                                   | otherwise = isVirtual nm r+                                 isMerged = name_ `Map.member` _lhsImergeMap+                                 isMerging = name_ `elem` concatMap (\(_,cs) -> cs) (Map.elems _lhsImergeMap)+                                 merges = [ (c,cs) | (c,(_,cs)) <- Map.assocs _lhsImergeMap, all (`Set.member` _visitedSet    ) cs, name_ `elem` (c:cs) ]+                                 baseNm = if nr_ == 0 && isVirtual name_ _lhsIchildren+                                          then Ident (getName name_ ++ "_inst") (getPos name_)+                                          else name_+                                 fun | nr_ == 0 && Set.member name_ _lhsIaroundMap+                                                 = locname name_ ++ "_around " ++ funname baseNm 0+                                     | otherwise = funname baseNm nr_+                                 outDecls | isMerged  = []+                                          | otherwise =+                                                        if isMerging+                                                        then [mkDecl _lhsIo_monadic tuple rhs Set.empty Set.empty]+                                                        else [Resume _lhsIo_monadic (typeName nt_ nr_) tuple rhs]+                                 outMerged | null merges || nr_ /= 0 = []+                                           | otherwise = let (c,cs) = head merges+                                                             tuple' = mkTupleLhs _lhsIo_unbox (null $ Map.keys inh_) lhsVars'+                                                             lhsVars' = map (attrname True c) (Map.keys syn_)+                                                                        ++ if isLast_ then [] else [unwrap ++ funname c (nr_+1)]+                                                             rhsVars = [ locname c ++ "_comp" | c <- cs ]+                                                             fun     = locname c ++ "_merge"+                                                             rhs' = App fun (map SimpleExpr rhsVars)+                                                         in [Resume _lhsIo_monadic (typeName nt_ nr_) tuple' rhs']+                            in+                               (outDecls ++ outMerged)+                            {-# LINE 3565 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 327, column 7)+                       _isSuperfluousHigherOrderIntra =+                           ({-# LINE 327 "src-ag/GenerateCode.ag" #-}+                            _lhsInr <= Map.findWithDefault (-1) name_ _lhsIinstVisitNrs+                            {-# LINE 3571 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 341, column 8)+                       _names =+                           ({-# LINE 341 "src-ag/GenerateCode.ag" #-}+                            if _isSuperfluousHigherOrderIntra+                            then []+                            else [funname name_ (nr_+1)]+                            {-# LINE 3579 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 345, column 8)+                       _lhsOexprs =+                           ({-# LINE 345 "src-ag/GenerateCode.ag" #-}+                            let wrap = if _lhsIo_newtypes then \x -> App (typeName nt_ (nr_ + 1)) [x] else id+                                addType expr | null _instParams     = expr+                                             | otherwise            = TypedExpr expr (_lhsIunfoldSemDom nt_ (nr_+1) _instParams    )+                            in map (wrap . addType . SimpleExpr) _names+                            {-# LINE 3588 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 357, column 7)+                       _lhsOusedVars =+                           ({-# LINE 357 "src-ag/GenerateCode.ag" #-}+                            Set.fromList _names+                            {-# LINE 3594 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 393, column 19)+                       _mkTp =+                           ({-# LINE 393 "src-ag/GenerateCode.ag" #-}+                            _evalTp     . typeToCodeType (Just nt_) _orgParams     . removeDeforested+                            {-# LINE 3600 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 394, column 19)+                       _definedTps =+                           ({-# LINE 394 "src-ag/GenerateCode.ag" #-}+                            [ TSig (attrname True name_ a) (_mkTp tp) |  (a,tp) <- Map.toList syn_ ]+                            {-# LINE 3606 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 395, column 19)+                       _nextTp =+                           ({-# LINE 395 "src-ag/GenerateCode.ag" #-}+                            typeName nt_ (nr_+1)+                            {-# LINE 3612 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 396, column 19)+                       _lhsOtSigs =+                           ({-# LINE 396 "src-ag/GenerateCode.ag" #-}+                            (if isLast_ then id else (TSig (funname name_ (nr_+1)) (TypeApp (SimpleType _nextTp) (map SimpleType _instParams    )) :)) _definedTps+                            {-# LINE 3618 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 398, column 19)+                       _orgParams =+                           ({-# LINE 398 "src-ag/GenerateCode.ag" #-}+                            map getName $ Map.findWithDefault [] nt_ _lhsIparamMap+                            {-# LINE 3624 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 399, column 19)+                       _instParams =+                           ({-# LINE 399 "src-ag/GenerateCode.ag" #-}+                            snd $ Map.findWithDefault (nt_,[]) name_ _lhsIparamInstMap+                            {-# LINE 3630 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 400, column 19)+                       _replParamMap =+                           ({-# LINE 400 "src-ag/GenerateCode.ag" #-}+                            Map.fromList (zip _orgParams     _instParams    )+                            {-# LINE 3636 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 401, column 19)+                       _replace =+                           ({-# LINE 401 "src-ag/GenerateCode.ag" #-}+                            \k -> Map.findWithDefault k k _replParamMap+                            {-# LINE 3642 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 402, column 19)+                       _evalTp =+                           ({-# LINE 402 "src-ag/GenerateCode.ag" #-}+                            if null _orgParams     then id else evalType _replace+                            {-# LINE 3648 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 419, column 19)+                       _lhsOtps =+                           ({-# LINE 419 "src-ag/GenerateCode.ag" #-}+                            if _isSuperfluousHigherOrderIntra+                            then []+                            else [NT (ntOfVisit nt_ (nr_+1)) _instParams     False]+                            {-# LINE 3656 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 618, column 7)+                       _lhsOdeclsAbove =+                           ({-# LINE 618 "src-ag/GenerateCode.ag" #-}+                            []+                            {-# LINE 3662 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 631, column 7)+                       _lhsObldBlocksFun =+                           ({-# LINE 631 "src-ag/GenerateCode.ag" #-}+                            DeclBlock _lhsIdeclsAbove (head _decls    )+                            {-# LINE 3668 "dist/build/GenerateCode" #-}+                            )+                       -- use rule "src-ag/GenerateCode.ag"(line 416, column 39)+                       _lhsOallTpsFound =+                           ({-# LINE 416 "src-ag/GenerateCode.ag" #-}+                            True+                            {-# LINE 3674 "dist/build/GenerateCode" #-}+                            )+                       -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)+                       _lhsOcomments =+                           ({-# LINE 868 "src-ag/GenerateCode.ag" #-}+                            []+                            {-# LINE 3680 "dist/build/GenerateCode" #-}+                            )+                       -- use rule "src-ag/GenerateCode.ag"(line 155, column 34)+                       _lhsOdecls =+                           ({-# LINE 155 "src-ag/GenerateCode.ag" #-}+                            _decls+                            {-# LINE 3686 "dist/build/GenerateCode" #-}+                            )+                       -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)+                       _lhsOdefinedInsts =+                           ({-# LINE 261 "src-ag/GenerateCode.ag" #-}+                            []+                            {-# LINE 3692 "dist/build/GenerateCode" #-}+                            )+                       -- copy rule (from local)+                       _lhsOvisitedSet =+                           ({-# LINE 145 "src-ag/GenerateCode.ag" #-}+                            _visitedSet+                            {-# LINE 3698 "dist/build/GenerateCode" #-}+                            )+                       ___node =+                           (Syn_CRule _lhsOallTpsFound _lhsObldBlocksFun _lhsOcomments _lhsOdecls _lhsOdeclsAbove _lhsOdefinedInsts _lhsOexprs _lhsOtSigs _lhsOtps _lhsOusedVars _lhsOvisitedSet)+                   in  ( _lhsOallTpsFound,_lhsObldBlocksFun,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars,_lhsOvisitedSet))))+sem_CRule_CRule :: Identifier ->+                   Bool ->+                   Bool ->+                   NontermIdent ->+                   ConstructorIdent ->+                   Identifier ->+                   (Maybe NontermIdent) ->+                   (Maybe Type) ->+                   T_Pattern ->+                   ([String]) ->+                   (Map Int (Identifier,Identifier,Maybe Type)) ->+                   Bool ->+                   String ->+                   (Set (Identifier, Identifier)) ->+                   Bool ->+                   (Maybe Identifier) ->+                   T_CRule+sem_CRule_CRule name_ isIn_ hasCode_ nt_ con_ field_ childnt_ tp_ (T_Pattern pattern_) rhs_ defines_ owrt_ origin_ uses_ explicit_ mbNamed_ =+    (T_CRule (\ _lhsIallNts+                _lhsIaroundMap+                _lhsIchildren+                _lhsIcon+                _lhsIdeclsAbove+                _lhsIinh+                _lhsIinstVisitNrs+                _lhsImergeMap+                _lhsInr+                _lhsInt+                _lhsIo_case+                _lhsIo_cata+                _lhsIo_costcentre+                _lhsIo_data+                _lhsIo_linePragmas+                _lhsIo_monadic+                _lhsIo_newtypes+                _lhsIo_pretty+                _lhsIo_rename+                _lhsIo_sem+                _lhsIo_sig+                _lhsIo_splitsems+                _lhsIo_strictwrap+                _lhsIo_traces+                _lhsIo_unbox+                _lhsIoptions+                _lhsIparamInstMap+                _lhsIparamMap+                _lhsIprefix+                _lhsIsyn+                _lhsIterminals+                _lhsIunfoldSemDom+                _lhsIvisitedSet+                _lhsIwhat ->+                  (let _lhsOexprs :: Exprs+                       _lhsOusedVars :: (Set String)+                       _lhsOtSigs :: ([Decl])+                       _lhsOtps :: ([Type])+                       _lhsOallTpsFound :: Bool+                       _lhsOdeclsAbove :: ([Decl])+                       _lhsObldBlocksFun :: (DeclBlocks -> DeclBlocks)+                       _lhsOcomments :: ([String])+                       _lhsOdecls :: Decls+                       _lhsOdefinedInsts :: ([Identifier])+                       _lhsOvisitedSet :: (Set Identifier)+                       _patternIcopy :: Pattern+                       _patternIdefinedInsts :: ([Identifier])+                       _patternIpatternAttributes :: ([(Identifier, Identifier)])+                       -- "src-ag/GenerateCode.ag"(line 157, column 12)+                       _instTypes =+                           ({-# LINE 157 "src-ag/GenerateCode.ag" #-}+                            [ (n, (t, mb, for)) | (n, NT t _ for, mb) <- _lhsIchildren ]+                            {-# LINE 3773 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 158, column 12)+                       _originComment =+                           ({-# LINE 158 "src-ag/GenerateCode.ag" #-}+                            if  _lhsIo_pretty+                                then (Comment origin_:)+                                else id+                            {-# LINE 3781 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 161, column 12)+                       _instDecls =+                           ({-# LINE 161 "src-ag/GenerateCode.ag" #-}+                            [ mkDecl _lhsIo_monadic (Pattern3 (Alias _INST' inst (Underscore (getPos inst))))+                                   ( let (nm,mb,defor) = fromJust $ inst `lookup` _instTypes+                                     in unwrapSem _lhsIo_newtypes nm+                                        $ case mb of+                                            ChildReplace tp' -> App instLocFieldName [SimpleExpr $ fieldname inst]+                                            _                ->+                                               if defor+                                               then SimpleExpr instLocFieldName+                                               else App (cataname _lhsIprefix nm)+                                                              [SimpleExpr instLocFieldName]+                                   )+                                   (Set.singleton instSemFieldName)+                                   (Set.singleton instLocFieldName)+                            | inst <- _definedInsts+                            , let instLocFieldName = attrname True _INST inst+                                  instSemFieldName = attrname False _INST' inst+                            ]+                            {-# LINE 3803 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 178, column 12)+                       _patDescr =+                           ({-# LINE 178 "src-ag/GenerateCode.ag" #-}+                            if isIn_+                            then "_"+                            else concat $ intersperse "," (map (\(f,a) -> show f ++ "." ++ show a) _patternIpatternAttributes)+                            {-# LINE 3811 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 181, column 12)+                       _traceDescr =+                           ({-# LINE 181 "src-ag/GenerateCode.ag" #-}+                            (maybe "" (\nm -> show nm ++ ":") mbNamed_) ++ show nt_ ++ " :: " ++ show con_ ++ " :: " ++ _patDescr+                            {-# LINE 3817 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 183, column 12)+                       _addTrace =+                           ({-# LINE 183 "src-ag/GenerateCode.ag" #-}+                            \v -> if _lhsIo_traces+                                  then Trace _traceDescr     v+                                  else v+                            {-# LINE 3825 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 186, column 12)+                       _costCentreDescr =+                           ({-# LINE 186 "src-ag/GenerateCode.ag" #-}+                            show nt_ ++ ":" ++ show con_ ++ ":" ++ _patDescr+                            {-# LINE 3831 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 187, column 12)+                       _addCostCentre =+                           ({-# LINE 187 "src-ag/GenerateCode.ag" #-}+                            \v -> if _lhsIo_costcentre+                                  then PragmaExpr True False ("SCC \"" ++ _costCentreDescr     ++ "\"") v+                                  else v+                            {-# LINE 3839 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 190, column 12)+                       _addLinePragma =+                           ({-# LINE 190 "src-ag/GenerateCode.ag" #-}+                            \v -> let p = getPos name_+                                      hasPos = line p > 0 && column p >= 0 && not (null (file p))+                                  in if _lhsIo_linePragmas && hasPos+                                     then PragmaExpr True True ("LINE " ++ show (line p) ++ " " ++ show (file p))+                                          $ LineExpr+                                          $ v+                                     else v+                            {-# LINE 3851 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 197, column 12)+                       _decls =+                           ({-# LINE 197 "src-ag/GenerateCode.ag" #-}+                            if hasCode_+                            then _originComment ( mkDecl (_lhsIo_monadic && explicit_) (Pattern3 _patternIcopy) (_addTrace     $ _addCostCentre     $ _addLinePragma     $ (TextExpr rhs_))+                                                       (Set.fromList [attrname False fld nm | (fld,nm,_) <- Map.elems defines_])+                                                       (Set.fromList [attrname True fld nm | (fld,nm) <- Set.toList uses_])+                                                : _instDecls    )+                            else _instDecls+                            {-# LINE 3862 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 266, column 12)+                       _definedInsts =+                           ({-# LINE 266 "src-ag/GenerateCode.ag" #-}+                            if isIn_ then [] else _patternIdefinedInsts+                            {-# LINE 3868 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 336, column 12)+                       _rulename =+                           ({-# LINE 336 "src-ag/GenerateCode.ag" #-}+                            if  field_ == _LOC && name_ `elem` _lhsIterminals+                            then funname name_ 0+                            else attrname isIn_ field_ name_+                            {-# LINE 3876 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 339, column 12)+                       _lhsOexprs =+                           ({-# LINE 339 "src-ag/GenerateCode.ag" #-}+                            [SimpleExpr _rulename    ]+                            {-# LINE 3882 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 355, column 7)+                       _lhsOusedVars =+                           ({-# LINE 355 "src-ag/GenerateCode.ag" #-}+                            Set.singleton _rulename+                            {-# LINE 3888 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 365, column 19)+                       _mkTp =+                           ({-# LINE 365 "src-ag/GenerateCode.ag" #-}+                            typeToCodeType (Just _lhsInt) _orgParams+                            {-# LINE 3894 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 366, column 19)+                       _lhsOtSigs =+                           ({-# LINE 366 "src-ag/GenerateCode.ag" #-}+                            [ TSig (attrname False field attr) tp'+                            |  (field,attr,tp) <- Map.elems defines_, isJust tp+                            , let tp1 = _evalTp     field $ _mkTp (fromJust tp)+                                  tp' = case findOrigType attr _lhsIchildren of+                                         Just tp' -> let tp2 = _evalTp     field $ _mkTp tp'+                                                     in Arr tp2 tp1+                                         Nothing -> tp1+                                  findOrigType nm [] = Nothing+                                  findOrigType nm ((n,_,kind) : r)+                                    | nm == n = case kind of+                                                  ChildReplace orig -> Just orig+                                                  _                 -> Nothing+                                    | otherwise = findOrigType nm r+                            ]+                            {-# LINE 3913 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 381, column 19)+                       _orgParams =+                           ({-# LINE 381 "src-ag/GenerateCode.ag" #-}+                            map getName $ Map.findWithDefault [] _lhsInt _lhsIparamMap+                            {-# LINE 3919 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 382, column 19)+                       _evalTp =+                           ({-# LINE 382 "src-ag/GenerateCode.ag" #-}+                            \field tp -> let orgFldParams = map getName $ Map.findWithDefault [] childNt _lhsIparamMap+                                             (childNt,instParams) = Map.findWithDefault (_lhsInt,[]) field _lhsIparamInstMap+                                             replMap = Map.fromList (zip orgFldParams instParams)+                                             replace k = Map.findWithDefault ('@':k) k replMap+                                         in if null instParams+                                            then if null _orgParams+                                                 then tp+                                                 else idEvalType tp+                                            else evalType replace tp+                            {-# LINE 3933 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 418, column 23)+                       (_lhsOtps,_lhsOallTpsFound) =+                           ({-# LINE 418 "src-ag/GenerateCode.ag" #-}+                            maybe ([],False) (\tp -> ([tp],True)) tp_+                            {-# LINE 3939 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 616, column 7)+                       _lhsOdeclsAbove =+                           ({-# LINE 616 "src-ag/GenerateCode.ag" #-}+                            _lhsIdeclsAbove ++ _decls+                            {-# LINE 3945 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 629, column 7)+                       _lhsObldBlocksFun =+                           ({-# LINE 629 "src-ag/GenerateCode.ag" #-}+                            id+                            {-# LINE 3951 "dist/build/GenerateCode" #-}+                            )+                       -- "src-ag/GenerateCode.ag"(line 903, column 18)+                       _lhsOcomments =+                           ({-# LINE 903 "src-ag/GenerateCode.ag" #-}+                            [ makeLocalComment 11 _lhsIwhat name tp | (field,name,tp) <- Map.elems defines_, field == _LOC ]+                            ++ [ makeLocalComment 11 "inst " name tp | (field,name,tp) <- Map.elems defines_, field == _INST ]+                            {-# LINE 3958 "dist/build/GenerateCode" #-}+                            )+                       -- use rule "src-ag/GenerateCode.ag"(line 155, column 34)+                       _lhsOdecls =+                           ({-# LINE 155 "src-ag/GenerateCode.ag" #-}+                            _decls+                            {-# LINE 3964 "dist/build/GenerateCode" #-}+                            )+                       -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)+                       _lhsOdefinedInsts =+                           ({-# LINE 261 "src-ag/GenerateCode.ag" #-}+                            _definedInsts+                            {-# LINE 3970 "dist/build/GenerateCode" #-}+                            )+                       -- copy rule (chain)+                       _lhsOvisitedSet =+                           ({-# LINE 145 "src-ag/GenerateCode.ag" #-}+                            _lhsIvisitedSet+                            {-# LINE 3976 "dist/build/GenerateCode" #-}+                            )+                       ( _patternIcopy,_patternIdefinedInsts,_patternIpatternAttributes) =+                           pattern_+                       ___node =+                           (Syn_CRule _lhsOallTpsFound _lhsObldBlocksFun _lhsOcomments _lhsOdecls _lhsOdeclsAbove _lhsOdefinedInsts _lhsOexprs _lhsOtSigs _lhsOtps _lhsOusedVars _lhsOvisitedSet)+                   in  ( _lhsOallTpsFound,_lhsObldBlocksFun,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars,_lhsOvisitedSet))))+-- CSegment ----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         inh                  : Attributes+         isLast               : Bool+         nr                   : Int+         nt                   : NontermIdent+         o_case               : Bool+         o_cata               : Bool+         o_costcentre         : Bool+         o_data               : Maybe Bool+         o_linePragmas        : Bool+         o_monadic            : Bool+         o_newtypes           : Bool+         o_pretty             : Bool+         o_rename             : Bool+         o_sem                : Bool+         o_sig                : Bool+         o_splitsems          : Bool+         o_strictwrap         : Bool+         o_traces             : Bool+         o_unbox              : Bool+         options              : Options+         paramMap             : ParamMap+         prefix               : String+         syn                  : Attributes+      synthesized attributes:+         comments             : [String]+         semDom               : [Decl]+         semDomUnfoldGath     : Map (NontermIdent, Int) ([String], Code.Type)+         wrapDecls            : Decls+   alternatives:+      alternative CSegment:+         child inh            : {Attributes}+         child syn            : {Attributes}+         visit 0:+            local altSemForm  : _+            local tp          : _+            local inhTps      : _+            local inhTup      : _+            local synTps      : _+            local curTypeName : _+            local nextTypeName : _+            local indexName   : _+            local dataIndex   : _+            local indexExpr   : _+            local indexStr    : _+            local inhInstance : _+            local synInstance : _+            local continuation : _+            local params      : _+-}+-- cata+sem_CSegment :: CSegment ->+                T_CSegment+sem_CSegment (CSegment _inh _syn) =+    (sem_CSegment_CSegment _inh _syn)+-- semantic domain+newtype T_CSegment = T_CSegment (Attributes ->+                                 Bool ->+                                 Int ->+                                 NontermIdent ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 (Maybe Bool) ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Options ->+                                 ParamMap ->+                                 String ->+                                 Attributes ->+                                 ( ([String]),([Decl]),(Map (NontermIdent, Int) ([String], Code.Type)),Decls))+data Inh_CSegment = Inh_CSegment {inh_Inh_CSegment :: !(Attributes),isLast_Inh_CSegment :: !(Bool),nr_Inh_CSegment :: !(Int),nt_Inh_CSegment :: !(NontermIdent),o_case_Inh_CSegment :: !(Bool),o_cata_Inh_CSegment :: !(Bool),o_costcentre_Inh_CSegment :: !(Bool),o_data_Inh_CSegment :: !((Maybe Bool)),o_linePragmas_Inh_CSegment :: !(Bool),o_monadic_Inh_CSegment :: !(Bool),o_newtypes_Inh_CSegment :: !(Bool),o_pretty_Inh_CSegment :: !(Bool),o_rename_Inh_CSegment :: !(Bool),o_sem_Inh_CSegment :: !(Bool),o_sig_Inh_CSegment :: !(Bool),o_splitsems_Inh_CSegment :: !(Bool),o_strictwrap_Inh_CSegment :: !(Bool),o_traces_Inh_CSegment :: !(Bool),o_unbox_Inh_CSegment :: !(Bool),options_Inh_CSegment :: !(Options),paramMap_Inh_CSegment :: !(ParamMap),prefix_Inh_CSegment :: !(String),syn_Inh_CSegment :: !(Attributes)}+data Syn_CSegment = Syn_CSegment {comments_Syn_CSegment :: !(([String])),semDom_Syn_CSegment :: !(([Decl])),semDomUnfoldGath_Syn_CSegment :: !((Map (NontermIdent, Int) ([String], Code.Type))),wrapDecls_Syn_CSegment :: !(Decls)}+wrap_CSegment :: T_CSegment ->+                 Inh_CSegment ->+                 Syn_CSegment+wrap_CSegment (T_CSegment sem) (Inh_CSegment _lhsIinh _lhsIisLast _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIsyn) =+    (let ( _lhsOcomments,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls) = sem _lhsIinh _lhsIisLast _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIsyn+     in  (Syn_CSegment _lhsOcomments _lhsOsemDom _lhsOsemDomUnfoldGath _lhsOwrapDecls))+sem_CSegment_CSegment :: Attributes ->+                         Attributes ->+                         T_CSegment+sem_CSegment_CSegment inh_ syn_ =+    (T_CSegment (\ _lhsIinh+                   _lhsIisLast+                   _lhsInr+                   _lhsInt+                   _lhsIo_case+                   _lhsIo_cata+                   _lhsIo_costcentre+                   _lhsIo_data+                   _lhsIo_linePragmas+                   _lhsIo_monadic+                   _lhsIo_newtypes+                   _lhsIo_pretty+                   _lhsIo_rename+                   _lhsIo_sem+                   _lhsIo_sig+                   _lhsIo_splitsems+                   _lhsIo_strictwrap+                   _lhsIo_traces+                   _lhsIo_unbox+                   _lhsIoptions+                   _lhsIparamMap+                   _lhsIprefix+                   _lhsIsyn ->+                     (let _lhsOsemDom :: ([Decl])+                          _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))+                          _lhsOwrapDecls :: Decls+                          _lhsOcomments :: ([String])+                          -- "src-ag/GenerateCode.ag"(line 715, column 15)+                          _altSemForm =+                              ({-# LINE 715 "src-ag/GenerateCode.ag" #-}+                               breadthFirst _lhsIoptions+                               {-# LINE 4109 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 716, column 15)+                          _tp =+                              ({-# LINE 716 "src-ag/GenerateCode.ag" #-}+                               if _altSemForm+                               then TypeApp (SimpleType "Child") [SimpleType "EvalInfo", _indexExpr     ]+                               else foldr Arr _synTps     _inhTps+                               {-# LINE 4117 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 719, column 15)+                          _inhTps =+                              ({-# LINE 719 "src-ag/GenerateCode.ag" #-}+                               [typeToCodeType (Just _lhsInt) _params     tp |  tp <- Map.elems inh_]+                               {-# LINE 4123 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 720, column 15)+                          _inhTup =+                              ({-# LINE 720 "src-ag/GenerateCode.ag" #-}+                               mkTupleType _lhsIo_unbox (null _inhTps    ) _inhTps+                               {-# LINE 4129 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 721, column 15)+                          _synTps =+                              ({-# LINE 721 "src-ag/GenerateCode.ag" #-}+                               mkTupleType _lhsIo_unbox (null _inhTps    ) ([typeToCodeType (Just _lhsInt) _params     tp |  tp <- Map.elems syn_] ++ _continuation    )+                               {-# LINE 4135 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 722, column 15)+                          _curTypeName =+                              ({-# LINE 722 "src-ag/GenerateCode.ag" #-}+                               typeName _lhsInt _lhsInr+                               {-# LINE 4141 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 723, column 15)+                          _nextTypeName =+                              ({-# LINE 723 "src-ag/GenerateCode.ag" #-}+                               typeName _lhsInt (_lhsInr + 1)+                               {-# LINE 4147 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 724, column 15)+                          _indexName =+                              ({-# LINE 724 "src-ag/GenerateCode.ag" #-}+                               "I_" ++ _curTypeName+                               {-# LINE 4153 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 725, column 15)+                          _dataIndex =+                              ({-# LINE 725 "src-ag/GenerateCode.ag" #-}+                               Code.Data _indexName     _params     [DataAlt _indexName     []] False []+                               {-# LINE 4159 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 726, column 15)+                          _indexExpr =+                              ({-# LINE 726 "src-ag/GenerateCode.ag" #-}+                               TypeApp (SimpleType _indexName    ) (map (SimpleType . ('@':)) _params    )+                               {-# LINE 4165 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 727, column 15)+                          _indexStr =+                              ({-# LINE 727 "src-ag/GenerateCode.ag" #-}+                               "(" ++ _indexName     ++ concatMap (\p -> " " ++ p) _params     ++ ")"+                               {-# LINE 4171 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 728, column 15)+                          _inhInstance =+                              ({-# LINE 728 "src-ag/GenerateCode.ag" #-}+                               Code.Data "instance Inh" [_indexStr    ] [DataAlt (typeName _lhsInt _lhsInr ++ "_Inh") [_inhTup    ] ] False []+                               {-# LINE 4177 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 729, column 15)+                          _synInstance =+                              ({-# LINE 729 "src-ag/GenerateCode.ag" #-}+                               Code.Data "instance Syn" [_indexStr    ] [DataAlt (typeName _lhsInt _lhsInr ++ "_Syn") [_synTps    ] ] False []+                               {-# LINE 4183 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 730, column 15)+                          _continuation =+                              ({-# LINE 730 "src-ag/GenerateCode.ag" #-}+                               if  _lhsIisLast+                               then []+                               else [TypeApp (SimpleType _nextTypeName    ) (map (SimpleType . ('@':)) _params    )]+                               {-# LINE 4191 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 733, column 15)+                          _params =+                              ({-# LINE 733 "src-ag/GenerateCode.ag" #-}+                               map getName $ Map.findWithDefault [] _lhsInt _lhsIparamMap+                               {-# LINE 4197 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 734, column 15)+                          _lhsOsemDom =+                              ({-# LINE 734 "src-ag/GenerateCode.ag" #-}+                               let name = typeName _lhsInt _lhsInr+                                   evalTp | null _params     = id+                                          | otherwise        = idEvalType+                               in ( if _lhsIo_newtypes+                                    then [ Code.NewType name _params     name (evalTp _tp    ) ]+                                    else [ Code.Type name _params     (evalTp _tp    ) ] )+                                  ++ ( if _altSemForm+                                       then [_dataIndex    , _inhInstance    , _synInstance    ]+                                       else [] )+                               {-# LINE 4211 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 748, column 7)+                          _lhsOsemDomUnfoldGath =+                              ({-# LINE 748 "src-ag/GenerateCode.ag" #-}+                               Map.singleton (_lhsInt, _lhsInr) (_params    , _tp    )+                               {-# LINE 4217 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 831, column 15)+                          _lhsOwrapDecls =+                              ({-# LINE 831 "src-ag/GenerateCode.ag" #-}+                               let lhsVars = map (lhsname False) (Map.keys syn_)+                                             ++ if _lhsIisLast then [] else [unwrap ++ sem (_lhsInr+1)]+                                   rhsVars = map (lhsname True) (Map.keys inh_)+                                   rhs = map SimpleExpr rhsVars+                                   unwrap = if _lhsIo_newtypes then typeName _lhsInt (_lhsInr + 1) ++ " " else ""+                                   var   = "sem"+                                   sem 0 = var+                                   sem n = var ++ "_" ++ show n+                                   ntt   = typeName _lhsInt _lhsInr+                               in [ EvalDecl ntt (mkTupleLhs _lhsIo_unbox (null $ Map.keys inh_) lhsVars) (InvokeExpr ntt (SimpleExpr $ sem _lhsInr) rhs) ]+                               {-# LINE 4232 "dist/build/GenerateCode" #-}+                               )+                          -- "src-ag/GenerateCode.ag"(line 873, column 18)+                          _lhsOcomments =+                              ({-# LINE 873 "src-ag/GenerateCode.ag" #-}+                               let body = map ind (showsSegment (CSegment inh_ syn_))+                               in if null body+                                  then []+                                  else ("visit " ++ show _lhsInr ++ ":") : body+                               {-# LINE 4241 "dist/build/GenerateCode" #-}+                               )+                          ___node =+                              (Syn_CSegment _lhsOcomments _lhsOsemDom _lhsOsemDomUnfoldGath _lhsOwrapDecls)+                      in  ( _lhsOcomments,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls))))+-- CSegments ---------------------------------------------------+{-+   visit 0:+      inherited attributes:+         inh                  : Attributes+         nr                   : Int+         nt                   : NontermIdent+         o_case               : Bool+         o_cata               : Bool+         o_costcentre         : Bool+         o_data               : Maybe Bool+         o_linePragmas        : Bool+         o_monadic            : Bool+         o_newtypes           : Bool+         o_pretty             : Bool+         o_rename             : Bool+         o_sem                : Bool+         o_sig                : Bool+         o_splitsems          : Bool+         o_strictwrap         : Bool+         o_traces             : Bool+         o_unbox              : Bool+         options              : Options+         paramMap             : ParamMap+         prefix               : String+         syn                  : Attributes+      synthesized attributes:+         comments             : [String]+         isNil                : Bool+         semDom               : [Decl]+         semDomUnfoldGath     : Map (NontermIdent, Int) ([String], Code.Type)+         wrapDecls            : Decls+   alternatives:+      alternative Cons:+         child hd             : CSegment +         child tl             : CSegments +      alternative Nil:+-}+-- cata+sem_CSegments :: CSegments ->+                 T_CSegments+sem_CSegments list =+    (Prelude.foldr sem_CSegments_Cons sem_CSegments_Nil (Prelude.map sem_CSegment list))+-- semantic domain+newtype T_CSegments = T_CSegments (Attributes ->+                                   Int ->+                                   NontermIdent ->+                                   Bool ->+                                   Bool ->+                                   Bool ->+                                   (Maybe Bool) ->+                                   Bool ->+                                   Bool ->+                                   Bool ->+                                   Bool ->+                                   Bool ->+                                   Bool ->+                                   Bool ->+                                   Bool ->+                                   Bool ->+                                   Bool ->+                                   Bool ->+                                   Options ->+                                   ParamMap ->+                                   String ->+                                   Attributes ->+                                   ( ([String]),Bool,([Decl]),(Map (NontermIdent, Int) ([String], Code.Type)),Decls))+data Inh_CSegments = Inh_CSegments {inh_Inh_CSegments :: !(Attributes),nr_Inh_CSegments :: !(Int),nt_Inh_CSegments :: !(NontermIdent),o_case_Inh_CSegments :: !(Bool),o_cata_Inh_CSegments :: !(Bool),o_costcentre_Inh_CSegments :: !(Bool),o_data_Inh_CSegments :: !((Maybe Bool)),o_linePragmas_Inh_CSegments :: !(Bool),o_monadic_Inh_CSegments :: !(Bool),o_newtypes_Inh_CSegments :: !(Bool),o_pretty_Inh_CSegments :: !(Bool),o_rename_Inh_CSegments :: !(Bool),o_sem_Inh_CSegments :: !(Bool),o_sig_Inh_CSegments :: !(Bool),o_splitsems_Inh_CSegments :: !(Bool),o_strictwrap_Inh_CSegments :: !(Bool),o_traces_Inh_CSegments :: !(Bool),o_unbox_Inh_CSegments :: !(Bool),options_Inh_CSegments :: !(Options),paramMap_Inh_CSegments :: !(ParamMap),prefix_Inh_CSegments :: !(String),syn_Inh_CSegments :: !(Attributes)}+data Syn_CSegments = Syn_CSegments {comments_Syn_CSegments :: !(([String])),isNil_Syn_CSegments :: !(Bool),semDom_Syn_CSegments :: !(([Decl])),semDomUnfoldGath_Syn_CSegments :: !((Map (NontermIdent, Int) ([String], Code.Type))),wrapDecls_Syn_CSegments :: !(Decls)}+wrap_CSegments :: T_CSegments ->+                  Inh_CSegments ->+                  Syn_CSegments+wrap_CSegments (T_CSegments sem) (Inh_CSegments _lhsIinh _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIsyn) =+    (let ( _lhsOcomments,_lhsOisNil,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls) = sem _lhsIinh _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamMap _lhsIprefix _lhsIsyn+     in  (Syn_CSegments _lhsOcomments _lhsOisNil _lhsOsemDom _lhsOsemDomUnfoldGath _lhsOwrapDecls))+sem_CSegments_Cons :: T_CSegment ->+                      T_CSegments ->+                      T_CSegments+sem_CSegments_Cons (T_CSegment hd_) (T_CSegments tl_) =+    (T_CSegments (\ _lhsIinh+                    _lhsInr+                    _lhsInt+                    _lhsIo_case+                    _lhsIo_cata+                    _lhsIo_costcentre+                    _lhsIo_data+                    _lhsIo_linePragmas+                    _lhsIo_monadic+                    _lhsIo_newtypes+                    _lhsIo_pretty+                    _lhsIo_rename+                    _lhsIo_sem+                    _lhsIo_sig+                    _lhsIo_splitsems+                    _lhsIo_strictwrap+                    _lhsIo_traces+                    _lhsIo_unbox+                    _lhsIoptions+                    _lhsIparamMap+                    _lhsIprefix+                    _lhsIsyn ->+                      (let _tlOnr :: Int+                           _lhsOisNil :: Bool+                           _hdOisLast :: Bool+                           _lhsOcomments :: ([String])+                           _lhsOsemDom :: ([Decl])+                           _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))+                           _lhsOwrapDecls :: Decls+                           _hdOinh :: Attributes+                           _hdOnr :: Int+                           _hdOnt :: NontermIdent+                           _hdOo_case :: Bool+                           _hdOo_cata :: Bool+                           _hdOo_costcentre :: Bool+                           _hdOo_data :: (Maybe Bool)+                           _hdOo_linePragmas :: Bool+                           _hdOo_monadic :: Bool+                           _hdOo_newtypes :: Bool+                           _hdOo_pretty :: Bool+                           _hdOo_rename :: Bool+                           _hdOo_sem :: Bool+                           _hdOo_sig :: Bool+                           _hdOo_splitsems :: Bool+                           _hdOo_strictwrap :: Bool+                           _hdOo_traces :: Bool+                           _hdOo_unbox :: Bool+                           _hdOoptions :: Options+                           _hdOparamMap :: ParamMap+                           _hdOprefix :: String+                           _hdOsyn :: Attributes+                           _tlOinh :: Attributes+                           _tlOnt :: NontermIdent+                           _tlOo_case :: Bool+                           _tlOo_cata :: Bool+                           _tlOo_costcentre :: Bool+                           _tlOo_data :: (Maybe Bool)+                           _tlOo_linePragmas :: Bool+                           _tlOo_monadic :: Bool+                           _tlOo_newtypes :: Bool+                           _tlOo_pretty :: Bool+                           _tlOo_rename :: Bool+                           _tlOo_sem :: Bool+                           _tlOo_sig :: Bool+                           _tlOo_splitsems :: Bool+                           _tlOo_strictwrap :: Bool+                           _tlOo_traces :: Bool+                           _tlOo_unbox :: Bool+                           _tlOoptions :: Options+                           _tlOparamMap :: ParamMap+                           _tlOprefix :: String+                           _tlOsyn :: Attributes+                           _hdIcomments :: ([String])+                           _hdIsemDom :: ([Decl])+                           _hdIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))+                           _hdIwrapDecls :: Decls+                           _tlIcomments :: ([String])+                           _tlIisNil :: Bool+                           _tlIsemDom :: ([Decl])+                           _tlIsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))+                           _tlIwrapDecls :: Decls+                           -- "src-ag/GenerateCode.ag"(line 286, column 11)+                           _tlOnr =+                               ({-# LINE 286 "src-ag/GenerateCode.ag" #-}+                                _lhsInr + 1+                                {-# LINE 4410 "dist/build/GenerateCode" #-}+                                )+                           -- "src-ag/GenerateCode.ag"(line 299, column 12)+                           _lhsOisNil =+                               ({-# LINE 299 "src-ag/GenerateCode.ag" #-}+                                False+                                {-# LINE 4416 "dist/build/GenerateCode" #-}+                                )+                           -- "src-ag/GenerateCode.ag"(line 300, column 12)+                           _hdOisLast =+                               ({-# LINE 300 "src-ag/GenerateCode.ag" #-}+                                _tlIisNil+                                {-# LINE 4422 "dist/build/GenerateCode" #-}+                                )+                           -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)+                           _lhsOcomments =+                               ({-# LINE 868 "src-ag/GenerateCode.ag" #-}+                                _hdIcomments ++ _tlIcomments+                                {-# LINE 4428 "dist/build/GenerateCode" #-}+                                )+                           -- use rule "src-ag/GenerateCode.ag"(line 710, column 50)+                           _lhsOsemDom =+                               ({-# LINE 710 "src-ag/GenerateCode.ag" #-}+                                _hdIsemDom ++ _tlIsemDom+                                {-# LINE 4434 "dist/build/GenerateCode" #-}+                                )+                           -- use rule "src-ag/GenerateCode.ag"(line 744, column 86)+                           _lhsOsemDomUnfoldGath =+                               ({-# LINE 744 "src-ag/GenerateCode.ag" #-}+                                _hdIsemDomUnfoldGath `Map.union` _tlIsemDomUnfoldGath+                                {-# LINE 4440 "dist/build/GenerateCode" #-}+                                )+                           -- use rule "src-ag/GenerateCode.ag"(line 829, column 52)+                           _lhsOwrapDecls =+                               ({-# LINE 829 "src-ag/GenerateCode.ag" #-}+                                _hdIwrapDecls ++ _tlIwrapDecls+                                {-# LINE 4446 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOinh =+                               ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                _lhsIinh+                                {-# LINE 4452 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOnr =+                               ({-# LINE 278 "src-ag/GenerateCode.ag" #-}+                                _lhsInr+                                {-# LINE 4458 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOnt =+                               ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                _lhsInt+                                {-# LINE 4464 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOo_case =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_case+                                {-# LINE 4470 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOo_cata =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_cata+                                {-# LINE 4476 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOo_costcentre =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_costcentre+                                {-# LINE 4482 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOo_data =+                               ({-# LINE 48 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_data+                                {-# LINE 4488 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOo_linePragmas =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_linePragmas+                                {-# LINE 4494 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOo_monadic =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_monadic+                                {-# LINE 4500 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOo_newtypes =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_newtypes+                                {-# LINE 4506 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOo_pretty =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_pretty+                                {-# LINE 4512 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOo_rename =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_rename+                                {-# LINE 4518 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOo_sem =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_sem+                                {-# LINE 4524 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOo_sig =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_sig+                                {-# LINE 4530 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOo_splitsems =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_splitsems+                                {-# LINE 4536 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOo_strictwrap =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_strictwrap+                                {-# LINE 4542 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOo_traces =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_traces+                                {-# LINE 4548 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOo_unbox =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_unbox+                                {-# LINE 4554 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOoptions =+                               ({-# LINE 50 "src-ag/GenerateCode.ag" #-}+                                _lhsIoptions+                                {-# LINE 4560 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOparamMap =+                               ({-# LINE 95 "src-ag/GenerateCode.ag" #-}+                                _lhsIparamMap+                                {-# LINE 4566 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOprefix =+                               ({-# LINE 49 "src-ag/GenerateCode.ag" #-}+                                _lhsIprefix+                                {-# LINE 4572 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _hdOsyn =+                               ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                _lhsIsyn+                                {-# LINE 4578 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOinh =+                               ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                _lhsIinh+                                {-# LINE 4584 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOnt =+                               ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                _lhsInt+                                {-# LINE 4590 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOo_case =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_case+                                {-# LINE 4596 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOo_cata =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_cata+                                {-# LINE 4602 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOo_costcentre =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_costcentre+                                {-# LINE 4608 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOo_data =+                               ({-# LINE 48 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_data+                                {-# LINE 4614 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOo_linePragmas =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_linePragmas+                                {-# LINE 4620 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOo_monadic =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_monadic+                                {-# LINE 4626 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOo_newtypes =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_newtypes+                                {-# LINE 4632 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOo_pretty =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_pretty+                                {-# LINE 4638 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOo_rename =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_rename+                                {-# LINE 4644 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOo_sem =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_sem+                                {-# LINE 4650 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOo_sig =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_sig+                                {-# LINE 4656 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOo_splitsems =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_splitsems+                                {-# LINE 4662 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOo_strictwrap =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_strictwrap+                                {-# LINE 4668 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOo_traces =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_traces+                                {-# LINE 4674 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOo_unbox =+                               ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                                _lhsIo_unbox+                                {-# LINE 4680 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOoptions =+                               ({-# LINE 50 "src-ag/GenerateCode.ag" #-}+                                _lhsIoptions+                                {-# LINE 4686 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOparamMap =+                               ({-# LINE 95 "src-ag/GenerateCode.ag" #-}+                                _lhsIparamMap+                                {-# LINE 4692 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOprefix =+                               ({-# LINE 49 "src-ag/GenerateCode.ag" #-}+                                _lhsIprefix+                                {-# LINE 4698 "dist/build/GenerateCode" #-}+                                )+                           -- copy rule (down)+                           _tlOsyn =+                               ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                                _lhsIsyn+                                {-# LINE 4704 "dist/build/GenerateCode" #-}+                                )+                           ( _hdIcomments,_hdIsemDom,_hdIsemDomUnfoldGath,_hdIwrapDecls) =+                               hd_ _hdOinh _hdOisLast _hdOnr _hdOnt _hdOo_case _hdOo_cata _hdOo_costcentre _hdOo_data _hdOo_linePragmas _hdOo_monadic _hdOo_newtypes _hdOo_pretty _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_splitsems _hdOo_strictwrap _hdOo_traces _hdOo_unbox _hdOoptions _hdOparamMap _hdOprefix _hdOsyn+                           ( _tlIcomments,_tlIisNil,_tlIsemDom,_tlIsemDomUnfoldGath,_tlIwrapDecls) =+                               tl_ _tlOinh _tlOnr _tlOnt _tlOo_case _tlOo_cata _tlOo_costcentre _tlOo_data _tlOo_linePragmas _tlOo_monadic _tlOo_newtypes _tlOo_pretty _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_splitsems _tlOo_strictwrap _tlOo_traces _tlOo_unbox _tlOoptions _tlOparamMap _tlOprefix _tlOsyn+                           ___node =+                               (Syn_CSegments _lhsOcomments _lhsOisNil _lhsOsemDom _lhsOsemDomUnfoldGath _lhsOwrapDecls)+                       in  ( _lhsOcomments,_lhsOisNil,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls))))+sem_CSegments_Nil :: T_CSegments+sem_CSegments_Nil =+    (T_CSegments (\ _lhsIinh+                    _lhsInr+                    _lhsInt+                    _lhsIo_case+                    _lhsIo_cata+                    _lhsIo_costcentre+                    _lhsIo_data+                    _lhsIo_linePragmas+                    _lhsIo_monadic+                    _lhsIo_newtypes+                    _lhsIo_pretty+                    _lhsIo_rename+                    _lhsIo_sem+                    _lhsIo_sig+                    _lhsIo_splitsems+                    _lhsIo_strictwrap+                    _lhsIo_traces+                    _lhsIo_unbox+                    _lhsIoptions+                    _lhsIparamMap+                    _lhsIprefix+                    _lhsIsyn ->+                      (let _lhsOisNil :: Bool+                           _lhsOcomments :: ([String])+                           _lhsOsemDom :: ([Decl])+                           _lhsOsemDomUnfoldGath :: (Map (NontermIdent, Int) ([String], Code.Type))+                           _lhsOwrapDecls :: Decls+                           -- "src-ag/GenerateCode.ag"(line 301, column 10)+                           _lhsOisNil =+                               ({-# LINE 301 "src-ag/GenerateCode.ag" #-}+                                True+                                {-# LINE 4746 "dist/build/GenerateCode" #-}+                                )+                           -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)+                           _lhsOcomments =+                               ({-# LINE 868 "src-ag/GenerateCode.ag" #-}+                                []+                                {-# LINE 4752 "dist/build/GenerateCode" #-}+                                )+                           -- use rule "src-ag/GenerateCode.ag"(line 710, column 50)+                           _lhsOsemDom =+                               ({-# LINE 710 "src-ag/GenerateCode.ag" #-}+                                []+                                {-# LINE 4758 "dist/build/GenerateCode" #-}+                                )+                           -- use rule "src-ag/GenerateCode.ag"(line 744, column 86)+                           _lhsOsemDomUnfoldGath =+                               ({-# LINE 744 "src-ag/GenerateCode.ag" #-}+                                Map.empty+                                {-# LINE 4764 "dist/build/GenerateCode" #-}+                                )+                           -- use rule "src-ag/GenerateCode.ag"(line 829, column 52)+                           _lhsOwrapDecls =+                               ({-# LINE 829 "src-ag/GenerateCode.ag" #-}+                                []+                                {-# LINE 4770 "dist/build/GenerateCode" #-}+                                )+                           ___node =+                               (Syn_CSegments _lhsOcomments _lhsOisNil _lhsOsemDom _lhsOsemDomUnfoldGath _lhsOwrapDecls)+                       in  ( _lhsOcomments,_lhsOisNil,_lhsOsemDom,_lhsOsemDomUnfoldGath,_lhsOwrapDecls))))+-- CVisit ------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allNts               : Set NontermIdent+         allPragmas           : PragmaMap+         aroundMap            : Set Identifier+         children             : [(Identifier,Type, ChildKind)]+         con                  : ConstructorIdent+         contextMap           : ContextMap+         inh                  : Attributes+         instVisitNrs         : Map Identifier Int+         isLast               : Bool+         mergeMap             : Map Identifier (Identifier, [Identifier])+         nextIntra            : Exprs+         nextIntraVars        : Set String+         nr                   : Int+         nt                   : NontermIdent+         o_case               : Bool+         o_cata               : Bool+         o_costcentre         : Bool+         o_data               : Maybe Bool+         o_linePragmas        : Bool+         o_monadic            : Bool+         o_newtypes           : Bool+         o_pretty             : Bool+         o_rename             : Bool+         o_sem                : Bool+         o_sig                : Bool+         o_splitsems          : Bool+         o_strictwrap         : Bool+         o_traces             : Bool+         o_unbox              : Bool+         options              : Options+         paramInstMap         : Map Identifier (NontermIdent, [String])+         paramMap             : ParamMap+         prefix               : String+         quantMap             : QuantMap+         syn                  : Attributes+         terminals            : [Identifier]+         unfoldSemDom         : NontermIdent -> Int -> [String] -> Code.Type+         with_sig             : Bool+         wrappers             : Set NontermIdent+      chained attributes:+         decls                : Decls+         visitedSet           : Set Identifier+      synthesized attributes:+         comments             : [String]+         gatherInstVisitNrs   : Map Identifier Int+         intra                : Exprs+         intraVars            : Set String+         semNames             : [String]+   alternatives:+      alternative CVisit:+         child inh            : {Attributes}+         child syn            : {Attributes}+         child vss            : Sequence +         child intra          : Sequence +         child ordered        : {Bool}+         visit 0:+            local higherOrderChildren : _+            local firstOrderChildren : _+            local firstOrderOrig : _+            local funcname    : _+            local nextVisitName : _+            local nextVisitDecl : _+            local isOneVisit  : _+            local hasWrappers : _+            local refDecls    : _+            local decls       : _+            local lastExprVars : _+            local blockFunDecls : _+            local blockFirstFunCall : _+            local costCentreDescr : _+            local addCostCentre : _+            local params      : _+            local semFun      : _+            local tsig        : _+            local semType     : _+            local typeSigs    : _+            local o_do        : _+            local o_case      : _+            local declsType   : _+            local o_splitsems : _+-}+-- cata+sem_CVisit :: CVisit ->+              T_CVisit+sem_CVisit (CVisit _inh _syn _vss _intra _ordered) =+    (sem_CVisit_CVisit _inh _syn (sem_Sequence _vss) (sem_Sequence _intra) _ordered)+-- semantic domain+newtype T_CVisit = T_CVisit ((Set NontermIdent) ->+                             PragmaMap ->+                             (Set Identifier) ->+                             ([(Identifier,Type, ChildKind)]) ->+                             ConstructorIdent ->+                             ContextMap ->+                             Decls ->+                             Attributes ->+                             (Map Identifier Int) ->+                             Bool ->+                             (Map Identifier (Identifier, [Identifier])) ->+                             Exprs ->+                             (Set String) ->+                             Int ->+                             NontermIdent ->+                             Bool ->+                             Bool ->+                             Bool ->+                             (Maybe Bool) ->+                             Bool ->+                             Bool ->+                             Bool ->+                             Bool ->+                             Bool ->+                             Bool ->+                             Bool ->+                             Bool ->+                             Bool ->+                             Bool ->+                             Bool ->+                             Options ->+                             (Map Identifier (NontermIdent, [String])) ->+                             ParamMap ->+                             String ->+                             QuantMap ->+                             Attributes ->+                             ([Identifier]) ->+                             (NontermIdent -> Int -> [String] -> Code.Type) ->+                             (Set Identifier) ->+                             Bool ->+                             (Set NontermIdent) ->+                             ( ([String]),Decls,(Map Identifier Int),Exprs,(Set String),([String]),(Set Identifier)))+data Inh_CVisit = Inh_CVisit {allNts_Inh_CVisit :: !((Set NontermIdent)),allPragmas_Inh_CVisit :: !(PragmaMap),aroundMap_Inh_CVisit :: !((Set Identifier)),children_Inh_CVisit :: !(([(Identifier,Type, ChildKind)])),con_Inh_CVisit :: !(ConstructorIdent),contextMap_Inh_CVisit :: !(ContextMap),decls_Inh_CVisit :: !(Decls),inh_Inh_CVisit :: !(Attributes),instVisitNrs_Inh_CVisit :: !((Map Identifier Int)),isLast_Inh_CVisit :: !(Bool),mergeMap_Inh_CVisit :: !((Map Identifier (Identifier, [Identifier]))),nextIntra_Inh_CVisit :: !(Exprs),nextIntraVars_Inh_CVisit :: !((Set String)),nr_Inh_CVisit :: !(Int),nt_Inh_CVisit :: !(NontermIdent),o_case_Inh_CVisit :: !(Bool),o_cata_Inh_CVisit :: !(Bool),o_costcentre_Inh_CVisit :: !(Bool),o_data_Inh_CVisit :: !((Maybe Bool)),o_linePragmas_Inh_CVisit :: !(Bool),o_monadic_Inh_CVisit :: !(Bool),o_newtypes_Inh_CVisit :: !(Bool),o_pretty_Inh_CVisit :: !(Bool),o_rename_Inh_CVisit :: !(Bool),o_sem_Inh_CVisit :: !(Bool),o_sig_Inh_CVisit :: !(Bool),o_splitsems_Inh_CVisit :: !(Bool),o_strictwrap_Inh_CVisit :: !(Bool),o_traces_Inh_CVisit :: !(Bool),o_unbox_Inh_CVisit :: !(Bool),options_Inh_CVisit :: !(Options),paramInstMap_Inh_CVisit :: !((Map Identifier (NontermIdent, [String]))),paramMap_Inh_CVisit :: !(ParamMap),prefix_Inh_CVisit :: !(String),quantMap_Inh_CVisit :: !(QuantMap),syn_Inh_CVisit :: !(Attributes),terminals_Inh_CVisit :: !(([Identifier])),unfoldSemDom_Inh_CVisit :: !((NontermIdent -> Int -> [String] -> Code.Type)),visitedSet_Inh_CVisit :: !((Set Identifier)),with_sig_Inh_CVisit :: !(Bool),wrappers_Inh_CVisit :: !((Set NontermIdent))}+data Syn_CVisit = Syn_CVisit {comments_Syn_CVisit :: !(([String])),decls_Syn_CVisit :: !(Decls),gatherInstVisitNrs_Syn_CVisit :: !((Map Identifier Int)),intra_Syn_CVisit :: !(Exprs),intraVars_Syn_CVisit :: !((Set String)),semNames_Syn_CVisit :: !(([String])),visitedSet_Syn_CVisit :: !((Set Identifier))}+wrap_CVisit :: T_CVisit ->+               Inh_CVisit ->+               Syn_CVisit+wrap_CVisit (T_CVisit sem) (Inh_CVisit _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIcontextMap _lhsIdecls _lhsIinh _lhsIinstVisitNrs _lhsIisLast _lhsImergeMap _lhsInextIntra _lhsInextIntraVars _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIvisitedSet _lhsIwith_sig _lhsIwrappers) =+    (let ( _lhsOcomments,_lhsOdecls,_lhsOgatherInstVisitNrs,_lhsOintra,_lhsOintraVars,_lhsOsemNames,_lhsOvisitedSet) = sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIcontextMap _lhsIdecls _lhsIinh _lhsIinstVisitNrs _lhsIisLast _lhsImergeMap _lhsInextIntra _lhsInextIntraVars _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIvisitedSet _lhsIwith_sig _lhsIwrappers+     in  (Syn_CVisit _lhsOcomments _lhsOdecls _lhsOgatherInstVisitNrs _lhsOintra _lhsOintraVars _lhsOsemNames _lhsOvisitedSet))+sem_CVisit_CVisit :: Attributes ->+                     Attributes ->+                     T_Sequence ->+                     T_Sequence ->+                     Bool ->+                     T_CVisit+sem_CVisit_CVisit inh_ syn_ (T_Sequence vss_) (T_Sequence intra_) ordered_ =+    (T_CVisit (\ _lhsIallNts+                 _lhsIallPragmas+                 _lhsIaroundMap+                 _lhsIchildren+                 _lhsIcon+                 _lhsIcontextMap+                 _lhsIdecls+                 _lhsIinh+                 _lhsIinstVisitNrs+                 _lhsIisLast+                 _lhsImergeMap+                 _lhsInextIntra+                 _lhsInextIntraVars+                 _lhsInr+                 _lhsInt+                 _lhsIo_case+                 _lhsIo_cata+                 _lhsIo_costcentre+                 _lhsIo_data+                 _lhsIo_linePragmas+                 _lhsIo_monadic+                 _lhsIo_newtypes+                 _lhsIo_pretty+                 _lhsIo_rename+                 _lhsIo_sem+                 _lhsIo_sig+                 _lhsIo_splitsems+                 _lhsIo_strictwrap+                 _lhsIo_traces+                 _lhsIo_unbox+                 _lhsIoptions+                 _lhsIparamInstMap+                 _lhsIparamMap+                 _lhsIprefix+                 _lhsIquantMap+                 _lhsIsyn+                 _lhsIterminals+                 _lhsIunfoldSemDom+                 _lhsIvisitedSet+                 _lhsIwith_sig+                 _lhsIwrappers ->+                   (let _lhsOintra :: Exprs+                        _lhsOintraVars :: (Set String)+                        _vssOlastExpr :: Expr+                        _intraOlastExpr :: Expr+                        _lhsOdecls :: Decls+                        _lhsOgatherInstVisitNrs :: (Map Identifier Int)+                        _vssOdeclsAbove :: ([Decl])+                        _intraOdeclsAbove :: ([Decl])+                        _lhsOcomments :: ([String])+                        _vssOwhat :: String+                        _intraOwhat :: String+                        _lhsOsemNames :: ([String])+                        _lhsOvisitedSet :: (Set Identifier)+                        _vssOallNts :: (Set NontermIdent)+                        _vssOaroundMap :: (Set Identifier)+                        _vssOchildren :: ([(Identifier,Type,ChildKind)])+                        _vssOcon :: ConstructorIdent+                        _vssOinh :: Attributes+                        _vssOinstVisitNrs :: (Map Identifier Int)+                        _vssOmergeMap :: (Map Identifier (Identifier, [Identifier]))+                        _vssOnr :: Int+                        _vssOnt :: NontermIdent+                        _vssOo_case :: Bool+                        _vssOo_cata :: Bool+                        _vssOo_costcentre :: Bool+                        _vssOo_data :: (Maybe Bool)+                        _vssOo_linePragmas :: Bool+                        _vssOo_monadic :: Bool+                        _vssOo_newtypes :: Bool+                        _vssOo_pretty :: Bool+                        _vssOo_rename :: Bool+                        _vssOo_sem :: Bool+                        _vssOo_sig :: Bool+                        _vssOo_splitsems :: Bool+                        _vssOo_strictwrap :: Bool+                        _vssOo_traces :: Bool+                        _vssOo_unbox :: Bool+                        _vssOoptions :: Options+                        _vssOparamInstMap :: (Map Identifier (NontermIdent, [String]))+                        _vssOparamMap :: ParamMap+                        _vssOprefix :: String+                        _vssOsyn :: Attributes+                        _vssOterminals :: ([Identifier])+                        _vssOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)+                        _vssOvisitedSet :: (Set Identifier)+                        _intraOallNts :: (Set NontermIdent)+                        _intraOaroundMap :: (Set Identifier)+                        _intraOchildren :: ([(Identifier,Type,ChildKind)])+                        _intraOcon :: ConstructorIdent+                        _intraOinh :: Attributes+                        _intraOinstVisitNrs :: (Map Identifier Int)+                        _intraOmergeMap :: (Map Identifier (Identifier, [Identifier]))+                        _intraOnr :: Int+                        _intraOnt :: NontermIdent+                        _intraOo_case :: Bool+                        _intraOo_cata :: Bool+                        _intraOo_costcentre :: Bool+                        _intraOo_data :: (Maybe Bool)+                        _intraOo_linePragmas :: Bool+                        _intraOo_monadic :: Bool+                        _intraOo_newtypes :: Bool+                        _intraOo_pretty :: Bool+                        _intraOo_rename :: Bool+                        _intraOo_sem :: Bool+                        _intraOo_sig :: Bool+                        _intraOo_splitsems :: Bool+                        _intraOo_strictwrap :: Bool+                        _intraOo_traces :: Bool+                        _intraOo_unbox :: Bool+                        _intraOoptions :: Options+                        _intraOparamInstMap :: (Map Identifier (NontermIdent, [String]))+                        _intraOparamMap :: ParamMap+                        _intraOprefix :: String+                        _intraOsyn :: Attributes+                        _intraOterminals :: ([Identifier])+                        _intraOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)+                        _intraOvisitedSet :: (Set Identifier)+                        _vssIallTpsFound :: Bool+                        _vssIblockDecls :: DeclBlocks+                        _vssIcomments :: ([String])+                        _vssIdecls :: Decls+                        _vssIdeclsAbove :: ([Decl])+                        _vssIdefinedInsts :: ([Identifier])+                        _vssIexprs :: Exprs+                        _vssItSigs :: ([Decl])+                        _vssItps :: ([Type])+                        _vssIusedVars :: (Set String)+                        _vssIvisitedSet :: (Set Identifier)+                        _intraIallTpsFound :: Bool+                        _intraIblockDecls :: DeclBlocks+                        _intraIcomments :: ([String])+                        _intraIdecls :: Decls+                        _intraIdeclsAbove :: ([Decl])+                        _intraIdefinedInsts :: ([Identifier])+                        _intraIexprs :: Exprs+                        _intraItSigs :: ([Decl])+                        _intraItps :: ([Type])+                        _intraIusedVars :: (Set String)+                        _intraIvisitedSet :: (Set Identifier)+                        -- "src-ag/GenerateCode.ag"(line 310, column 13)+                        _lhsOintra =+                            ({-# LINE 310 "src-ag/GenerateCode.ag" #-}+                             _intraIexprs+                             {-# LINE 5067 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 311, column 13)+                        _lhsOintraVars =+                            ({-# LINE 311 "src-ag/GenerateCode.ag" #-}+                             _intraIusedVars+                             {-# LINE 5073 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 441, column 13)+                        (_higherOrderChildren,_firstOrderChildren) =+                            ({-# LINE 441 "src-ag/GenerateCode.ag" #-}+                             partition (\(_,_,virt) -> isHigherOrder virt) _lhsIchildren+                             {-# LINE 5079 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 442, column 13)+                        _firstOrderOrig =+                            ({-# LINE 442 "src-ag/GenerateCode.ag" #-}+                             map pickOrigType _firstOrderChildren+                             {-# LINE 5085 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 443, column 13)+                        _funcname =+                            ({-# LINE 443 "src-ag/GenerateCode.ag" #-}+                             seqSemname _lhsIprefix _lhsInt _lhsIcon _lhsInr+                             {-# LINE 5091 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 444, column 13)+                        _nextVisitName =+                            ({-# LINE 444 "src-ag/GenerateCode.ag" #-}+                             if _lhsIisLast then [] else [visitname _lhsIprefix _lhsInt (_lhsInr+1)]+                             {-# LINE 5097 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 445, column 13)+                        _nextVisitDecl =+                            ({-# LINE 445 "src-ag/GenerateCode.ag" #-}+                             let  lhs = TupleLhs _nextVisitName+                                  rhs = Let _lhsIdecls (SimpleExpr fun)+                                  fun = seqSemname _lhsIprefix _lhsInt _lhsIcon (_lhsInr+1)+                             in if _lhsIisLast+                                then []+                                else [Decl lhs rhs (Set.fromList _nextVisitName) _lhsInextIntraVars]+                             {-# LINE 5108 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 452, column 13)+                        _isOneVisit =+                            ({-# LINE 452 "src-ag/GenerateCode.ag" #-}+                             _lhsIisLast && _lhsInr == 0+                             {-# LINE 5114 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 453, column 13)+                        _hasWrappers =+                            ({-# LINE 453 "src-ag/GenerateCode.ag" #-}+                             _lhsInt `Set.member` _lhsIwrappers+                             {-# LINE 5120 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 454, column 13)+                        _refDecls =+                            ({-# LINE 454 "src-ag/GenerateCode.ag" #-}+                             if _isOneVisit     && _hasWrappers     && reference _lhsIoptions+                             then let synAttrs = Map.toList syn_+                                      synNT = "Syn" ++ "_" ++ getName _lhsInt+                                      synVars = [ SimpleExpr (attrname False _LHS a) | (a,_) <- synAttrs ]+                                      rhs = App synNT synVars+                                      lhs = Fun "___node" []+                                  in [Decl lhs rhs Set.empty Set.empty]+                             else []+                             {-# LINE 5133 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 462, column 13)+                        _decls =+                            ({-# LINE 462 "src-ag/GenerateCode.ag" #-}+                             _typeSigs ++ _vssIdecls ++ _nextVisitDecl ++ _refDecls+                             {-# LINE 5139 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 463, column 13)+                        _vssOlastExpr =+                            ({-# LINE 463 "src-ag/GenerateCode.ag" #-}+                             mkTupleExpr _lhsIo_unbox (null $ Map.keys inh_) $ map (SimpleExpr . lhsname False) (Map.keys syn_) ++ map SimpleExpr _nextVisitName+                             {-# LINE 5145 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 464, column 13)+                        _intraOlastExpr =+                            ({-# LINE 464 "src-ag/GenerateCode.ag" #-}+                             error "lastExpr: not used here"+                             {-# LINE 5151 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 465, column 13)+                        _lastExprVars =+                            ({-# LINE 465 "src-ag/GenerateCode.ag" #-}+                             map (lhsname False) (Map.keys syn_) ++ _nextVisitName+                             {-# LINE 5157 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 466, column 13)+                        (_blockFunDecls,_blockFirstFunCall) =+                            ({-# LINE 466 "src-ag/GenerateCode.ag" #-}+                             mkPartitionedFunction _funcname     _o_case     _nextVisitDecl     _lastExprVars     _vssIblockDecls+                             {-# LINE 5163 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 468, column 13)+                        _costCentreDescr =+                            ({-# LINE 468 "src-ag/GenerateCode.ag" #-}+                             "b" ++ ":" ++ show _lhsInt ++ ":" ++ show _lhsIcon ++ ":" ++ show _lhsInr+                             {-# LINE 5169 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 469, column 13)+                        _addCostCentre =+                            ({-# LINE 469 "src-ag/GenerateCode.ag" #-}+                             \v -> if _lhsIo_costcentre+                                   then PragmaExpr True False ("SCC \"" ++ _costCentreDescr     ++ "\"") v+                                   else v+                             {-# LINE 5177 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 473, column 13)+                        _params =+                            ({-# LINE 473 "src-ag/GenerateCode.ag" #-}+                             map getName $ Map.findWithDefault [] _lhsInt _lhsIparamMap+                             {-# LINE 5183 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 474, column 13)+                        _semFun =+                            ({-# LINE 474 "src-ag/GenerateCode.ag" #-}+                             let  lhs = Fun _funcname lhs_args+                                  lhs_args = if _lhsInr == 0 then map field _firstOrderOrig     else []+                                  field (name,NT tp tps _,_) = let unwrap | _lhsIo_newtypes = \x -> App (sdtype tp) [x]+                                                                          | otherwise       = id+                                                                   addType expr | null tps  = expr+                                                                                | otherwise = TypedExpr expr (_lhsIunfoldSemDom tp 0 tps)+                                                               in unwrap $ addType $ SimpleExpr $ funname name 0+                                  field (name,tp,_)        = let expr = SimpleExpr (funname name 0)+                                                             in if null _params+                                                                then expr+                                                                else TypedExpr expr (idEvalType $ typeToCodeType (Just _lhsInt) _params     $ removeDeforested tp)+                                  mbEvalTp | null _params     = const Nothing+                                           | otherwise        = Just . idEvalType+                                  rhs = wrap+                                      . mkSemFun _lhsInt _lhsInr [mkLambdaArg (lhsname True nm) (mbEvalTp $ typeToCodeType (Just _lhsInt) _params     $ removeDeforested tp) | (nm,tp) <- Map.assocs inh_]+                                      $ _addCostCentre+                                      $ if ordered_ && _o_splitsems+                                        then _blockFirstFunCall+                                        else mkDecls _declsType     _decls+                                             . ResultExpr (typeName _lhsInt _lhsInr)+                                             . mkTupleExpr _lhsIo_unbox (null $ Map.keys inh_)+                                             $ map (SimpleExpr . lhsname False) (Map.keys syn_) ++ map SimpleExpr _nextVisitName+                                  wrap = if  _lhsIo_newtypes+                                             then \x -> App (typeName _lhsInt _lhsInr) [x]+                                             else id+                             in Decl lhs rhs Set.empty Set.empty+                             {-# LINE 5214 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 505, column 13)+                        _tsig =+                            ({-# LINE 505 "src-ag/GenerateCode.ag" #-}+                             TSig _funcname _semType+                             {-# LINE 5220 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 506, column 13)+                        _semType =+                            ({-# LINE 506 "src-ag/GenerateCode.ag" #-}+                             let argType (NT tp tps _)  r | tp /= _SELF = typeAppStrs (sdtype tp) tps `Arr` r+                                                          | tp == _SELF = error "GenerateCode: found an intra-type with type SELF, which should have been prevented by CRule.tps"+                                 argType (Haskell tp) r                 = SimpleType tp          `Arr` r+                                 evalTp | null _params     = id+                                        | otherwise        = idEvalType+                             in appQuant _lhsIquantMap _lhsInt $ appContext _lhsIcontextMap _lhsInt $ evalTp $+                                if  _lhsInr == 0+                                    then foldr argType (typeAppStrs (sdtype   _lhsInt        ) _params    ) (map (\(_,t,_) -> t) _firstOrderOrig    )+                                    else foldr argType (typeAppStrs (typeName _lhsInt _lhsInr) _params    ) []+                             {-# LINE 5234 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 517, column 13)+                        _lhsOdecls =+                            ({-# LINE 517 "src-ag/GenerateCode.ag" #-}+                             ( if  _lhsIwith_sig+                               then [_tsig, _semFun]+                               else [_semFun]+                             ) +++                             ( if ordered_ && _o_splitsems+                               then _blockFunDecls+                               else []+                             )+                             {-# LINE 5247 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 525, column 13)+                        _typeSigs =+                            ({-# LINE 525 "src-ag/GenerateCode.ag" #-}+                             if  _lhsIo_sig && not _o_case+                                 then  _vssItSigs+                                 else  []+                             {-# LINE 5255 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 528, column 13)+                        _o_do =+                            ({-# LINE 528 "src-ag/GenerateCode.ag" #-}+                             ordered_ && _lhsIo_monadic+                             {-# LINE 5261 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 529, column 13)+                        _o_case =+                            ({-# LINE 529 "src-ag/GenerateCode.ag" #-}+                             not _o_do     && _lhsIo_case && ordered_ && not (hasPragma _lhsIallPragmas _lhsInt _lhsIcon _NOCASE)+                             {-# LINE 5267 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 530, column 13)+                        _declsType =+                            ({-# LINE 530 "src-ag/GenerateCode.ag" #-}+                             if _o_do+                             then DeclsDo+                             else if _o_case+                                  then DeclsCase+                                  else DeclsLet+                             {-# LINE 5277 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 535, column 13)+                        _o_splitsems =+                            ({-# LINE 535 "src-ag/GenerateCode.ag" #-}+                             ordered_ && _lhsIo_splitsems+                             {-# LINE 5283 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 568, column 7)+                        _lhsOgatherInstVisitNrs =+                            ({-# LINE 568 "src-ag/GenerateCode.ag" #-}+                             Map.fromList [(i,_lhsInr) | i <- _vssIdefinedInsts]+                             {-# LINE 5289 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 611, column 7)+                        _vssOdeclsAbove =+                            ({-# LINE 611 "src-ag/GenerateCode.ag" #-}+                             []+                             {-# LINE 5295 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 612, column 7)+                        _intraOdeclsAbove =+                            ({-# LINE 612 "src-ag/GenerateCode.ag" #-}+                             error "declsAbove: not used here"+                             {-# LINE 5301 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 894, column 18)+                        _lhsOcomments =+                            ({-# LINE 894 "src-ag/GenerateCode.ag" #-}+                             let body = map ind (_vssIcomments ++ _intraIcomments)+                             in if null body+                                then []+                                else ("visit " ++ show _lhsInr ++ ":") : body+                             {-# LINE 5310 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 898, column 18)+                        _vssOwhat =+                            ({-# LINE 898 "src-ag/GenerateCode.ag" #-}+                             "local"+                             {-# LINE 5316 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 899, column 18)+                        _intraOwhat =+                            ({-# LINE 899 "src-ag/GenerateCode.ag" #-}+                             "intra"+                             {-# LINE 5322 "dist/build/GenerateCode" #-}+                             )+                        -- "src-ag/GenerateCode.ag"(line 1156, column 7)+                        _lhsOsemNames =+                            ({-# LINE 1156 "src-ag/GenerateCode.ag" #-}+                             [_funcname    ]+                             {-# LINE 5328 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (up)+                        _lhsOvisitedSet =+                            ({-# LINE 145 "src-ag/GenerateCode.ag" #-}+                             _intraIvisitedSet+                             {-# LINE 5334 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOallNts =+                            ({-# LINE 132 "src-ag/GenerateCode.ag" #-}+                             _lhsIallNts+                             {-# LINE 5340 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOaroundMap =+                            ({-# LINE 580 "src-ag/GenerateCode.ag" #-}+                             _lhsIaroundMap+                             {-# LINE 5346 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOchildren =+                            ({-# LINE 259 "src-ag/GenerateCode.ag" #-}+                             _lhsIchildren+                             {-# LINE 5352 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOcon =+                            ({-# LINE 89 "src-ag/GenerateCode.ag" #-}+                             _lhsIcon+                             {-# LINE 5358 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOinh =+                            ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                             _lhsIinh+                             {-# LINE 5364 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOinstVisitNrs =+                            ({-# LINE 560 "src-ag/GenerateCode.ag" #-}+                             _lhsIinstVisitNrs+                             {-# LINE 5370 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOmergeMap =+                            ({-# LINE 596 "src-ag/GenerateCode.ag" #-}+                             _lhsImergeMap+                             {-# LINE 5376 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOnr =+                            ({-# LINE 278 "src-ag/GenerateCode.ag" #-}+                             _lhsInr+                             {-# LINE 5382 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOnt =+                            ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                             _lhsInt+                             {-# LINE 5388 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (from local)+                        _vssOo_case =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _o_case+                             {-# LINE 5394 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOo_cata =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_cata+                             {-# LINE 5400 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOo_costcentre =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_costcentre+                             {-# LINE 5406 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOo_data =+                            ({-# LINE 48 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_data+                             {-# LINE 5412 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOo_linePragmas =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_linePragmas+                             {-# LINE 5418 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOo_monadic =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_monadic+                             {-# LINE 5424 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOo_newtypes =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_newtypes+                             {-# LINE 5430 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOo_pretty =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_pretty+                             {-# LINE 5436 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOo_rename =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_rename+                             {-# LINE 5442 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOo_sem =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_sem+                             {-# LINE 5448 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOo_sig =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_sig+                             {-# LINE 5454 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (from local)+                        _vssOo_splitsems =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _o_splitsems+                             {-# LINE 5460 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOo_strictwrap =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_strictwrap+                             {-# LINE 5466 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOo_traces =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_traces+                             {-# LINE 5472 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOo_unbox =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_unbox+                             {-# LINE 5478 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOoptions =+                            ({-# LINE 50 "src-ag/GenerateCode.ag" #-}+                             _lhsIoptions+                             {-# LINE 5484 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOparamInstMap =+                            ({-# LINE 101 "src-ag/GenerateCode.ag" #-}+                             _lhsIparamInstMap+                             {-# LINE 5490 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOparamMap =+                            ({-# LINE 95 "src-ag/GenerateCode.ag" #-}+                             _lhsIparamMap+                             {-# LINE 5496 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOprefix =+                            ({-# LINE 49 "src-ag/GenerateCode.ag" #-}+                             _lhsIprefix+                             {-# LINE 5502 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOsyn =+                            ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                             _lhsIsyn+                             {-# LINE 5508 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOterminals =+                            ({-# LINE 90 "src-ag/GenerateCode.ag" #-}+                             _lhsIterminals+                             {-# LINE 5514 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOunfoldSemDom =+                            ({-# LINE 750 "src-ag/GenerateCode.ag" #-}+                             _lhsIunfoldSemDom+                             {-# LINE 5520 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _vssOvisitedSet =+                            ({-# LINE 145 "src-ag/GenerateCode.ag" #-}+                             _lhsIvisitedSet+                             {-# LINE 5526 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOallNts =+                            ({-# LINE 132 "src-ag/GenerateCode.ag" #-}+                             _lhsIallNts+                             {-# LINE 5532 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOaroundMap =+                            ({-# LINE 580 "src-ag/GenerateCode.ag" #-}+                             _lhsIaroundMap+                             {-# LINE 5538 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOchildren =+                            ({-# LINE 259 "src-ag/GenerateCode.ag" #-}+                             _lhsIchildren+                             {-# LINE 5544 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOcon =+                            ({-# LINE 89 "src-ag/GenerateCode.ag" #-}+                             _lhsIcon+                             {-# LINE 5550 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOinh =+                            ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                             _lhsIinh+                             {-# LINE 5556 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOinstVisitNrs =+                            ({-# LINE 560 "src-ag/GenerateCode.ag" #-}+                             _lhsIinstVisitNrs+                             {-# LINE 5562 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOmergeMap =+                            ({-# LINE 596 "src-ag/GenerateCode.ag" #-}+                             _lhsImergeMap+                             {-# LINE 5568 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOnr =+                            ({-# LINE 278 "src-ag/GenerateCode.ag" #-}+                             _lhsInr+                             {-# LINE 5574 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOnt =+                            ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                             _lhsInt+                             {-# LINE 5580 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (from local)+                        _intraOo_case =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _o_case+                             {-# LINE 5586 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOo_cata =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_cata+                             {-# LINE 5592 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOo_costcentre =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_costcentre+                             {-# LINE 5598 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOo_data =+                            ({-# LINE 48 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_data+                             {-# LINE 5604 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOo_linePragmas =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_linePragmas+                             {-# LINE 5610 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOo_monadic =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_monadic+                             {-# LINE 5616 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOo_newtypes =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_newtypes+                             {-# LINE 5622 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOo_pretty =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_pretty+                             {-# LINE 5628 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOo_rename =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_rename+                             {-# LINE 5634 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOo_sem =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_sem+                             {-# LINE 5640 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOo_sig =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_sig+                             {-# LINE 5646 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (from local)+                        _intraOo_splitsems =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _o_splitsems+                             {-# LINE 5652 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOo_strictwrap =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_strictwrap+                             {-# LINE 5658 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOo_traces =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_traces+                             {-# LINE 5664 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOo_unbox =+                            ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                             _lhsIo_unbox+                             {-# LINE 5670 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOoptions =+                            ({-# LINE 50 "src-ag/GenerateCode.ag" #-}+                             _lhsIoptions+                             {-# LINE 5676 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOparamInstMap =+                            ({-# LINE 101 "src-ag/GenerateCode.ag" #-}+                             _lhsIparamInstMap+                             {-# LINE 5682 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOparamMap =+                            ({-# LINE 95 "src-ag/GenerateCode.ag" #-}+                             _lhsIparamMap+                             {-# LINE 5688 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOprefix =+                            ({-# LINE 49 "src-ag/GenerateCode.ag" #-}+                             _lhsIprefix+                             {-# LINE 5694 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOsyn =+                            ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                             _lhsIsyn+                             {-# LINE 5700 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOterminals =+                            ({-# LINE 90 "src-ag/GenerateCode.ag" #-}+                             _lhsIterminals+                             {-# LINE 5706 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (down)+                        _intraOunfoldSemDom =+                            ({-# LINE 750 "src-ag/GenerateCode.ag" #-}+                             _lhsIunfoldSemDom+                             {-# LINE 5712 "dist/build/GenerateCode" #-}+                             )+                        -- copy rule (chain)+                        _intraOvisitedSet =+                            ({-# LINE 145 "src-ag/GenerateCode.ag" #-}+                             _vssIvisitedSet+                             {-# LINE 5718 "dist/build/GenerateCode" #-}+                             )+                        ( _vssIallTpsFound,_vssIblockDecls,_vssIcomments,_vssIdecls,_vssIdeclsAbove,_vssIdefinedInsts,_vssIexprs,_vssItSigs,_vssItps,_vssIusedVars,_vssIvisitedSet) =+                            vss_ _vssOallNts _vssOaroundMap _vssOchildren _vssOcon _vssOdeclsAbove _vssOinh _vssOinstVisitNrs _vssOlastExpr _vssOmergeMap _vssOnr _vssOnt _vssOo_case _vssOo_cata _vssOo_costcentre _vssOo_data _vssOo_linePragmas _vssOo_monadic _vssOo_newtypes _vssOo_pretty _vssOo_rename _vssOo_sem _vssOo_sig _vssOo_splitsems _vssOo_strictwrap _vssOo_traces _vssOo_unbox _vssOoptions _vssOparamInstMap _vssOparamMap _vssOprefix _vssOsyn _vssOterminals _vssOunfoldSemDom _vssOvisitedSet _vssOwhat+                        ( _intraIallTpsFound,_intraIblockDecls,_intraIcomments,_intraIdecls,_intraIdeclsAbove,_intraIdefinedInsts,_intraIexprs,_intraItSigs,_intraItps,_intraIusedVars,_intraIvisitedSet) =+                            intra_ _intraOallNts _intraOaroundMap _intraOchildren _intraOcon _intraOdeclsAbove _intraOinh _intraOinstVisitNrs _intraOlastExpr _intraOmergeMap _intraOnr _intraOnt _intraOo_case _intraOo_cata _intraOo_costcentre _intraOo_data _intraOo_linePragmas _intraOo_monadic _intraOo_newtypes _intraOo_pretty _intraOo_rename _intraOo_sem _intraOo_sig _intraOo_splitsems _intraOo_strictwrap _intraOo_traces _intraOo_unbox _intraOoptions _intraOparamInstMap _intraOparamMap _intraOprefix _intraOsyn _intraOterminals _intraOunfoldSemDom _intraOvisitedSet _intraOwhat+                        ___node =+                            (Syn_CVisit _lhsOcomments _lhsOdecls _lhsOgatherInstVisitNrs _lhsOintra _lhsOintraVars _lhsOsemNames _lhsOvisitedSet)+                    in  ( _lhsOcomments,_lhsOdecls,_lhsOgatherInstVisitNrs,_lhsOintra,_lhsOintraVars,_lhsOsemNames,_lhsOvisitedSet))))+-- CVisits -----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allNts               : Set NontermIdent+         allPragmas           : PragmaMap+         aroundMap            : Set Identifier+         children             : [(Identifier,Type, ChildKind)]+         con                  : ConstructorIdent+         contextMap           : ContextMap+         inh                  : Attributes+         instVisitNrs         : Map Identifier Int+         mergeMap             : Map Identifier (Identifier, [Identifier])+         nr                   : Int+         nt                   : NontermIdent+         o_case               : Bool+         o_cata               : Bool+         o_costcentre         : Bool+         o_data               : Maybe Bool+         o_linePragmas        : Bool+         o_monadic            : Bool+         o_newtypes           : Bool+         o_pretty             : Bool+         o_rename             : Bool+         o_sem                : Bool+         o_sig                : Bool+         o_splitsems          : Bool+         o_strictwrap         : Bool+         o_traces             : Bool+         o_unbox              : Bool+         options              : Options+         paramInstMap         : Map Identifier (NontermIdent, [String])+         paramMap             : ParamMap+         prefix               : String+         quantMap             : QuantMap+         syn                  : Attributes+         terminals            : [Identifier]+         unfoldSemDom         : NontermIdent -> Int -> [String] -> Code.Type+         with_sig             : Bool+         wrappers             : Set NontermIdent+      chained attribute:+         visitedSet           : Set Identifier+      synthesized attributes:+         comments             : [String]+         decls                : Decls+         gatherInstVisitNrs   : Map Identifier Int+         intra                : Exprs+         intraVars            : Set String+         isNil                : Bool+         semNames             : [String]+   alternatives:+      alternative Cons:+         child hd             : CVisit +         child tl             : CVisits +      alternative Nil:+-}+-- cata+sem_CVisits :: CVisits ->+               T_CVisits+sem_CVisits list =+    (Prelude.foldr sem_CVisits_Cons sem_CVisits_Nil (Prelude.map sem_CVisit list))+-- semantic domain+newtype T_CVisits = T_CVisits ((Set NontermIdent) ->+                               PragmaMap ->+                               (Set Identifier) ->+                               ([(Identifier,Type, ChildKind)]) ->+                               ConstructorIdent ->+                               ContextMap ->+                               Attributes ->+                               (Map Identifier Int) ->+                               (Map Identifier (Identifier, [Identifier])) ->+                               Int ->+                               NontermIdent ->+                               Bool ->+                               Bool ->+                               Bool ->+                               (Maybe Bool) ->+                               Bool ->+                               Bool ->+                               Bool ->+                               Bool ->+                               Bool ->+                               Bool ->+                               Bool ->+                               Bool ->+                               Bool ->+                               Bool ->+                               Bool ->+                               Options ->+                               (Map Identifier (NontermIdent, [String])) ->+                               ParamMap ->+                               String ->+                               QuantMap ->+                               Attributes ->+                               ([Identifier]) ->+                               (NontermIdent -> Int -> [String] -> Code.Type) ->+                               (Set Identifier) ->+                               Bool ->+                               (Set NontermIdent) ->+                               ( ([String]),Decls,(Map Identifier Int),Exprs,(Set String),Bool,([String]),(Set Identifier)))+data Inh_CVisits = Inh_CVisits {allNts_Inh_CVisits :: !((Set NontermIdent)),allPragmas_Inh_CVisits :: !(PragmaMap),aroundMap_Inh_CVisits :: !((Set Identifier)),children_Inh_CVisits :: !(([(Identifier,Type, ChildKind)])),con_Inh_CVisits :: !(ConstructorIdent),contextMap_Inh_CVisits :: !(ContextMap),inh_Inh_CVisits :: !(Attributes),instVisitNrs_Inh_CVisits :: !((Map Identifier Int)),mergeMap_Inh_CVisits :: !((Map Identifier (Identifier, [Identifier]))),nr_Inh_CVisits :: !(Int),nt_Inh_CVisits :: !(NontermIdent),o_case_Inh_CVisits :: !(Bool),o_cata_Inh_CVisits :: !(Bool),o_costcentre_Inh_CVisits :: !(Bool),o_data_Inh_CVisits :: !((Maybe Bool)),o_linePragmas_Inh_CVisits :: !(Bool),o_monadic_Inh_CVisits :: !(Bool),o_newtypes_Inh_CVisits :: !(Bool),o_pretty_Inh_CVisits :: !(Bool),o_rename_Inh_CVisits :: !(Bool),o_sem_Inh_CVisits :: !(Bool),o_sig_Inh_CVisits :: !(Bool),o_splitsems_Inh_CVisits :: !(Bool),o_strictwrap_Inh_CVisits :: !(Bool),o_traces_Inh_CVisits :: !(Bool),o_unbox_Inh_CVisits :: !(Bool),options_Inh_CVisits :: !(Options),paramInstMap_Inh_CVisits :: !((Map Identifier (NontermIdent, [String]))),paramMap_Inh_CVisits :: !(ParamMap),prefix_Inh_CVisits :: !(String),quantMap_Inh_CVisits :: !(QuantMap),syn_Inh_CVisits :: !(Attributes),terminals_Inh_CVisits :: !(([Identifier])),unfoldSemDom_Inh_CVisits :: !((NontermIdent -> Int -> [String] -> Code.Type)),visitedSet_Inh_CVisits :: !((Set Identifier)),with_sig_Inh_CVisits :: !(Bool),wrappers_Inh_CVisits :: !((Set NontermIdent))}+data Syn_CVisits = Syn_CVisits {comments_Syn_CVisits :: !(([String])),decls_Syn_CVisits :: !(Decls),gatherInstVisitNrs_Syn_CVisits :: !((Map Identifier Int)),intra_Syn_CVisits :: !(Exprs),intraVars_Syn_CVisits :: !((Set String)),isNil_Syn_CVisits :: !(Bool),semNames_Syn_CVisits :: !(([String])),visitedSet_Syn_CVisits :: !((Set Identifier))}+wrap_CVisits :: T_CVisits ->+                Inh_CVisits ->+                Syn_CVisits+wrap_CVisits (T_CVisits sem) (Inh_CVisits _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIcontextMap _lhsIinh _lhsIinstVisitNrs _lhsImergeMap _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIvisitedSet _lhsIwith_sig _lhsIwrappers) =+    (let ( _lhsOcomments,_lhsOdecls,_lhsOgatherInstVisitNrs,_lhsOintra,_lhsOintraVars,_lhsOisNil,_lhsOsemNames,_lhsOvisitedSet) = sem _lhsIallNts _lhsIallPragmas _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIcontextMap _lhsIinh _lhsIinstVisitNrs _lhsImergeMap _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIquantMap _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIvisitedSet _lhsIwith_sig _lhsIwrappers+     in  (Syn_CVisits _lhsOcomments _lhsOdecls _lhsOgatherInstVisitNrs _lhsOintra _lhsOintraVars _lhsOisNil _lhsOsemNames _lhsOvisitedSet))+sem_CVisits_Cons :: T_CVisit ->+                    T_CVisits ->+                    T_CVisits+sem_CVisits_Cons (T_CVisit hd_) (T_CVisits tl_) =+    (T_CVisits (\ _lhsIallNts+                  _lhsIallPragmas+                  _lhsIaroundMap+                  _lhsIchildren+                  _lhsIcon+                  _lhsIcontextMap+                  _lhsIinh+                  _lhsIinstVisitNrs+                  _lhsImergeMap+                  _lhsInr+                  _lhsInt+                  _lhsIo_case+                  _lhsIo_cata+                  _lhsIo_costcentre+                  _lhsIo_data+                  _lhsIo_linePragmas+                  _lhsIo_monadic+                  _lhsIo_newtypes+                  _lhsIo_pretty+                  _lhsIo_rename+                  _lhsIo_sem+                  _lhsIo_sig+                  _lhsIo_splitsems+                  _lhsIo_strictwrap+                  _lhsIo_traces+                  _lhsIo_unbox+                  _lhsIoptions+                  _lhsIparamInstMap+                  _lhsIparamMap+                  _lhsIprefix+                  _lhsIquantMap+                  _lhsIsyn+                  _lhsIterminals+                  _lhsIunfoldSemDom+                  _lhsIvisitedSet+                  _lhsIwith_sig+                  _lhsIwrappers ->+                    (let _tlOnr :: Int+                         _lhsOisNil :: Bool+                         _hdOisLast :: Bool+                         _hdOnextIntra :: Exprs+                         _hdOnextIntraVars :: (Set String)+                         _lhsOintra :: Exprs+                         _lhsOintraVars :: (Set String)+                         _lhsOdecls :: Decls+                         _hdOdecls :: Decls+                         _lhsOcomments :: ([String])+                         _lhsOgatherInstVisitNrs :: (Map Identifier Int)+                         _lhsOsemNames :: ([String])+                         _lhsOvisitedSet :: (Set Identifier)+                         _hdOallNts :: (Set NontermIdent)+                         _hdOallPragmas :: PragmaMap+                         _hdOaroundMap :: (Set Identifier)+                         _hdOchildren :: ([(Identifier,Type, ChildKind)])+                         _hdOcon :: ConstructorIdent+                         _hdOcontextMap :: ContextMap+                         _hdOinh :: Attributes+                         _hdOinstVisitNrs :: (Map Identifier Int)+                         _hdOmergeMap :: (Map Identifier (Identifier, [Identifier]))+                         _hdOnr :: Int+                         _hdOnt :: NontermIdent+                         _hdOo_case :: Bool+                         _hdOo_cata :: Bool+                         _hdOo_costcentre :: Bool+                         _hdOo_data :: (Maybe Bool)+                         _hdOo_linePragmas :: Bool+                         _hdOo_monadic :: Bool+                         _hdOo_newtypes :: Bool+                         _hdOo_pretty :: Bool+                         _hdOo_rename :: Bool+                         _hdOo_sem :: Bool+                         _hdOo_sig :: Bool+                         _hdOo_splitsems :: Bool+                         _hdOo_strictwrap :: Bool+                         _hdOo_traces :: Bool+                         _hdOo_unbox :: Bool+                         _hdOoptions :: Options+                         _hdOparamInstMap :: (Map Identifier (NontermIdent, [String]))+                         _hdOparamMap :: ParamMap+                         _hdOprefix :: String+                         _hdOquantMap :: QuantMap+                         _hdOsyn :: Attributes+                         _hdOterminals :: ([Identifier])+                         _hdOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)+                         _hdOvisitedSet :: (Set Identifier)+                         _hdOwith_sig :: Bool+                         _hdOwrappers :: (Set NontermIdent)+                         _tlOallNts :: (Set NontermIdent)+                         _tlOallPragmas :: PragmaMap+                         _tlOaroundMap :: (Set Identifier)+                         _tlOchildren :: ([(Identifier,Type, ChildKind)])+                         _tlOcon :: ConstructorIdent+                         _tlOcontextMap :: ContextMap+                         _tlOinh :: Attributes+                         _tlOinstVisitNrs :: (Map Identifier Int)+                         _tlOmergeMap :: (Map Identifier (Identifier, [Identifier]))+                         _tlOnt :: NontermIdent+                         _tlOo_case :: Bool+                         _tlOo_cata :: Bool+                         _tlOo_costcentre :: Bool+                         _tlOo_data :: (Maybe Bool)+                         _tlOo_linePragmas :: Bool+                         _tlOo_monadic :: Bool+                         _tlOo_newtypes :: Bool+                         _tlOo_pretty :: Bool+                         _tlOo_rename :: Bool+                         _tlOo_sem :: Bool+                         _tlOo_sig :: Bool+                         _tlOo_splitsems :: Bool+                         _tlOo_strictwrap :: Bool+                         _tlOo_traces :: Bool+                         _tlOo_unbox :: Bool+                         _tlOoptions :: Options+                         _tlOparamInstMap :: (Map Identifier (NontermIdent, [String]))+                         _tlOparamMap :: ParamMap+                         _tlOprefix :: String+                         _tlOquantMap :: QuantMap+                         _tlOsyn :: Attributes+                         _tlOterminals :: ([Identifier])+                         _tlOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)+                         _tlOvisitedSet :: (Set Identifier)+                         _tlOwith_sig :: Bool+                         _tlOwrappers :: (Set NontermIdent)+                         _hdIcomments :: ([String])+                         _hdIdecls :: Decls+                         _hdIgatherInstVisitNrs :: (Map Identifier Int)+                         _hdIintra :: Exprs+                         _hdIintraVars :: (Set String)+                         _hdIsemNames :: ([String])+                         _hdIvisitedSet :: (Set Identifier)+                         _tlIcomments :: ([String])+                         _tlIdecls :: Decls+                         _tlIgatherInstVisitNrs :: (Map Identifier Int)+                         _tlIintra :: Exprs+                         _tlIintraVars :: (Set String)+                         _tlIisNil :: Bool+                         _tlIsemNames :: ([String])+                         _tlIvisitedSet :: (Set Identifier)+                         -- "src-ag/GenerateCode.ag"(line 282, column 11)+                         _tlOnr =+                             ({-# LINE 282 "src-ag/GenerateCode.ag" #-}+                              _lhsInr + 1+                              {-# LINE 5981 "dist/build/GenerateCode" #-}+                              )+                         -- "src-ag/GenerateCode.ag"(line 295, column 12)+                         _lhsOisNil =+                             ({-# LINE 295 "src-ag/GenerateCode.ag" #-}+                              False+                              {-# LINE 5987 "dist/build/GenerateCode" #-}+                              )+                         -- "src-ag/GenerateCode.ag"(line 296, column 12)+                         _hdOisLast =+                             ({-# LINE 296 "src-ag/GenerateCode.ag" #-}+                              _tlIisNil+                              {-# LINE 5993 "dist/build/GenerateCode" #-}+                              )+                         -- "src-ag/GenerateCode.ag"(line 313, column 12)+                         _hdOnextIntra =+                             ({-# LINE 313 "src-ag/GenerateCode.ag" #-}+                              _tlIintra+                              {-# LINE 5999 "dist/build/GenerateCode" #-}+                              )+                         -- "src-ag/GenerateCode.ag"(line 314, column 12)+                         _hdOnextIntraVars =+                             ({-# LINE 314 "src-ag/GenerateCode.ag" #-}+                              _tlIintraVars+                              {-# LINE 6005 "dist/build/GenerateCode" #-}+                              )+                         -- "src-ag/GenerateCode.ag"(line 315, column 12)+                         _lhsOintra =+                             ({-# LINE 315 "src-ag/GenerateCode.ag" #-}+                              _hdIintra+                              {-# LINE 6011 "dist/build/GenerateCode" #-}+                              )+                         -- "src-ag/GenerateCode.ag"(line 316, column 12)+                         _lhsOintraVars =+                             ({-# LINE 316 "src-ag/GenerateCode.ag" #-}+                              _hdIintraVars+                              {-# LINE 6017 "dist/build/GenerateCode" #-}+                              )+                         -- "src-ag/GenerateCode.ag"(line 431, column 11)+                         _lhsOdecls =+                             ({-# LINE 431 "src-ag/GenerateCode.ag" #-}+                              _hdIdecls+                              {-# LINE 6023 "dist/build/GenerateCode" #-}+                              )+                         -- "src-ag/GenerateCode.ag"(line 432, column 11)+                         _hdOdecls =+                             ({-# LINE 432 "src-ag/GenerateCode.ag" #-}+                              _tlIdecls+                              {-# LINE 6029 "dist/build/GenerateCode" #-}+                              )+                         -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)+                         _lhsOcomments =+                             ({-# LINE 868 "src-ag/GenerateCode.ag" #-}+                              _hdIcomments ++ _tlIcomments+                              {-# LINE 6035 "dist/build/GenerateCode" #-}+                              )+                         -- use rule "src-ag/GenerateCode.ag"(line 561, column 44)+                         _lhsOgatherInstVisitNrs =+                             ({-# LINE 561 "src-ag/GenerateCode.ag" #-}+                              _hdIgatherInstVisitNrs `Map.union` _tlIgatherInstVisitNrs+                              {-# LINE 6041 "dist/build/GenerateCode" #-}+                              )+                         -- use rule "src-ag/GenerateCode.ag"(line 1146, column 61)+                         _lhsOsemNames =+                             ({-# LINE 1146 "src-ag/GenerateCode.ag" #-}+                              _hdIsemNames ++ _tlIsemNames+                              {-# LINE 6047 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (up)+                         _lhsOvisitedSet =+                             ({-# LINE 145 "src-ag/GenerateCode.ag" #-}+                              _tlIvisitedSet+                              {-# LINE 6053 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOallNts =+                             ({-# LINE 132 "src-ag/GenerateCode.ag" #-}+                              _lhsIallNts+                              {-# LINE 6059 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOallPragmas =+                             ({-# LINE 73 "src-ag/GenerateCode.ag" #-}+                              _lhsIallPragmas+                              {-# LINE 6065 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOaroundMap =+                             ({-# LINE 580 "src-ag/GenerateCode.ag" #-}+                              _lhsIaroundMap+                              {-# LINE 6071 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOchildren =+                             ({-# LINE 410 "src-ag/GenerateCode.ag" #-}+                              _lhsIchildren+                              {-# LINE 6077 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOcon =+                             ({-# LINE 89 "src-ag/GenerateCode.ag" #-}+                              _lhsIcon+                              {-# LINE 6083 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOcontextMap =+                             ({-# LINE 115 "src-ag/GenerateCode.ag" #-}+                              _lhsIcontextMap+                              {-# LINE 6089 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOinh =+                             ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                              _lhsIinh+                              {-# LINE 6095 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOinstVisitNrs =+                             ({-# LINE 560 "src-ag/GenerateCode.ag" #-}+                              _lhsIinstVisitNrs+                              {-# LINE 6101 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOmergeMap =+                             ({-# LINE 596 "src-ag/GenerateCode.ag" #-}+                              _lhsImergeMap+                              {-# LINE 6107 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOnr =+                             ({-# LINE 278 "src-ag/GenerateCode.ag" #-}+                              _lhsInr+                              {-# LINE 6113 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOnt =+                             ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                              _lhsInt+                              {-# LINE 6119 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOo_case =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_case+                              {-# LINE 6125 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOo_cata =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_cata+                              {-# LINE 6131 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOo_costcentre =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_costcentre+                              {-# LINE 6137 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOo_data =+                             ({-# LINE 48 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_data+                              {-# LINE 6143 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOo_linePragmas =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_linePragmas+                              {-# LINE 6149 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOo_monadic =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_monadic+                              {-# LINE 6155 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOo_newtypes =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_newtypes+                              {-# LINE 6161 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOo_pretty =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_pretty+                              {-# LINE 6167 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOo_rename =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_rename+                              {-# LINE 6173 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOo_sem =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_sem+                              {-# LINE 6179 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOo_sig =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_sig+                              {-# LINE 6185 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOo_splitsems =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_splitsems+                              {-# LINE 6191 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOo_strictwrap =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_strictwrap+                              {-# LINE 6197 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOo_traces =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_traces+                              {-# LINE 6203 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOo_unbox =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_unbox+                              {-# LINE 6209 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOoptions =+                             ({-# LINE 50 "src-ag/GenerateCode.ag" #-}+                              _lhsIoptions+                              {-# LINE 6215 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOparamInstMap =+                             ({-# LINE 101 "src-ag/GenerateCode.ag" #-}+                              _lhsIparamInstMap+                              {-# LINE 6221 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOparamMap =+                             ({-# LINE 95 "src-ag/GenerateCode.ag" #-}+                              _lhsIparamMap+                              {-# LINE 6227 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOprefix =+                             ({-# LINE 49 "src-ag/GenerateCode.ag" #-}+                              _lhsIprefix+                              {-# LINE 6233 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOquantMap =+                             ({-# LINE 115 "src-ag/GenerateCode.ag" #-}+                              _lhsIquantMap+                              {-# LINE 6239 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOsyn =+                             ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                              _lhsIsyn+                              {-# LINE 6245 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOterminals =+                             ({-# LINE 90 "src-ag/GenerateCode.ag" #-}+                              _lhsIterminals+                              {-# LINE 6251 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOunfoldSemDom =+                             ({-# LINE 750 "src-ag/GenerateCode.ag" #-}+                              _lhsIunfoldSemDom+                              {-# LINE 6257 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOvisitedSet =+                             ({-# LINE 145 "src-ag/GenerateCode.ag" #-}+                              _lhsIvisitedSet+                              {-# LINE 6263 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOwith_sig =+                             ({-# LINE 851 "src-ag/GenerateCode.ag" #-}+                              _lhsIwith_sig+                              {-# LINE 6269 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _hdOwrappers =+                             ({-# LINE 987 "src-ag/GenerateCode.ag" #-}+                              _lhsIwrappers+                              {-# LINE 6275 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOallNts =+                             ({-# LINE 132 "src-ag/GenerateCode.ag" #-}+                              _lhsIallNts+                              {-# LINE 6281 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOallPragmas =+                             ({-# LINE 73 "src-ag/GenerateCode.ag" #-}+                              _lhsIallPragmas+                              {-# LINE 6287 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOaroundMap =+                             ({-# LINE 580 "src-ag/GenerateCode.ag" #-}+                              _lhsIaroundMap+                              {-# LINE 6293 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOchildren =+                             ({-# LINE 410 "src-ag/GenerateCode.ag" #-}+                              _lhsIchildren+                              {-# LINE 6299 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOcon =+                             ({-# LINE 89 "src-ag/GenerateCode.ag" #-}+                              _lhsIcon+                              {-# LINE 6305 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOcontextMap =+                             ({-# LINE 115 "src-ag/GenerateCode.ag" #-}+                              _lhsIcontextMap+                              {-# LINE 6311 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOinh =+                             ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                              _lhsIinh+                              {-# LINE 6317 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOinstVisitNrs =+                             ({-# LINE 560 "src-ag/GenerateCode.ag" #-}+                              _lhsIinstVisitNrs+                              {-# LINE 6323 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOmergeMap =+                             ({-# LINE 596 "src-ag/GenerateCode.ag" #-}+                              _lhsImergeMap+                              {-# LINE 6329 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOnt =+                             ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                              _lhsInt+                              {-# LINE 6335 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOo_case =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_case+                              {-# LINE 6341 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOo_cata =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_cata+                              {-# LINE 6347 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOo_costcentre =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_costcentre+                              {-# LINE 6353 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOo_data =+                             ({-# LINE 48 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_data+                              {-# LINE 6359 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOo_linePragmas =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_linePragmas+                              {-# LINE 6365 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOo_monadic =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_monadic+                              {-# LINE 6371 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOo_newtypes =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_newtypes+                              {-# LINE 6377 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOo_pretty =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_pretty+                              {-# LINE 6383 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOo_rename =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_rename+                              {-# LINE 6389 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOo_sem =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_sem+                              {-# LINE 6395 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOo_sig =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_sig+                              {-# LINE 6401 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOo_splitsems =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_splitsems+                              {-# LINE 6407 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOo_strictwrap =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_strictwrap+                              {-# LINE 6413 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOo_traces =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_traces+                              {-# LINE 6419 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOo_unbox =+                             ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                              _lhsIo_unbox+                              {-# LINE 6425 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOoptions =+                             ({-# LINE 50 "src-ag/GenerateCode.ag" #-}+                              _lhsIoptions+                              {-# LINE 6431 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOparamInstMap =+                             ({-# LINE 101 "src-ag/GenerateCode.ag" #-}+                              _lhsIparamInstMap+                              {-# LINE 6437 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOparamMap =+                             ({-# LINE 95 "src-ag/GenerateCode.ag" #-}+                              _lhsIparamMap+                              {-# LINE 6443 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOprefix =+                             ({-# LINE 49 "src-ag/GenerateCode.ag" #-}+                              _lhsIprefix+                              {-# LINE 6449 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOquantMap =+                             ({-# LINE 115 "src-ag/GenerateCode.ag" #-}+                              _lhsIquantMap+                              {-# LINE 6455 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOsyn =+                             ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                              _lhsIsyn+                              {-# LINE 6461 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOterminals =+                             ({-# LINE 90 "src-ag/GenerateCode.ag" #-}+                              _lhsIterminals+                              {-# LINE 6467 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOunfoldSemDom =+                             ({-# LINE 750 "src-ag/GenerateCode.ag" #-}+                              _lhsIunfoldSemDom+                              {-# LINE 6473 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (chain)+                         _tlOvisitedSet =+                             ({-# LINE 145 "src-ag/GenerateCode.ag" #-}+                              _hdIvisitedSet+                              {-# LINE 6479 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOwith_sig =+                             ({-# LINE 851 "src-ag/GenerateCode.ag" #-}+                              _lhsIwith_sig+                              {-# LINE 6485 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (down)+                         _tlOwrappers =+                             ({-# LINE 987 "src-ag/GenerateCode.ag" #-}+                              _lhsIwrappers+                              {-# LINE 6491 "dist/build/GenerateCode" #-}+                              )+                         ( _hdIcomments,_hdIdecls,_hdIgatherInstVisitNrs,_hdIintra,_hdIintraVars,_hdIsemNames,_hdIvisitedSet) =+                             hd_ _hdOallNts _hdOallPragmas _hdOaroundMap _hdOchildren _hdOcon _hdOcontextMap _hdOdecls _hdOinh _hdOinstVisitNrs _hdOisLast _hdOmergeMap _hdOnextIntra _hdOnextIntraVars _hdOnr _hdOnt _hdOo_case _hdOo_cata _hdOo_costcentre _hdOo_data _hdOo_linePragmas _hdOo_monadic _hdOo_newtypes _hdOo_pretty _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_splitsems _hdOo_strictwrap _hdOo_traces _hdOo_unbox _hdOoptions _hdOparamInstMap _hdOparamMap _hdOprefix _hdOquantMap _hdOsyn _hdOterminals _hdOunfoldSemDom _hdOvisitedSet _hdOwith_sig _hdOwrappers+                         ( _tlIcomments,_tlIdecls,_tlIgatherInstVisitNrs,_tlIintra,_tlIintraVars,_tlIisNil,_tlIsemNames,_tlIvisitedSet) =+                             tl_ _tlOallNts _tlOallPragmas _tlOaroundMap _tlOchildren _tlOcon _tlOcontextMap _tlOinh _tlOinstVisitNrs _tlOmergeMap _tlOnr _tlOnt _tlOo_case _tlOo_cata _tlOo_costcentre _tlOo_data _tlOo_linePragmas _tlOo_monadic _tlOo_newtypes _tlOo_pretty _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_splitsems _tlOo_strictwrap _tlOo_traces _tlOo_unbox _tlOoptions _tlOparamInstMap _tlOparamMap _tlOprefix _tlOquantMap _tlOsyn _tlOterminals _tlOunfoldSemDom _tlOvisitedSet _tlOwith_sig _tlOwrappers+                         ___node =+                             (Syn_CVisits _lhsOcomments _lhsOdecls _lhsOgatherInstVisitNrs _lhsOintra _lhsOintraVars _lhsOisNil _lhsOsemNames _lhsOvisitedSet)+                     in  ( _lhsOcomments,_lhsOdecls,_lhsOgatherInstVisitNrs,_lhsOintra,_lhsOintraVars,_lhsOisNil,_lhsOsemNames,_lhsOvisitedSet))))+sem_CVisits_Nil :: T_CVisits+sem_CVisits_Nil =+    (T_CVisits (\ _lhsIallNts+                  _lhsIallPragmas+                  _lhsIaroundMap+                  _lhsIchildren+                  _lhsIcon+                  _lhsIcontextMap+                  _lhsIinh+                  _lhsIinstVisitNrs+                  _lhsImergeMap+                  _lhsInr+                  _lhsInt+                  _lhsIo_case+                  _lhsIo_cata+                  _lhsIo_costcentre+                  _lhsIo_data+                  _lhsIo_linePragmas+                  _lhsIo_monadic+                  _lhsIo_newtypes+                  _lhsIo_pretty+                  _lhsIo_rename+                  _lhsIo_sem+                  _lhsIo_sig+                  _lhsIo_splitsems+                  _lhsIo_strictwrap+                  _lhsIo_traces+                  _lhsIo_unbox+                  _lhsIoptions+                  _lhsIparamInstMap+                  _lhsIparamMap+                  _lhsIprefix+                  _lhsIquantMap+                  _lhsIsyn+                  _lhsIterminals+                  _lhsIunfoldSemDom+                  _lhsIvisitedSet+                  _lhsIwith_sig+                  _lhsIwrappers ->+                    (let _lhsOisNil :: Bool+                         _lhsOintra :: Exprs+                         _lhsOintraVars :: (Set String)+                         _lhsOdecls :: Decls+                         _lhsOcomments :: ([String])+                         _lhsOgatherInstVisitNrs :: (Map Identifier Int)+                         _lhsOsemNames :: ([String])+                         _lhsOvisitedSet :: (Set Identifier)+                         -- "src-ag/GenerateCode.ag"(line 297, column 10)+                         _lhsOisNil =+                             ({-# LINE 297 "src-ag/GenerateCode.ag" #-}+                              True+                              {-# LINE 6551 "dist/build/GenerateCode" #-}+                              )+                         -- "src-ag/GenerateCode.ag"(line 317, column 10)+                         _lhsOintra =+                             ({-# LINE 317 "src-ag/GenerateCode.ag" #-}+                              []+                              {-# LINE 6557 "dist/build/GenerateCode" #-}+                              )+                         -- "src-ag/GenerateCode.ag"(line 318, column 10)+                         _lhsOintraVars =+                             ({-# LINE 318 "src-ag/GenerateCode.ag" #-}+                              Set.empty+                              {-# LINE 6563 "dist/build/GenerateCode" #-}+                              )+                         -- "src-ag/GenerateCode.ag"(line 430, column 11)+                         _lhsOdecls =+                             ({-# LINE 430 "src-ag/GenerateCode.ag" #-}+                              []+                              {-# LINE 6569 "dist/build/GenerateCode" #-}+                              )+                         -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)+                         _lhsOcomments =+                             ({-# LINE 868 "src-ag/GenerateCode.ag" #-}+                              []+                              {-# LINE 6575 "dist/build/GenerateCode" #-}+                              )+                         -- use rule "src-ag/GenerateCode.ag"(line 561, column 44)+                         _lhsOgatherInstVisitNrs =+                             ({-# LINE 561 "src-ag/GenerateCode.ag" #-}+                              Map.empty+                              {-# LINE 6581 "dist/build/GenerateCode" #-}+                              )+                         -- use rule "src-ag/GenerateCode.ag"(line 1146, column 61)+                         _lhsOsemNames =+                             ({-# LINE 1146 "src-ag/GenerateCode.ag" #-}+                              []+                              {-# LINE 6587 "dist/build/GenerateCode" #-}+                              )+                         -- copy rule (chain)+                         _lhsOvisitedSet =+                             ({-# LINE 145 "src-ag/GenerateCode.ag" #-}+                              _lhsIvisitedSet+                              {-# LINE 6593 "dist/build/GenerateCode" #-}+                              )+                         ___node =+                             (Syn_CVisits _lhsOcomments _lhsOdecls _lhsOgatherInstVisitNrs _lhsOintra _lhsOintraVars _lhsOisNil _lhsOsemNames _lhsOvisitedSet)+                     in  ( _lhsOcomments,_lhsOdecls,_lhsOgatherInstVisitNrs,_lhsOintra,_lhsOintraVars,_lhsOisNil,_lhsOsemNames,_lhsOvisitedSet))))+-- DeclBlocks --------------------------------------------------+{-+   visit 0:+      inherited attributes:+         blockNr              : Int+         lastExprVars         : [String]+         nextVisitDecls       : [Decl]+         optCase              : Bool+         prefix               : String+      synthesized attributes:+         callExpr             : Expr+         decls                : [Decl]+         freeVars             : [String]+   alternatives:+      alternative DeclBlock:+         child defs           : {[Decl]}+         child visit          : {Decl}+         child next           : DeclBlocks +         visit 0:+            local lambdaName  : _+            local pragmaDecl  : _+            local freeVars    : _+            local decl        : _+      alternative DeclTerminator:+         child defs           : {[Decl]}+         child result         : {Expr}+         visit 0:+            local lambdaName  : _+            local pragmaDecl  : _+            local freeVars    : _+-}+-- cata+sem_DeclBlocks :: DeclBlocks ->+                  T_DeclBlocks+sem_DeclBlocks (DeclBlock _defs _visit _next) =+    (sem_DeclBlocks_DeclBlock _defs _visit (sem_DeclBlocks _next))+sem_DeclBlocks (DeclTerminator _defs _result) =+    (sem_DeclBlocks_DeclTerminator _defs _result)+-- semantic domain+newtype T_DeclBlocks = T_DeclBlocks (Int ->+                                     ([String]) ->+                                     ([Decl]) ->+                                     Bool ->+                                     String ->+                                     ( Expr,([Decl]),([String])))+data Inh_DeclBlocks = Inh_DeclBlocks {blockNr_Inh_DeclBlocks :: !(Int),lastExprVars_Inh_DeclBlocks :: !(([String])),nextVisitDecls_Inh_DeclBlocks :: !(([Decl])),optCase_Inh_DeclBlocks :: !(Bool),prefix_Inh_DeclBlocks :: !(String)}+data Syn_DeclBlocks = Syn_DeclBlocks {callExpr_Syn_DeclBlocks :: !(Expr),decls_Syn_DeclBlocks :: !(([Decl])),freeVars_Syn_DeclBlocks :: !(([String]))}+wrap_DeclBlocks :: T_DeclBlocks ->+                   Inh_DeclBlocks ->+                   Syn_DeclBlocks+wrap_DeclBlocks (T_DeclBlocks sem) (Inh_DeclBlocks _lhsIblockNr _lhsIlastExprVars _lhsInextVisitDecls _lhsIoptCase _lhsIprefix) =+    (let ( _lhsOcallExpr,_lhsOdecls,_lhsOfreeVars) = sem _lhsIblockNr _lhsIlastExprVars _lhsInextVisitDecls _lhsIoptCase _lhsIprefix+     in  (Syn_DeclBlocks _lhsOcallExpr _lhsOdecls _lhsOfreeVars))+sem_DeclBlocks_DeclBlock :: ([Decl]) ->+                            Decl ->+                            T_DeclBlocks ->+                            T_DeclBlocks+sem_DeclBlocks_DeclBlock defs_ visit_ (T_DeclBlocks next_) =+    (T_DeclBlocks (\ _lhsIblockNr+                     _lhsIlastExprVars+                     _lhsInextVisitDecls+                     _lhsIoptCase+                     _lhsIprefix ->+                       (let _nextOblockNr :: Int+                            _lhsOcallExpr :: Expr+                            _lhsOdecls :: ([Decl])+                            _lhsOfreeVars :: ([String])+                            _nextOlastExprVars :: ([String])+                            _nextOnextVisitDecls :: ([Decl])+                            _nextOoptCase :: Bool+                            _nextOprefix :: String+                            _nextIcallExpr :: Expr+                            _nextIdecls :: ([Decl])+                            _nextIfreeVars :: ([String])+                            -- "src-ag/GenerateCode.ag"(line 662, column 7)+                            _nextOblockNr =+                                ({-# LINE 662 "src-ag/GenerateCode.ag" #-}+                                 _lhsIblockNr + 1+                                 {-# LINE 6676 "dist/build/GenerateCode" #-}+                                 )+                            -- "src-ag/GenerateCode.ag"(line 667, column 7)+                            _lambdaName =+                                ({-# LINE 667 "src-ag/GenerateCode.ag" #-}+                                 _lhsIprefix ++ "_block" ++ show _lhsIblockNr+                                 {-# LINE 6682 "dist/build/GenerateCode" #-}+                                 )+                            -- "src-ag/GenerateCode.ag"(line 668, column 7)+                            _pragmaDecl =+                                ({-# LINE 668 "src-ag/GenerateCode.ag" #-}+                                 PragmaDecl ("NOINLINE " ++ _lambdaName    )+                                 {-# LINE 6688 "dist/build/GenerateCode" #-}+                                 )+                            -- "src-ag/GenerateCode.ag"(line 669, column 7)+                            _lhsOcallExpr =+                                ({-# LINE 669 "src-ag/GenerateCode.ag" #-}+                                 App _lambdaName     (map SimpleExpr _freeVars    )+                                 {-# LINE 6694 "dist/build/GenerateCode" #-}+                                 )+                            -- "src-ag/GenerateCode.ag"(line 673, column 7)+                            _freeVars =+                                ({-# LINE 673 "src-ag/GenerateCode.ag" #-}+                                 freevars _nextIfreeVars (visit_ : defs_)+                                 {-# LINE 6700 "dist/build/GenerateCode" #-}+                                 )+                            -- "src-ag/GenerateCode.ag"(line 680, column 7)+                            _decl =+                                ({-# LINE 680 "src-ag/GenerateCode.ag" #-}+                                 mkBlockLambda _lhsIoptCase _lambdaName     _freeVars     (defs_ ++ [visit_]) _nextIcallExpr+                                 {-# LINE 6706 "dist/build/GenerateCode" #-}+                                 )+                            -- "src-ag/GenerateCode.ag"(line 681, column 7)+                            _lhsOdecls =+                                ({-# LINE 681 "src-ag/GenerateCode.ag" #-}+                                 (if _lhsIblockNr > 1 then [_pragmaDecl    ] else []) ++ [_decl    ] ++ _nextIdecls+                                 {-# LINE 6712 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (from local)+                            _lhsOfreeVars =+                                ({-# LINE 664 "src-ag/GenerateCode.ag" #-}+                                 _freeVars+                                 {-# LINE 6718 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _nextOlastExprVars =+                                ({-# LINE 648 "src-ag/GenerateCode.ag" #-}+                                 _lhsIlastExprVars+                                 {-# LINE 6724 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _nextOnextVisitDecls =+                                ({-# LINE 648 "src-ag/GenerateCode.ag" #-}+                                 _lhsInextVisitDecls+                                 {-# LINE 6730 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _nextOoptCase =+                                ({-# LINE 648 "src-ag/GenerateCode.ag" #-}+                                 _lhsIoptCase+                                 {-# LINE 6736 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (down)+                            _nextOprefix =+                                ({-# LINE 648 "src-ag/GenerateCode.ag" #-}+                                 _lhsIprefix+                                 {-# LINE 6742 "dist/build/GenerateCode" #-}+                                 )+                            ( _nextIcallExpr,_nextIdecls,_nextIfreeVars) =+                                next_ _nextOblockNr _nextOlastExprVars _nextOnextVisitDecls _nextOoptCase _nextOprefix+                            ___node =+                                (Syn_DeclBlocks _lhsOcallExpr _lhsOdecls _lhsOfreeVars)+                        in  ( _lhsOcallExpr,_lhsOdecls,_lhsOfreeVars))))+sem_DeclBlocks_DeclTerminator :: ([Decl]) ->+                                 Expr ->+                                 T_DeclBlocks+sem_DeclBlocks_DeclTerminator defs_ result_ =+    (T_DeclBlocks (\ _lhsIblockNr+                     _lhsIlastExprVars+                     _lhsInextVisitDecls+                     _lhsIoptCase+                     _lhsIprefix ->+                       (let _lhsOcallExpr :: Expr+                            _lhsOdecls :: ([Decl])+                            _lhsOfreeVars :: ([String])+                            -- "src-ag/GenerateCode.ag"(line 667, column 7)+                            _lambdaName =+                                ({-# LINE 667 "src-ag/GenerateCode.ag" #-}+                                 _lhsIprefix ++ "_block" ++ show _lhsIblockNr+                                 {-# LINE 6765 "dist/build/GenerateCode" #-}+                                 )+                            -- "src-ag/GenerateCode.ag"(line 668, column 7)+                            _pragmaDecl =+                                ({-# LINE 668 "src-ag/GenerateCode.ag" #-}+                                 PragmaDecl ("NOINLINE " ++ _lambdaName    )+                                 {-# LINE 6771 "dist/build/GenerateCode" #-}+                                 )+                            -- "src-ag/GenerateCode.ag"(line 669, column 7)+                            _lhsOcallExpr =+                                ({-# LINE 669 "src-ag/GenerateCode.ag" #-}+                                 App _lambdaName     (map SimpleExpr _freeVars    )+                                 {-# LINE 6777 "dist/build/GenerateCode" #-}+                                 )+                            -- "src-ag/GenerateCode.ag"(line 671, column 7)+                            _freeVars =+                                ({-# LINE 671 "src-ag/GenerateCode.ag" #-}+                                 freevars _lhsIlastExprVars (defs_ ++ _lhsInextVisitDecls)+                                 {-# LINE 6783 "dist/build/GenerateCode" #-}+                                 )+                            -- "src-ag/GenerateCode.ag"(line 678, column 7)+                            _lhsOdecls =+                                ({-# LINE 678 "src-ag/GenerateCode.ag" #-}+                                 [ mkBlockLambda _lhsIoptCase _lambdaName     _freeVars     (defs_ ++ _lhsInextVisitDecls) result_ ]+                                 {-# LINE 6789 "dist/build/GenerateCode" #-}+                                 )+                            -- copy rule (from local)+                            _lhsOfreeVars =+                                ({-# LINE 664 "src-ag/GenerateCode.ag" #-}+                                 _freeVars+                                 {-# LINE 6795 "dist/build/GenerateCode" #-}+                                 )+                            ___node =+                                (Syn_DeclBlocks _lhsOcallExpr _lhsOdecls _lhsOfreeVars)+                        in  ( _lhsOcallExpr,_lhsOdecls,_lhsOfreeVars))))+-- DeclBlocksRoot ----------------------------------------------+{-+   visit 0:+      inherited attributes:+         lastExprVars         : [String]+         nextVisitDecls       : [Decl]+         optCase              : Bool+         prefix               : String+      synthesized attributes:+         firstCall            : Expr+         lambdas              : [Decl]+   alternatives:+      alternative DeclBlocksRoot:+         child blocks         : DeclBlocks +-}+-- cata+sem_DeclBlocksRoot :: DeclBlocksRoot ->+                      T_DeclBlocksRoot+sem_DeclBlocksRoot (DeclBlocksRoot _blocks) =+    (sem_DeclBlocksRoot_DeclBlocksRoot (sem_DeclBlocks _blocks))+-- semantic domain+newtype T_DeclBlocksRoot = T_DeclBlocksRoot (([String]) ->+                                             ([Decl]) ->+                                             Bool ->+                                             String ->+                                             ( Expr,([Decl])))+data Inh_DeclBlocksRoot = Inh_DeclBlocksRoot {lastExprVars_Inh_DeclBlocksRoot :: !(([String])),nextVisitDecls_Inh_DeclBlocksRoot :: !(([Decl])),optCase_Inh_DeclBlocksRoot :: !(Bool),prefix_Inh_DeclBlocksRoot :: !(String)}+data Syn_DeclBlocksRoot = Syn_DeclBlocksRoot {firstCall_Syn_DeclBlocksRoot :: !(Expr),lambdas_Syn_DeclBlocksRoot :: !(([Decl]))}+wrap_DeclBlocksRoot :: T_DeclBlocksRoot ->+                       Inh_DeclBlocksRoot ->+                       Syn_DeclBlocksRoot+wrap_DeclBlocksRoot (T_DeclBlocksRoot sem) (Inh_DeclBlocksRoot _lhsIlastExprVars _lhsInextVisitDecls _lhsIoptCase _lhsIprefix) =+    (let ( _lhsOfirstCall,_lhsOlambdas) = sem _lhsIlastExprVars _lhsInextVisitDecls _lhsIoptCase _lhsIprefix+     in  (Syn_DeclBlocksRoot _lhsOfirstCall _lhsOlambdas))+sem_DeclBlocksRoot_DeclBlocksRoot :: T_DeclBlocks ->+                                     T_DeclBlocksRoot+sem_DeclBlocksRoot_DeclBlocksRoot (T_DeclBlocks blocks_) =+    (T_DeclBlocksRoot (\ _lhsIlastExprVars+                         _lhsInextVisitDecls+                         _lhsIoptCase+                         _lhsIprefix ->+                           (let _lhsOlambdas :: ([Decl])+                                _lhsOfirstCall :: Expr+                                _blocksOblockNr :: Int+                                _blocksOlastExprVars :: ([String])+                                _blocksOnextVisitDecls :: ([Decl])+                                _blocksOoptCase :: Bool+                                _blocksOprefix :: String+                                _blocksIcallExpr :: Expr+                                _blocksIdecls :: ([Decl])+                                _blocksIfreeVars :: ([String])+                                -- "src-ag/GenerateCode.ag"(line 653, column 7)+                                _lhsOlambdas =+                                    ({-# LINE 653 "src-ag/GenerateCode.ag" #-}+                                     _blocksIdecls+                                     {-# LINE 6855 "dist/build/GenerateCode" #-}+                                     )+                                -- "src-ag/GenerateCode.ag"(line 654, column 7)+                                _lhsOfirstCall =+                                    ({-# LINE 654 "src-ag/GenerateCode.ag" #-}+                                     _blocksIcallExpr+                                     {-# LINE 6861 "dist/build/GenerateCode" #-}+                                     )+                                -- "src-ag/GenerateCode.ag"(line 659, column 7)+                                _blocksOblockNr =+                                    ({-# LINE 659 "src-ag/GenerateCode.ag" #-}+                                     1+                                     {-# LINE 6867 "dist/build/GenerateCode" #-}+                                     )+                                -- copy rule (down)+                                _blocksOlastExprVars =+                                    ({-# LINE 648 "src-ag/GenerateCode.ag" #-}+                                     _lhsIlastExprVars+                                     {-# LINE 6873 "dist/build/GenerateCode" #-}+                                     )+                                -- copy rule (down)+                                _blocksOnextVisitDecls =+                                    ({-# LINE 648 "src-ag/GenerateCode.ag" #-}+                                     _lhsInextVisitDecls+                                     {-# LINE 6879 "dist/build/GenerateCode" #-}+                                     )+                                -- copy rule (down)+                                _blocksOoptCase =+                                    ({-# LINE 648 "src-ag/GenerateCode.ag" #-}+                                     _lhsIoptCase+                                     {-# LINE 6885 "dist/build/GenerateCode" #-}+                                     )+                                -- copy rule (down)+                                _blocksOprefix =+                                    ({-# LINE 648 "src-ag/GenerateCode.ag" #-}+                                     _lhsIprefix+                                     {-# LINE 6891 "dist/build/GenerateCode" #-}+                                     )+                                ( _blocksIcallExpr,_blocksIdecls,_blocksIfreeVars) =+                                    blocks_ _blocksOblockNr _blocksOlastExprVars _blocksOnextVisitDecls _blocksOoptCase _blocksOprefix+                                ___node =+                                    (Syn_DeclBlocksRoot _lhsOfirstCall _lhsOlambdas)+                            in  ( _lhsOfirstCall,_lhsOlambdas))))+-- Pattern -----------------------------------------------------+{-+   visit 0:+      synthesized attributes:+         copy                 : Pattern +         definedInsts         : [Identifier]+         patternAttributes    : [(Identifier, Identifier)]+   alternatives:+      alternative Alias:+         child field          : {Identifier}+         child attr           : {Identifier}+         child pat            : Pattern +         visit 0:+            local copy        : _+      alternative Constr:+         child name           : {ConstructorIdent}+         child pats           : Patterns +         visit 0:+            local copy        : _+      alternative Irrefutable:+         child pat            : Pattern +         visit 0:+            local copy        : _+      alternative Product:+         child pos            : {Pos}+         child pats           : Patterns +         visit 0:+            local copy        : _+      alternative Underscore:+         child pos            : {Pos}+         visit 0:+            local copy        : _+-}+-- cata+sem_Pattern :: Pattern ->+               T_Pattern+sem_Pattern (Alias _field _attr _pat) =+    (sem_Pattern_Alias _field _attr (sem_Pattern _pat))+sem_Pattern (Constr _name _pats) =+    (sem_Pattern_Constr _name (sem_Patterns _pats))+sem_Pattern (Irrefutable _pat) =+    (sem_Pattern_Irrefutable (sem_Pattern _pat))+sem_Pattern (Product _pos _pats) =+    (sem_Pattern_Product _pos (sem_Patterns _pats))+sem_Pattern (Underscore _pos) =+    (sem_Pattern_Underscore _pos)+-- semantic domain+newtype T_Pattern = T_Pattern (( Pattern,([Identifier]),([(Identifier, Identifier)])))+data Inh_Pattern = Inh_Pattern {}+data Syn_Pattern = Syn_Pattern {copy_Syn_Pattern :: !(Pattern),definedInsts_Syn_Pattern :: !(([Identifier])),patternAttributes_Syn_Pattern :: !(([(Identifier, Identifier)]))}+wrap_Pattern :: T_Pattern ->+                Inh_Pattern ->+                Syn_Pattern+wrap_Pattern (T_Pattern sem) (Inh_Pattern) =+    (let ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes) = sem+     in  (Syn_Pattern _lhsOcopy _lhsOdefinedInsts _lhsOpatternAttributes))+sem_Pattern_Alias :: Identifier ->+                     Identifier ->+                     T_Pattern ->+                     T_Pattern+sem_Pattern_Alias field_ attr_ (T_Pattern pat_) =+    (T_Pattern (let _lhsOdefinedInsts :: ([Identifier])+                    _lhsOpatternAttributes :: ([(Identifier, Identifier)])+                    _lhsOcopy :: Pattern+                    _patIcopy :: Pattern+                    _patIdefinedInsts :: ([Identifier])+                    _patIpatternAttributes :: ([(Identifier, Identifier)])+                    -- "src-ag/GenerateCode.ag"(line 263, column 11)+                    _lhsOdefinedInsts =+                        ({-# LINE 263 "src-ag/GenerateCode.ag" #-}+                         (if field_ == _INST then [attr_] else []) ++ _patIdefinedInsts+                         {-# LINE 6969 "dist/build/GenerateCode" #-}+                         )+                    -- "src-ag/GenerateCode.ag"(line 271, column 7)+                    _lhsOpatternAttributes =+                        ({-# LINE 271 "src-ag/GenerateCode.ag" #-}+                         (field_,attr_) : _patIpatternAttributes+                         {-# LINE 6975 "dist/build/GenerateCode" #-}+                         )+                    -- self rule+                    _copy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         Alias field_ attr_ _patIcopy+                         {-# LINE 6981 "dist/build/GenerateCode" #-}+                         )+                    -- self rule+                    _lhsOcopy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         _copy+                         {-# LINE 6987 "dist/build/GenerateCode" #-}+                         )+                    ( _patIcopy,_patIdefinedInsts,_patIpatternAttributes) =+                        pat_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOdefinedInsts _lhsOpatternAttributes)+                in  ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)))+sem_Pattern_Constr :: ConstructorIdent ->+                      T_Patterns ->+                      T_Pattern+sem_Pattern_Constr name_ (T_Patterns pats_) =+    (T_Pattern (let _lhsOdefinedInsts :: ([Identifier])+                    _lhsOpatternAttributes :: ([(Identifier, Identifier)])+                    _lhsOcopy :: Pattern+                    _patsIcopy :: Patterns+                    _patsIdefinedInsts :: ([Identifier])+                    _patsIpatternAttributes :: ([(Identifier, Identifier)])+                    -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)+                    _lhsOdefinedInsts =+                        ({-# LINE 261 "src-ag/GenerateCode.ag" #-}+                         _patsIdefinedInsts+                         {-# LINE 7008 "dist/build/GenerateCode" #-}+                         )+                    -- use rule "src-ag/GenerateCode.ag"(line 268, column 47)+                    _lhsOpatternAttributes =+                        ({-# LINE 268 "src-ag/GenerateCode.ag" #-}+                         _patsIpatternAttributes+                         {-# LINE 7014 "dist/build/GenerateCode" #-}+                         )+                    -- self rule+                    _copy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         Constr name_ _patsIcopy+                         {-# LINE 7020 "dist/build/GenerateCode" #-}+                         )+                    -- self rule+                    _lhsOcopy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         _copy+                         {-# LINE 7026 "dist/build/GenerateCode" #-}+                         )+                    ( _patsIcopy,_patsIdefinedInsts,_patsIpatternAttributes) =+                        pats_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOdefinedInsts _lhsOpatternAttributes)+                in  ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)))+sem_Pattern_Irrefutable :: T_Pattern ->+                           T_Pattern+sem_Pattern_Irrefutable (T_Pattern pat_) =+    (T_Pattern (let _lhsOdefinedInsts :: ([Identifier])+                    _lhsOpatternAttributes :: ([(Identifier, Identifier)])+                    _lhsOcopy :: Pattern+                    _patIcopy :: Pattern+                    _patIdefinedInsts :: ([Identifier])+                    _patIpatternAttributes :: ([(Identifier, Identifier)])+                    -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)+                    _lhsOdefinedInsts =+                        ({-# LINE 261 "src-ag/GenerateCode.ag" #-}+                         _patIdefinedInsts+                         {-# LINE 7046 "dist/build/GenerateCode" #-}+                         )+                    -- use rule "src-ag/GenerateCode.ag"(line 268, column 47)+                    _lhsOpatternAttributes =+                        ({-# LINE 268 "src-ag/GenerateCode.ag" #-}+                         _patIpatternAttributes+                         {-# LINE 7052 "dist/build/GenerateCode" #-}+                         )+                    -- self rule+                    _copy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         Irrefutable _patIcopy+                         {-# LINE 7058 "dist/build/GenerateCode" #-}+                         )+                    -- self rule+                    _lhsOcopy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         _copy+                         {-# LINE 7064 "dist/build/GenerateCode" #-}+                         )+                    ( _patIcopy,_patIdefinedInsts,_patIpatternAttributes) =+                        pat_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOdefinedInsts _lhsOpatternAttributes)+                in  ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)))+sem_Pattern_Product :: Pos ->+                       T_Patterns ->+                       T_Pattern+sem_Pattern_Product pos_ (T_Patterns pats_) =+    (T_Pattern (let _lhsOdefinedInsts :: ([Identifier])+                    _lhsOpatternAttributes :: ([(Identifier, Identifier)])+                    _lhsOcopy :: Pattern+                    _patsIcopy :: Patterns+                    _patsIdefinedInsts :: ([Identifier])+                    _patsIpatternAttributes :: ([(Identifier, Identifier)])+                    -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)+                    _lhsOdefinedInsts =+                        ({-# LINE 261 "src-ag/GenerateCode.ag" #-}+                         _patsIdefinedInsts+                         {-# LINE 7085 "dist/build/GenerateCode" #-}+                         )+                    -- use rule "src-ag/GenerateCode.ag"(line 268, column 47)+                    _lhsOpatternAttributes =+                        ({-# LINE 268 "src-ag/GenerateCode.ag" #-}+                         _patsIpatternAttributes+                         {-# LINE 7091 "dist/build/GenerateCode" #-}+                         )+                    -- self rule+                    _copy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         Product pos_ _patsIcopy+                         {-# LINE 7097 "dist/build/GenerateCode" #-}+                         )+                    -- self rule+                    _lhsOcopy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         _copy+                         {-# LINE 7103 "dist/build/GenerateCode" #-}+                         )+                    ( _patsIcopy,_patsIdefinedInsts,_patsIpatternAttributes) =+                        pats_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOdefinedInsts _lhsOpatternAttributes)+                in  ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)))+sem_Pattern_Underscore :: Pos ->+                          T_Pattern+sem_Pattern_Underscore pos_ =+    (T_Pattern (let _lhsOdefinedInsts :: ([Identifier])+                    _lhsOpatternAttributes :: ([(Identifier, Identifier)])+                    _lhsOcopy :: Pattern+                    -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)+                    _lhsOdefinedInsts =+                        ({-# LINE 261 "src-ag/GenerateCode.ag" #-}+                         []+                         {-# LINE 7120 "dist/build/GenerateCode" #-}+                         )+                    -- use rule "src-ag/GenerateCode.ag"(line 268, column 47)+                    _lhsOpatternAttributes =+                        ({-# LINE 268 "src-ag/GenerateCode.ag" #-}+                         []+                         {-# LINE 7126 "dist/build/GenerateCode" #-}+                         )+                    -- self rule+                    _copy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         Underscore pos_+                         {-# LINE 7132 "dist/build/GenerateCode" #-}+                         )+                    -- self rule+                    _lhsOcopy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         _copy+                         {-# LINE 7138 "dist/build/GenerateCode" #-}+                         )+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOdefinedInsts _lhsOpatternAttributes)+                in  ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)))+-- Patterns ----------------------------------------------------+{-+   visit 0:+      synthesized attributes:+         copy                 : Patterns +         definedInsts         : [Identifier]+         patternAttributes    : [(Identifier, Identifier)]+   alternatives:+      alternative Cons:+         child hd             : Pattern +         child tl             : Patterns +         visit 0:+            local copy        : _+      alternative Nil:+         visit 0:+            local copy        : _+-}+-- cata+sem_Patterns :: Patterns ->+                T_Patterns+sem_Patterns list =+    (Prelude.foldr sem_Patterns_Cons sem_Patterns_Nil (Prelude.map sem_Pattern list))+-- semantic domain+newtype T_Patterns = T_Patterns (( Patterns,([Identifier]),([(Identifier, Identifier)])))+data Inh_Patterns = Inh_Patterns {}+data Syn_Patterns = Syn_Patterns {copy_Syn_Patterns :: !(Patterns),definedInsts_Syn_Patterns :: !(([Identifier])),patternAttributes_Syn_Patterns :: !(([(Identifier, Identifier)]))}+wrap_Patterns :: T_Patterns ->+                 Inh_Patterns ->+                 Syn_Patterns+wrap_Patterns (T_Patterns sem) (Inh_Patterns) =+    (let ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes) = sem+     in  (Syn_Patterns _lhsOcopy _lhsOdefinedInsts _lhsOpatternAttributes))+sem_Patterns_Cons :: T_Pattern ->+                     T_Patterns ->+                     T_Patterns+sem_Patterns_Cons (T_Pattern hd_) (T_Patterns tl_) =+    (T_Patterns (let _lhsOdefinedInsts :: ([Identifier])+                     _lhsOpatternAttributes :: ([(Identifier, Identifier)])+                     _lhsOcopy :: Patterns+                     _hdIcopy :: Pattern+                     _hdIdefinedInsts :: ([Identifier])+                     _hdIpatternAttributes :: ([(Identifier, Identifier)])+                     _tlIcopy :: Patterns+                     _tlIdefinedInsts :: ([Identifier])+                     _tlIpatternAttributes :: ([(Identifier, Identifier)])+                     -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)+                     _lhsOdefinedInsts =+                         ({-# LINE 261 "src-ag/GenerateCode.ag" #-}+                          _hdIdefinedInsts ++ _tlIdefinedInsts+                          {-# LINE 7192 "dist/build/GenerateCode" #-}+                          )+                     -- use rule "src-ag/GenerateCode.ag"(line 268, column 47)+                     _lhsOpatternAttributes =+                         ({-# LINE 268 "src-ag/GenerateCode.ag" #-}+                          _hdIpatternAttributes ++ _tlIpatternAttributes+                          {-# LINE 7198 "dist/build/GenerateCode" #-}+                          )+                     -- self rule+                     _copy =+                         ({-# LINE 22 "src-ag/Patterns.ag" #-}+                          (:) _hdIcopy _tlIcopy+                          {-# LINE 7204 "dist/build/GenerateCode" #-}+                          )+                     -- self rule+                     _lhsOcopy =+                         ({-# LINE 22 "src-ag/Patterns.ag" #-}+                          _copy+                          {-# LINE 7210 "dist/build/GenerateCode" #-}+                          )+                     ( _hdIcopy,_hdIdefinedInsts,_hdIpatternAttributes) =+                         hd_+                     ( _tlIcopy,_tlIdefinedInsts,_tlIpatternAttributes) =+                         tl_+                     ___node =+                         (Syn_Patterns _lhsOcopy _lhsOdefinedInsts _lhsOpatternAttributes)+                 in  ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)))+sem_Patterns_Nil :: T_Patterns+sem_Patterns_Nil =+    (T_Patterns (let _lhsOdefinedInsts :: ([Identifier])+                     _lhsOpatternAttributes :: ([(Identifier, Identifier)])+                     _lhsOcopy :: Patterns+                     -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)+                     _lhsOdefinedInsts =+                         ({-# LINE 261 "src-ag/GenerateCode.ag" #-}+                          []+                          {-# LINE 7228 "dist/build/GenerateCode" #-}+                          )+                     -- use rule "src-ag/GenerateCode.ag"(line 268, column 47)+                     _lhsOpatternAttributes =+                         ({-# LINE 268 "src-ag/GenerateCode.ag" #-}+                          []+                          {-# LINE 7234 "dist/build/GenerateCode" #-}+                          )+                     -- self rule+                     _copy =+                         ({-# LINE 22 "src-ag/Patterns.ag" #-}+                          []+                          {-# LINE 7240 "dist/build/GenerateCode" #-}+                          )+                     -- self rule+                     _lhsOcopy =+                         ({-# LINE 22 "src-ag/Patterns.ag" #-}+                          _copy+                          {-# LINE 7246 "dist/build/GenerateCode" #-}+                          )+                     ___node =+                         (Syn_Patterns _lhsOcopy _lhsOdefinedInsts _lhsOpatternAttributes)+                 in  ( _lhsOcopy,_lhsOdefinedInsts,_lhsOpatternAttributes)))+-- Sequence ----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allNts               : Set NontermIdent+         aroundMap            : Set Identifier+         children             : [(Identifier,Type,ChildKind)]+         con                  : ConstructorIdent+         inh                  : Attributes+         instVisitNrs         : Map Identifier Int+         lastExpr             : Expr+         mergeMap             : Map Identifier (Identifier, [Identifier])+         nr                   : Int+         nt                   : NontermIdent+         o_case               : Bool+         o_cata               : Bool+         o_costcentre         : Bool+         o_data               : Maybe Bool+         o_linePragmas        : Bool+         o_monadic            : Bool+         o_newtypes           : Bool+         o_pretty             : Bool+         o_rename             : Bool+         o_sem                : Bool+         o_sig                : Bool+         o_splitsems          : Bool+         o_strictwrap         : Bool+         o_traces             : Bool+         o_unbox              : Bool+         options              : Options+         paramInstMap         : Map Identifier (NontermIdent, [String])+         paramMap             : ParamMap+         prefix               : String+         syn                  : Attributes+         terminals            : [Identifier]+         unfoldSemDom         : NontermIdent -> Int -> [String] -> Code.Type+         what                 : String+      chained attributes:+         declsAbove           : [Decl]+         visitedSet           : Set Identifier+      synthesized attributes:+         allTpsFound          : Bool+         blockDecls           : DeclBlocks +         comments             : [String]+         decls                : Decls+         definedInsts         : [Identifier]+         exprs                : Exprs+         tSigs                : [Decl]+         tps                  : [Type]+         usedVars             : Set String+   alternatives:+      alternative Cons:+         child hd             : CRule +         child tl             : Sequence +      alternative Nil:+-}+-- cata+sem_Sequence :: Sequence ->+                T_Sequence+sem_Sequence list =+    (Prelude.foldr sem_Sequence_Cons sem_Sequence_Nil (Prelude.map sem_CRule list))+-- semantic domain+newtype T_Sequence = T_Sequence ((Set NontermIdent) ->+                                 (Set Identifier) ->+                                 ([(Identifier,Type,ChildKind)]) ->+                                 ConstructorIdent ->+                                 ([Decl]) ->+                                 Attributes ->+                                 (Map Identifier Int) ->+                                 Expr ->+                                 (Map Identifier (Identifier, [Identifier])) ->+                                 Int ->+                                 NontermIdent ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 (Maybe Bool) ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Bool ->+                                 Options ->+                                 (Map Identifier (NontermIdent, [String])) ->+                                 ParamMap ->+                                 String ->+                                 Attributes ->+                                 ([Identifier]) ->+                                 (NontermIdent -> Int -> [String] -> Code.Type) ->+                                 (Set Identifier) ->+                                 String ->+                                 ( Bool,DeclBlocks,([String]),Decls,([Decl]),([Identifier]),Exprs,([Decl]),([Type]),(Set String),(Set Identifier)))+data Inh_Sequence = Inh_Sequence {allNts_Inh_Sequence :: !((Set NontermIdent)),aroundMap_Inh_Sequence :: !((Set Identifier)),children_Inh_Sequence :: !(([(Identifier,Type,ChildKind)])),con_Inh_Sequence :: !(ConstructorIdent),declsAbove_Inh_Sequence :: !(([Decl])),inh_Inh_Sequence :: !(Attributes),instVisitNrs_Inh_Sequence :: !((Map Identifier Int)),lastExpr_Inh_Sequence :: !(Expr),mergeMap_Inh_Sequence :: !((Map Identifier (Identifier, [Identifier]))),nr_Inh_Sequence :: !(Int),nt_Inh_Sequence :: !(NontermIdent),o_case_Inh_Sequence :: !(Bool),o_cata_Inh_Sequence :: !(Bool),o_costcentre_Inh_Sequence :: !(Bool),o_data_Inh_Sequence :: !((Maybe Bool)),o_linePragmas_Inh_Sequence :: !(Bool),o_monadic_Inh_Sequence :: !(Bool),o_newtypes_Inh_Sequence :: !(Bool),o_pretty_Inh_Sequence :: !(Bool),o_rename_Inh_Sequence :: !(Bool),o_sem_Inh_Sequence :: !(Bool),o_sig_Inh_Sequence :: !(Bool),o_splitsems_Inh_Sequence :: !(Bool),o_strictwrap_Inh_Sequence :: !(Bool),o_traces_Inh_Sequence :: !(Bool),o_unbox_Inh_Sequence :: !(Bool),options_Inh_Sequence :: !(Options),paramInstMap_Inh_Sequence :: !((Map Identifier (NontermIdent, [String]))),paramMap_Inh_Sequence :: !(ParamMap),prefix_Inh_Sequence :: !(String),syn_Inh_Sequence :: !(Attributes),terminals_Inh_Sequence :: !(([Identifier])),unfoldSemDom_Inh_Sequence :: !((NontermIdent -> Int -> [String] -> Code.Type)),visitedSet_Inh_Sequence :: !((Set Identifier)),what_Inh_Sequence :: !(String)}+data Syn_Sequence = Syn_Sequence {allTpsFound_Syn_Sequence :: !(Bool),blockDecls_Syn_Sequence :: !(DeclBlocks),comments_Syn_Sequence :: !(([String])),decls_Syn_Sequence :: !(Decls),declsAbove_Syn_Sequence :: !(([Decl])),definedInsts_Syn_Sequence :: !(([Identifier])),exprs_Syn_Sequence :: !(Exprs),tSigs_Syn_Sequence :: !(([Decl])),tps_Syn_Sequence :: !(([Type])),usedVars_Syn_Sequence :: !((Set String)),visitedSet_Syn_Sequence :: !((Set Identifier))}+wrap_Sequence :: T_Sequence ->+                 Inh_Sequence ->+                 Syn_Sequence+wrap_Sequence (T_Sequence sem) (Inh_Sequence _lhsIallNts _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIdeclsAbove _lhsIinh _lhsIinstVisitNrs _lhsIlastExpr _lhsImergeMap _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIvisitedSet _lhsIwhat) =+    (let ( _lhsOallTpsFound,_lhsOblockDecls,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars,_lhsOvisitedSet) = sem _lhsIallNts _lhsIaroundMap _lhsIchildren _lhsIcon _lhsIdeclsAbove _lhsIinh _lhsIinstVisitNrs _lhsIlastExpr _lhsImergeMap _lhsInr _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_costcentre _lhsIo_data _lhsIo_linePragmas _lhsIo_monadic _lhsIo_newtypes _lhsIo_pretty _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_splitsems _lhsIo_strictwrap _lhsIo_traces _lhsIo_unbox _lhsIoptions _lhsIparamInstMap _lhsIparamMap _lhsIprefix _lhsIsyn _lhsIterminals _lhsIunfoldSemDom _lhsIvisitedSet _lhsIwhat+     in  (Syn_Sequence _lhsOallTpsFound _lhsOblockDecls _lhsOcomments _lhsOdecls _lhsOdeclsAbove _lhsOdefinedInsts _lhsOexprs _lhsOtSigs _lhsOtps _lhsOusedVars _lhsOvisitedSet))+sem_Sequence_Cons :: T_CRule ->+                     T_Sequence ->+                     T_Sequence+sem_Sequence_Cons (T_CRule hd_) (T_Sequence tl_) =+    (T_Sequence (\ _lhsIallNts+                   _lhsIaroundMap+                   _lhsIchildren+                   _lhsIcon+                   _lhsIdeclsAbove+                   _lhsIinh+                   _lhsIinstVisitNrs+                   _lhsIlastExpr+                   _lhsImergeMap+                   _lhsInr+                   _lhsInt+                   _lhsIo_case+                   _lhsIo_cata+                   _lhsIo_costcentre+                   _lhsIo_data+                   _lhsIo_linePragmas+                   _lhsIo_monadic+                   _lhsIo_newtypes+                   _lhsIo_pretty+                   _lhsIo_rename+                   _lhsIo_sem+                   _lhsIo_sig+                   _lhsIo_splitsems+                   _lhsIo_strictwrap+                   _lhsIo_traces+                   _lhsIo_unbox+                   _lhsIoptions+                   _lhsIparamInstMap+                   _lhsIparamMap+                   _lhsIprefix+                   _lhsIsyn+                   _lhsIterminals+                   _lhsIunfoldSemDom+                   _lhsIvisitedSet+                   _lhsIwhat ->+                     (let _lhsOblockDecls :: DeclBlocks+                          _lhsOallTpsFound :: Bool+                          _lhsOcomments :: ([String])+                          _lhsOdecls :: Decls+                          _lhsOdefinedInsts :: ([Identifier])+                          _lhsOexprs :: Exprs+                          _lhsOtSigs :: ([Decl])+                          _lhsOtps :: ([Type])+                          _lhsOusedVars :: (Set String)+                          _lhsOdeclsAbove :: ([Decl])+                          _lhsOvisitedSet :: (Set Identifier)+                          _hdOallNts :: (Set NontermIdent)+                          _hdOaroundMap :: (Set Identifier)+                          _hdOchildren :: ([(Identifier,Type,ChildKind)])+                          _hdOcon :: ConstructorIdent+                          _hdOdeclsAbove :: ([Decl])+                          _hdOinh :: Attributes+                          _hdOinstVisitNrs :: (Map Identifier Int)+                          _hdOmergeMap :: (Map Identifier (Identifier, [Identifier]))+                          _hdOnr :: Int+                          _hdOnt :: NontermIdent+                          _hdOo_case :: Bool+                          _hdOo_cata :: Bool+                          _hdOo_costcentre :: Bool+                          _hdOo_data :: (Maybe Bool)+                          _hdOo_linePragmas :: Bool+                          _hdOo_monadic :: Bool+                          _hdOo_newtypes :: Bool+                          _hdOo_pretty :: Bool+                          _hdOo_rename :: Bool+                          _hdOo_sem :: Bool+                          _hdOo_sig :: Bool+                          _hdOo_splitsems :: Bool+                          _hdOo_strictwrap :: Bool+                          _hdOo_traces :: Bool+                          _hdOo_unbox :: Bool+                          _hdOoptions :: Options+                          _hdOparamInstMap :: (Map Identifier (NontermIdent, [String]))+                          _hdOparamMap :: ParamMap+                          _hdOprefix :: String+                          _hdOsyn :: Attributes+                          _hdOterminals :: ([Identifier])+                          _hdOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)+                          _hdOvisitedSet :: (Set Identifier)+                          _hdOwhat :: String+                          _tlOallNts :: (Set NontermIdent)+                          _tlOaroundMap :: (Set Identifier)+                          _tlOchildren :: ([(Identifier,Type,ChildKind)])+                          _tlOcon :: ConstructorIdent+                          _tlOdeclsAbove :: ([Decl])+                          _tlOinh :: Attributes+                          _tlOinstVisitNrs :: (Map Identifier Int)+                          _tlOlastExpr :: Expr+                          _tlOmergeMap :: (Map Identifier (Identifier, [Identifier]))+                          _tlOnr :: Int+                          _tlOnt :: NontermIdent+                          _tlOo_case :: Bool+                          _tlOo_cata :: Bool+                          _tlOo_costcentre :: Bool+                          _tlOo_data :: (Maybe Bool)+                          _tlOo_linePragmas :: Bool+                          _tlOo_monadic :: Bool+                          _tlOo_newtypes :: Bool+                          _tlOo_pretty :: Bool+                          _tlOo_rename :: Bool+                          _tlOo_sem :: Bool+                          _tlOo_sig :: Bool+                          _tlOo_splitsems :: Bool+                          _tlOo_strictwrap :: Bool+                          _tlOo_traces :: Bool+                          _tlOo_unbox :: Bool+                          _tlOoptions :: Options+                          _tlOparamInstMap :: (Map Identifier (NontermIdent, [String]))+                          _tlOparamMap :: ParamMap+                          _tlOprefix :: String+                          _tlOsyn :: Attributes+                          _tlOterminals :: ([Identifier])+                          _tlOunfoldSemDom :: (NontermIdent -> Int -> [String] -> Code.Type)+                          _tlOvisitedSet :: (Set Identifier)+                          _tlOwhat :: String+                          _hdIallTpsFound :: Bool+                          _hdIbldBlocksFun :: (DeclBlocks -> DeclBlocks)+                          _hdIcomments :: ([String])+                          _hdIdecls :: Decls+                          _hdIdeclsAbove :: ([Decl])+                          _hdIdefinedInsts :: ([Identifier])+                          _hdIexprs :: Exprs+                          _hdItSigs :: ([Decl])+                          _hdItps :: ([Type])+                          _hdIusedVars :: (Set String)+                          _hdIvisitedSet :: (Set Identifier)+                          _tlIallTpsFound :: Bool+                          _tlIblockDecls :: DeclBlocks+                          _tlIcomments :: ([String])+                          _tlIdecls :: Decls+                          _tlIdeclsAbove :: ([Decl])+                          _tlIdefinedInsts :: ([Identifier])+                          _tlIexprs :: Exprs+                          _tlItSigs :: ([Decl])+                          _tlItps :: ([Type])+                          _tlIusedVars :: (Set String)+                          _tlIvisitedSet :: (Set Identifier)+                          -- "src-ag/GenerateCode.ag"(line 622, column 7)+                          _lhsOblockDecls =+                              ({-# LINE 622 "src-ag/GenerateCode.ag" #-}+                               _hdIbldBlocksFun _tlIblockDecls+                               {-# LINE 7502 "dist/build/GenerateCode" #-}+                               )+                          -- use rule "src-ag/GenerateCode.ag"(line 416, column 39)+                          _lhsOallTpsFound =+                              ({-# LINE 416 "src-ag/GenerateCode.ag" #-}+                               _hdIallTpsFound && _tlIallTpsFound+                               {-# LINE 7508 "dist/build/GenerateCode" #-}+                               )+                          -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)+                          _lhsOcomments =+                              ({-# LINE 868 "src-ag/GenerateCode.ag" #-}+                               _hdIcomments ++ _tlIcomments+                               {-# LINE 7514 "dist/build/GenerateCode" #-}+                               )+                          -- use rule "src-ag/GenerateCode.ag"(line 155, column 34)+                          _lhsOdecls =+                              ({-# LINE 155 "src-ag/GenerateCode.ag" #-}+                               _hdIdecls ++ _tlIdecls+                               {-# LINE 7520 "dist/build/GenerateCode" #-}+                               )+                          -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)+                          _lhsOdefinedInsts =+                              ({-# LINE 261 "src-ag/GenerateCode.ag" #-}+                               _hdIdefinedInsts ++ _tlIdefinedInsts+                               {-# LINE 7526 "dist/build/GenerateCode" #-}+                               )+                          -- use rule "src-ag/GenerateCode.ag"(line 334, column 34)+                          _lhsOexprs =+                              ({-# LINE 334 "src-ag/GenerateCode.ag" #-}+                               _hdIexprs ++ _tlIexprs+                               {-# LINE 7532 "dist/build/GenerateCode" #-}+                               )+                          -- use rule "src-ag/GenerateCode.ag"(line 363, column 33)+                          _lhsOtSigs =+                              ({-# LINE 363 "src-ag/GenerateCode.ag" #-}+                               _hdItSigs ++ _tlItSigs+                               {-# LINE 7538 "dist/build/GenerateCode" #-}+                               )+                          -- use rule "src-ag/GenerateCode.ag"(line 415, column 31)+                          _lhsOtps =+                              ({-# LINE 415 "src-ag/GenerateCode.ag" #-}+                               _hdItps ++ _tlItps+                               {-# LINE 7544 "dist/build/GenerateCode" #-}+                               )+                          -- use rule "src-ag/GenerateCode.ag"(line 352, column 37)+                          _lhsOusedVars =+                              ({-# LINE 352 "src-ag/GenerateCode.ag" #-}+                               _hdIusedVars `Set.union` _tlIusedVars+                               {-# LINE 7550 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (up)+                          _lhsOdeclsAbove =+                              ({-# LINE 608 "src-ag/GenerateCode.ag" #-}+                               _tlIdeclsAbove+                               {-# LINE 7556 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (up)+                          _lhsOvisitedSet =+                              ({-# LINE 145 "src-ag/GenerateCode.ag" #-}+                               _tlIvisitedSet+                               {-# LINE 7562 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOallNts =+                              ({-# LINE 132 "src-ag/GenerateCode.ag" #-}+                               _lhsIallNts+                               {-# LINE 7568 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOaroundMap =+                              ({-# LINE 580 "src-ag/GenerateCode.ag" #-}+                               _lhsIaroundMap+                               {-# LINE 7574 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOchildren =+                              ({-# LINE 259 "src-ag/GenerateCode.ag" #-}+                               _lhsIchildren+                               {-# LINE 7580 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOcon =+                              ({-# LINE 89 "src-ag/GenerateCode.ag" #-}+                               _lhsIcon+                               {-# LINE 7586 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOdeclsAbove =+                              ({-# LINE 608 "src-ag/GenerateCode.ag" #-}+                               _lhsIdeclsAbove+                               {-# LINE 7592 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOinh =+                              ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                               _lhsIinh+                               {-# LINE 7598 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOinstVisitNrs =+                              ({-# LINE 560 "src-ag/GenerateCode.ag" #-}+                               _lhsIinstVisitNrs+                               {-# LINE 7604 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOmergeMap =+                              ({-# LINE 596 "src-ag/GenerateCode.ag" #-}+                               _lhsImergeMap+                               {-# LINE 7610 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOnr =+                              ({-# LINE 278 "src-ag/GenerateCode.ag" #-}+                               _lhsInr+                               {-# LINE 7616 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOnt =+                              ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                               _lhsInt+                               {-# LINE 7622 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOo_case =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_case+                               {-# LINE 7628 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOo_cata =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_cata+                               {-# LINE 7634 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOo_costcentre =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_costcentre+                               {-# LINE 7640 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOo_data =+                              ({-# LINE 48 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_data+                               {-# LINE 7646 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOo_linePragmas =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_linePragmas+                               {-# LINE 7652 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOo_monadic =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_monadic+                               {-# LINE 7658 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOo_newtypes =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_newtypes+                               {-# LINE 7664 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOo_pretty =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_pretty+                               {-# LINE 7670 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOo_rename =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_rename+                               {-# LINE 7676 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOo_sem =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_sem+                               {-# LINE 7682 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOo_sig =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_sig+                               {-# LINE 7688 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOo_splitsems =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_splitsems+                               {-# LINE 7694 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOo_strictwrap =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_strictwrap+                               {-# LINE 7700 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOo_traces =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_traces+                               {-# LINE 7706 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOo_unbox =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_unbox+                               {-# LINE 7712 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOoptions =+                              ({-# LINE 50 "src-ag/GenerateCode.ag" #-}+                               _lhsIoptions+                               {-# LINE 7718 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOparamInstMap =+                              ({-# LINE 101 "src-ag/GenerateCode.ag" #-}+                               _lhsIparamInstMap+                               {-# LINE 7724 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOparamMap =+                              ({-# LINE 95 "src-ag/GenerateCode.ag" #-}+                               _lhsIparamMap+                               {-# LINE 7730 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOprefix =+                              ({-# LINE 49 "src-ag/GenerateCode.ag" #-}+                               _lhsIprefix+                               {-# LINE 7736 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOsyn =+                              ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                               _lhsIsyn+                               {-# LINE 7742 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOterminals =+                              ({-# LINE 90 "src-ag/GenerateCode.ag" #-}+                               _lhsIterminals+                               {-# LINE 7748 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOunfoldSemDom =+                              ({-# LINE 750 "src-ag/GenerateCode.ag" #-}+                               _lhsIunfoldSemDom+                               {-# LINE 7754 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOvisitedSet =+                              ({-# LINE 145 "src-ag/GenerateCode.ag" #-}+                               _lhsIvisitedSet+                               {-# LINE 7760 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _hdOwhat =+                              ({-# LINE 870 "src-ag/GenerateCode.ag" #-}+                               _lhsIwhat+                               {-# LINE 7766 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOallNts =+                              ({-# LINE 132 "src-ag/GenerateCode.ag" #-}+                               _lhsIallNts+                               {-# LINE 7772 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOaroundMap =+                              ({-# LINE 580 "src-ag/GenerateCode.ag" #-}+                               _lhsIaroundMap+                               {-# LINE 7778 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOchildren =+                              ({-# LINE 259 "src-ag/GenerateCode.ag" #-}+                               _lhsIchildren+                               {-# LINE 7784 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOcon =+                              ({-# LINE 89 "src-ag/GenerateCode.ag" #-}+                               _lhsIcon+                               {-# LINE 7790 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (chain)+                          _tlOdeclsAbove =+                              ({-# LINE 608 "src-ag/GenerateCode.ag" #-}+                               _hdIdeclsAbove+                               {-# LINE 7796 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOinh =+                              ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                               _lhsIinh+                               {-# LINE 7802 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOinstVisitNrs =+                              ({-# LINE 560 "src-ag/GenerateCode.ag" #-}+                               _lhsIinstVisitNrs+                               {-# LINE 7808 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOlastExpr =+                              ({-# LINE 606 "src-ag/GenerateCode.ag" #-}+                               _lhsIlastExpr+                               {-# LINE 7814 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOmergeMap =+                              ({-# LINE 596 "src-ag/GenerateCode.ag" #-}+                               _lhsImergeMap+                               {-# LINE 7820 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOnr =+                              ({-# LINE 278 "src-ag/GenerateCode.ag" #-}+                               _lhsInr+                               {-# LINE 7826 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOnt =+                              ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                               _lhsInt+                               {-# LINE 7832 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOo_case =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_case+                               {-# LINE 7838 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOo_cata =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_cata+                               {-# LINE 7844 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOo_costcentre =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_costcentre+                               {-# LINE 7850 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOo_data =+                              ({-# LINE 48 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_data+                               {-# LINE 7856 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOo_linePragmas =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_linePragmas+                               {-# LINE 7862 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOo_monadic =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_monadic+                               {-# LINE 7868 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOo_newtypes =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_newtypes+                               {-# LINE 7874 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOo_pretty =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_pretty+                               {-# LINE 7880 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOo_rename =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_rename+                               {-# LINE 7886 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOo_sem =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_sem+                               {-# LINE 7892 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOo_sig =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_sig+                               {-# LINE 7898 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOo_splitsems =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_splitsems+                               {-# LINE 7904 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOo_strictwrap =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_strictwrap+                               {-# LINE 7910 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOo_traces =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_traces+                               {-# LINE 7916 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOo_unbox =+                              ({-# LINE 47 "src-ag/GenerateCode.ag" #-}+                               _lhsIo_unbox+                               {-# LINE 7922 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOoptions =+                              ({-# LINE 50 "src-ag/GenerateCode.ag" #-}+                               _lhsIoptions+                               {-# LINE 7928 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOparamInstMap =+                              ({-# LINE 101 "src-ag/GenerateCode.ag" #-}+                               _lhsIparamInstMap+                               {-# LINE 7934 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOparamMap =+                              ({-# LINE 95 "src-ag/GenerateCode.ag" #-}+                               _lhsIparamMap+                               {-# LINE 7940 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOprefix =+                              ({-# LINE 49 "src-ag/GenerateCode.ag" #-}+                               _lhsIprefix+                               {-# LINE 7946 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOsyn =+                              ({-# LINE 84 "src-ag/GenerateCode.ag" #-}+                               _lhsIsyn+                               {-# LINE 7952 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOterminals =+                              ({-# LINE 90 "src-ag/GenerateCode.ag" #-}+                               _lhsIterminals+                               {-# LINE 7958 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOunfoldSemDom =+                              ({-# LINE 750 "src-ag/GenerateCode.ag" #-}+                               _lhsIunfoldSemDom+                               {-# LINE 7964 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (chain)+                          _tlOvisitedSet =+                              ({-# LINE 145 "src-ag/GenerateCode.ag" #-}+                               _hdIvisitedSet+                               {-# LINE 7970 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (down)+                          _tlOwhat =+                              ({-# LINE 870 "src-ag/GenerateCode.ag" #-}+                               _lhsIwhat+                               {-# LINE 7976 "dist/build/GenerateCode" #-}+                               )+                          ( _hdIallTpsFound,_hdIbldBlocksFun,_hdIcomments,_hdIdecls,_hdIdeclsAbove,_hdIdefinedInsts,_hdIexprs,_hdItSigs,_hdItps,_hdIusedVars,_hdIvisitedSet) =+                              hd_ _hdOallNts _hdOaroundMap _hdOchildren _hdOcon _hdOdeclsAbove _hdOinh _hdOinstVisitNrs _hdOmergeMap _hdOnr _hdOnt _hdOo_case _hdOo_cata _hdOo_costcentre _hdOo_data _hdOo_linePragmas _hdOo_monadic _hdOo_newtypes _hdOo_pretty _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_splitsems _hdOo_strictwrap _hdOo_traces _hdOo_unbox _hdOoptions _hdOparamInstMap _hdOparamMap _hdOprefix _hdOsyn _hdOterminals _hdOunfoldSemDom _hdOvisitedSet _hdOwhat+                          ( _tlIallTpsFound,_tlIblockDecls,_tlIcomments,_tlIdecls,_tlIdeclsAbove,_tlIdefinedInsts,_tlIexprs,_tlItSigs,_tlItps,_tlIusedVars,_tlIvisitedSet) =+                              tl_ _tlOallNts _tlOaroundMap _tlOchildren _tlOcon _tlOdeclsAbove _tlOinh _tlOinstVisitNrs _tlOlastExpr _tlOmergeMap _tlOnr _tlOnt _tlOo_case _tlOo_cata _tlOo_costcentre _tlOo_data _tlOo_linePragmas _tlOo_monadic _tlOo_newtypes _tlOo_pretty _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_splitsems _tlOo_strictwrap _tlOo_traces _tlOo_unbox _tlOoptions _tlOparamInstMap _tlOparamMap _tlOprefix _tlOsyn _tlOterminals _tlOunfoldSemDom _tlOvisitedSet _tlOwhat+                          ___node =+                              (Syn_Sequence _lhsOallTpsFound _lhsOblockDecls _lhsOcomments _lhsOdecls _lhsOdeclsAbove _lhsOdefinedInsts _lhsOexprs _lhsOtSigs _lhsOtps _lhsOusedVars _lhsOvisitedSet)+                      in  ( _lhsOallTpsFound,_lhsOblockDecls,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars,_lhsOvisitedSet))))+sem_Sequence_Nil :: T_Sequence+sem_Sequence_Nil =+    (T_Sequence (\ _lhsIallNts+                   _lhsIaroundMap+                   _lhsIchildren+                   _lhsIcon+                   _lhsIdeclsAbove+                   _lhsIinh+                   _lhsIinstVisitNrs+                   _lhsIlastExpr+                   _lhsImergeMap+                   _lhsInr+                   _lhsInt+                   _lhsIo_case+                   _lhsIo_cata+                   _lhsIo_costcentre+                   _lhsIo_data+                   _lhsIo_linePragmas+                   _lhsIo_monadic+                   _lhsIo_newtypes+                   _lhsIo_pretty+                   _lhsIo_rename+                   _lhsIo_sem+                   _lhsIo_sig+                   _lhsIo_splitsems+                   _lhsIo_strictwrap+                   _lhsIo_traces+                   _lhsIo_unbox+                   _lhsIoptions+                   _lhsIparamInstMap+                   _lhsIparamMap+                   _lhsIprefix+                   _lhsIsyn+                   _lhsIterminals+                   _lhsIunfoldSemDom+                   _lhsIvisitedSet+                   _lhsIwhat ->+                     (let _lhsOblockDecls :: DeclBlocks+                          _lhsOallTpsFound :: Bool+                          _lhsOcomments :: ([String])+                          _lhsOdecls :: Decls+                          _lhsOdefinedInsts :: ([Identifier])+                          _lhsOexprs :: Exprs+                          _lhsOtSigs :: ([Decl])+                          _lhsOtps :: ([Type])+                          _lhsOusedVars :: (Set String)+                          _lhsOdeclsAbove :: ([Decl])+                          _lhsOvisitedSet :: (Set Identifier)+                          -- "src-ag/GenerateCode.ag"(line 624, column 7)+                          _lhsOblockDecls =+                              ({-# LINE 624 "src-ag/GenerateCode.ag" #-}+                               DeclTerminator _lhsIdeclsAbove _lhsIlastExpr+                               {-# LINE 8037 "dist/build/GenerateCode" #-}+                               )+                          -- use rule "src-ag/GenerateCode.ag"(line 416, column 39)+                          _lhsOallTpsFound =+                              ({-# LINE 416 "src-ag/GenerateCode.ag" #-}+                               True+                               {-# LINE 8043 "dist/build/GenerateCode" #-}+                               )+                          -- use rule "src-ag/GenerateCode.ag"(line 868, column 52)+                          _lhsOcomments =+                              ({-# LINE 868 "src-ag/GenerateCode.ag" #-}+                               []+                               {-# LINE 8049 "dist/build/GenerateCode" #-}+                               )+                          -- use rule "src-ag/GenerateCode.ag"(line 155, column 34)+                          _lhsOdecls =+                              ({-# LINE 155 "src-ag/GenerateCode.ag" #-}+                               []+                               {-# LINE 8055 "dist/build/GenerateCode" #-}+                               )+                          -- use rule "src-ag/GenerateCode.ag"(line 261, column 55)+                          _lhsOdefinedInsts =+                              ({-# LINE 261 "src-ag/GenerateCode.ag" #-}+                               []+                               {-# LINE 8061 "dist/build/GenerateCode" #-}+                               )+                          -- use rule "src-ag/GenerateCode.ag"(line 334, column 34)+                          _lhsOexprs =+                              ({-# LINE 334 "src-ag/GenerateCode.ag" #-}+                               []+                               {-# LINE 8067 "dist/build/GenerateCode" #-}+                               )+                          -- use rule "src-ag/GenerateCode.ag"(line 363, column 33)+                          _lhsOtSigs =+                              ({-# LINE 363 "src-ag/GenerateCode.ag" #-}+                               []+                               {-# LINE 8073 "dist/build/GenerateCode" #-}+                               )+                          -- use rule "src-ag/GenerateCode.ag"(line 415, column 31)+                          _lhsOtps =+                              ({-# LINE 415 "src-ag/GenerateCode.ag" #-}+                               []+                               {-# LINE 8079 "dist/build/GenerateCode" #-}+                               )+                          -- use rule "src-ag/GenerateCode.ag"(line 352, column 37)+                          _lhsOusedVars =+                              ({-# LINE 352 "src-ag/GenerateCode.ag" #-}+                               Set.empty+                               {-# LINE 8085 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (chain)+                          _lhsOdeclsAbove =+                              ({-# LINE 608 "src-ag/GenerateCode.ag" #-}+                               _lhsIdeclsAbove+                               {-# LINE 8091 "dist/build/GenerateCode" #-}+                               )+                          -- copy rule (chain)+                          _lhsOvisitedSet =+                              ({-# LINE 145 "src-ag/GenerateCode.ag" #-}+                               _lhsIvisitedSet+                               {-# LINE 8097 "dist/build/GenerateCode" #-}+                               )+                          ___node =+                              (Syn_Sequence _lhsOallTpsFound _lhsOblockDecls _lhsOcomments _lhsOdecls _lhsOdeclsAbove _lhsOdefinedInsts _lhsOexprs _lhsOtSigs _lhsOtps _lhsOusedVars _lhsOvisitedSet)                       in  ( _lhsOallTpsFound,_lhsOblockDecls,_lhsOcomments,_lhsOdecls,_lhsOdeclsAbove,_lhsOdefinedInsts,_lhsOexprs,_lhsOtSigs,_lhsOtps,_lhsOusedVars,_lhsOvisitedSet))))
src-derived/InterfacesRules.hs view
@@ -203,7 +203,9 @@                                                      {-# LINE 204 "dist/build/InterfacesRules" #-}                                                      )) of                                               { !_lhsOvisits ->-                                              ( _lhsOedp,_lhsOinters,_lhsOvisits) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+                                              (case ((Syn_IRoot _lhsOedp _lhsOinters _lhsOvisits)) of+                                               { ___node ->+                                               ( _lhsOedp,_lhsOinters,_lhsOvisits) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))) -- Interface --------------------------------------------------- {-    visit 0:@@ -277,64 +279,64 @@                     (!_lhsIv) ->                       (case (({-# LINE 83 "src-ag/InterfacesRules.lag" #-}                               _lhsIinfo-                              {-# LINE 281 "dist/build/InterfacesRules" #-}+                              {-# LINE 283 "dist/build/InterfacesRules" #-}                               )) of                        { !_segOinfo ->                        (case (({-# LINE 205 "src-ag/InterfacesRules.lag" #-}                                0-                               {-# LINE 286 "dist/build/InterfacesRules" #-}+                               {-# LINE 288 "dist/build/InterfacesRules" #-}                                )) of                         { !_segOn ->                         (case (({-# LINE 195 "src-ag/InterfacesRules.lag" #-}                                 \a -> ruleTable _lhsIinfo ! a-                                {-# LINE 291 "dist/build/InterfacesRules" #-}+                                {-# LINE 293 "dist/build/InterfacesRules" #-}                                 )) of                          { !_look ->                          (case (({-# LINE 187 "src-ag/InterfacesRules.lag" #-}                                  _lhsIv-                                 {-# LINE 296 "dist/build/InterfacesRules" #-}+                                 {-# LINE 298 "dist/build/InterfacesRules" #-}                                  )) of                           { !_segOv ->                           (case (seg_ _segOinfo _segOn _segOv) of                            { ( !_segIdescr,!_segIgroups,!_segInewedges,!_segInewvertices,!_segIv,!T_Segments_1 seg_1) ->                                (case (({-# LINE 188 "src-ag/InterfacesRules.lag" #-}                                        _segIv + length _segInewvertices-                                       {-# LINE 303 "dist/build/InterfacesRules" #-}+                                       {-# LINE 305 "dist/build/InterfacesRules" #-}                                        )) of                                 { !_v ->                                 (case (({-# LINE 190 "src-ag/InterfacesRules.lag" #-}                                         [_segIv .. _v-1]-                                        {-# LINE 308 "dist/build/InterfacesRules" #-}+                                        {-# LINE 310 "dist/build/InterfacesRules" #-}                                         )) of                                  { !_firstvisitvertices ->                                  (case (({-# LINE 196 "src-ag/InterfacesRules.lag" #-}                                          zipWith (cv _look (-1)) _firstvisitvertices _segIgroups-                                         {-# LINE 313 "dist/build/InterfacesRules" #-}+                                         {-# LINE 315 "dist/build/InterfacesRules" #-}                                          )) of                                   { !_descr ->                                   (case (({-# LINE 197 "src-ag/InterfacesRules.lag" #-}                                           _segIdescr Seq.>< Seq.fromList _descr-                                          {-# LINE 318 "dist/build/InterfacesRules" #-}+                                          {-# LINE 320 "dist/build/InterfacesRules" #-}                                           )) of                                    { !_lhsOdescr ->                                    (case (({-# LINE 258 "src-ag/InterfacesRules.lag" #-}                                            _firstvisitvertices-                                           {-# LINE 323 "dist/build/InterfacesRules" #-}+                                           {-# LINE 325 "dist/build/InterfacesRules" #-}                                            )) of                                     { !_lhsOfirstvisitvertices ->                                     (case (({-# LINE 191 "src-ag/InterfacesRules.lag" #-}                                             zip _firstvisitvertices _segInewvertices-                                            {-# LINE 328 "dist/build/InterfacesRules" #-}+                                            {-# LINE 330 "dist/build/InterfacesRules" #-}                                             )) of                                      { !_newedges ->                                      (case (({-# LINE 192 "src-ag/InterfacesRules.lag" #-}                                              _segInewedges Seq.>< Seq.fromList _newedges-                                             {-# LINE 333 "dist/build/InterfacesRules" #-}+                                             {-# LINE 335 "dist/build/InterfacesRules" #-}                                              )) of                                       { !_lhsOnewedges ->                                       (case (({-# LINE 189 "src-ag/InterfacesRules.lag" #-}                                               _v-                                              {-# LINE 338 "dist/build/InterfacesRules" #-}+                                              {-# LINE 340 "dist/build/InterfacesRules" #-}                                               )) of                                        { !_lhsOv ->                                        (case ((let sem_Interface_Interface_1 :: T_Interface_1@@ -344,34 +346,34 @@                                                                          (!_lhsIvssGraph) ->                                                                            (case (({-# LINE 216 "src-ag/InterfacesRules.lag" #-}                                                                                    _lhsIvssGraph-                                                                                   {-# LINE 348 "dist/build/InterfacesRules" #-}+                                                                                   {-# LINE 350 "dist/build/InterfacesRules" #-}                                                                                    )) of                                                                             { !_segOvssGraph ->                                                                             (case (({-# LINE 125 "src-ag/InterfacesRules.lag" #-}                                                                                     _lhsIvisitDescr-                                                                                    {-# LINE 353 "dist/build/InterfacesRules" #-}+                                                                                    {-# LINE 355 "dist/build/InterfacesRules" #-}                                                                                     )) of                                                                              { !_segOvisitDescr ->                                                                              (case (({-# LINE 263 "src-ag/InterfacesRules.lag" #-}                                                                                      _lhsIprev-                                                                                     {-# LINE 358 "dist/build/InterfacesRules" #-}+                                                                                     {-# LINE 360 "dist/build/InterfacesRules" #-}                                                                                      )) of                                                                               { !_segOprev ->                                                                               (case (({-# LINE 237 "src-ag/InterfacesRules.lag" #-}                                                                                       cons_-                                                                                      {-# LINE 363 "dist/build/InterfacesRules" #-}+                                                                                      {-# LINE 365 "dist/build/InterfacesRules" #-}                                                                                       )) of                                                                                { !_segOcons ->                                                                                (case (seg_1 _segOcons _segOprev _segOvisitDescr _segOvssGraph) of                                                                                 { ( !_segIsegs,!T_Segments_2 seg_2) ->                                                                                     (case (({-# LINE 395 "src-ag/InterfacesRules.lag" #-}                                                                                             CInterface _segIsegs-                                                                                            {-# LINE 370 "dist/build/InterfacesRules" #-}+                                                                                            {-# LINE 372 "dist/build/InterfacesRules" #-}                                                                                             )) of                                                                                      { !_lhsOinter ->                                                                                      (case (({-# LINE 391 "src-ag/InterfacesRules.lag" #-}                                                                                              nt_-                                                                                             {-# LINE 375 "dist/build/InterfacesRules" #-}+                                                                                             {-# LINE 377 "dist/build/InterfacesRules" #-}                                                                                              )) of                                                                                       { !_lhsOnt ->                                                                                       (case ((let sem_Interface_Interface_2 :: T_Interface_2@@ -380,34 +382,34 @@                                                                                                                         (!_lhsIddp) ->                                                                                                                           (case (({-# LINE 341 "src-ag/InterfacesRules.lag" #-}                                                                                                                                   _lhsIddp-                                                                                                                                  {-# LINE 384 "dist/build/InterfacesRules" #-}+                                                                                                                                  {-# LINE 386 "dist/build/InterfacesRules" #-}                                                                                                                                   )) of                                                                                                                            { !_segOddp ->                                                                                                                            (case (({-# LINE 378 "src-ag/InterfacesRules.lag" #-}                                                                                                                                    _lhsIallInters-                                                                                                                                   {-# LINE 389 "dist/build/InterfacesRules" #-}+                                                                                                                                   {-# LINE 391 "dist/build/InterfacesRules" #-}                                                                                                                                    )) of                                                                                                                             { !_segOallInters ->                                                                                                                             (case (({-# LINE 351 "src-ag/InterfacesRules.lag" #-}                                                                                                                                     _lhsIprev-                                                                                                                                    {-# LINE 394 "dist/build/InterfacesRules" #-}+                                                                                                                                    {-# LINE 396 "dist/build/InterfacesRules" #-}                                                                                                                                     )) of                                                                                                                              { !_segOfromLhs ->                                                                                                                              (case (({-# LINE 314 "src-ag/InterfacesRules.lag" #-}                                                                                                                                      True-                                                                                                                                     {-# LINE 399 "dist/build/InterfacesRules" #-}+                                                                                                                                     {-# LINE 401 "dist/build/InterfacesRules" #-}                                                                                                                                      )) of                                                                                                                               { !_segOisFirst ->                                                                                                                               (case (seg_2 _segOallInters _segOddp _segOfromLhs _segOisFirst) of                                                                                                                                { ( !_segIcvisits,!_segIedp,!_segIfirstInh,!_segIhdIntravisits,!_segIprev) ->                                                                                                                                    (case (({-# LINE 437 "src-ag/InterfacesRules.lag" #-}                                                                                                                                            _segIedp-                                                                                                                                           {-# LINE 406 "dist/build/InterfacesRules" #-}+                                                                                                                                           {-# LINE 408 "dist/build/InterfacesRules" #-}                                                                                                                                            )) of                                                                                                                                     { !_lhsOedp ->                                                                                                                                     (case (({-# LINE 396 "src-ag/InterfacesRules.lag" #-}                                                                                                                                             Map.fromList (zip cons_ (transpose _segIcvisits))-                                                                                                                                            {-# LINE 411 "dist/build/InterfacesRules" #-}+                                                                                                                                            {-# LINE 413 "dist/build/InterfacesRules" #-}                                                                                                                                             )) of                                                                                                                                      { !_lhsOvisits ->                                                                                                                                      ( _lhsOedp,_lhsOvisits) }) }) }) }) }) }) })))@@ -482,46 +484,46 @@                      (!_lhsIv) ->                        (case (({-# LINE 82 "src-ag/InterfacesRules.lag" #-}                                _lhsIv-                               {-# LINE 486 "dist/build/InterfacesRules" #-}+                               {-# LINE 488 "dist/build/InterfacesRules" #-}                                )) of                         { !_hdOv ->                         (case (({-# LINE 83 "src-ag/InterfacesRules.lag" #-}                                 _lhsIinfo-                                {-# LINE 491 "dist/build/InterfacesRules" #-}+                                {-# LINE 493 "dist/build/InterfacesRules" #-}                                 )) of                          { !_hdOinfo ->                          (case (hd_ _hdOinfo _hdOv) of                           { ( !_hdIdescr,!_hdIfirstvisitvertices,!_hdInewedges,!_hdIv,!T_Interface_1 hd_1) ->                               (case (({-# LINE 82 "src-ag/InterfacesRules.lag" #-}                                       _hdIv-                                      {-# LINE 498 "dist/build/InterfacesRules" #-}+                                      {-# LINE 500 "dist/build/InterfacesRules" #-}                                       )) of                                { !_tlOv ->                                (case (({-# LINE 83 "src-ag/InterfacesRules.lag" #-}                                        _lhsIinfo-                                       {-# LINE 503 "dist/build/InterfacesRules" #-}+                                       {-# LINE 505 "dist/build/InterfacesRules" #-}                                        )) of                                 { !_tlOinfo ->                                 (case (tl_ _tlOinfo _tlOv) of                                  { ( !_tlIdescr,!_tlIfirstvisitvertices,!_tlInewedges,!_tlIv,!T_Interfaces_1 tl_1) ->                                      (case (({-# LINE 130 "src-ag/InterfacesRules.lag" #-}                                              _hdIdescr Seq.>< _tlIdescr-                                             {-# LINE 510 "dist/build/InterfacesRules" #-}+                                             {-# LINE 512 "dist/build/InterfacesRules" #-}                                              )) of                                       { !_lhsOdescr ->                                       (case (({-# LINE 258 "src-ag/InterfacesRules.lag" #-}                                               _hdIfirstvisitvertices ++ _tlIfirstvisitvertices-                                              {-# LINE 515 "dist/build/InterfacesRules" #-}+                                              {-# LINE 517 "dist/build/InterfacesRules" #-}                                               )) of                                        { !_lhsOfirstvisitvertices ->                                        (case (({-# LINE 129 "src-ag/InterfacesRules.lag" #-}                                                _hdInewedges Seq.>< _tlInewedges-                                               {-# LINE 520 "dist/build/InterfacesRules" #-}+                                               {-# LINE 522 "dist/build/InterfacesRules" #-}                                                )) of                                         { !_lhsOnewedges ->                                         (case (({-# LINE 82 "src-ag/InterfacesRules.lag" #-}                                                 _tlIv-                                                {-# LINE 525 "dist/build/InterfacesRules" #-}+                                                {-# LINE 527 "dist/build/InterfacesRules" #-}                                                 )) of                                          { !_lhsOv ->                                          (case ((let sem_Interfaces_Cons_1 :: T_Interfaces_1@@ -531,32 +533,32 @@                                                                             (!_lhsIvssGraph) ->                                                                               (case (({-# LINE 216 "src-ag/InterfacesRules.lag" #-}                                                                                       _lhsIvssGraph-                                                                                      {-# LINE 535 "dist/build/InterfacesRules" #-}+                                                                                      {-# LINE 537 "dist/build/InterfacesRules" #-}                                                                                       )) of                                                                                { !_tlOvssGraph ->                                                                                (case (({-# LINE 125 "src-ag/InterfacesRules.lag" #-}                                                                                        _lhsIvisitDescr-                                                                                       {-# LINE 540 "dist/build/InterfacesRules" #-}+                                                                                       {-# LINE 542 "dist/build/InterfacesRules" #-}                                                                                        )) of                                                                                 { !_tlOvisitDescr ->                                                                                 (case (({-# LINE 258 "src-ag/InterfacesRules.lag" #-}                                                                                         _lhsIprev-                                                                                        {-# LINE 545 "dist/build/InterfacesRules" #-}+                                                                                        {-# LINE 547 "dist/build/InterfacesRules" #-}                                                                                         )) of                                                                                  { !_tlOprev ->                                                                                  (case (({-# LINE 216 "src-ag/InterfacesRules.lag" #-}                                                                                          _lhsIvssGraph-                                                                                         {-# LINE 550 "dist/build/InterfacesRules" #-}+                                                                                         {-# LINE 552 "dist/build/InterfacesRules" #-}                                                                                          )) of                                                                                   { !_hdOvssGraph ->                                                                                   (case (({-# LINE 125 "src-ag/InterfacesRules.lag" #-}                                                                                           _lhsIvisitDescr-                                                                                          {-# LINE 555 "dist/build/InterfacesRules" #-}+                                                                                          {-# LINE 557 "dist/build/InterfacesRules" #-}                                                                                           )) of                                                                                    { !_hdOvisitDescr ->                                                                                    (case (({-# LINE 258 "src-ag/InterfacesRules.lag" #-}                                                                                            _lhsIprev-                                                                                           {-# LINE 560 "dist/build/InterfacesRules" #-}+                                                                                           {-# LINE 562 "dist/build/InterfacesRules" #-}                                                                                            )) of                                                                                     { !_hdOprev ->                                                                                     (case (tl_1 _tlOprev _tlOvisitDescr _tlOvssGraph) of@@ -565,7 +567,7 @@                                                                                           { ( !_hdIinter,!_hdInt,!T_Interface_2 hd_2) ->                                                                                               (case (({-# LINE 385 "src-ag/InterfacesRules.lag" #-}                                                                                                       Map.insert _hdInt _hdIinter _tlIinters-                                                                                                      {-# LINE 569 "dist/build/InterfacesRules" #-}+                                                                                                      {-# LINE 571 "dist/build/InterfacesRules" #-}                                                                                                       )) of                                                                                                { !_lhsOinters ->                                                                                                (case ((let sem_Interfaces_Cons_2 :: T_Interfaces_2@@ -574,36 +576,36 @@                                                                                                                                   (!_lhsIddp) ->                                                                                                                                     (case (({-# LINE 341 "src-ag/InterfacesRules.lag" #-}                                                                                                                                             _lhsIddp-                                                                                                                                            {-# LINE 578 "dist/build/InterfacesRules" #-}+                                                                                                                                            {-# LINE 580 "dist/build/InterfacesRules" #-}                                                                                                                                             )) of                                                                                                                                      { !_tlOddp ->                                                                                                                                      (case (({-# LINE 378 "src-ag/InterfacesRules.lag" #-}                                                                                                                                              _lhsIallInters-                                                                                                                                             {-# LINE 583 "dist/build/InterfacesRules" #-}+                                                                                                                                             {-# LINE 585 "dist/build/InterfacesRules" #-}                                                                                                                                              )) of                                                                                                                                       { !_tlOallInters ->                                                                                                                                       (case (tl_2 _tlOallInters _tlOddp) of                                                                                                                                        { ( !_tlIedp,!_tlIvisits) ->                                                                                                                                            (case (({-# LINE 341 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                    _lhsIddp-                                                                                                                                                   {-# LINE 590 "dist/build/InterfacesRules" #-}+                                                                                                                                                   {-# LINE 592 "dist/build/InterfacesRules" #-}                                                                                                                                                    )) of                                                                                                                                             { !_hdOddp ->                                                                                                                                             (case (({-# LINE 378 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                     _lhsIallInters-                                                                                                                                                    {-# LINE 595 "dist/build/InterfacesRules" #-}+                                                                                                                                                    {-# LINE 597 "dist/build/InterfacesRules" #-}                                                                                                                                                     )) of                                                                                                                                              { !_hdOallInters ->                                                                                                                                              (case (hd_2 _hdOallInters _hdOddp) of                                                                                                                                               { ( !_hdIedp,!_hdIvisits) ->                                                                                                                                                   (case (({-# LINE 437 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                           _hdIedp Seq.>< _tlIedp-                                                                                                                                                          {-# LINE 602 "dist/build/InterfacesRules" #-}+                                                                                                                                                          {-# LINE 604 "dist/build/InterfacesRules" #-}                                                                                                                                                           )) of                                                                                                                                                    { !_lhsOedp ->                                                                                                                                                    (case (({-# LINE 386 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                            Map.insert _hdInt _hdIvisits _tlIvisits-                                                                                                                                                           {-# LINE 607 "dist/build/InterfacesRules" #-}+                                                                                                                                                           {-# LINE 609 "dist/build/InterfacesRules" #-}                                                                                                                                                            )) of                                                                                                                                                     { !_lhsOvisits ->                                                                                                                                                     ( _lhsOedp,_lhsOvisits) }) }) }) }) }) }) }) })))@@ -619,22 +621,22 @@                      (!_lhsIv) ->                        (case (({-# LINE 130 "src-ag/InterfacesRules.lag" #-}                                Seq.empty-                               {-# LINE 623 "dist/build/InterfacesRules" #-}+                               {-# LINE 625 "dist/build/InterfacesRules" #-}                                )) of                         { !_lhsOdescr ->                         (case (({-# LINE 258 "src-ag/InterfacesRules.lag" #-}                                 []-                                {-# LINE 628 "dist/build/InterfacesRules" #-}+                                {-# LINE 630 "dist/build/InterfacesRules" #-}                                 )) of                          { !_lhsOfirstvisitvertices ->                          (case (({-# LINE 129 "src-ag/InterfacesRules.lag" #-}                                  Seq.empty-                                 {-# LINE 633 "dist/build/InterfacesRules" #-}+                                 {-# LINE 635 "dist/build/InterfacesRules" #-}                                  )) of                           { !_lhsOnewedges ->                           (case (({-# LINE 82 "src-ag/InterfacesRules.lag" #-}                                   _lhsIv-                                  {-# LINE 638 "dist/build/InterfacesRules" #-}+                                  {-# LINE 640 "dist/build/InterfacesRules" #-}                                   )) of                            { !_lhsOv ->                            (case ((let sem_Interfaces_Nil_1 :: T_Interfaces_1@@ -644,7 +646,7 @@                                                               (!_lhsIvssGraph) ->                                                                 (case (({-# LINE 387 "src-ag/InterfacesRules.lag" #-}                                                                         Map.empty-                                                                        {-# LINE 648 "dist/build/InterfacesRules" #-}+                                                                        {-# LINE 650 "dist/build/InterfacesRules" #-}                                                                         )) of                                                                  { !_lhsOinters ->                                                                  (case ((let sem_Interfaces_Nil_2 :: T_Interfaces_2@@ -653,12 +655,12 @@                                                                                                     (!_lhsIddp) ->                                                                                                       (case (({-# LINE 437 "src-ag/InterfacesRules.lag" #-}                                                                                                               Seq.empty-                                                                                                              {-# LINE 657 "dist/build/InterfacesRules" #-}+                                                                                                              {-# LINE 659 "dist/build/InterfacesRules" #-}                                                                                                               )) of                                                                                                        { !_lhsOedp ->                                                                                                        (case (({-# LINE 388 "src-ag/InterfacesRules.lag" #-}                                                                                                                Map.empty-                                                                                                               {-# LINE 662 "dist/build/InterfacesRules" #-}+                                                                                                               {-# LINE 664 "dist/build/InterfacesRules" #-}                                                                                                                )) of                                                                                                         { !_lhsOvisits ->                                                                                                         ( _lhsOedp,_lhsOvisits) }) })))@@ -787,30 +789,30 @@                   (!_lhsIv) ->                     (case (({-# LINE 106 "src-ag/InterfacesRules.lag" #-}                             \a -> ruleTable _lhsIinfo ! a-                            {-# LINE 791 "dist/build/InterfacesRules" #-}+                            {-# LINE 793 "dist/build/InterfacesRules" #-}                             )) of                      { !_look ->                      (case (({-# LINE 109 "src-ag/InterfacesRules.lag" #-}                              \p us -> [ a  |  u <- us                                            ,  a <- tdsToTdp _lhsIinfo ! u                                            ,  p (_look a)]-                             {-# LINE 798 "dist/build/InterfacesRules" #-}+                             {-# LINE 800 "dist/build/InterfacesRules" #-}                              )) of                       { !_occurAs ->                       (case (({-# LINE 113 "src-ag/InterfacesRules.lag" #-}                               let group as = gather _lhsIinfo (_occurAs isRhs as)                               in map (partition (isInh . _look)) (group (inh_ ++ syn_))-                              {-# LINE 804 "dist/build/InterfacesRules" #-}+                              {-# LINE 806 "dist/build/InterfacesRules" #-}                               )) of                        { !_groups ->                        (case (({-# LINE 116 "src-ag/InterfacesRules.lag" #-}                                _lhsIv + length _groups-                               {-# LINE 809 "dist/build/InterfacesRules" #-}+                               {-# LINE 811 "dist/build/InterfacesRules" #-}                                )) of                         { !_v ->                         (case (({-# LINE 82 "src-ag/InterfacesRules.lag" #-}                                 _v-                                {-# LINE 814 "dist/build/InterfacesRules" #-}+                                {-# LINE 816 "dist/build/InterfacesRules" #-}                                 )) of                          { !_lhsOv ->                          (case ((let sem_Segment_Segment_1 :: T_Segment_1@@ -819,37 +821,37 @@                                                          (!_lhsInextNewvertices) ->                                                            (case (({-# LINE 117 "src-ag/InterfacesRules.lag" #-}                                                                    [_lhsIv .. _v    -1]-                                                                   {-# LINE 823 "dist/build/InterfacesRules" #-}+                                                                   {-# LINE 825 "dist/build/InterfacesRules" #-}                                                                    )) of                                                             { !_newvertices ->                                                             (case (({-# LINE 132 "src-ag/InterfacesRules.lag" #-}                                                                     Seq.fromList $ zipWith (cv _look _lhsIn) _newvertices _groups-                                                                    {-# LINE 828 "dist/build/InterfacesRules" #-}+                                                                    {-# LINE 830 "dist/build/InterfacesRules" #-}                                                                     )) of                                                              { !_lhsOdescr ->                                                              (case (({-# LINE 182 "src-ag/InterfacesRules.lag" #-}                                                                      _groups-                                                                     {-# LINE 833 "dist/build/InterfacesRules" #-}+                                                                     {-# LINE 835 "dist/build/InterfacesRules" #-}                                                                      )) of                                                               { !_lhsOgroups ->                                                               (case (({-# LINE 174 "src-ag/InterfacesRules.lag" #-}                                                                       zip _newvertices _lhsInextNewvertices-                                                                      {-# LINE 838 "dist/build/InterfacesRules" #-}+                                                                      {-# LINE 840 "dist/build/InterfacesRules" #-}                                                                       )) of                                                                { !_visitedges ->                                                                (case (({-# LINE 155 "src-ag/InterfacesRules.lag" #-}                                                                        concat (zipWith ed _newvertices _groups)-                                                                       {-# LINE 843 "dist/build/InterfacesRules" #-}+                                                                       {-# LINE 845 "dist/build/InterfacesRules" #-}                                                                        )) of                                                                 { !_attredges ->                                                                 (case (({-# LINE 175 "src-ag/InterfacesRules.lag" #-}                                                                         Seq.fromList _attredges Seq.>< Seq.fromList _visitedges-                                                                        {-# LINE 848 "dist/build/InterfacesRules" #-}+                                                                        {-# LINE 850 "dist/build/InterfacesRules" #-}                                                                         )) of                                                                  { !_lhsOnewedges ->                                                                  (case (({-# LINE 166 "src-ag/InterfacesRules.lag" #-}                                                                          _newvertices-                                                                         {-# LINE 853 "dist/build/InterfacesRules" #-}+                                                                         {-# LINE 855 "dist/build/InterfacesRules" #-}                                                                          )) of                                                                   { !_lhsOnewvertices ->                                                                   (case ((let sem_Segment_Segment_2 :: T_Segment_2@@ -860,7 +862,7 @@                                                                                                   (!_lhsIvssGraph) ->                                                                                                     (case (({-# LINE 229 "src-ag/InterfacesRules.lag" #-}                                                                                                             gather _lhsIinfo (_occurAs isLhs syn_)-                                                                                                            {-# LINE 864 "dist/build/InterfacesRules" #-}+                                                                                                            {-# LINE 866 "dist/build/InterfacesRules" #-}                                                                                                             )) of                                                                                                      { !_synOccur ->                                                                                                      (case (({-# LINE 230 "src-ag/InterfacesRules.lag" #-}@@ -869,12 +871,12 @@                                                                                                              in if  null syn_                                                                                                                     then replicate (length _lhsIcons) []                                                                                                                     else map (filter hasCode . topSort' _lhsIvssGraph) _synOccur-                                                                                                             {-# LINE 873 "dist/build/InterfacesRules" #-}+                                                                                                             {-# LINE 875 "dist/build/InterfacesRules" #-}                                                                                                              )) of                                                                                                       { !_vss ->                                                                                                       (case (({-# LINE 270 "src-ag/InterfacesRules.lag" #-}                                                                                                               map (\\ _lhsIprev) _vss-                                                                                                              {-# LINE 878 "dist/build/InterfacesRules" #-}+                                                                                                              {-# LINE 880 "dist/build/InterfacesRules" #-}                                                                                                               )) of                                                                                                        { !_visitss' ->                                                                                                        (case (({-# LINE 284 "src-ag/InterfacesRules.lag" #-}@@ -894,7 +896,7 @@                                                                                                                       | otherwise = v:rem prev vs                                                                                                                     table = ruleTable _lhsIinfo                                                                                                                in map (rem []) _visitss'-                                                                                                               {-# LINE 898 "dist/build/InterfacesRules" #-}+                                                                                                               {-# LINE 900 "dist/build/InterfacesRules" #-}                                                                                                                )) of                                                                                                         { !_visitss ->                                                                                                         (case (({-# LINE 271 "src-ag/InterfacesRules.lag" #-}@@ -902,34 +904,34 @@                                                                                                                                   Nothing -> [v]                                                                                                                                   Just (ChildVisit _ _ _ inh _) -> v:inh                                                                                                                 in concatMap (concatMap defines) _visitss-                                                                                                                {-# LINE 906 "dist/build/InterfacesRules" #-}+                                                                                                                {-# LINE 908 "dist/build/InterfacesRules" #-}                                                                                                                 )) of                                                                                                          { !_defined ->                                                                                                          (case (({-# LINE 275 "src-ag/InterfacesRules.lag" #-}                                                                                                                  _lhsIprev ++ _defined-                                                                                                                 {-# LINE 911 "dist/build/InterfacesRules" #-}+                                                                                                                 {-# LINE 913 "dist/build/InterfacesRules" #-}                                                                                                                  )) of                                                                                                           { !_lhsOprev ->                                                                                                           (case (({-# LINE 409 "src-ag/InterfacesRules.lag" #-}                                                                                                                   let makemap = Map.fromList . map findType                                                                                                                       findType v = getNtaNameType (attrTable _lhsIinfo ! v)                                                                                                                   in (makemap inh_,makemap syn_)-                                                                                                                  {-# LINE 918 "dist/build/InterfacesRules" #-}+                                                                                                                  {-# LINE 920 "dist/build/InterfacesRules" #-}                                                                                                                   )) of                                                                                                            { !__tup1 ->                                                                                                            (case (({-# LINE 409 "src-ag/InterfacesRules.lag" #-}                                                                                                                    __tup1-                                                                                                                   {-# LINE 923 "dist/build/InterfacesRules" #-}+                                                                                                                   {-# LINE 925 "dist/build/InterfacesRules" #-}                                                                                                                    )) of                                                                                                             { !(_,!_synmap) ->                                                                                                             (case (({-# LINE 409 "src-ag/InterfacesRules.lag" #-}                                                                                                                     __tup1-                                                                                                                    {-# LINE 928 "dist/build/InterfacesRules" #-}+                                                                                                                    {-# LINE 930 "dist/build/InterfacesRules" #-}                                                                                                                     )) of                                                                                                              { !(!_inhmap,_) ->                                                                                                              (case (({-# LINE 405 "src-ag/InterfacesRules.lag" #-}                                                                                                                      if False then undefined _lhsIvssGraph _lhsIvisitDescr _lhsIprev else CSegment _inhmap _synmap-                                                                                                                     {-# LINE 933 "dist/build/InterfacesRules" #-}+                                                                                                                     {-# LINE 935 "dist/build/InterfacesRules" #-}                                                                                                                      )) of                                                                                                               { !_lhsOseg ->                                                                                                               (case ((let sem_Segment_Segment_3 :: T_Segment_3@@ -945,24 +947,24 @@                                                                                                                                                                            Nothing -> Map.keys (getDefines (ruleTable _lhsIinfo ! v))                                                                                                                                                                            Just (ChildVisit _ _ _ _ syn) -> v:syn                                                                                                                                                         in concatMap (concatMap computes) _visitss-                                                                                                                                                        {-# LINE 949 "dist/build/InterfacesRules" #-}+                                                                                                                                                        {-# LINE 951 "dist/build/InterfacesRules" #-}                                                                                                                                                         )) of                                                                                                                                                  { !_computed ->                                                                                                                                                  (case (({-# LINE 356 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                          _occurAs isLhs inh_ ++ _lhsIfromLhs-                                                                                                                                                         {-# LINE 954 "dist/build/InterfacesRules" #-}+                                                                                                                                                         {-# LINE 956 "dist/build/InterfacesRules" #-}                                                                                                                                                          )) of                                                                                                                                                   { !_fromLhs ->                                                                                                                                                   (case (({-# LINE 362 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                           \vs next ->                                                                                                                                                             let needed = concatMap (_lhsIddp !) vs                                                                                                                                                             in nub (needed ++ next) \\ (_fromLhs ++ _computed)-                                                                                                                                                          {-# LINE 961 "dist/build/InterfacesRules" #-}+                                                                                                                                                          {-# LINE 963 "dist/build/InterfacesRules" #-}                                                                                                                                                           )) of                                                                                                                                                    { !_iv ->                                                                                                                                                    (case (({-# LINE 361 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                            zipWith _iv _visitss _lhsInextIntravisits-                                                                                                                                                           {-# LINE 966 "dist/build/InterfacesRules" #-}+                                                                                                                                                           {-# LINE 968 "dist/build/InterfacesRules" #-}                                                                                                                                                            )) of                                                                                                                                                     { !_intravisits ->                                                                                                                                                     (case (({-# LINE 412 "src-ag/InterfacesRules.lag" #-}@@ -972,28 +974,28 @@                                                                                                                                                                               Nothing -> ruleTable _lhsIinfo ! v                                                                                                                                                                               Just (ChildVisit name nt n _ _) -> ccv name nt n _lhsIallInters                                                                                                                                                             in zipWith mkVisit _visitss _intravisits-                                                                                                                                                            {-# LINE 976 "dist/build/InterfacesRules" #-}+                                                                                                                                                            {-# LINE 978 "dist/build/InterfacesRules" #-}                                                                                                                                                             )) of                                                                                                                                                      { !_lhsOcvisits ->                                                                                                                                                      (case (({-# LINE 439 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                              Seq.fromList [(i,s) | i <- inh_, s <- syn_]                                                                                                                                                              Seq.>< Seq.fromList [(s,i) | s <- syn_, i <- _lhsInextInh ]-                                                                                                                                                             {-# LINE 982 "dist/build/InterfacesRules" #-}+                                                                                                                                                             {-# LINE 984 "dist/build/InterfacesRules" #-}                                                                                                                                                              )) of                                                                                                                                                       { !_lhsOedp ->                                                                                                                                                       (case (({-# LINE 444 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                               inh_-                                                                                                                                                              {-# LINE 987 "dist/build/InterfacesRules" #-}+                                                                                                                                                              {-# LINE 989 "dist/build/InterfacesRules" #-}                                                                                                                                                               )) of                                                                                                                                                        { !_lhsOinh ->                                                                                                                                                        (case (({-# LINE 327 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                                _intravisits-                                                                                                                                                               {-# LINE 992 "dist/build/InterfacesRules" #-}+                                                                                                                                                               {-# LINE 994 "dist/build/InterfacesRules" #-}                                                                                                                                                                )) of                                                                                                                                                         { !_lhsOintravisits ->                                                                                                                                                         (case (({-# LINE 269 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                                 _visitss-                                                                                                                                                                {-# LINE 997 "dist/build/InterfacesRules" #-}+                                                                                                                                                                {-# LINE 999 "dist/build/InterfacesRules" #-}                                                                                                                                                                 )) of                                                                                                                                                          { !_lhsOvisitss ->                                                                                                                                                          ( _lhsOcvisits,_lhsOedp,_lhsOinh,_lhsOintravisits,_lhsOvisitss) }) }) }) }) }) }) }) }) })))@@ -1084,68 +1086,68 @@                    (!_lhsIv) ->                      (case (({-# LINE 82 "src-ag/InterfacesRules.lag" #-}                              _lhsIv-                             {-# LINE 1088 "dist/build/InterfacesRules" #-}+                             {-# LINE 1090 "dist/build/InterfacesRules" #-}                              )) of                       { !_hdOv ->                       (case (({-# LINE 83 "src-ag/InterfacesRules.lag" #-}                               _lhsIinfo-                              {-# LINE 1093 "dist/build/InterfacesRules" #-}+                              {-# LINE 1095 "dist/build/InterfacesRules" #-}                               )) of                        { !_hdOinfo ->                        (case (hd_ _hdOinfo _hdOv) of                         { ( !_hdIv,!T_Segment_1 hd_1) ->                             (case (({-# LINE 82 "src-ag/InterfacesRules.lag" #-}                                     _hdIv-                                    {-# LINE 1100 "dist/build/InterfacesRules" #-}+                                    {-# LINE 1102 "dist/build/InterfacesRules" #-}                                     )) of                              { !_tlOv ->                              (case (({-# LINE 83 "src-ag/InterfacesRules.lag" #-}                                      _lhsIinfo-                                     {-# LINE 1105 "dist/build/InterfacesRules" #-}+                                     {-# LINE 1107 "dist/build/InterfacesRules" #-}                                      )) of                               { !_tlOinfo ->                               (case (({-# LINE 203 "src-ag/InterfacesRules.lag" #-}                                       _lhsIn-                                      {-# LINE 1110 "dist/build/InterfacesRules" #-}+                                      {-# LINE 1112 "dist/build/InterfacesRules" #-}                                       )) of                                { !_hdOn ->                                (case (({-# LINE 207 "src-ag/InterfacesRules.lag" #-}                                        _lhsIn + 1-                                       {-# LINE 1115 "dist/build/InterfacesRules" #-}+                                       {-# LINE 1117 "dist/build/InterfacesRules" #-}                                        )) of                                 { !_tlOn ->                                 (case (tl_ _tlOinfo _tlOn _tlOv) of                                  { ( !_tlIdescr,!_tlIgroups,!_tlInewedges,!_tlInewvertices,!_tlIv,!T_Segments_1 tl_1) ->                                      (case (({-# LINE 169 "src-ag/InterfacesRules.lag" #-}                                              _tlInewvertices-                                             {-# LINE 1122 "dist/build/InterfacesRules" #-}+                                             {-# LINE 1124 "dist/build/InterfacesRules" #-}                                              )) of                                       { !_hdOnextNewvertices ->                                       (case (hd_1 _hdOn _hdOnextNewvertices) of                                        { ( !_hdIdescr,!_hdIgroups,!_hdInewedges,!_hdInewvertices,!T_Segment_2 hd_2) ->                                            (case (({-# LINE 130 "src-ag/InterfacesRules.lag" #-}                                                    _hdIdescr Seq.>< _tlIdescr-                                                   {-# LINE 1129 "dist/build/InterfacesRules" #-}+                                                   {-# LINE 1131 "dist/build/InterfacesRules" #-}                                                    )) of                                             { !_lhsOdescr ->                                             (case (({-# LINE 184 "src-ag/InterfacesRules.lag" #-}                                                     _hdIgroups-                                                    {-# LINE 1134 "dist/build/InterfacesRules" #-}+                                                    {-# LINE 1136 "dist/build/InterfacesRules" #-}                                                     )) of                                              { !_lhsOgroups ->                                              (case (({-# LINE 129 "src-ag/InterfacesRules.lag" #-}                                                      _hdInewedges Seq.>< _tlInewedges-                                                     {-# LINE 1139 "dist/build/InterfacesRules" #-}+                                                     {-# LINE 1141 "dist/build/InterfacesRules" #-}                                                      )) of                                               { !_lhsOnewedges ->                                               (case (({-# LINE 170 "src-ag/InterfacesRules.lag" #-}                                                       _hdInewvertices-                                                      {-# LINE 1144 "dist/build/InterfacesRules" #-}+                                                      {-# LINE 1146 "dist/build/InterfacesRules" #-}                                                       )) of                                                { !_lhsOnewvertices ->                                                (case (({-# LINE 82 "src-ag/InterfacesRules.lag" #-}                                                        _tlIv-                                                       {-# LINE 1149 "dist/build/InterfacesRules" #-}+                                                       {-# LINE 1151 "dist/build/InterfacesRules" #-}                                                        )) of                                                 { !_lhsOv ->                                                 (case ((let sem_Segments_Cons_1 :: T_Segments_1@@ -1156,51 +1158,51 @@                                                                                  (!_lhsIvssGraph) ->                                                                                    (case (({-# LINE 216 "src-ag/InterfacesRules.lag" #-}                                                                                            _lhsIvssGraph-                                                                                           {-# LINE 1160 "dist/build/InterfacesRules" #-}+                                                                                           {-# LINE 1162 "dist/build/InterfacesRules" #-}                                                                                            )) of                                                                                     { !_tlOvssGraph ->                                                                                     (case (({-# LINE 125 "src-ag/InterfacesRules.lag" #-}                                                                                             _lhsIvisitDescr-                                                                                            {-# LINE 1165 "dist/build/InterfacesRules" #-}+                                                                                            {-# LINE 1167 "dist/build/InterfacesRules" #-}                                                                                             )) of                                                                                      { !_tlOvisitDescr ->                                                                                      (case (({-# LINE 216 "src-ag/InterfacesRules.lag" #-}                                                                                              _lhsIvssGraph-                                                                                             {-# LINE 1170 "dist/build/InterfacesRules" #-}+                                                                                             {-# LINE 1172 "dist/build/InterfacesRules" #-}                                                                                              )) of                                                                                       { !_hdOvssGraph ->                                                                                       (case (({-# LINE 125 "src-ag/InterfacesRules.lag" #-}                                                                                               _lhsIvisitDescr-                                                                                              {-# LINE 1175 "dist/build/InterfacesRules" #-}+                                                                                              {-# LINE 1177 "dist/build/InterfacesRules" #-}                                                                                               )) of                                                                                        { !_hdOvisitDescr ->                                                                                        (case (({-# LINE 263 "src-ag/InterfacesRules.lag" #-}                                                                                                _lhsIprev-                                                                                               {-# LINE 1180 "dist/build/InterfacesRules" #-}+                                                                                               {-# LINE 1182 "dist/build/InterfacesRules" #-}                                                                                                )) of                                                                                         { !_hdOprev ->                                                                                         (case (({-# LINE 235 "src-ag/InterfacesRules.lag" #-}                                                                                                 _lhsIcons-                                                                                                {-# LINE 1185 "dist/build/InterfacesRules" #-}+                                                                                                {-# LINE 1187 "dist/build/InterfacesRules" #-}                                                                                                 )) of                                                                                          { !_hdOcons ->                                                                                          (case (hd_2 _hdOcons _hdOprev _hdOvisitDescr _hdOvssGraph) of                                                                                           { ( !_hdIprev,!_hdIseg,!T_Segment_3 hd_3) ->                                                                                               (case (({-# LINE 263 "src-ag/InterfacesRules.lag" #-}                                                                                                       _hdIprev-                                                                                                      {-# LINE 1192 "dist/build/InterfacesRules" #-}+                                                                                                      {-# LINE 1194 "dist/build/InterfacesRules" #-}                                                                                                       )) of                                                                                                { !_tlOprev ->                                                                                                (case (({-# LINE 235 "src-ag/InterfacesRules.lag" #-}                                                                                                        _lhsIcons-                                                                                                       {-# LINE 1197 "dist/build/InterfacesRules" #-}+                                                                                                       {-# LINE 1199 "dist/build/InterfacesRules" #-}                                                                                                        )) of                                                                                                 { !_tlOcons ->                                                                                                 (case (tl_1 _tlOcons _tlOprev _tlOvisitDescr _tlOvssGraph) of                                                                                                  { ( !_tlIsegs,!T_Segments_2 tl_2) ->                                                                                                      (case (({-# LINE 400 "src-ag/InterfacesRules.lag" #-}                                                                                                              _hdIseg : _tlIsegs-                                                                                                             {-# LINE 1204 "dist/build/InterfacesRules" #-}+                                                                                                             {-# LINE 1206 "dist/build/InterfacesRules" #-}                                                                                                              )) of                                                                                                       { !_lhsOsegs ->                                                                                                       (case ((let sem_Segments_Cons_2 :: T_Segments_2@@ -1211,81 +1213,81 @@                                                                                                                                        (!_lhsIisFirst) ->                                                                                                                                          (case (({-# LINE 341 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                  _lhsIddp-                                                                                                                                                 {-# LINE 1215 "dist/build/InterfacesRules" #-}+                                                                                                                                                 {-# LINE 1217 "dist/build/InterfacesRules" #-}                                                                                                                                                  )) of                                                                                                                                           { !_tlOddp ->                                                                                                                                           (case (({-# LINE 378 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                   _lhsIallInters-                                                                                                                                                  {-# LINE 1220 "dist/build/InterfacesRules" #-}+                                                                                                                                                  {-# LINE 1222 "dist/build/InterfacesRules" #-}                                                                                                                                                   )) of                                                                                                                                            { !_tlOallInters ->                                                                                                                                            (case (({-# LINE 341 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                    _lhsIddp-                                                                                                                                                   {-# LINE 1225 "dist/build/InterfacesRules" #-}+                                                                                                                                                   {-# LINE 1227 "dist/build/InterfacesRules" #-}                                                                                                                                                    )) of                                                                                                                                             { !_hdOddp ->                                                                                                                                             (case (({-# LINE 378 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                     _lhsIallInters-                                                                                                                                                    {-# LINE 1230 "dist/build/InterfacesRules" #-}+                                                                                                                                                    {-# LINE 1232 "dist/build/InterfacesRules" #-}                                                                                                                                                     )) of                                                                                                                                              { !_hdOallInters ->                                                                                                                                              (case (({-# LINE 354 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                      []-                                                                                                                                                     {-# LINE 1235 "dist/build/InterfacesRules" #-}+                                                                                                                                                     {-# LINE 1237 "dist/build/InterfacesRules" #-}                                                                                                                                                      )) of                                                                                                                                               { !_tlOfromLhs ->                                                                                                                                               (case (({-# LINE 353 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                       _lhsIfromLhs-                                                                                                                                                      {-# LINE 1240 "dist/build/InterfacesRules" #-}+                                                                                                                                                      {-# LINE 1242 "dist/build/InterfacesRules" #-}                                                                                                                                                       )) of                                                                                                                                                { !_hdOfromLhs ->                                                                                                                                                (case (({-# LINE 316 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                        False-                                                                                                                                                       {-# LINE 1245 "dist/build/InterfacesRules" #-}+                                                                                                                                                       {-# LINE 1247 "dist/build/InterfacesRules" #-}                                                                                                                                                        )) of                                                                                                                                                 { !_tlOisFirst ->                                                                                                                                                 (case (tl_2 _tlOallInters _tlOddp _tlOfromLhs _tlOisFirst) of                                                                                                                                                  { ( !_tlIcvisits,!_tlIedp,!_tlIfirstInh,!_tlIhdIntravisits,!_tlIprev) ->                                                                                                                                                      (case (({-# LINE 329 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                              _tlIhdIntravisits-                                                                                                                                                             {-# LINE 1252 "dist/build/InterfacesRules" #-}+                                                                                                                                                             {-# LINE 1254 "dist/build/InterfacesRules" #-}                                                                                                                                                              )) of                                                                                                                                                       { !_hdOnextIntravisits ->                                                                                                                                                       (case (({-# LINE 312 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                               _lhsIisFirst-                                                                                                                                                              {-# LINE 1257 "dist/build/InterfacesRules" #-}+                                                                                                                                                              {-# LINE 1259 "dist/build/InterfacesRules" #-}                                                                                                                                                               )) of                                                                                                                                                        { !_hdOisFirst ->                                                                                                                                                        (case (({-# LINE 446 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                                _tlIfirstInh-                                                                                                                                                               {-# LINE 1262 "dist/build/InterfacesRules" #-}+                                                                                                                                                               {-# LINE 1264 "dist/build/InterfacesRules" #-}                                                                                                                                                                )) of                                                                                                                                                         { !_hdOnextInh ->                                                                                                                                                         (case (hd_3 _hdOallInters _hdOddp _hdOfromLhs _hdOisFirst _hdOnextInh _hdOnextIntravisits) of                                                                                                                                                          { ( !_hdIcvisits,!_hdIedp,!_hdIinh,!_hdIintravisits,!_hdIvisitss) ->                                                                                                                                                              (case (({-# LINE 399 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                                      _hdIcvisits : _tlIcvisits-                                                                                                                                                                     {-# LINE 1269 "dist/build/InterfacesRules" #-}+                                                                                                                                                                     {-# LINE 1271 "dist/build/InterfacesRules" #-}                                                                                                                                                                      )) of                                                                                                                                                               { !_lhsOcvisits ->                                                                                                                                                               (case (({-# LINE 437 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                                       _hdIedp Seq.>< _tlIedp-                                                                                                                                                                      {-# LINE 1274 "dist/build/InterfacesRules" #-}+                                                                                                                                                                      {-# LINE 1276 "dist/build/InterfacesRules" #-}                                                                                                                                                                       )) of                                                                                                                                                                { !_lhsOedp ->                                                                                                                                                                (case (({-# LINE 447 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                                        _hdIinh-                                                                                                                                                                       {-# LINE 1279 "dist/build/InterfacesRules" #-}+                                                                                                                                                                       {-# LINE 1281 "dist/build/InterfacesRules" #-}                                                                                                                                                                        )) of                                                                                                                                                                 { !_lhsOfirstInh ->                                                                                                                                                                 (case (({-# LINE 330 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                                         _hdIintravisits-                                                                                                                                                                        {-# LINE 1284 "dist/build/InterfacesRules" #-}+                                                                                                                                                                        {-# LINE 1286 "dist/build/InterfacesRules" #-}                                                                                                                                                                         )) of                                                                                                                                                                  { !_lhsOhdIntravisits ->                                                                                                                                                                  (case (({-# LINE 263 "src-ag/InterfacesRules.lag" #-}                                                                                                                                                                          _tlIprev-                                                                                                                                                                         {-# LINE 1289 "dist/build/InterfacesRules" #-}+                                                                                                                                                                         {-# LINE 1291 "dist/build/InterfacesRules" #-}                                                                                                                                                                          )) of                                                                                                                                                                   { !_lhsOprev ->                                                                                                                                                                   ( _lhsOcvisits,_lhsOedp,_lhsOfirstInh,_lhsOhdIntravisits,_lhsOprev) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))@@ -1302,27 +1304,27 @@                    (!_lhsIv) ->                      (case (({-# LINE 130 "src-ag/InterfacesRules.lag" #-}                              Seq.empty-                             {-# LINE 1306 "dist/build/InterfacesRules" #-}+                             {-# LINE 1308 "dist/build/InterfacesRules" #-}                              )) of                       { !_lhsOdescr ->                       (case (({-# LINE 185 "src-ag/InterfacesRules.lag" #-}                               []-                              {-# LINE 1311 "dist/build/InterfacesRules" #-}+                              {-# LINE 1313 "dist/build/InterfacesRules" #-}                               )) of                        { !_lhsOgroups ->                        (case (({-# LINE 129 "src-ag/InterfacesRules.lag" #-}                                Seq.empty-                               {-# LINE 1316 "dist/build/InterfacesRules" #-}+                               {-# LINE 1318 "dist/build/InterfacesRules" #-}                                )) of                         { !_lhsOnewedges ->                         (case (({-# LINE 171 "src-ag/InterfacesRules.lag" #-}                                 []-                                {-# LINE 1321 "dist/build/InterfacesRules" #-}+                                {-# LINE 1323 "dist/build/InterfacesRules" #-}                                 )) of                          { !_lhsOnewvertices ->                          (case (({-# LINE 82 "src-ag/InterfacesRules.lag" #-}                                  _lhsIv-                                 {-# LINE 1326 "dist/build/InterfacesRules" #-}+                                 {-# LINE 1328 "dist/build/InterfacesRules" #-}                                  )) of                           { !_lhsOv ->                           (case ((let sem_Segments_Nil_1 :: T_Segments_1@@ -1333,7 +1335,7 @@                                                            (!_lhsIvssGraph) ->                                                              (case (({-# LINE 401 "src-ag/InterfacesRules.lag" #-}                                                                      []-                                                                     {-# LINE 1337 "dist/build/InterfacesRules" #-}+                                                                     {-# LINE 1339 "dist/build/InterfacesRules" #-}                                                                      )) of                                                               { !_lhsOsegs ->                                                               (case ((let sem_Segments_Nil_2 :: T_Segments_2@@ -1344,27 +1346,27 @@                                                                                                (!_lhsIisFirst) ->                                                                                                  (case (({-# LINE 399 "src-ag/InterfacesRules.lag" #-}                                                                                                          []-                                                                                                         {-# LINE 1348 "dist/build/InterfacesRules" #-}+                                                                                                         {-# LINE 1350 "dist/build/InterfacesRules" #-}                                                                                                          )) of                                                                                                   { !_lhsOcvisits ->                                                                                                   (case (({-# LINE 437 "src-ag/InterfacesRules.lag" #-}                                                                                                           Seq.empty-                                                                                                          {-# LINE 1353 "dist/build/InterfacesRules" #-}+                                                                                                          {-# LINE 1355 "dist/build/InterfacesRules" #-}                                                                                                           )) of                                                                                                    { !_lhsOedp ->                                                                                                    (case (({-# LINE 448 "src-ag/InterfacesRules.lag" #-}                                                                                                            []-                                                                                                           {-# LINE 1358 "dist/build/InterfacesRules" #-}+                                                                                                           {-# LINE 1360 "dist/build/InterfacesRules" #-}                                                                                                            )) of                                                                                                     { !_lhsOfirstInh ->                                                                                                     (case (({-# LINE 331 "src-ag/InterfacesRules.lag" #-}                                                                                                             repeat []-                                                                                                            {-# LINE 1363 "dist/build/InterfacesRules" #-}+                                                                                                            {-# LINE 1365 "dist/build/InterfacesRules" #-}                                                                                                             )) of                                                                                                      { !_lhsOhdIntravisits ->                                                                                                      (case (({-# LINE 263 "src-ag/InterfacesRules.lag" #-}                                                                                                              _lhsIprev-                                                                                                             {-# LINE 1368 "dist/build/InterfacesRules" #-}+                                                                                                             {-# LINE 1370 "dist/build/InterfacesRules" #-}                                                                                                              )) of                                                                                                       { !_lhsOprev ->                                                                                                       ( _lhsOcvisits,_lhsOedp,_lhsOfirstInh,_lhsOhdIntravisits,_lhsOprev) }) }) }) }) })))
src-derived/KWOrder.hs view
@@ -312,6 +312,8 @@                             _refNts                             {-# LINE 314 "dist/build/KWOrder" #-}                             )+                       ___node =+                           (Syn_Child _lhsOechilds _lhsOedges _lhsOnontnames _lhsOrefHoNts _lhsOrefNts _lhsOvertices)                    in  ( _lhsOechilds,_lhsOedges,_lhsOnontnames,_lhsOrefHoNts,_lhsOrefNts,_lhsOvertices)))) -- Children ---------------------------------------------------- {-@@ -401,114 +403,116 @@                           _lhsOechilds =                               ({-# LINE 175 "src-ag/KWOrder.ag" #-}                                _hdIechilds : _tlIechilds-                               {-# LINE 405 "dist/build/KWOrder" #-}+                               {-# LINE 407 "dist/build/KWOrder" #-}                                )                           -- use rule "src-ag/KWOrder.ag"(line 233, column 33)                           _lhsOedges =                               ({-# LINE 233 "src-ag/KWOrder.ag" #-}                                _hdIedges `Set.union` _tlIedges-                               {-# LINE 411 "dist/build/KWOrder" #-}+                               {-# LINE 413 "dist/build/KWOrder" #-}                                )                           -- use rule "src-ag/KWOrder.ag"(line 298, column 37)                           _lhsOnontnames =                               ({-# LINE 298 "src-ag/KWOrder.ag" #-}                                _hdInontnames ++ _tlInontnames-                               {-# LINE 417 "dist/build/KWOrder" #-}+                               {-# LINE 419 "dist/build/KWOrder" #-}                                )                           -- use rule "src-ag/KWOrder.ag"(line 56, column 67)                           _lhsOrefHoNts =                               ({-# LINE 56 "src-ag/KWOrder.ag" #-}                                _hdIrefHoNts `mappend` _tlIrefHoNts-                               {-# LINE 423 "dist/build/KWOrder" #-}+                               {-# LINE 425 "dist/build/KWOrder" #-}                                )                           -- use rule "src-ag/KWOrder.ag"(line 56, column 67)                           _lhsOrefNts =                               ({-# LINE 56 "src-ag/KWOrder.ag" #-}                                _hdIrefNts `mappend` _tlIrefNts-                               {-# LINE 429 "dist/build/KWOrder" #-}+                               {-# LINE 431 "dist/build/KWOrder" #-}                                )                           -- use rule "src-ag/KWOrder.ag"(line 189, column 36)                           _lhsOvertices =                               ({-# LINE 189 "src-ag/KWOrder.ag" #-}                                _hdIvertices `Set.union` _tlIvertices-                               {-# LINE 435 "dist/build/KWOrder" #-}+                               {-# LINE 437 "dist/build/KWOrder" #-}                                )                           -- copy rule (down)                           _hdOaroundMap =                               ({-# LINE 99 "src-ag/KWOrder.ag" #-}                                _lhsIaroundMap-                               {-# LINE 441 "dist/build/KWOrder" #-}+                               {-# LINE 443 "dist/build/KWOrder" #-}                                )                           -- copy rule (down)                           _hdOinhMap =                               ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIinhMap-                               {-# LINE 447 "dist/build/KWOrder" #-}+                               {-# LINE 449 "dist/build/KWOrder" #-}                                )                           -- copy rule (down)                           _hdOmergeMap =                               ({-# LINE 124 "src-ag/KWOrder.ag" #-}                                _lhsImergeMap-                               {-# LINE 453 "dist/build/KWOrder" #-}+                               {-# LINE 455 "dist/build/KWOrder" #-}                                )                           -- copy rule (down)                           _hdOmergedChildren =                               ({-# LINE 124 "src-ag/KWOrder.ag" #-}                                _lhsImergedChildren-                               {-# LINE 459 "dist/build/KWOrder" #-}+                               {-# LINE 461 "dist/build/KWOrder" #-}                                )                           -- copy rule (down)                           _hdOoptions =                               ({-# LINE 34 "src-ag/KWOrder.ag" #-}                                _lhsIoptions-                               {-# LINE 465 "dist/build/KWOrder" #-}+                               {-# LINE 467 "dist/build/KWOrder" #-}                                )                           -- copy rule (down)                           _hdOsynMap =                               ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIsynMap-                               {-# LINE 471 "dist/build/KWOrder" #-}+                               {-# LINE 473 "dist/build/KWOrder" #-}                                )                           -- copy rule (down)                           _tlOaroundMap =                               ({-# LINE 99 "src-ag/KWOrder.ag" #-}                                _lhsIaroundMap-                               {-# LINE 477 "dist/build/KWOrder" #-}+                               {-# LINE 479 "dist/build/KWOrder" #-}                                )                           -- copy rule (down)                           _tlOinhMap =                               ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIinhMap-                               {-# LINE 483 "dist/build/KWOrder" #-}+                               {-# LINE 485 "dist/build/KWOrder" #-}                                )                           -- copy rule (down)                           _tlOmergeMap =                               ({-# LINE 124 "src-ag/KWOrder.ag" #-}                                _lhsImergeMap-                               {-# LINE 489 "dist/build/KWOrder" #-}+                               {-# LINE 491 "dist/build/KWOrder" #-}                                )                           -- copy rule (down)                           _tlOmergedChildren =                               ({-# LINE 124 "src-ag/KWOrder.ag" #-}                                _lhsImergedChildren-                               {-# LINE 495 "dist/build/KWOrder" #-}+                               {-# LINE 497 "dist/build/KWOrder" #-}                                )                           -- copy rule (down)                           _tlOoptions =                               ({-# LINE 34 "src-ag/KWOrder.ag" #-}                                _lhsIoptions-                               {-# LINE 501 "dist/build/KWOrder" #-}+                               {-# LINE 503 "dist/build/KWOrder" #-}                                )                           -- copy rule (down)                           _tlOsynMap =                               ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIsynMap-                               {-# LINE 507 "dist/build/KWOrder" #-}+                               {-# LINE 509 "dist/build/KWOrder" #-}                                )                           ( _hdIechilds,_hdIedges,_hdInontnames,_hdIrefHoNts,_hdIrefNts,_hdIvertices) =                               hd_ _hdOaroundMap _hdOinhMap _hdOmergeMap _hdOmergedChildren _hdOoptions _hdOsynMap                           ( _tlIechilds,_tlIedges,_tlInontnames,_tlIrefHoNts,_tlIrefNts,_tlIvertices) =                               tl_ _tlOaroundMap _tlOinhMap _tlOmergeMap _tlOmergedChildren _tlOoptions _tlOsynMap+                          ___node =+                              (Syn_Children _lhsOechilds _lhsOedges _lhsOnontnames _lhsOrefHoNts _lhsOrefNts _lhsOvertices)                       in  ( _lhsOechilds,_lhsOedges,_lhsOnontnames,_lhsOrefHoNts,_lhsOrefNts,_lhsOvertices)))) sem_Children_Nil :: T_Children sem_Children_Nil =@@ -528,38 +532,40 @@                           _lhsOechilds =                               ({-# LINE 175 "src-ag/KWOrder.ag" #-}                                []-                               {-# LINE 532 "dist/build/KWOrder" #-}+                               {-# LINE 536 "dist/build/KWOrder" #-}                                )                           -- use rule "src-ag/KWOrder.ag"(line 233, column 33)                           _lhsOedges =                               ({-# LINE 233 "src-ag/KWOrder.ag" #-}                                Set.empty-                               {-# LINE 538 "dist/build/KWOrder" #-}+                               {-# LINE 542 "dist/build/KWOrder" #-}                                )                           -- use rule "src-ag/KWOrder.ag"(line 298, column 37)                           _lhsOnontnames =                               ({-# LINE 298 "src-ag/KWOrder.ag" #-}                                []-                               {-# LINE 544 "dist/build/KWOrder" #-}+                               {-# LINE 548 "dist/build/KWOrder" #-}                                )                           -- use rule "src-ag/KWOrder.ag"(line 56, column 67)                           _lhsOrefHoNts =                               ({-# LINE 56 "src-ag/KWOrder.ag" #-}                                mempty-                               {-# LINE 550 "dist/build/KWOrder" #-}+                               {-# LINE 554 "dist/build/KWOrder" #-}                                )                           -- use rule "src-ag/KWOrder.ag"(line 56, column 67)                           _lhsOrefNts =                               ({-# LINE 56 "src-ag/KWOrder.ag" #-}                                mempty-                               {-# LINE 556 "dist/build/KWOrder" #-}+                               {-# LINE 560 "dist/build/KWOrder" #-}                                )                           -- use rule "src-ag/KWOrder.ag"(line 189, column 36)                           _lhsOvertices =                               ({-# LINE 189 "src-ag/KWOrder.ag" #-}                                Set.empty-                               {-# LINE 562 "dist/build/KWOrder" #-}+                               {-# LINE 566 "dist/build/KWOrder" #-}                                )+                          ___node =+                              (Syn_Children _lhsOechilds _lhsOedges _lhsOnontnames _lhsOrefHoNts _lhsOrefNts _lhsOvertices)                       in  ( _lhsOechilds,_lhsOedges,_lhsOnontnames,_lhsOrefHoNts,_lhsOrefNts,_lhsOvertices)))) -- Expression -------------------------------------------------- {-@@ -600,20 +606,22 @@                            ({-# LINE 200 "src-ag/KWOrder.ag" #-}                             Set.unions $ map (\tok -> vertices_Syn_HsToken                                          (wrap_HsToken (sem_HsToken tok) Inh_HsToken)) tks_-                            {-# LINE 604 "dist/build/KWOrder" #-}+                            {-# LINE 610 "dist/build/KWOrder" #-}                             )                        -- self rule                        _copy =                            ({-# LINE 154 "src-ag/KWOrder.ag" #-}                             Expression pos_ tks_-                            {-# LINE 610 "dist/build/KWOrder" #-}+                            {-# LINE 616 "dist/build/KWOrder" #-}                             )                        -- self rule                        _lhsOcopy =                            ({-# LINE 154 "src-ag/KWOrder.ag" #-}                             _copy-                            {-# LINE 616 "dist/build/KWOrder" #-}+                            {-# LINE 622 "dist/build/KWOrder" #-}                             )+                       ___node =+                           (Syn_Expression _lhsOcopy _lhsOvertices)                    in  ( _lhsOcopy,_lhsOvertices))) -- Grammar ----------------------------------------------------- {-@@ -713,117 +721,119 @@                          _nontsOrulenumber =                              ({-# LINE 44 "src-ag/KWOrder.ag" #-}                               0-                              {-# LINE 717 "dist/build/KWOrder" #-}+                              {-# LINE 725 "dist/build/KWOrder" #-}                               )                          -- "src-ag/KWOrder.ag"(line 83, column 3)                          _closedNtDeps =                              ({-# LINE 83 "src-ag/KWOrder.ag" #-}                               closeMap _nontsIntDeps-                              {-# LINE 723 "dist/build/KWOrder" #-}+                              {-# LINE 731 "dist/build/KWOrder" #-}                               )                          -- "src-ag/KWOrder.ag"(line 84, column 3)                          _closedHoNtDeps =                              ({-# LINE 84 "src-ag/KWOrder.ag" #-}                               closeMap _nontsIntHoDeps-                              {-# LINE 729 "dist/build/KWOrder" #-}+                              {-# LINE 737 "dist/build/KWOrder" #-}                               )                          -- "src-ag/KWOrder.ag"(line 85, column 3)                          _closedHoNtRevDeps =                              ({-# LINE 85 "src-ag/KWOrder.ag" #-}                               revDeps _closedHoNtDeps-                              {-# LINE 735 "dist/build/KWOrder" #-}+                              {-# LINE 743 "dist/build/KWOrder" #-}                               )                          -- "src-ag/KWOrder.ag"(line 105, column 3)                          _nontsOaroundMap =                              ({-# LINE 105 "src-ag/KWOrder.ag" #-}                               aroundsMap_-                              {-# LINE 741 "dist/build/KWOrder" #-}+                              {-# LINE 749 "dist/build/KWOrder" #-}                               )                          -- "src-ag/KWOrder.ag"(line 130, column 3)                          _nontsOmergeMap =                              ({-# LINE 130 "src-ag/KWOrder.ag" #-}                               mergeMap_-                              {-# LINE 747 "dist/build/KWOrder" #-}+                              {-# LINE 755 "dist/build/KWOrder" #-}                               )                          -- "src-ag/KWOrder.ag"(line 146, column 3)                          _nontsOclassContexts =                              ({-# LINE 146 "src-ag/KWOrder.ag" #-}                               contextMap_-                              {-# LINE 753 "dist/build/KWOrder" #-}+                              {-# LINE 761 "dist/build/KWOrder" #-}                               )                          -- "src-ag/KWOrder.ag"(line 269, column 31)                          _nontsOmanualDeps =                              ({-# LINE 269 "src-ag/KWOrder.ag" #-}                               manualAttrOrderMap_-                              {-# LINE 759 "dist/build/KWOrder" #-}+                              {-# LINE 767 "dist/build/KWOrder" #-}                               )                          -- "src-ag/KWOrder.ag"(line 359, column 15)                          (_lhsOoutput,_lhsOdepgraphs,_lhsOvisitgraph,_lhsOerrors) =                              ({-# LINE 359 "src-ag/KWOrder.ag" #-}                               let lazyPlan = kennedyWarrenLazy _lhsIoptions wrappers_ _nontsIdepinfo typeSyns_ derivings_-                              in if visit _lhsIoptions && withCycle _lhsIoptions+                              in if visit _lhsIoptions                                  then case kennedyWarrenOrder _lhsIoptions wrappers_ _nontsIdepinfo typeSyns_ derivings_ of                                         Left e        -> (lazyPlan,empty,empty,Seq.singleton e)                                         Right (o,d,v) -> (o,d,v,Seq.empty)                                  else (lazyPlan,empty,empty,Seq.empty)-                              {-# LINE 770 "dist/build/KWOrder" #-}+                              {-# LINE 778 "dist/build/KWOrder" #-}                               )                          -- "src-ag/DistChildAttr.ag"(line 15, column 13)                          _nontsOinhMap =                              ({-# LINE 15 "src-ag/DistChildAttr.ag" #-}                               _nontsIinhMap'-                              {-# LINE 776 "dist/build/KWOrder" #-}+                              {-# LINE 784 "dist/build/KWOrder" #-}                               )                          -- "src-ag/DistChildAttr.ag"(line 16, column 13)                          _nontsOsynMap =                              ({-# LINE 16 "src-ag/DistChildAttr.ag" #-}                               _nontsIsynMap'-                              {-# LINE 782 "dist/build/KWOrder" #-}+                              {-# LINE 790 "dist/build/KWOrder" #-}                               )                          -- use rule "src-ag/KWOrder.ag"(line 371, column 33)                          _lhsOinhmap =                              ({-# LINE 371 "src-ag/KWOrder.ag" #-}                               _nontsIinhmap-                              {-# LINE 788 "dist/build/KWOrder" #-}+                              {-# LINE 796 "dist/build/KWOrder" #-}                               )                          -- use rule "src-ag/KWOrder.ag"(line 383, column 57)                          _lhsOlocalSigMap =                              ({-# LINE 383 "src-ag/KWOrder.ag" #-}                               _nontsIlocalSigMap-                              {-# LINE 794 "dist/build/KWOrder" #-}+                              {-# LINE 802 "dist/build/KWOrder" #-}                               )                          -- use rule "src-ag/KWOrder.ag"(line 372, column 33)                          _lhsOsynmap =                              ({-# LINE 372 "src-ag/KWOrder.ag" #-}                               _nontsIsynmap-                              {-# LINE 800 "dist/build/KWOrder" #-}+                              {-# LINE 808 "dist/build/KWOrder" #-}                               )                          -- copy rule (from local)                          _nontsOclosedHoNtDeps =                              ({-# LINE 55 "src-ag/KWOrder.ag" #-}                               _closedHoNtDeps-                              {-# LINE 806 "dist/build/KWOrder" #-}+                              {-# LINE 814 "dist/build/KWOrder" #-}                               )                          -- copy rule (from local)                          _nontsOclosedHoNtRevDeps =                              ({-# LINE 55 "src-ag/KWOrder.ag" #-}                               _closedHoNtRevDeps-                              {-# LINE 812 "dist/build/KWOrder" #-}+                              {-# LINE 820 "dist/build/KWOrder" #-}                               )                          -- copy rule (from local)                          _nontsOclosedNtDeps =                              ({-# LINE 55 "src-ag/KWOrder.ag" #-}                               _closedNtDeps-                              {-# LINE 818 "dist/build/KWOrder" #-}+                              {-# LINE 826 "dist/build/KWOrder" #-}                               )                          -- copy rule (down)                          _nontsOoptions =                              ({-# LINE 34 "src-ag/KWOrder.ag" #-}                               _lhsIoptions-                              {-# LINE 824 "dist/build/KWOrder" #-}+                              {-# LINE 832 "dist/build/KWOrder" #-}                               )                          ( _nontsIdepinfo,_nontsIinhMap',_nontsIinhmap,_nontsIlocalSigMap,_nontsIntDeps,_nontsIntHoDeps,_nontsIrulenumber,_nontsIsynMap',_nontsIsynmap) =                              nonts_ _nontsOaroundMap _nontsOclassContexts _nontsOclosedHoNtDeps _nontsOclosedHoNtRevDeps _nontsOclosedNtDeps _nontsOinhMap _nontsOmanualDeps _nontsOmergeMap _nontsOoptions _nontsOrulenumber _nontsOsynMap+                         ___node =+                             (Syn_Grammar _lhsOdepgraphs _lhsOerrors _lhsOinhmap _lhsOlocalSigMap _lhsOoutput _lhsOsynmap _lhsOvisitgraph)                      in  ( _lhsOdepgraphs,_lhsOerrors,_lhsOinhmap,_lhsOlocalSigMap,_lhsOoutput,_lhsOsynmap,_lhsOvisitgraph)))) -- HsToken ----------------------------------------------------- {-@@ -891,8 +901,10 @@                          Set.singleton $ VAttr (if      field_ == _LHS then Inh                                                 else if field_ == _LOC then Loc                                                 else                        Syn) field_ attr_-                         {-# LINE 895 "dist/build/KWOrder" #-}+                         {-# LINE 905 "dist/build/KWOrder" #-}                          )+                    ___node =+                        (Syn_HsToken _lhsOvertices)                 in  ( _lhsOvertices))) sem_HsToken_AGLocal :: Identifier ->                        Pos ->@@ -904,8 +916,10 @@                     _lhsOvertices =                         ({-# LINE 193 "src-ag/KWOrder.ag" #-}                          Set.singleton $ VChild var_-                         {-# LINE 908 "dist/build/KWOrder" #-}+                         {-# LINE 920 "dist/build/KWOrder" #-}                          )+                    ___node =+                        (Syn_HsToken _lhsOvertices)                 in  ( _lhsOvertices))) sem_HsToken_CharToken :: String ->                          Pos ->@@ -916,8 +930,10 @@                     _lhsOvertices =                         ({-# LINE 189 "src-ag/KWOrder.ag" #-}                          Set.empty-                         {-# LINE 920 "dist/build/KWOrder" #-}+                         {-# LINE 934 "dist/build/KWOrder" #-}                          )+                    ___node =+                        (Syn_HsToken _lhsOvertices)                 in  ( _lhsOvertices))) sem_HsToken_Err :: String ->                    Pos ->@@ -928,8 +944,10 @@                     _lhsOvertices =                         ({-# LINE 189 "src-ag/KWOrder.ag" #-}                          Set.empty-                         {-# LINE 932 "dist/build/KWOrder" #-}+                         {-# LINE 948 "dist/build/KWOrder" #-}                          )+                    ___node =+                        (Syn_HsToken _lhsOvertices)                 in  ( _lhsOvertices))) sem_HsToken_HsToken :: String ->                        Pos ->@@ -940,8 +958,10 @@                     _lhsOvertices =                         ({-# LINE 189 "src-ag/KWOrder.ag" #-}                          Set.empty-                         {-# LINE 944 "dist/build/KWOrder" #-}+                         {-# LINE 962 "dist/build/KWOrder" #-}                          )+                    ___node =+                        (Syn_HsToken _lhsOvertices)                 in  ( _lhsOvertices))) sem_HsToken_StrToken :: String ->                         Pos ->@@ -952,8 +972,10 @@                     _lhsOvertices =                         ({-# LINE 189 "src-ag/KWOrder.ag" #-}                          Set.empty-                         {-# LINE 956 "dist/build/KWOrder" #-}+                         {-# LINE 976 "dist/build/KWOrder" #-}                          )+                    ___node =+                        (Syn_HsToken _lhsOvertices)                 in  ( _lhsOvertices))) -- HsTokens ---------------------------------------------------- {-@@ -985,10 +1007,13 @@     (T_HsTokens (let _hdIvertices :: (Set.Set Vertex)                      ( _hdIvertices) =                          hd_+                     ___node =+                         (Syn_HsTokens)                  in  ( ))) sem_HsTokens_Nil :: T_HsTokens sem_HsTokens_Nil =-    (T_HsTokens (let+    (T_HsTokens (let ___node =+                         (Syn_HsTokens)                  in  ( ))) -- HsTokensRoot ------------------------------------------------ {-@@ -1014,7 +1039,8 @@ sem_HsTokensRoot_HsTokensRoot :: T_HsTokens ->                                  T_HsTokensRoot sem_HsTokensRoot_HsTokensRoot (T_HsTokens tokens_) =-    (T_HsTokensRoot (let+    (T_HsTokensRoot (let ___node =+                             (Syn_HsTokensRoot)                      in  ( ))) -- Nonterminal ------------------------------------------------- {-@@ -1132,43 +1158,43 @@                              _lhsOntDeps =                                  ({-# LINE 59 "src-ag/KWOrder.ag" #-}                                   Map.singleton nt_ _prodsIrefNts-                                  {-# LINE 1136 "dist/build/KWOrder" #-}+                                  {-# LINE 1162 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 60, column 3)                              _lhsOntHoDeps =                                  ({-# LINE 60 "src-ag/KWOrder.ag" #-}                                   Map.singleton nt_ _prodsIrefHoNts-                                  {-# LINE 1142 "dist/build/KWOrder" #-}+                                  {-# LINE 1168 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 62, column 3)                              _closedNtDeps =                                  ({-# LINE 62 "src-ag/KWOrder.ag" #-}                                   Map.findWithDefault Set.empty nt_ _lhsIclosedNtDeps-                                  {-# LINE 1148 "dist/build/KWOrder" #-}+                                  {-# LINE 1174 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 63, column 3)                              _closedHoNtDeps =                                  ({-# LINE 63 "src-ag/KWOrder.ag" #-}                                   Map.findWithDefault Set.empty nt_ _lhsIclosedHoNtDeps-                                  {-# LINE 1154 "dist/build/KWOrder" #-}+                                  {-# LINE 1180 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 64, column 3)                              _closedHoNtRevDeps =                                  ({-# LINE 64 "src-ag/KWOrder.ag" #-}                                   Map.findWithDefault Set.empty nt_ _lhsIclosedHoNtRevDeps-                                  {-# LINE 1160 "dist/build/KWOrder" #-}+                                  {-# LINE 1186 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 66, column 3)                              _recursive =                                  ({-# LINE 66 "src-ag/KWOrder.ag" #-}                                   nt_ `Set.member` _closedNtDeps-                                  {-# LINE 1166 "dist/build/KWOrder" #-}+                                  {-# LINE 1192 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 67, column 3)                              _nontrivAcyc =                                  ({-# LINE 67 "src-ag/KWOrder.ag" #-}                                   nt_ `Set.member` _closedHoNtDeps-                                  {-# LINE 1172 "dist/build/KWOrder" #-}+                                  {-# LINE 1198 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 68, column 3)                              _hoInfo =@@ -1177,56 +1203,56 @@                                                   , hoNtRevDeps         = _closedHoNtRevDeps                                                   , hoAcyclic           = _nontrivAcyc                                                   }-                                  {-# LINE 1181 "dist/build/KWOrder" #-}+                                  {-# LINE 1207 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 101, column 32)                              _aroundMap =                                  ({-# LINE 101 "src-ag/KWOrder.ag" #-}                                   Map.findWithDefault Map.empty nt_ _lhsIaroundMap-                                  {-# LINE 1187 "dist/build/KWOrder" #-}+                                  {-# LINE 1213 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 126, column 32)                              _mergeMap =                                  ({-# LINE 126 "src-ag/KWOrder.ag" #-}                                   Map.findWithDefault Map.empty nt_ _lhsImergeMap-                                  {-# LINE 1193 "dist/build/KWOrder" #-}+                                  {-# LINE 1219 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 149, column 3)                              _classContexts =                                  ({-# LINE 149 "src-ag/KWOrder.ag" #-}                                   Map.findWithDefault [] nt_ _lhsIclassContexts-                                  {-# LINE 1199 "dist/build/KWOrder" #-}+                                  {-# LINE 1225 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 270, column 31)                              _prodsOmanualDeps =                                  ({-# LINE 270 "src-ag/KWOrder.ag" #-}                                   Map.findWithDefault Map.empty nt_ _lhsImanualDeps-                                  {-# LINE 1205 "dist/build/KWOrder" #-}+                                  {-# LINE 1231 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 325, column 18)                              _synvertices =                                  ({-# LINE 325 "src-ag/KWOrder.ag" #-}                                   map (VAttr Syn nt_) . Map.keys $ syn_-                                  {-# LINE 1211 "dist/build/KWOrder" #-}+                                  {-# LINE 1237 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 326, column 18)                              _inhvertices =                                  ({-# LINE 326 "src-ag/KWOrder.ag" #-}                                   map (VAttr Inh nt_) . Map.keys $ inh_-                                  {-# LINE 1217 "dist/build/KWOrder" #-}+                                  {-# LINE 1243 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 327, column 18)                              _vertices =                                  ({-# LINE 327 "src-ag/KWOrder.ag" #-}                                   _synvertices     ++ _inhvertices-                                  {-# LINE 1223 "dist/build/KWOrder" #-}+                                  {-# LINE 1249 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 331, column 18)                              _nontgraph =                                  ({-# LINE 331 "src-ag/KWOrder.ag" #-}                                   NontDependencyGraph { ndgVertices = _vertices                                                       , ndgEdges    = [] }-                                  {-# LINE 1230 "dist/build/KWOrder" #-}+                                  {-# LINE 1256 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 339, column 18)                              _lhsOdepinfo =@@ -1241,82 +1267,84 @@                                                             , ndiHoInfo      = _hoInfo                                                             , ndiClassCtxs   = _classContexts                                                             }-                                  {-# LINE 1245 "dist/build/KWOrder" #-}+                                  {-# LINE 1271 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 377, column 17)                              _lhsOinhmap =                                  ({-# LINE 377 "src-ag/KWOrder.ag" #-}                                   Map.singleton nt_ inh_-                                  {-# LINE 1251 "dist/build/KWOrder" #-}+                                  {-# LINE 1277 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 378, column 17)                              _lhsOsynmap =                                  ({-# LINE 378 "src-ag/KWOrder.ag" #-}                                   Map.singleton nt_ syn_-                                  {-# LINE 1257 "dist/build/KWOrder" #-}+                                  {-# LINE 1283 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/KWOrder.ag"(line 387, column 32)                              _lhsOlocalSigMap =                                  ({-# LINE 387 "src-ag/KWOrder.ag" #-}                                   Map.singleton nt_ _prodsIlocalSigMap-                                  {-# LINE 1263 "dist/build/KWOrder" #-}+                                  {-# LINE 1289 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/DistChildAttr.ag"(line 7, column 18)                              _lhsOinhMap' =                                  ({-# LINE 7 "src-ag/DistChildAttr.ag" #-}                                   Map.singleton nt_ inh_-                                  {-# LINE 1269 "dist/build/KWOrder" #-}+                                  {-# LINE 1295 "dist/build/KWOrder" #-}                                   )                              -- "src-ag/DistChildAttr.ag"(line 8, column 18)                              _lhsOsynMap' =                                  ({-# LINE 8 "src-ag/DistChildAttr.ag" #-}                                   Map.singleton nt_ syn_-                                  {-# LINE 1275 "dist/build/KWOrder" #-}+                                  {-# LINE 1301 "dist/build/KWOrder" #-}                                   )                              -- copy rule (up)                              _lhsOrulenumber =                                  ({-# LINE 41 "src-ag/KWOrder.ag" #-}                                   _prodsIrulenumber-                                  {-# LINE 1281 "dist/build/KWOrder" #-}+                                  {-# LINE 1307 "dist/build/KWOrder" #-}                                   )                              -- copy rule (from local)                              _prodsOaroundMap =                                  ({-# LINE 96 "src-ag/KWOrder.ag" #-}                                   _aroundMap-                                  {-# LINE 1287 "dist/build/KWOrder" #-}+                                  {-# LINE 1313 "dist/build/KWOrder" #-}                                   )                              -- copy rule (down)                              _prodsOinhMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIinhMap-                                  {-# LINE 1293 "dist/build/KWOrder" #-}+                                  {-# LINE 1319 "dist/build/KWOrder" #-}                                   )                              -- copy rule (from local)                              _prodsOmergeMap =                                  ({-# LINE 121 "src-ag/KWOrder.ag" #-}                                   _mergeMap-                                  {-# LINE 1299 "dist/build/KWOrder" #-}+                                  {-# LINE 1325 "dist/build/KWOrder" #-}                                   )                              -- copy rule (down)                              _prodsOoptions =                                  ({-# LINE 34 "src-ag/KWOrder.ag" #-}                                   _lhsIoptions-                                  {-# LINE 1305 "dist/build/KWOrder" #-}+                                  {-# LINE 1331 "dist/build/KWOrder" #-}                                   )                              -- copy rule (down)                              _prodsOrulenumber =                                  ({-# LINE 41 "src-ag/KWOrder.ag" #-}                                   _lhsIrulenumber-                                  {-# LINE 1311 "dist/build/KWOrder" #-}+                                  {-# LINE 1337 "dist/build/KWOrder" #-}                                   )                              -- copy rule (down)                              _prodsOsynMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIsynMap-                                  {-# LINE 1317 "dist/build/KWOrder" #-}+                                  {-# LINE 1343 "dist/build/KWOrder" #-}                                   )                              ( _prodsIdepgraph,_prodsIlocalSigMap,_prodsIrefHoNts,_prodsIrefNts,_prodsIrulenumber) =                                  prods_ _prodsOaroundMap _prodsOinhMap _prodsOmanualDeps _prodsOmergeMap _prodsOoptions _prodsOrulenumber _prodsOsynMap+                             ___node =+                                 (Syn_Nonterminal _lhsOdepinfo _lhsOinhMap' _lhsOinhmap _lhsOlocalSigMap _lhsOntDeps _lhsOntHoDeps _lhsOrulenumber _lhsOsynMap' _lhsOsynmap)                          in  ( _lhsOdepinfo,_lhsOinhMap',_lhsOinhmap,_lhsOlocalSigMap,_lhsOntDeps,_lhsOntHoDeps,_lhsOrulenumber,_lhsOsynMap',_lhsOsynmap)))) -- Nonterminals ------------------------------------------------ {-@@ -1443,192 +1471,194 @@                               _lhsOdepinfo =                                   ({-# LINE 336 "src-ag/KWOrder.ag" #-}                                    _hdIdepinfo : _tlIdepinfo-                                   {-# LINE 1447 "dist/build/KWOrder" #-}+                                   {-# LINE 1475 "dist/build/KWOrder" #-}                                    )                               -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)                               _lhsOinhMap' =                                   ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                    _hdIinhMap' `Map.union` _tlIinhMap'-                                   {-# LINE 1453 "dist/build/KWOrder" #-}+                                   {-# LINE 1481 "dist/build/KWOrder" #-}                                    )                               -- use rule "src-ag/KWOrder.ag"(line 371, column 33)                               _lhsOinhmap =                                   ({-# LINE 371 "src-ag/KWOrder.ag" #-}                                    _hdIinhmap `Map.union` _tlIinhmap-                                   {-# LINE 1459 "dist/build/KWOrder" #-}+                                   {-# LINE 1487 "dist/build/KWOrder" #-}                                    )                               -- use rule "src-ag/KWOrder.ag"(line 383, column 57)                               _lhsOlocalSigMap =                                   ({-# LINE 383 "src-ag/KWOrder.ag" #-}                                    _hdIlocalSigMap `Map.union` _tlIlocalSigMap-                                   {-# LINE 1465 "dist/build/KWOrder" #-}+                                   {-# LINE 1493 "dist/build/KWOrder" #-}                                    )                               -- use rule "src-ag/KWOrder.ag"(line 54, column 54)                               _lhsOntDeps =                                   ({-# LINE 54 "src-ag/KWOrder.ag" #-}                                    _hdIntDeps `mappend` _tlIntDeps-                                   {-# LINE 1471 "dist/build/KWOrder" #-}+                                   {-# LINE 1499 "dist/build/KWOrder" #-}                                    )                               -- use rule "src-ag/KWOrder.ag"(line 54, column 54)                               _lhsOntHoDeps =                                   ({-# LINE 54 "src-ag/KWOrder.ag" #-}                                    _hdIntHoDeps `mappend` _tlIntHoDeps-                                   {-# LINE 1477 "dist/build/KWOrder" #-}+                                   {-# LINE 1505 "dist/build/KWOrder" #-}                                    )                               -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)                               _lhsOsynMap' =                                   ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                    _hdIsynMap' `Map.union` _tlIsynMap'-                                   {-# LINE 1483 "dist/build/KWOrder" #-}+                                   {-# LINE 1511 "dist/build/KWOrder" #-}                                    )                               -- use rule "src-ag/KWOrder.ag"(line 372, column 33)                               _lhsOsynmap =                                   ({-# LINE 372 "src-ag/KWOrder.ag" #-}                                    _hdIsynmap `Map.union` _tlIsynmap-                                   {-# LINE 1489 "dist/build/KWOrder" #-}+                                   {-# LINE 1517 "dist/build/KWOrder" #-}                                    )                               -- copy rule (up)                               _lhsOrulenumber =                                   ({-# LINE 41 "src-ag/KWOrder.ag" #-}                                    _tlIrulenumber-                                   {-# LINE 1495 "dist/build/KWOrder" #-}+                                   {-# LINE 1523 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _hdOaroundMap =                                   ({-# LINE 93 "src-ag/KWOrder.ag" #-}                                    _lhsIaroundMap-                                   {-# LINE 1501 "dist/build/KWOrder" #-}+                                   {-# LINE 1529 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _hdOclassContexts =                                   ({-# LINE 143 "src-ag/KWOrder.ag" #-}                                    _lhsIclassContexts-                                   {-# LINE 1507 "dist/build/KWOrder" #-}+                                   {-# LINE 1535 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _hdOclosedHoNtDeps =                                   ({-# LINE 55 "src-ag/KWOrder.ag" #-}                                    _lhsIclosedHoNtDeps-                                   {-# LINE 1513 "dist/build/KWOrder" #-}+                                   {-# LINE 1541 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _hdOclosedHoNtRevDeps =                                   ({-# LINE 55 "src-ag/KWOrder.ag" #-}                                    _lhsIclosedHoNtRevDeps-                                   {-# LINE 1519 "dist/build/KWOrder" #-}+                                   {-# LINE 1547 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _hdOclosedNtDeps =                                   ({-# LINE 55 "src-ag/KWOrder.ag" #-}                                    _lhsIclosedNtDeps-                                   {-# LINE 1525 "dist/build/KWOrder" #-}+                                   {-# LINE 1553 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _hdOinhMap =                                   ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                    _lhsIinhMap-                                   {-# LINE 1531 "dist/build/KWOrder" #-}+                                   {-# LINE 1559 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _hdOmanualDeps =                                   ({-# LINE 266 "src-ag/KWOrder.ag" #-}                                    _lhsImanualDeps-                                   {-# LINE 1537 "dist/build/KWOrder" #-}+                                   {-# LINE 1565 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _hdOmergeMap =                                   ({-# LINE 118 "src-ag/KWOrder.ag" #-}                                    _lhsImergeMap-                                   {-# LINE 1543 "dist/build/KWOrder" #-}+                                   {-# LINE 1571 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _hdOoptions =                                   ({-# LINE 34 "src-ag/KWOrder.ag" #-}                                    _lhsIoptions-                                   {-# LINE 1549 "dist/build/KWOrder" #-}+                                   {-# LINE 1577 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _hdOrulenumber =                                   ({-# LINE 41 "src-ag/KWOrder.ag" #-}                                    _lhsIrulenumber-                                   {-# LINE 1555 "dist/build/KWOrder" #-}+                                   {-# LINE 1583 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _hdOsynMap =                                   ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                    _lhsIsynMap-                                   {-# LINE 1561 "dist/build/KWOrder" #-}+                                   {-# LINE 1589 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _tlOaroundMap =                                   ({-# LINE 93 "src-ag/KWOrder.ag" #-}                                    _lhsIaroundMap-                                   {-# LINE 1567 "dist/build/KWOrder" #-}+                                   {-# LINE 1595 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _tlOclassContexts =                                   ({-# LINE 143 "src-ag/KWOrder.ag" #-}                                    _lhsIclassContexts-                                   {-# LINE 1573 "dist/build/KWOrder" #-}+                                   {-# LINE 1601 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _tlOclosedHoNtDeps =                                   ({-# LINE 55 "src-ag/KWOrder.ag" #-}                                    _lhsIclosedHoNtDeps-                                   {-# LINE 1579 "dist/build/KWOrder" #-}+                                   {-# LINE 1607 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _tlOclosedHoNtRevDeps =                                   ({-# LINE 55 "src-ag/KWOrder.ag" #-}                                    _lhsIclosedHoNtRevDeps-                                   {-# LINE 1585 "dist/build/KWOrder" #-}+                                   {-# LINE 1613 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _tlOclosedNtDeps =                                   ({-# LINE 55 "src-ag/KWOrder.ag" #-}                                    _lhsIclosedNtDeps-                                   {-# LINE 1591 "dist/build/KWOrder" #-}+                                   {-# LINE 1619 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _tlOinhMap =                                   ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                    _lhsIinhMap-                                   {-# LINE 1597 "dist/build/KWOrder" #-}+                                   {-# LINE 1625 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _tlOmanualDeps =                                   ({-# LINE 266 "src-ag/KWOrder.ag" #-}                                    _lhsImanualDeps-                                   {-# LINE 1603 "dist/build/KWOrder" #-}+                                   {-# LINE 1631 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _tlOmergeMap =                                   ({-# LINE 118 "src-ag/KWOrder.ag" #-}                                    _lhsImergeMap-                                   {-# LINE 1609 "dist/build/KWOrder" #-}+                                   {-# LINE 1637 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _tlOoptions =                                   ({-# LINE 34 "src-ag/KWOrder.ag" #-}                                    _lhsIoptions-                                   {-# LINE 1615 "dist/build/KWOrder" #-}+                                   {-# LINE 1643 "dist/build/KWOrder" #-}                                    )                               -- copy rule (chain)                               _tlOrulenumber =                                   ({-# LINE 41 "src-ag/KWOrder.ag" #-}                                    _hdIrulenumber-                                   {-# LINE 1621 "dist/build/KWOrder" #-}+                                   {-# LINE 1649 "dist/build/KWOrder" #-}                                    )                               -- copy rule (down)                               _tlOsynMap =                                   ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                    _lhsIsynMap-                                   {-# LINE 1627 "dist/build/KWOrder" #-}+                                   {-# LINE 1655 "dist/build/KWOrder" #-}                                    )                               ( _hdIdepinfo,_hdIinhMap',_hdIinhmap,_hdIlocalSigMap,_hdIntDeps,_hdIntHoDeps,_hdIrulenumber,_hdIsynMap',_hdIsynmap) =                                   hd_ _hdOaroundMap _hdOclassContexts _hdOclosedHoNtDeps _hdOclosedHoNtRevDeps _hdOclosedNtDeps _hdOinhMap _hdOmanualDeps _hdOmergeMap _hdOoptions _hdOrulenumber _hdOsynMap                               ( _tlIdepinfo,_tlIinhMap',_tlIinhmap,_tlIlocalSigMap,_tlIntDeps,_tlIntHoDeps,_tlIrulenumber,_tlIsynMap',_tlIsynmap) =                                   tl_ _tlOaroundMap _tlOclassContexts _tlOclosedHoNtDeps _tlOclosedHoNtRevDeps _tlOclosedNtDeps _tlOinhMap _tlOmanualDeps _tlOmergeMap _tlOoptions _tlOrulenumber _tlOsynMap+                              ___node =+                                  (Syn_Nonterminals _lhsOdepinfo _lhsOinhMap' _lhsOinhmap _lhsOlocalSigMap _lhsOntDeps _lhsOntHoDeps _lhsOrulenumber _lhsOsynMap' _lhsOsynmap)                           in  ( _lhsOdepinfo,_lhsOinhMap',_lhsOinhmap,_lhsOlocalSigMap,_lhsOntDeps,_lhsOntHoDeps,_lhsOrulenumber,_lhsOsynMap',_lhsOsynmap)))) sem_Nonterminals_Nil :: T_Nonterminals sem_Nonterminals_Nil =@@ -1656,56 +1686,58 @@                               _lhsOdepinfo =                                   ({-# LINE 336 "src-ag/KWOrder.ag" #-}                                    []-                                   {-# LINE 1660 "dist/build/KWOrder" #-}+                                   {-# LINE 1690 "dist/build/KWOrder" #-}                                    )                               -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)                               _lhsOinhMap' =                                   ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                    Map.empty-                                   {-# LINE 1666 "dist/build/KWOrder" #-}+                                   {-# LINE 1696 "dist/build/KWOrder" #-}                                    )                               -- use rule "src-ag/KWOrder.ag"(line 371, column 33)                               _lhsOinhmap =                                   ({-# LINE 371 "src-ag/KWOrder.ag" #-}                                    Map.empty-                                   {-# LINE 1672 "dist/build/KWOrder" #-}+                                   {-# LINE 1702 "dist/build/KWOrder" #-}                                    )                               -- use rule "src-ag/KWOrder.ag"(line 383, column 57)                               _lhsOlocalSigMap =                                   ({-# LINE 383 "src-ag/KWOrder.ag" #-}                                    Map.empty-                                   {-# LINE 1678 "dist/build/KWOrder" #-}+                                   {-# LINE 1708 "dist/build/KWOrder" #-}                                    )                               -- use rule "src-ag/KWOrder.ag"(line 54, column 54)                               _lhsOntDeps =                                   ({-# LINE 54 "src-ag/KWOrder.ag" #-}                                    mempty-                                   {-# LINE 1684 "dist/build/KWOrder" #-}+                                   {-# LINE 1714 "dist/build/KWOrder" #-}                                    )                               -- use rule "src-ag/KWOrder.ag"(line 54, column 54)                               _lhsOntHoDeps =                                   ({-# LINE 54 "src-ag/KWOrder.ag" #-}                                    mempty-                                   {-# LINE 1690 "dist/build/KWOrder" #-}+                                   {-# LINE 1720 "dist/build/KWOrder" #-}                                    )                               -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)                               _lhsOsynMap' =                                   ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                    Map.empty-                                   {-# LINE 1696 "dist/build/KWOrder" #-}+                                   {-# LINE 1726 "dist/build/KWOrder" #-}                                    )                               -- use rule "src-ag/KWOrder.ag"(line 372, column 33)                               _lhsOsynmap =                                   ({-# LINE 372 "src-ag/KWOrder.ag" #-}                                    Map.empty-                                   {-# LINE 1702 "dist/build/KWOrder" #-}+                                   {-# LINE 1732 "dist/build/KWOrder" #-}                                    )                               -- copy rule (chain)                               _lhsOrulenumber =                                   ({-# LINE 41 "src-ag/KWOrder.ag" #-}                                    _lhsIrulenumber-                                   {-# LINE 1708 "dist/build/KWOrder" #-}+                                   {-# LINE 1738 "dist/build/KWOrder" #-}                                    )+                              ___node =+                                  (Syn_Nonterminals _lhsOdepinfo _lhsOinhMap' _lhsOinhmap _lhsOlocalSigMap _lhsOntDeps _lhsOntHoDeps _lhsOrulenumber _lhsOsynMap' _lhsOsynmap)                           in  ( _lhsOdepinfo,_lhsOinhMap',_lhsOinhmap,_lhsOlocalSigMap,_lhsOntDeps,_lhsOntHoDeps,_lhsOrulenumber,_lhsOsynMap',_lhsOsynmap)))) -- Pattern ----------------------------------------------------- {-@@ -1779,28 +1811,30 @@                          else VAttr (if      field_ == _LHS  then Syn                                      else if field_ == _LOC  then Loc                                      else                         Inh) field_ attr_-                         {-# LINE 1783 "dist/build/KWOrder" #-}+                         {-# LINE 1815 "dist/build/KWOrder" #-}                          )                     -- "src-ag/KWOrder.ag"(line 209, column 12)                     _lhsOvertices =                         ({-# LINE 209 "src-ag/KWOrder.ag" #-}                          Set.insert _vertex     _patIvertices-                         {-# LINE 1789 "dist/build/KWOrder" #-}+                         {-# LINE 1821 "dist/build/KWOrder" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Alias field_ attr_ _patIcopy-                         {-# LINE 1795 "dist/build/KWOrder" #-}+                         {-# LINE 1827 "dist/build/KWOrder" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 1801 "dist/build/KWOrder" #-}+                         {-# LINE 1833 "dist/build/KWOrder" #-}                          )                     ( _patIcopy,_patIvertices) =                         pat_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOvertices)                 in  ( _lhsOcopy,_lhsOvertices))) sem_Pattern_Constr :: ConstructorIdent ->                       T_Patterns ->@@ -1814,22 +1848,24 @@                     _lhsOvertices =                         ({-# LINE 189 "src-ag/KWOrder.ag" #-}                          _patsIvertices-                         {-# LINE 1818 "dist/build/KWOrder" #-}+                         {-# LINE 1852 "dist/build/KWOrder" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Constr name_ _patsIcopy-                         {-# LINE 1824 "dist/build/KWOrder" #-}+                         {-# LINE 1858 "dist/build/KWOrder" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 1830 "dist/build/KWOrder" #-}+                         {-# LINE 1864 "dist/build/KWOrder" #-}                          )                     ( _patsIcopy,_patsIvertices) =                         pats_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOvertices)                 in  ( _lhsOcopy,_lhsOvertices))) sem_Pattern_Irrefutable :: T_Pattern ->                            T_Pattern@@ -1842,22 +1878,24 @@                     _lhsOvertices =                         ({-# LINE 189 "src-ag/KWOrder.ag" #-}                          _patIvertices-                         {-# LINE 1846 "dist/build/KWOrder" #-}+                         {-# LINE 1882 "dist/build/KWOrder" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Irrefutable _patIcopy-                         {-# LINE 1852 "dist/build/KWOrder" #-}+                         {-# LINE 1888 "dist/build/KWOrder" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 1858 "dist/build/KWOrder" #-}+                         {-# LINE 1894 "dist/build/KWOrder" #-}                          )                     ( _patIcopy,_patIvertices) =                         pat_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOvertices)                 in  ( _lhsOcopy,_lhsOvertices))) sem_Pattern_Product :: Pos ->                        T_Patterns ->@@ -1871,22 +1909,24 @@                     _lhsOvertices =                         ({-# LINE 189 "src-ag/KWOrder.ag" #-}                          _patsIvertices-                         {-# LINE 1875 "dist/build/KWOrder" #-}+                         {-# LINE 1913 "dist/build/KWOrder" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Product pos_ _patsIcopy-                         {-# LINE 1881 "dist/build/KWOrder" #-}+                         {-# LINE 1919 "dist/build/KWOrder" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 1887 "dist/build/KWOrder" #-}+                         {-# LINE 1925 "dist/build/KWOrder" #-}                          )                     ( _patsIcopy,_patsIvertices) =                         pats_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOvertices)                 in  ( _lhsOcopy,_lhsOvertices))) sem_Pattern_Underscore :: Pos ->                           T_Pattern@@ -1897,20 +1937,22 @@                     _lhsOvertices =                         ({-# LINE 189 "src-ag/KWOrder.ag" #-}                          Set.empty-                         {-# LINE 1901 "dist/build/KWOrder" #-}+                         {-# LINE 1941 "dist/build/KWOrder" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Underscore pos_-                         {-# LINE 1907 "dist/build/KWOrder" #-}+                         {-# LINE 1947 "dist/build/KWOrder" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 1913 "dist/build/KWOrder" #-}+                         {-# LINE 1953 "dist/build/KWOrder" #-}                          )+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOvertices)                 in  ( _lhsOcopy,_lhsOvertices))) -- Patterns ---------------------------------------------------- {-@@ -1957,24 +1999,26 @@                      _lhsOvertices =                          ({-# LINE 189 "src-ag/KWOrder.ag" #-}                           _hdIvertices `Set.union` _tlIvertices-                          {-# LINE 1961 "dist/build/KWOrder" #-}+                          {-# LINE 2003 "dist/build/KWOrder" #-}                           )                      -- self rule                      _copy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           (:) _hdIcopy _tlIcopy-                          {-# LINE 1967 "dist/build/KWOrder" #-}+                          {-# LINE 2009 "dist/build/KWOrder" #-}                           )                      -- self rule                      _lhsOcopy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           _copy-                          {-# LINE 1973 "dist/build/KWOrder" #-}+                          {-# LINE 2015 "dist/build/KWOrder" #-}                           )                      ( _hdIcopy,_hdIvertices) =                          hd_                      ( _tlIcopy,_tlIvertices) =                          tl_+                     ___node =+                         (Syn_Patterns _lhsOcopy _lhsOvertices)                  in  ( _lhsOcopy,_lhsOvertices))) sem_Patterns_Nil :: T_Patterns sem_Patterns_Nil =@@ -1984,20 +2028,22 @@                      _lhsOvertices =                          ({-# LINE 189 "src-ag/KWOrder.ag" #-}                           Set.empty-                          {-# LINE 1988 "dist/build/KWOrder" #-}+                          {-# LINE 2032 "dist/build/KWOrder" #-}                           )                      -- self rule                      _copy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           []-                          {-# LINE 1994 "dist/build/KWOrder" #-}+                          {-# LINE 2038 "dist/build/KWOrder" #-}                           )                      -- self rule                      _lhsOcopy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           _copy-                          {-# LINE 2000 "dist/build/KWOrder" #-}+                          {-# LINE 2044 "dist/build/KWOrder" #-}                           )+                     ___node =+                         (Syn_Patterns _lhsOcopy _lhsOvertices)                  in  ( _lhsOcopy,_lhsOvertices))) -- Production -------------------------------------------------- {-@@ -2099,43 +2145,43 @@                             _aroundMap =                                 ({-# LINE 102 "src-ag/KWOrder.ag" #-}                                  Map.findWithDefault Map.empty con_ _lhsIaroundMap-                                 {-# LINE 2103 "dist/build/KWOrder" #-}+                                 {-# LINE 2149 "dist/build/KWOrder" #-}                                  )                             -- "src-ag/KWOrder.ag"(line 127, column 32)                             _mergeMap =                                 ({-# LINE 127 "src-ag/KWOrder.ag" #-}                                  Map.findWithDefault Map.empty con_ _lhsImergeMap-                                 {-# LINE 2109 "dist/build/KWOrder" #-}+                                 {-# LINE 2155 "dist/build/KWOrder" #-}                                  )                             -- "src-ag/KWOrder.ag"(line 133, column 3)                             _mergedChildren =                                 ({-# LINE 133 "src-ag/KWOrder.ag" #-}                                  Set.unions [ Set.fromList ms | (_,ms,_) <- Map.elems _mergeMap     ]-                                 {-# LINE 2115 "dist/build/KWOrder" #-}+                                 {-# LINE 2161 "dist/build/KWOrder" #-}                                  )                             -- "src-ag/KWOrder.ag"(line 229, column 17)                             _vertices =                                 ({-# LINE 229 "src-ag/KWOrder.ag" #-}                                  _rulesIvertices `Set.union` _childrenIvertices-                                 {-# LINE 2121 "dist/build/KWOrder" #-}+                                 {-# LINE 2167 "dist/build/KWOrder" #-}                                  )                             -- "src-ag/KWOrder.ag"(line 272, column 3)                             _manualDeps =                                 ({-# LINE 272 "src-ag/KWOrder.ag" #-}                                  Map.findWithDefault Set.empty con_ _lhsImanualDeps-                                 {-# LINE 2127 "dist/build/KWOrder" #-}+                                 {-# LINE 2173 "dist/build/KWOrder" #-}                                  )                             -- "src-ag/KWOrder.ag"(line 273, column 3)                             _manualEdges =                                 ({-# LINE 273 "src-ag/KWOrder.ag" #-}                                  Set.map depToEdge _manualDeps-                                 {-# LINE 2133 "dist/build/KWOrder" #-}+                                 {-# LINE 2179 "dist/build/KWOrder" #-}                                  )                             -- "src-ag/KWOrder.ag"(line 295, column 17)                             _edges =                                 ({-# LINE 295 "src-ag/KWOrder.ag" #-}                                  _rulesIedges `Set.union` _childrenIedges-                                 {-# LINE 2139 "dist/build/KWOrder" #-}+                                 {-# LINE 2185 "dist/build/KWOrder" #-}                                  )                             -- "src-ag/KWOrder.ag"(line 310, column 17)                             _lhsOdepgraph =@@ -2148,73 +2194,73 @@                                                      , pdgChildMap    = _childrenInontnames                                                      , pdgConstraints = constraints_                                                      , pdgParams      = params_ }-                                 {-# LINE 2152 "dist/build/KWOrder" #-}+                                 {-# LINE 2198 "dist/build/KWOrder" #-}                                  )                             -- "src-ag/KWOrder.ag"(line 388, column 32)                             _lhsOlocalSigMap =                                 ({-# LINE 388 "src-ag/KWOrder.ag" #-}                                  Map.singleton con_ _typeSigsIlocalSigMap-                                 {-# LINE 2158 "dist/build/KWOrder" #-}+                                 {-# LINE 2204 "dist/build/KWOrder" #-}                                  )                             -- use rule "src-ag/KWOrder.ag"(line 56, column 67)                             _lhsOrefHoNts =                                 ({-# LINE 56 "src-ag/KWOrder.ag" #-}                                  _childrenIrefHoNts-                                 {-# LINE 2164 "dist/build/KWOrder" #-}+                                 {-# LINE 2210 "dist/build/KWOrder" #-}                                  )                             -- use rule "src-ag/KWOrder.ag"(line 56, column 67)                             _lhsOrefNts =                                 ({-# LINE 56 "src-ag/KWOrder.ag" #-}                                  _childrenIrefNts-                                 {-# LINE 2170 "dist/build/KWOrder" #-}+                                 {-# LINE 2216 "dist/build/KWOrder" #-}                                  )                             -- copy rule (up)                             _lhsOrulenumber =                                 ({-# LINE 41 "src-ag/KWOrder.ag" #-}                                  _rulesIrulenumber-                                 {-# LINE 2176 "dist/build/KWOrder" #-}+                                 {-# LINE 2222 "dist/build/KWOrder" #-}                                  )                             -- copy rule (from local)                             _childrenOaroundMap =                                 ({-# LINE 99 "src-ag/KWOrder.ag" #-}                                  _aroundMap-                                 {-# LINE 2182 "dist/build/KWOrder" #-}+                                 {-# LINE 2228 "dist/build/KWOrder" #-}                                  )                             -- copy rule (down)                             _childrenOinhMap =                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                  _lhsIinhMap-                                 {-# LINE 2188 "dist/build/KWOrder" #-}+                                 {-# LINE 2234 "dist/build/KWOrder" #-}                                  )                             -- copy rule (from local)                             _childrenOmergeMap =                                 ({-# LINE 124 "src-ag/KWOrder.ag" #-}                                  _mergeMap-                                 {-# LINE 2194 "dist/build/KWOrder" #-}+                                 {-# LINE 2240 "dist/build/KWOrder" #-}                                  )                             -- copy rule (from local)                             _childrenOmergedChildren =                                 ({-# LINE 124 "src-ag/KWOrder.ag" #-}                                  _mergedChildren-                                 {-# LINE 2200 "dist/build/KWOrder" #-}+                                 {-# LINE 2246 "dist/build/KWOrder" #-}                                  )                             -- copy rule (down)                             _childrenOoptions =                                 ({-# LINE 34 "src-ag/KWOrder.ag" #-}                                  _lhsIoptions-                                 {-# LINE 2206 "dist/build/KWOrder" #-}+                                 {-# LINE 2252 "dist/build/KWOrder" #-}                                  )                             -- copy rule (down)                             _childrenOsynMap =                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                  _lhsIsynMap-                                 {-# LINE 2212 "dist/build/KWOrder" #-}+                                 {-# LINE 2258 "dist/build/KWOrder" #-}                                  )                             -- copy rule (down)                             _rulesOrulenumber =                                 ({-# LINE 41 "src-ag/KWOrder.ag" #-}                                  _lhsIrulenumber-                                 {-# LINE 2218 "dist/build/KWOrder" #-}+                                 {-# LINE 2264 "dist/build/KWOrder" #-}                                  )                             ( _childrenIechilds,_childrenIedges,_childrenInontnames,_childrenIrefHoNts,_childrenIrefNts,_childrenIvertices) =                                 children_ _childrenOaroundMap _childrenOinhMap _childrenOmergeMap _childrenOmergedChildren _childrenOoptions _childrenOsynMap@@ -2222,6 +2268,8 @@                                 rules_ _rulesOrulenumber                             ( _typeSigsIlocalSigMap) =                                 typeSigs_+                            ___node =+                                (Syn_Production _lhsOdepgraph _lhsOlocalSigMap _lhsOrefHoNts _lhsOrefNts _lhsOrulenumber)                         in  ( _lhsOdepgraph,_lhsOlocalSigMap,_lhsOrefHoNts,_lhsOrefNts,_lhsOrulenumber)))) -- Productions ------------------------------------------------- {-@@ -2312,120 +2360,122 @@                              _lhsOdepgraph =                                  ({-# LINE 307 "src-ag/KWOrder.ag" #-}                                   _hdIdepgraph : _tlIdepgraph-                                  {-# LINE 2316 "dist/build/KWOrder" #-}+                                  {-# LINE 2364 "dist/build/KWOrder" #-}                                   )                              -- use rule "src-ag/KWOrder.ag"(line 384, column 57)                              _lhsOlocalSigMap =                                  ({-# LINE 384 "src-ag/KWOrder.ag" #-}                                   _hdIlocalSigMap `Map.union` _tlIlocalSigMap-                                  {-# LINE 2322 "dist/build/KWOrder" #-}+                                  {-# LINE 2370 "dist/build/KWOrder" #-}                                   )                              -- use rule "src-ag/KWOrder.ag"(line 56, column 67)                              _lhsOrefHoNts =                                  ({-# LINE 56 "src-ag/KWOrder.ag" #-}                                   _hdIrefHoNts `mappend` _tlIrefHoNts-                                  {-# LINE 2328 "dist/build/KWOrder" #-}+                                  {-# LINE 2376 "dist/build/KWOrder" #-}                                   )                              -- use rule "src-ag/KWOrder.ag"(line 56, column 67)                              _lhsOrefNts =                                  ({-# LINE 56 "src-ag/KWOrder.ag" #-}                                   _hdIrefNts `mappend` _tlIrefNts-                                  {-# LINE 2334 "dist/build/KWOrder" #-}+                                  {-# LINE 2382 "dist/build/KWOrder" #-}                                   )                              -- copy rule (up)                              _lhsOrulenumber =                                  ({-# LINE 41 "src-ag/KWOrder.ag" #-}                                   _tlIrulenumber-                                  {-# LINE 2340 "dist/build/KWOrder" #-}+                                  {-# LINE 2388 "dist/build/KWOrder" #-}                                   )                              -- copy rule (down)                              _hdOaroundMap =                                  ({-# LINE 96 "src-ag/KWOrder.ag" #-}                                   _lhsIaroundMap-                                  {-# LINE 2346 "dist/build/KWOrder" #-}+                                  {-# LINE 2394 "dist/build/KWOrder" #-}                                   )                              -- copy rule (down)                              _hdOinhMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIinhMap-                                  {-# LINE 2352 "dist/build/KWOrder" #-}+                                  {-# LINE 2400 "dist/build/KWOrder" #-}                                   )                              -- copy rule (down)                              _hdOmanualDeps =                                  ({-# LINE 267 "src-ag/KWOrder.ag" #-}                                   _lhsImanualDeps-                                  {-# LINE 2358 "dist/build/KWOrder" #-}+                                  {-# LINE 2406 "dist/build/KWOrder" #-}                                   )                              -- copy rule (down)                              _hdOmergeMap =                                  ({-# LINE 121 "src-ag/KWOrder.ag" #-}                                   _lhsImergeMap-                                  {-# LINE 2364 "dist/build/KWOrder" #-}+                                  {-# LINE 2412 "dist/build/KWOrder" #-}                                   )                              -- copy rule (down)                              _hdOoptions =                                  ({-# LINE 34 "src-ag/KWOrder.ag" #-}                                   _lhsIoptions-                                  {-# LINE 2370 "dist/build/KWOrder" #-}+                                  {-# LINE 2418 "dist/build/KWOrder" #-}                                   )                              -- copy rule (down)                              _hdOrulenumber =                                  ({-# LINE 41 "src-ag/KWOrder.ag" #-}                                   _lhsIrulenumber-                                  {-# LINE 2376 "dist/build/KWOrder" #-}+                                  {-# LINE 2424 "dist/build/KWOrder" #-}                                   )                              -- copy rule (down)                              _hdOsynMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIsynMap-                                  {-# LINE 2382 "dist/build/KWOrder" #-}+                                  {-# LINE 2430 "dist/build/KWOrder" #-}                                   )                              -- copy rule (down)                              _tlOaroundMap =                                  ({-# LINE 96 "src-ag/KWOrder.ag" #-}                                   _lhsIaroundMap-                                  {-# LINE 2388 "dist/build/KWOrder" #-}+                                  {-# LINE 2436 "dist/build/KWOrder" #-}                                   )                              -- copy rule (down)                              _tlOinhMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIinhMap-                                  {-# LINE 2394 "dist/build/KWOrder" #-}+                                  {-# LINE 2442 "dist/build/KWOrder" #-}                                   )                              -- copy rule (down)                              _tlOmanualDeps =                                  ({-# LINE 267 "src-ag/KWOrder.ag" #-}                                   _lhsImanualDeps-                                  {-# LINE 2400 "dist/build/KWOrder" #-}+                                  {-# LINE 2448 "dist/build/KWOrder" #-}                                   )                              -- copy rule (down)                              _tlOmergeMap =                                  ({-# LINE 121 "src-ag/KWOrder.ag" #-}                                   _lhsImergeMap-                                  {-# LINE 2406 "dist/build/KWOrder" #-}+                                  {-# LINE 2454 "dist/build/KWOrder" #-}                                   )                              -- copy rule (down)                              _tlOoptions =                                  ({-# LINE 34 "src-ag/KWOrder.ag" #-}                                   _lhsIoptions-                                  {-# LINE 2412 "dist/build/KWOrder" #-}+                                  {-# LINE 2460 "dist/build/KWOrder" #-}                                   )                              -- copy rule (chain)                              _tlOrulenumber =                                  ({-# LINE 41 "src-ag/KWOrder.ag" #-}                                   _hdIrulenumber-                                  {-# LINE 2418 "dist/build/KWOrder" #-}+                                  {-# LINE 2466 "dist/build/KWOrder" #-}                                   )                              -- copy rule (down)                              _tlOsynMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIsynMap-                                  {-# LINE 2424 "dist/build/KWOrder" #-}+                                  {-# LINE 2472 "dist/build/KWOrder" #-}                                   )                              ( _hdIdepgraph,_hdIlocalSigMap,_hdIrefHoNts,_hdIrefNts,_hdIrulenumber) =                                  hd_ _hdOaroundMap _hdOinhMap _hdOmanualDeps _hdOmergeMap _hdOoptions _hdOrulenumber _hdOsynMap                              ( _tlIdepgraph,_tlIlocalSigMap,_tlIrefHoNts,_tlIrefNts,_tlIrulenumber) =                                  tl_ _tlOaroundMap _tlOinhMap _tlOmanualDeps _tlOmergeMap _tlOoptions _tlOrulenumber _tlOsynMap+                             ___node =+                                 (Syn_Productions _lhsOdepgraph _lhsOlocalSigMap _lhsOrefHoNts _lhsOrefNts _lhsOrulenumber)                          in  ( _lhsOdepgraph,_lhsOlocalSigMap,_lhsOrefHoNts,_lhsOrefNts,_lhsOrulenumber)))) sem_Productions_Nil :: T_Productions sem_Productions_Nil =@@ -2445,32 +2495,34 @@                              _lhsOdepgraph =                                  ({-# LINE 307 "src-ag/KWOrder.ag" #-}                                   []-                                  {-# LINE 2449 "dist/build/KWOrder" #-}+                                  {-# LINE 2499 "dist/build/KWOrder" #-}                                   )                              -- use rule "src-ag/KWOrder.ag"(line 384, column 57)                              _lhsOlocalSigMap =                                  ({-# LINE 384 "src-ag/KWOrder.ag" #-}                                   Map.empty-                                  {-# LINE 2455 "dist/build/KWOrder" #-}+                                  {-# LINE 2505 "dist/build/KWOrder" #-}                                   )                              -- use rule "src-ag/KWOrder.ag"(line 56, column 67)                              _lhsOrefHoNts =                                  ({-# LINE 56 "src-ag/KWOrder.ag" #-}                                   mempty-                                  {-# LINE 2461 "dist/build/KWOrder" #-}+                                  {-# LINE 2511 "dist/build/KWOrder" #-}                                   )                              -- use rule "src-ag/KWOrder.ag"(line 56, column 67)                              _lhsOrefNts =                                  ({-# LINE 56 "src-ag/KWOrder.ag" #-}                                   mempty-                                  {-# LINE 2467 "dist/build/KWOrder" #-}+                                  {-# LINE 2517 "dist/build/KWOrder" #-}                                   )                              -- copy rule (chain)                              _lhsOrulenumber =                                  ({-# LINE 41 "src-ag/KWOrder.ag" #-}                                   _lhsIrulenumber-                                  {-# LINE 2473 "dist/build/KWOrder" #-}+                                  {-# LINE 2523 "dist/build/KWOrder" #-}                                   )+                             ___node =+                                 (Syn_Productions _lhsOdepgraph _lhsOlocalSigMap _lhsOrefHoNts _lhsOrefNts _lhsOrulenumber)                          in  ( _lhsOdepgraph,_lhsOlocalSigMap,_lhsOrefHoNts,_lhsOrefNts,_lhsOrulenumber)))) -- Rule -------------------------------------------------------- {-@@ -2540,13 +2592,13 @@                       _lhsOrulenumber =                           ({-# LINE 47 "src-ag/KWOrder.ag" #-}                            _lhsIrulenumber + 1-                           {-# LINE 2544 "dist/build/KWOrder" #-}+                           {-# LINE 2596 "dist/build/KWOrder" #-}                            )                       -- "src-ag/KWOrder.ag"(line 48, column 11)                       _rulename =                           ({-# LINE 48 "src-ag/KWOrder.ag" #-}                            maybe (identifier $ "rule" ++ show _lhsIrulenumber) id mbName_-                           {-# LINE 2550 "dist/build/KWOrder" #-}+                           {-# LINE 2602 "dist/build/KWOrder" #-}                            )                       -- "src-ag/KWOrder.ag"(line 160, column 10)                       _lhsOerules =@@ -2559,42 +2611,44 @@                                  explicit_                                  pure_                                  mbError_-                           {-# LINE 2563 "dist/build/KWOrder" #-}+                           {-# LINE 2615 "dist/build/KWOrder" #-}                            )                       -- "src-ag/KWOrder.ag"(line 224, column 11)                       _vertex =                           ({-# LINE 224 "src-ag/KWOrder.ag" #-}                            VRule _rulename-                           {-# LINE 2569 "dist/build/KWOrder" #-}+                           {-# LINE 2621 "dist/build/KWOrder" #-}                            )                       -- "src-ag/KWOrder.ag"(line 225, column 11)                       _lhsOvertices =                           ({-# LINE 225 "src-ag/KWOrder.ag" #-}                            Set.insert _vertex     $ _patternIvertices `Set.union` _rhsIvertices-                           {-# LINE 2575 "dist/build/KWOrder" #-}+                           {-# LINE 2627 "dist/build/KWOrder" #-}                            )                       -- "src-ag/KWOrder.ag"(line 237, column 11)                       _edgesout =                           ({-# LINE 237 "src-ag/KWOrder.ag" #-}                            map ((,) _vertex    ) (Set.toList _rhsIvertices)-                           {-# LINE 2581 "dist/build/KWOrder" #-}+                           {-# LINE 2633 "dist/build/KWOrder" #-}                            )                       -- "src-ag/KWOrder.ag"(line 238, column 11)                       _edgesin =                           ({-# LINE 238 "src-ag/KWOrder.ag" #-}                            map (flip (,) _vertex    ) (Set.toList _patternIvertices)-                           {-# LINE 2587 "dist/build/KWOrder" #-}+                           {-# LINE 2639 "dist/build/KWOrder" #-}                            )                       -- "src-ag/KWOrder.ag"(line 239, column 11)                       _lhsOedges =                           ({-# LINE 239 "src-ag/KWOrder.ag" #-}                            Set.fromList $ _edgesout     ++ _edgesin-                           {-# LINE 2593 "dist/build/KWOrder" #-}+                           {-# LINE 2645 "dist/build/KWOrder" #-}                            )                       ( _patternIcopy,_patternIvertices) =                           pattern_                       ( _rhsIcopy,_rhsIvertices) =                           rhs_+                      ___node =+                          (Syn_Rule _lhsOedges _lhsOerules _lhsOrulenumber _lhsOvertices)                   in  ( _lhsOedges,_lhsOerules,_lhsOrulenumber,_lhsOvertices)))) -- Rules ------------------------------------------------------- {-@@ -2650,42 +2704,44 @@                        _lhsOedges =                            ({-# LINE 233 "src-ag/KWOrder.ag" #-}                             _hdIedges `Set.union` _tlIedges-                            {-# LINE 2654 "dist/build/KWOrder" #-}+                            {-# LINE 2708 "dist/build/KWOrder" #-}                             )                        -- use rule "src-ag/KWOrder.ag"(line 157, column 25)                        _lhsOerules =                            ({-# LINE 157 "src-ag/KWOrder.ag" #-}                             _hdIerules : _tlIerules-                            {-# LINE 2660 "dist/build/KWOrder" #-}+                            {-# LINE 2714 "dist/build/KWOrder" #-}                             )                        -- use rule "src-ag/KWOrder.ag"(line 189, column 36)                        _lhsOvertices =                            ({-# LINE 189 "src-ag/KWOrder.ag" #-}                             _hdIvertices `Set.union` _tlIvertices-                            {-# LINE 2666 "dist/build/KWOrder" #-}+                            {-# LINE 2720 "dist/build/KWOrder" #-}                             )                        -- copy rule (up)                        _lhsOrulenumber =                            ({-# LINE 41 "src-ag/KWOrder.ag" #-}                             _tlIrulenumber-                            {-# LINE 2672 "dist/build/KWOrder" #-}+                            {-# LINE 2726 "dist/build/KWOrder" #-}                             )                        -- copy rule (down)                        _hdOrulenumber =                            ({-# LINE 41 "src-ag/KWOrder.ag" #-}                             _lhsIrulenumber-                            {-# LINE 2678 "dist/build/KWOrder" #-}+                            {-# LINE 2732 "dist/build/KWOrder" #-}                             )                        -- copy rule (chain)                        _tlOrulenumber =                            ({-# LINE 41 "src-ag/KWOrder.ag" #-}                             _hdIrulenumber-                            {-# LINE 2684 "dist/build/KWOrder" #-}+                            {-# LINE 2738 "dist/build/KWOrder" #-}                             )                        ( _hdIedges,_hdIerules,_hdIrulenumber,_hdIvertices) =                            hd_ _hdOrulenumber                        ( _tlIedges,_tlIerules,_tlIrulenumber,_tlIvertices) =                            tl_ _tlOrulenumber+                       ___node =+                           (Syn_Rules _lhsOedges _lhsOerules _lhsOrulenumber _lhsOvertices)                    in  ( _lhsOedges,_lhsOerules,_lhsOrulenumber,_lhsOvertices)))) sem_Rules_Nil :: T_Rules sem_Rules_Nil =@@ -2698,26 +2754,28 @@                        _lhsOedges =                            ({-# LINE 233 "src-ag/KWOrder.ag" #-}                             Set.empty-                            {-# LINE 2702 "dist/build/KWOrder" #-}+                            {-# LINE 2758 "dist/build/KWOrder" #-}                             )                        -- use rule "src-ag/KWOrder.ag"(line 157, column 25)                        _lhsOerules =                            ({-# LINE 157 "src-ag/KWOrder.ag" #-}                             []-                            {-# LINE 2708 "dist/build/KWOrder" #-}+                            {-# LINE 2764 "dist/build/KWOrder" #-}                             )                        -- use rule "src-ag/KWOrder.ag"(line 189, column 36)                        _lhsOvertices =                            ({-# LINE 189 "src-ag/KWOrder.ag" #-}                             Set.empty-                            {-# LINE 2714 "dist/build/KWOrder" #-}+                            {-# LINE 2770 "dist/build/KWOrder" #-}                             )                        -- copy rule (chain)                        _lhsOrulenumber =                            ({-# LINE 41 "src-ag/KWOrder.ag" #-}                             _lhsIrulenumber-                            {-# LINE 2720 "dist/build/KWOrder" #-}+                            {-# LINE 2776 "dist/build/KWOrder" #-}                             )+                       ___node =+                           (Syn_Rules _lhsOedges _lhsOerules _lhsOrulenumber _lhsOvertices)                    in  ( _lhsOedges,_lhsOerules,_lhsOrulenumber,_lhsOvertices)))) -- TypeSig ----------------------------------------------------- {-@@ -2753,8 +2811,10 @@                     _lhsOlocalSigMap =                         ({-# LINE 389 "src-ag/KWOrder.ag" #-}                          Map.singleton name_ tp_-                         {-# LINE 2757 "dist/build/KWOrder" #-}+                         {-# LINE 2815 "dist/build/KWOrder" #-}                          )+                    ___node =+                        (Syn_TypeSig _lhsOlocalSigMap)                 in  ( _lhsOlocalSigMap))) -- TypeSigs ---------------------------------------------------- {-@@ -2793,12 +2853,14 @@                      _lhsOlocalSigMap =                          ({-# LINE 385 "src-ag/KWOrder.ag" #-}                           _hdIlocalSigMap `Map.union` _tlIlocalSigMap-                          {-# LINE 2797 "dist/build/KWOrder" #-}+                          {-# LINE 2857 "dist/build/KWOrder" #-}                           )                      ( _hdIlocalSigMap) =                          hd_                      ( _tlIlocalSigMap) =                          tl_+                     ___node =+                         (Syn_TypeSigs _lhsOlocalSigMap)                  in  ( _lhsOlocalSigMap))) sem_TypeSigs_Nil :: T_TypeSigs sem_TypeSigs_Nil =@@ -2807,6 +2869,8 @@                      _lhsOlocalSigMap =                          ({-# LINE 385 "src-ag/KWOrder.ag" #-}                           Map.empty-                          {-# LINE 2811 "dist/build/KWOrder" #-}+                          {-# LINE 2873 "dist/build/KWOrder" #-}                           )+                     ___node =+                         (Syn_TypeSigs _lhsOlocalSigMap)                  in  ( _lhsOlocalSigMap)))
src-derived/Order.hs view
@@ -426,5259 +426,5307 @@                             _gathRules                             {-# LINE 428 "dist/build/Order" #-}                             )-                   in  ( _lhsOattributes,_lhsOcollectChildrenInhs,_lhsOcollectChildrenSyns,_lhsOerrors,_lhsOfield,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinhs,_lhsOnts,_lhsOsinglevisits,_lhsOterminals))))--- Children -----------------------------------------------------{--   visit 0:-      inherited attributes:-         allfields            : [(Identifier,Type,ChildKind)]-         allnts               : [Identifier]-         attrs                : [(Identifier,Identifier)]-         con                  : Identifier-         inh                  : Attributes-         inhMap               : Map Identifier Attributes-         mergeMap             : Map Identifier (Identifier,[Identifier])-         nt                   : Identifier-         o_unbox              : Bool-         syn                  : Attributes-         synMap               : Map Identifier Attributes-      synthesized attributes:-         attributes           : [(Identifier,Attributes,Attributes)]-         collectChildrenInhs  : Map Identifier Attributes -         collectChildrenSyns  : Map Identifier Attributes -         errors               : Seq Error-         fields               : [(Identifier,Type,ChildKind)]-         gathAltAttrs         : [AltAttr]-         gathRules            : Seq CRule-         inhs                 : Seq (Identifier,Attributes)-         nts                  : Seq (Identifier,NontermIdent)-         singlevisits         : [CRule]-         terminals            : [Identifier]-   alternatives:-      alternative Cons:-         child hd             : Child -         child tl             : Children -      alternative Nil:--}--- cata-sem_Children :: Children ->-                T_Children-sem_Children list =-    (Prelude.foldr sem_Children_Cons sem_Children_Nil (Prelude.map sem_Child list))--- semantic domain-newtype T_Children = T_Children (([(Identifier,Type,ChildKind)]) ->-                                 ([Identifier]) ->-                                 ([(Identifier,Identifier)]) ->-                                 Identifier ->-                                 Attributes ->-                                 (Map Identifier Attributes) ->-                                 (Map Identifier (Identifier,[Identifier])) ->-                                 Identifier ->-                                 Bool ->-                                 Attributes ->-                                 (Map Identifier Attributes) ->-                                 ( ([(Identifier,Attributes,Attributes)]),(Map Identifier Attributes ),(Map Identifier Attributes ),(Seq Error),([(Identifier,Type,ChildKind)]),([AltAttr]),(Seq CRule),(Seq (Identifier,Attributes)),(Seq (Identifier,NontermIdent)),([CRule]),([Identifier])))-data Inh_Children = Inh_Children {allfields_Inh_Children :: !(([(Identifier,Type,ChildKind)])),allnts_Inh_Children :: !(([Identifier])),attrs_Inh_Children :: !(([(Identifier,Identifier)])),con_Inh_Children :: !(Identifier),inh_Inh_Children :: !(Attributes),inhMap_Inh_Children :: !((Map Identifier Attributes)),mergeMap_Inh_Children :: !((Map Identifier (Identifier,[Identifier]))),nt_Inh_Children :: !(Identifier),o_unbox_Inh_Children :: !(Bool),syn_Inh_Children :: !(Attributes),synMap_Inh_Children :: !((Map Identifier Attributes))}-data Syn_Children = Syn_Children {attributes_Syn_Children :: !(([(Identifier,Attributes,Attributes)])),collectChildrenInhs_Syn_Children :: !((Map Identifier Attributes )),collectChildrenSyns_Syn_Children :: !((Map Identifier Attributes )),errors_Syn_Children :: !((Seq Error)),fields_Syn_Children :: !(([(Identifier,Type,ChildKind)])),gathAltAttrs_Syn_Children :: !(([AltAttr])),gathRules_Syn_Children :: !((Seq CRule)),inhs_Syn_Children :: !((Seq (Identifier,Attributes))),nts_Syn_Children :: !((Seq (Identifier,NontermIdent))),singlevisits_Syn_Children :: !(([CRule])),terminals_Syn_Children :: !(([Identifier]))}-wrap_Children :: T_Children ->-                 Inh_Children ->-                 Syn_Children-wrap_Children (T_Children sem) (Inh_Children _lhsIallfields _lhsIallnts _lhsIattrs _lhsIcon _lhsIinh _lhsIinhMap _lhsImergeMap _lhsInt _lhsIo_unbox _lhsIsyn _lhsIsynMap) =-    (let ( _lhsOattributes,_lhsOcollectChildrenInhs,_lhsOcollectChildrenSyns,_lhsOerrors,_lhsOfields,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinhs,_lhsOnts,_lhsOsinglevisits,_lhsOterminals) = sem _lhsIallfields _lhsIallnts _lhsIattrs _lhsIcon _lhsIinh _lhsIinhMap _lhsImergeMap _lhsInt _lhsIo_unbox _lhsIsyn _lhsIsynMap-     in  (Syn_Children _lhsOattributes _lhsOcollectChildrenInhs _lhsOcollectChildrenSyns _lhsOerrors _lhsOfields _lhsOgathAltAttrs _lhsOgathRules _lhsOinhs _lhsOnts _lhsOsinglevisits _lhsOterminals))-sem_Children_Cons :: T_Child ->-                     T_Children ->-                     T_Children-sem_Children_Cons (T_Child hd_) (T_Children tl_) =-    (T_Children (\ _lhsIallfields-                   _lhsIallnts-                   _lhsIattrs-                   _lhsIcon-                   _lhsIinh-                   _lhsIinhMap-                   _lhsImergeMap-                   _lhsInt-                   _lhsIo_unbox-                   _lhsIsyn-                   _lhsIsynMap ->-                     (let _lhsOfields :: ([(Identifier,Type,ChildKind)])-                          _lhsOattributes :: ([(Identifier,Attributes,Attributes)])-                          _lhsOcollectChildrenInhs :: (Map Identifier Attributes )-                          _lhsOcollectChildrenSyns :: (Map Identifier Attributes )-                          _lhsOerrors :: (Seq Error)-                          _lhsOgathAltAttrs :: ([AltAttr])-                          _lhsOgathRules :: (Seq CRule)-                          _lhsOinhs :: (Seq (Identifier,Attributes))-                          _lhsOnts :: (Seq (Identifier,NontermIdent))-                          _lhsOsinglevisits :: ([CRule])-                          _lhsOterminals :: ([Identifier])-                          _hdOallfields :: ([(Identifier,Type,ChildKind)])-                          _hdOallnts :: ([Identifier])-                          _hdOattrs :: ([(Identifier,Identifier)])-                          _hdOcon :: Identifier-                          _hdOinh :: Attributes-                          _hdOinhMap :: (Map Identifier Attributes)-                          _hdOmergeMap :: (Map Identifier (Identifier,[Identifier]))-                          _hdOnt :: Identifier-                          _hdOo_unbox :: Bool-                          _hdOsyn :: Attributes-                          _hdOsynMap :: (Map Identifier Attributes)-                          _tlOallfields :: ([(Identifier,Type,ChildKind)])-                          _tlOallnts :: ([Identifier])-                          _tlOattrs :: ([(Identifier,Identifier)])-                          _tlOcon :: Identifier-                          _tlOinh :: Attributes-                          _tlOinhMap :: (Map Identifier Attributes)-                          _tlOmergeMap :: (Map Identifier (Identifier,[Identifier]))-                          _tlOnt :: Identifier-                          _tlOo_unbox :: Bool-                          _tlOsyn :: Attributes-                          _tlOsynMap :: (Map Identifier Attributes)-                          _hdIattributes :: ([(Identifier,Attributes,Attributes)])-                          _hdIcollectChildrenInhs :: (Map Identifier Attributes )-                          _hdIcollectChildrenSyns :: (Map Identifier Attributes )-                          _hdIerrors :: (Seq Error)-                          _hdIfield :: ((Identifier,Type,ChildKind))-                          _hdIgathAltAttrs :: ([AltAttr])-                          _hdIgathRules :: (Seq CRule)-                          _hdIinhs :: (Seq (Identifier,Attributes))-                          _hdInts :: (Seq (Identifier,NontermIdent))-                          _hdIsinglevisits :: ([CRule])-                          _hdIterminals :: ([Identifier])-                          _tlIattributes :: ([(Identifier,Attributes,Attributes)])-                          _tlIcollectChildrenInhs :: (Map Identifier Attributes )-                          _tlIcollectChildrenSyns :: (Map Identifier Attributes )-                          _tlIerrors :: (Seq Error)-                          _tlIfields :: ([(Identifier,Type,ChildKind)])-                          _tlIgathAltAttrs :: ([AltAttr])-                          _tlIgathRules :: (Seq CRule)-                          _tlIinhs :: (Seq (Identifier,Attributes))-                          _tlInts :: (Seq (Identifier,NontermIdent))-                          _tlIsinglevisits :: ([CRule])-                          _tlIterminals :: ([Identifier])-                          -- "src-ag/Order.ag"(line 675, column 11)-                          _lhsOfields =-                              ({-# LINE 675 "src-ag/Order.ag" #-}-                               _hdIfield : _tlIfields-                               {-# LINE 564 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 666, column 32)-                          _lhsOattributes =-                              ({-# LINE 666 "src-ag/Order.ag" #-}-                               _hdIattributes ++ _tlIattributes-                               {-# LINE 570 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 343, column 68)-                          _lhsOcollectChildrenInhs =-                              ({-# LINE 343 "src-ag/Order.ag" #-}-                               _hdIcollectChildrenInhs `Map.union` _tlIcollectChildrenInhs-                               {-# LINE 576 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 343, column 68)-                          _lhsOcollectChildrenSyns =-                              ({-# LINE 343 "src-ag/Order.ag" #-}-                               _hdIcollectChildrenSyns `Map.union` _tlIcollectChildrenSyns-                               {-# LINE 582 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 85, column 70)-                          _lhsOerrors =-                              ({-# LINE 85 "src-ag/Order.ag" #-}-                               _hdIerrors Seq.>< _tlIerrors-                               {-# LINE 588 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 171, column 68)-                          _lhsOgathAltAttrs =-                              ({-# LINE 171 "src-ag/Order.ag" #-}-                               _hdIgathAltAttrs ++ _tlIgathAltAttrs-                               {-# LINE 594 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 207, column 23)-                          _lhsOgathRules =-                              ({-# LINE 207 "src-ag/Order.ag" #-}-                               _hdIgathRules Seq.>< _tlIgathRules-                               {-# LINE 600 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 194, column 20)-                          _lhsOinhs =-                              ({-# LINE 194 "src-ag/Order.ag" #-}-                               _hdIinhs Seq.>< _tlIinhs-                               {-# LINE 606 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 193, column 19)-                          _lhsOnts =-                              ({-# LINE 193 "src-ag/Order.ag" #-}-                               _hdInts Seq.>< _tlInts-                               {-# LINE 612 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 612, column 40)-                          _lhsOsinglevisits =-                              ({-# LINE 612 "src-ag/Order.ag" #-}-                               _hdIsinglevisits ++ _tlIsinglevisits-                               {-# LINE 618 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 637, column 38)-                          _lhsOterminals =-                              ({-# LINE 637 "src-ag/Order.ag" #-}-                               _hdIterminals ++ _tlIterminals-                               {-# LINE 624 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOallfields =-                              ({-# LINE 655 "src-ag/Order.ag" #-}-                               _lhsIallfields-                               {-# LINE 630 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOallnts =-                              ({-# LINE 648 "src-ag/Order.ag" #-}-                               _lhsIallnts-                               {-# LINE 636 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOattrs =-                              ({-# LINE 655 "src-ag/Order.ag" #-}-                               _lhsIattrs-                               {-# LINE 642 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOcon =-                              ({-# LINE 91 "src-ag/Order.ag" #-}-                               _lhsIcon-                               {-# LINE 648 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOinh =-                              ({-# LINE 90 "src-ag/Order.ag" #-}-                               _lhsIinh-                               {-# LINE 654 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOinhMap =-                              ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}-                               _lhsIinhMap-                               {-# LINE 660 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOmergeMap =-                              ({-# LINE 361 "src-ag/Order.ag" #-}-                               _lhsImergeMap-                               {-# LINE 666 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOnt =-                              ({-# LINE 90 "src-ag/Order.ag" #-}-                               _lhsInt-                               {-# LINE 672 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOo_unbox =-                              ({-# LINE 120 "src-ag/Order.ag" #-}-                               _lhsIo_unbox-                               {-# LINE 678 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOsyn =-                              ({-# LINE 90 "src-ag/Order.ag" #-}-                               _lhsIsyn-                               {-# LINE 684 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOsynMap =-                              ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}-                               _lhsIsynMap-                               {-# LINE 690 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _tlOallfields =-                              ({-# LINE 655 "src-ag/Order.ag" #-}-                               _lhsIallfields-                               {-# LINE 696 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _tlOallnts =-                              ({-# LINE 648 "src-ag/Order.ag" #-}-                               _lhsIallnts-                               {-# LINE 702 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _tlOattrs =-                              ({-# LINE 655 "src-ag/Order.ag" #-}-                               _lhsIattrs-                               {-# LINE 708 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _tlOcon =-                              ({-# LINE 91 "src-ag/Order.ag" #-}-                               _lhsIcon-                               {-# LINE 714 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _tlOinh =-                              ({-# LINE 90 "src-ag/Order.ag" #-}-                               _lhsIinh-                               {-# LINE 720 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _tlOinhMap =-                              ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}-                               _lhsIinhMap-                               {-# LINE 726 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _tlOmergeMap =-                              ({-# LINE 361 "src-ag/Order.ag" #-}-                               _lhsImergeMap-                               {-# LINE 732 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _tlOnt =-                              ({-# LINE 90 "src-ag/Order.ag" #-}-                               _lhsInt-                               {-# LINE 738 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _tlOo_unbox =-                              ({-# LINE 120 "src-ag/Order.ag" #-}-                               _lhsIo_unbox-                               {-# LINE 744 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _tlOsyn =-                              ({-# LINE 90 "src-ag/Order.ag" #-}-                               _lhsIsyn-                               {-# LINE 750 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _tlOsynMap =-                              ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}-                               _lhsIsynMap-                               {-# LINE 756 "dist/build/Order" #-}-                               )-                          ( _hdIattributes,_hdIcollectChildrenInhs,_hdIcollectChildrenSyns,_hdIerrors,_hdIfield,_hdIgathAltAttrs,_hdIgathRules,_hdIinhs,_hdInts,_hdIsinglevisits,_hdIterminals) =-                              hd_ _hdOallfields _hdOallnts _hdOattrs _hdOcon _hdOinh _hdOinhMap _hdOmergeMap _hdOnt _hdOo_unbox _hdOsyn _hdOsynMap-                          ( _tlIattributes,_tlIcollectChildrenInhs,_tlIcollectChildrenSyns,_tlIerrors,_tlIfields,_tlIgathAltAttrs,_tlIgathRules,_tlIinhs,_tlInts,_tlIsinglevisits,_tlIterminals) =-                              tl_ _tlOallfields _tlOallnts _tlOattrs _tlOcon _tlOinh _tlOinhMap _tlOmergeMap _tlOnt _tlOo_unbox _tlOsyn _tlOsynMap-                      in  ( _lhsOattributes,_lhsOcollectChildrenInhs,_lhsOcollectChildrenSyns,_lhsOerrors,_lhsOfields,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinhs,_lhsOnts,_lhsOsinglevisits,_lhsOterminals))))-sem_Children_Nil :: T_Children-sem_Children_Nil =-    (T_Children (\ _lhsIallfields-                   _lhsIallnts-                   _lhsIattrs-                   _lhsIcon-                   _lhsIinh-                   _lhsIinhMap-                   _lhsImergeMap-                   _lhsInt-                   _lhsIo_unbox-                   _lhsIsyn-                   _lhsIsynMap ->-                     (let _lhsOfields :: ([(Identifier,Type,ChildKind)])-                          _lhsOattributes :: ([(Identifier,Attributes,Attributes)])-                          _lhsOcollectChildrenInhs :: (Map Identifier Attributes )-                          _lhsOcollectChildrenSyns :: (Map Identifier Attributes )-                          _lhsOerrors :: (Seq Error)-                          _lhsOgathAltAttrs :: ([AltAttr])-                          _lhsOgathRules :: (Seq CRule)-                          _lhsOinhs :: (Seq (Identifier,Attributes))-                          _lhsOnts :: (Seq (Identifier,NontermIdent))-                          _lhsOsinglevisits :: ([CRule])-                          _lhsOterminals :: ([Identifier])-                          -- "src-ag/Order.ag"(line 676, column 11)-                          _lhsOfields =-                              ({-# LINE 676 "src-ag/Order.ag" #-}-                               []-                               {-# LINE 791 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 666, column 32)-                          _lhsOattributes =-                              ({-# LINE 666 "src-ag/Order.ag" #-}-                               []-                               {-# LINE 797 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 343, column 68)-                          _lhsOcollectChildrenInhs =-                              ({-# LINE 343 "src-ag/Order.ag" #-}-                               Map.empty-                               {-# LINE 803 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 343, column 68)-                          _lhsOcollectChildrenSyns =-                              ({-# LINE 343 "src-ag/Order.ag" #-}-                               Map.empty-                               {-# LINE 809 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 85, column 70)-                          _lhsOerrors =-                              ({-# LINE 85 "src-ag/Order.ag" #-}-                               Seq.empty-                               {-# LINE 815 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 171, column 68)-                          _lhsOgathAltAttrs =-                              ({-# LINE 171 "src-ag/Order.ag" #-}-                               []-                               {-# LINE 821 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 207, column 23)-                          _lhsOgathRules =-                              ({-# LINE 207 "src-ag/Order.ag" #-}-                               Seq.empty-                               {-# LINE 827 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 194, column 20)-                          _lhsOinhs =-                              ({-# LINE 194 "src-ag/Order.ag" #-}-                               Seq.empty-                               {-# LINE 833 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 193, column 19)-                          _lhsOnts =-                              ({-# LINE 193 "src-ag/Order.ag" #-}-                               Seq.empty-                               {-# LINE 839 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 612, column 40)-                          _lhsOsinglevisits =-                              ({-# LINE 612 "src-ag/Order.ag" #-}-                               []-                               {-# LINE 845 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 637, column 38)-                          _lhsOterminals =-                              ({-# LINE 637 "src-ag/Order.ag" #-}-                               []-                               {-# LINE 851 "dist/build/Order" #-}-                               )-                      in  ( _lhsOattributes,_lhsOcollectChildrenInhs,_lhsOcollectChildrenSyns,_lhsOerrors,_lhsOfields,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinhs,_lhsOnts,_lhsOsinglevisits,_lhsOterminals))))--- Expression ---------------------------------------------------{--   visit 0:-      inherited attributes:-         allfields            : [(Identifier,Type,ChildKind)]-         allnts               : [Identifier]-         attrs                : [(Identifier,Identifier)]-         con                  : Identifier-         mergeMap             : Map Identifier (Identifier,[Identifier])-         nt                   : Identifier-      synthesized attributes:-         allRhsVars           : Set (Identifier,Identifier)-         copy                 : Expression -         errors               : Seq Error-         textLines            : [String]-         usedAttrs            : [(Identifier,Identifier)]-         usedFields           : [Identifier]-         usedLocals           : [Identifier]-   alternatives:-      alternative Expression:-         child pos            : {Pos}-         child tks            : {[HsToken]}-         visit 0:-            local textLines   : _-            local usedAttrs   : _-            local usedLocals  : _-            local usedFields  : _-            local copy        : _--}--- cata-sem_Expression :: Expression ->-                  T_Expression-sem_Expression (Expression _pos _tks) =-    (sem_Expression_Expression _pos _tks)--- semantic domain-newtype T_Expression = T_Expression (([(Identifier,Type,ChildKind)]) ->-                                     ([Identifier]) ->-                                     ([(Identifier,Identifier)]) ->-                                     Identifier ->-                                     (Map Identifier (Identifier,[Identifier])) ->-                                     Identifier ->-                                     ( (Set (Identifier,Identifier)),Expression,(Seq Error),([String]),([(Identifier,Identifier)]),([Identifier]),([Identifier])))-data Inh_Expression = Inh_Expression {allfields_Inh_Expression :: !(([(Identifier,Type,ChildKind)])),allnts_Inh_Expression :: !(([Identifier])),attrs_Inh_Expression :: !(([(Identifier,Identifier)])),con_Inh_Expression :: !(Identifier),mergeMap_Inh_Expression :: !((Map Identifier (Identifier,[Identifier]))),nt_Inh_Expression :: !(Identifier)}-data Syn_Expression = Syn_Expression {allRhsVars_Syn_Expression :: !((Set (Identifier,Identifier))),copy_Syn_Expression :: !(Expression),errors_Syn_Expression :: !((Seq Error)),textLines_Syn_Expression :: !(([String])),usedAttrs_Syn_Expression :: !(([(Identifier,Identifier)])),usedFields_Syn_Expression :: !(([Identifier])),usedLocals_Syn_Expression :: !(([Identifier]))}-wrap_Expression :: T_Expression ->-                   Inh_Expression ->-                   Syn_Expression-wrap_Expression (T_Expression sem) (Inh_Expression _lhsIallfields _lhsIallnts _lhsIattrs _lhsIcon _lhsImergeMap _lhsInt) =-    (let ( _lhsOallRhsVars,_lhsOcopy,_lhsOerrors,_lhsOtextLines,_lhsOusedAttrs,_lhsOusedFields,_lhsOusedLocals) = sem _lhsIallfields _lhsIallnts _lhsIattrs _lhsIcon _lhsImergeMap _lhsInt-     in  (Syn_Expression _lhsOallRhsVars _lhsOcopy _lhsOerrors _lhsOtextLines _lhsOusedAttrs _lhsOusedFields _lhsOusedLocals))-sem_Expression_Expression :: Pos ->-                             ([HsToken]) ->-                             T_Expression-sem_Expression_Expression pos_ tks_ =-    (T_Expression (\ _lhsIallfields-                     _lhsIallnts-                     _lhsIattrs-                     _lhsIcon-                     _lhsImergeMap-                     _lhsInt ->-                       (let _lhsOerrors :: (Seq Error)-                            _lhsOallRhsVars :: (Set (Identifier,Identifier))-                            _lhsOcopy :: Expression-                            _lhsOtextLines :: ([String])-                            _lhsOusedAttrs :: ([(Identifier,Identifier)])-                            _lhsOusedFields :: ([Identifier])-                            _lhsOusedLocals :: ([Identifier])-                            -- "src-ag/Order.ag"(line 465, column 21)-                            (_textLines,_usedAttrs,_usedLocals,_usedFields) =-                                ({-# LINE 465 "src-ag/Order.ag" #-}-                                 let mergedChildren = [ x | (_,xs) <- Map.elems _lhsImergeMap, x <- xs ]-                                     attrsIn = filter (\(fld,_) -> not (fld `elem` mergedChildren)) _lhsIattrs-                                     inherited = Inh_HsTokensRoot-                                                 { attrs_Inh_HsTokensRoot      = attrsIn-                                                 , con_Inh_HsTokensRoot        = _lhsIcon-                                                 , allfields_Inh_HsTokensRoot  = _lhsIallfields-                                                 , allnts_Inh_HsTokensRoot     = _lhsIallnts-                                                 , nt_Inh_HsTokensRoot         = _lhsInt-                                                 }-                                     synthesized = wrap_HsTokensRoot (sem_HsTokensRoot (HsTokensRoot tks_)) inherited-                                 in case synthesized of-                                      Syn_HsTokensRoot-                                       { textLines_Syn_HsTokensRoot  = textLines-                                       , usedAttrs_Syn_HsTokensRoot  = usedAttrs-                                       , usedLocals_Syn_HsTokensRoot = usedLocals-                                       , usedFields_Syn_HsTokensRoot = usedFields-                                       }  -> let extraAttrs = [ (src,attr)-                                                              | (fld,attr) <- usedAttrs, let mbMerged = Map.lookup fld _lhsImergeMap, isJust mbMerged-                                                              , let (Just (_, srcs)) = mbMerged, src <- srcs ]-                                                 usedAttrs' = usedAttrs ++ extraAttrs-                                             in (textLines,usedAttrs',usedLocals,usedFields)-                                 {-# LINE 945 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 488, column 17)-                            _lhsOerrors =-                                ({-# LINE 488 "src-ag/Order.ag" #-}-                                 Seq.empty-                                 {-# LINE 951 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 489, column 17)-                            _lhsOallRhsVars =-                                ({-# LINE 489 "src-ag/Order.ag" #-}-                                 Set.fromList _usedAttrs-                                 `Set.union`-                                 Set.fromList [ (_LOC, l) | l <- _usedLocals    ]-                                 `Set.union`-                                 Set.fromList [ (_FIELD, fld) | fld <- _usedFields    ]-                                 {-# LINE 961 "dist/build/Order" #-}-                                 )-                            -- self rule-                            _copy =-                                ({-# LINE 456 "src-ag/Order.ag" #-}-                                 Expression pos_ tks_-                                 {-# LINE 967 "dist/build/Order" #-}-                                 )-                            -- self rule-                            _lhsOcopy =-                                ({-# LINE 456 "src-ag/Order.ag" #-}-                                 _copy-                                 {-# LINE 973 "dist/build/Order" #-}-                                 )-                            -- copy rule (from local)-                            _lhsOtextLines =-                                ({-# LINE 455 "src-ag/Order.ag" #-}-                                 _textLines-                                 {-# LINE 979 "dist/build/Order" #-}-                                 )-                            -- copy rule (from local)-                            _lhsOusedAttrs =-                                ({-# LINE 453 "src-ag/Order.ag" #-}-                                 _usedAttrs-                                 {-# LINE 985 "dist/build/Order" #-}-                                 )-                            -- copy rule (from local)-                            _lhsOusedFields =-                                ({-# LINE 454 "src-ag/Order.ag" #-}-                                 _usedFields-                                 {-# LINE 991 "dist/build/Order" #-}-                                 )-                            -- copy rule (from local)-                            _lhsOusedLocals =-                                ({-# LINE 452 "src-ag/Order.ag" #-}-                                 _usedLocals-                                 {-# LINE 997 "dist/build/Order" #-}-                                 )-                        in  ( _lhsOallRhsVars,_lhsOcopy,_lhsOerrors,_lhsOtextLines,_lhsOusedAttrs,_lhsOusedFields,_lhsOusedLocals))))--- Grammar ------------------------------------------------------{--   visit 0:-      inherited attribute:-         options              : Options-      synthesized attributes:-         errors               : Seq Error-         nAutoRules           : Int-         nExplicitRules       : Int-         output               : CGrammar-   alternatives:-      alternative Grammar:-         child typeSyns       : {TypeSyns}-         child useMap         : {UseMap}-         child derivings      : {Derivings}-         child wrappers       : {Set NontermIdent}-         child nonts          : Nonterminals -         child pragmas        : {PragmaMap}-         child manualAttrOrderMap : {AttrOrderMap}-         child paramMap       : {ParamMap}-         child contextMap     : {ContextMap}-         child quantMap       : {QuantMap}-         child uniqueMap      : {UniqueMap}-         child augmentsMap    : {Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))}-         child aroundsMap     : {Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))}-         child mergeMap       : {Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression)))}-         visit 0:-            local o_dovisit   : _-            local ruleTable   : _-            local attrTable   : _-            local attrVertex  : _-            local tdpToTds    : _-            local tdsToTdp    : _-            local directDep   : _-            local instDep     : _-            local aroundDep   : _-            local mergeDep    : _-            local info        : _-            local cInterfaceMap : _-            local cVisitsMap  : _-            local cyclesErrors : _-            local aroundMap   : _-            local mergeMap    : _--}--- cata-sem_Grammar :: Grammar ->-               T_Grammar-sem_Grammar (Grammar _typeSyns _useMap _derivings _wrappers _nonts _pragmas _manualAttrOrderMap _paramMap _contextMap _quantMap _uniqueMap _augmentsMap _aroundsMap _mergeMap) =-    (sem_Grammar_Grammar _typeSyns _useMap _derivings _wrappers (sem_Nonterminals _nonts) _pragmas _manualAttrOrderMap _paramMap _contextMap _quantMap _uniqueMap _augmentsMap _aroundsMap _mergeMap)--- semantic domain-newtype T_Grammar = T_Grammar (Options ->-                               ( (Seq Error),Int,Int,CGrammar))-data Inh_Grammar = Inh_Grammar {options_Inh_Grammar :: !(Options)}-data Syn_Grammar = Syn_Grammar {errors_Syn_Grammar :: !((Seq Error)),nAutoRules_Syn_Grammar :: !(Int),nExplicitRules_Syn_Grammar :: !(Int),output_Syn_Grammar :: !(CGrammar)}-wrap_Grammar :: T_Grammar ->-                Inh_Grammar ->-                Syn_Grammar-wrap_Grammar (T_Grammar sem) (Inh_Grammar _lhsIoptions) =-    (let ( _lhsOerrors,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOoutput) = sem _lhsIoptions-     in  (Syn_Grammar _lhsOerrors _lhsOnAutoRules _lhsOnExplicitRules _lhsOoutput))-sem_Grammar_Grammar :: TypeSyns ->-                       UseMap ->-                       Derivings ->-                       (Set NontermIdent) ->-                       T_Nonterminals ->-                       PragmaMap ->-                       AttrOrderMap ->-                       ParamMap ->-                       ContextMap ->-                       QuantMap ->-                       UniqueMap ->-                       (Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))) ->-                       (Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))) ->-                       (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression)))) ->-                       T_Grammar-sem_Grammar_Grammar typeSyns_ useMap_ derivings_ wrappers_ (T_Nonterminals nonts_) pragmas_ manualAttrOrderMap_ paramMap_ contextMap_ quantMap_ uniqueMap_ augmentsMap_ aroundsMap_ mergeMap_ =-    (T_Grammar (\ _lhsIoptions ->-                    (let _nontsOo_cata :: Bool-                         _nontsOo_data :: Bool-                         _nontsOo_sig :: Bool-                         _nontsOo_sem :: Bool-                         _nontsOo_rename :: Bool-                         _nontsOo_newtypes :: Bool-                         _nontsOo_wantvisit :: Bool-                         _nontsOo_unbox :: Bool-                         _nontsOo_case :: Bool-                         _nontsOprefix :: String-                         _nontsOvcount :: Int-                         _nontsOmanualAttrDepMap :: AttrOrderMap-                         _nontsOaroundMap :: (Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression])))-                         _nontsOacount :: Int-                         _lhsOerrors :: (Seq Error)-                         _lhsOoutput :: CGrammar-                         _nontsOallnts :: ([Identifier])-                         _nontsOinhMap :: (Map Identifier Attributes)-                         _nontsOsynMap :: (Map Identifier Attributes)-                         _lhsOnAutoRules :: Int-                         _lhsOnExplicitRules :: Int-                         _nontsOcInterfaceMap :: CInterfaceMap-                         _nontsOcVisitsMap :: CVisitsMap-                         _nontsOmergeMap :: (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))))-                         _nontsOo_dovisit :: Bool-                         _nontsIacount :: Int-                         _nontsIadditionalDep :: (Seq Edge)-                         _nontsIaranges :: (Seq (Int,Int,Int))-                         _nontsIaroundDep :: (Seq Edge)-                         _nontsIcNonterminals :: CNonterminals-                         _nontsIdirectDep :: (Seq Edge)-                         _nontsIerrors :: (Seq Error)-                         _nontsIinhMap' :: (Map Identifier Attributes)-                         _nontsIinstDep :: (Seq Edge)-                         _nontsImergeDep :: (Seq Edge)-                         _nontsInAutoRules :: Int-                         _nontsInExplicitRules :: Int-                         _nontsInonts :: ([(NontermIdent,[ConstructorIdent])])-                         _nontsIntattrs :: (Seq (Vertex,NTAttr))-                         _nontsIrules :: (Seq (Vertex,CRule))-                         _nontsIsynMap' :: (Map Identifier Attributes)-                         _nontsIvcount :: Int-                         -- "src-ag/Order.ag"(line 124, column 17)-                         _o_dovisit =-                             ({-# LINE 124 "src-ag/Order.ag" #-}-                              visit     _lhsIoptions && null _cyclesErrors-                              {-# LINE 1123 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 125, column 17)-                         _nontsOo_cata =-                             ({-# LINE 125 "src-ag/Order.ag" #-}-                              folds     _lhsIoptions-                              {-# LINE 1129 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 125, column 17)-                         _nontsOo_data =-                             ({-# LINE 126 "src-ag/Order.ag" #-}-                              dataTypes _lhsIoptions-                              {-# LINE 1135 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 125, column 17)-                         _nontsOo_sig =-                             ({-# LINE 127 "src-ag/Order.ag" #-}-                              typeSigs  _lhsIoptions-                              {-# LINE 1141 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 125, column 17)-                         _nontsOo_sem =-                             ({-# LINE 128 "src-ag/Order.ag" #-}-                              semfuns   _lhsIoptions-                              {-# LINE 1147 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 125, column 17)-                         _nontsOo_rename =-                             ({-# LINE 129 "src-ag/Order.ag" #-}-                              rename    _lhsIoptions-                              {-# LINE 1153 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 125, column 17)-                         _nontsOo_newtypes =-                             ({-# LINE 130 "src-ag/Order.ag" #-}-                              newtypes  _lhsIoptions-                              {-# LINE 1159 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 125, column 17)-                         _nontsOo_wantvisit =-                             ({-# LINE 131 "src-ag/Order.ag" #-}-                              visit   _lhsIoptions-                              {-# LINE 1165 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 125, column 17)-                         _nontsOo_unbox =-                             ({-# LINE 132 "src-ag/Order.ag" #-}-                              unbox     _lhsIoptions-                              {-# LINE 1171 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 125, column 17)-                         _nontsOo_case =-                             ({-# LINE 133 "src-ag/Order.ag" #-}-                              cases     _lhsIoptions-                              {-# LINE 1177 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 125, column 17)-                         _nontsOprefix =-                             ({-# LINE 134 "src-ag/Order.ag" #-}-                              prefix    _lhsIoptions-                              {-# LINE 1183 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 260, column 15)-                         _nontsOvcount =-                             ({-# LINE 260 "src-ag/Order.ag" #-}-                              0-                              {-# LINE 1189 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 286, column 7)-                         _nontsOmanualAttrDepMap =-                             ({-# LINE 286 "src-ag/Order.ag" #-}-                              manualAttrOrderMap_-                              {-# LINE 1195 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 415, column 14)-                         _nontsOaroundMap =-                             ({-# LINE 415 "src-ag/Order.ag" #-}-                              aroundsMap_-                              {-# LINE 1201 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 504, column 13)-                         _nontsOacount =-                             ({-# LINE 504 "src-ag/Order.ag" #-}-                              0-                              {-# LINE 1207 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 542, column 13)-                         _ruleTable =-                             ({-# LINE 542 "src-ag/Order.ag" #-}-                              Array.array (0,_nontsIvcount-1) (toList _nontsIrules)-                              {-# LINE 1213 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 543, column 13)-                         _attrTable =-                             ({-# LINE 543 "src-ag/Order.ag" #-}-                              Array.array (0,_nontsIacount-1) (toList _nontsIntattrs)-                              {-# LINE 1219 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 544, column 13)-                         _attrVertex =-                             ({-# LINE 544 "src-ag/Order.ag" #-}-                              Map.fromList (map swap (toList _nontsIntattrs))-                              {-# LINE 1225 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 545, column 13)-                         _tdpToTds =-                             ({-# LINE 545 "src-ag/Order.ag" #-}-                              [ (s, maybe (-1) (\v -> findWithErr1 "Grammar.tdpToTds" v _attrVertex) (ntattr cr))-                              | (s,cr) <- toList _nontsIrules]-                              {-# LINE 1232 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 547, column 13)-                         _tdsToTdp =-                             ({-# LINE 547 "src-ag/Order.ag" #-}-                              let  eq (_,v) (_,v') = v == v'-                                   conv ((s,v):svs)  | v == -1 = Nothing-                                                     | otherwise = Just (v,s:map fst svs)-                              in mapMaybe conv (eqClasses eq _tdpToTds)-                              {-# LINE 1241 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 551, column 13)-                         _directDep =-                             ({-# LINE 551 "src-ag/Order.ag" #-}-                              toList (_nontsIdirectDep Seq.>< _nontsIadditionalDep)-                              {-# LINE 1247 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 552, column 13)-                         _instDep =-                             ({-# LINE 552 "src-ag/Order.ag" #-}-                              toList _nontsIinstDep-                              {-# LINE 1253 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 553, column 13)-                         _aroundDep =-                             ({-# LINE 553 "src-ag/Order.ag" #-}-                              toList _nontsIaroundDep-                              {-# LINE 1259 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 554, column 13)-                         _mergeDep =-                             ({-# LINE 554 "src-ag/Order.ag" #-}-                              toList _nontsImergeDep-                              {-# LINE 1265 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 555, column 13)-                         _info =-                             ({-# LINE 555 "src-ag/Order.ag" #-}-                              let def [] = -1-                                  def (v:vs) = v-                               in Info { tdsToTdp   = Array.array (0,_nontsIacount-1) _tdsToTdp-                                       , tdpToTds   = Array.array (0,_nontsIvcount-1) _tdpToTds-                                       , attrTable  = _attrTable-                                       , ruleTable  = _ruleTable-                                       , lmh        = toList _nontsIaranges-                                       , nonts      = _nontsInonts-                                       , wraps      = wrappers_-                                       }-                              {-# LINE 1280 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 566, column 17)-                         (_cInterfaceMap,_cVisitsMap,_cyclesErrors) =-                             ({-# LINE 566 "src-ag/Order.ag" #-}-                              case computeSequential _info _directDep (_instDep ++ _aroundDep ++ _mergeDep    ) of-                                           CycleFree    cim cvm   -> ( cim-                                                                     , cvm-                                                                     , []-                                                                     )-                                           LocalCycle   errs      -> ( error "No interfaces for AG with local cycles"-                                                                     , error "No visit sub-sequences for AG with local cycles"-                                                                     , map (localCycleErr _ruleTable (visit _lhsIoptions)) errs-                                                                     )-                                           InstCycle    errs      -> ( error "No interfaces for AG with cycles through insts"-                                                                     , error "No visit sub-sequences for AG with cycles through insts"-                                                                     , map (instCycleErr _ruleTable (visit _lhsIoptions)) errs-                                                                     )-                                           DirectCycle  errs      -> ( error "No interfaces for AG with direct cycles"-                                                                     , error "No visit sub-sequences for AG with direct cycles"-                                                                     , directCycleErrs _attrTable _ruleTable (visit _lhsIoptions) errs-                                                                     )-                                           InducedCycle cim errs ->  ( cim-                                                                     , error "No visit sub-sequences for AG with induced cycles"-                                                                     , inducedCycleErrs _attrTable _ruleTable cim errs-                                                                     )-                              {-# LINE 1306 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 588, column 13)-                         _lhsOerrors =-                             ({-# LINE 588 "src-ag/Order.ag" #-}-                              (if withCycle _lhsIoptions then Seq.fromList _cyclesErrors else Seq.empty)-                               Seq.>< _nontsIerrors-                              {-# LINE 1313 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 620, column 15)-                         _lhsOoutput =-                             ({-# LINE 620 "src-ag/Order.ag" #-}-                              CGrammar typeSyns_ derivings_ wrappers_ _nontsIcNonterminals pragmas_ paramMap_ contextMap_ quantMap_ _aroundMap     _mergeMap     _o_dovisit-                              {-# LINE 1319 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 633, column 14)-                         _aroundMap =-                             ({-# LINE 633 "src-ag/Order.ag" #-}-                              Map.map (Map.map Map.keysSet) aroundsMap_-                              {-# LINE 1325 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 634, column 14)-                         _mergeMap =-                             ({-# LINE 634 "src-ag/Order.ag" #-}-                              Map.map (Map.map (Map.map (\(nt,srcs,_) -> (nt,srcs)))) mergeMap_-                              {-# LINE 1331 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 651, column 13)-                         _nontsOallnts =-                             ({-# LINE 651 "src-ag/Order.ag" #-}-                              map fst (_nontsInonts)-                              {-# LINE 1337 "dist/build/Order" #-}-                              )-                         -- "src-ag/DistChildAttr.ag"(line 15, column 13)-                         _nontsOinhMap =-                             ({-# LINE 15 "src-ag/DistChildAttr.ag" #-}-                              _nontsIinhMap'-                              {-# LINE 1343 "dist/build/Order" #-}-                              )-                         -- "src-ag/DistChildAttr.ag"(line 16, column 13)-                         _nontsOsynMap =-                             ({-# LINE 16 "src-ag/DistChildAttr.ag" #-}-                              _nontsIsynMap'-                              {-# LINE 1349 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 62, column 105)-                         _lhsOnAutoRules =-                             ({-# LINE 62 "src-ag/Order.ag" #-}-                              _nontsInAutoRules-                              {-# LINE 1355 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 62, column 105)-                         _lhsOnExplicitRules =-                             ({-# LINE 62 "src-ag/Order.ag" #-}-                              _nontsInExplicitRules-                              {-# LINE 1361 "dist/build/Order" #-}-                              )-                         -- copy rule (from local)-                         _nontsOcInterfaceMap =-                             ({-# LINE 595 "src-ag/Order.ag" #-}-                              _cInterfaceMap-                              {-# LINE 1367 "dist/build/Order" #-}-                              )-                         -- copy rule (from local)-                         _nontsOcVisitsMap =-                             ({-# LINE 602 "src-ag/Order.ag" #-}-                              _cVisitsMap-                              {-# LINE 1373 "dist/build/Order" #-}-                              )-                         -- copy rule (from local)-                         _nontsOmergeMap =-                             ({-# LINE 353 "src-ag/Order.ag" #-}-                              _mergeMap-                              {-# LINE 1379 "dist/build/Order" #-}-                              )-                         -- copy rule (from local)-                         _nontsOo_dovisit =-                             ({-# LINE 117 "src-ag/Order.ag" #-}-                              _o_dovisit-                              {-# LINE 1385 "dist/build/Order" #-}-                              )-                         ( _nontsIacount,_nontsIadditionalDep,_nontsIaranges,_nontsIaroundDep,_nontsIcNonterminals,_nontsIdirectDep,_nontsIerrors,_nontsIinhMap',_nontsIinstDep,_nontsImergeDep,_nontsInAutoRules,_nontsInExplicitRules,_nontsInonts,_nontsIntattrs,_nontsIrules,_nontsIsynMap',_nontsIvcount) =-                             nonts_ _nontsOacount _nontsOallnts _nontsOaroundMap _nontsOcInterfaceMap _nontsOcVisitsMap _nontsOinhMap _nontsOmanualAttrDepMap _nontsOmergeMap _nontsOo_case _nontsOo_cata _nontsOo_data _nontsOo_dovisit _nontsOo_newtypes _nontsOo_rename _nontsOo_sem _nontsOo_sig _nontsOo_unbox _nontsOo_wantvisit _nontsOprefix _nontsOsynMap _nontsOvcount-                     in  ( _lhsOerrors,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOoutput))))--- Nonterminal --------------------------------------------------{--   visit 0:-      inherited attributes:-         allnts               : [Identifier]-         aroundMap            : Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))-         cInterfaceMap        : CInterfaceMap-         cVisitsMap           : CVisitsMap-         inhMap               : Map Identifier Attributes-         manualAttrDepMap     : AttrOrderMap-         mergeMap             : Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))-         o_case               : Bool-         o_cata               : Bool-         o_data               : Bool-         o_dovisit            : Bool-         o_newtypes           : Bool-         o_rename             : Bool-         o_sem                : Bool-         o_sig                : Bool-         o_unbox              : Bool-         o_wantvisit          : Bool-         prefix               : String-         synMap               : Map Identifier Attributes-      chained attributes:-         acount               : Int-         vcount               : Int-      synthesized attributes:-         additionalDep        : Seq Edge-         aranges              : Seq (Int,Int,Int)-         aroundDep            : Seq Edge-         cNonterminal         : CNonterminal-         directDep            : Seq Edge-         errors               : Seq Error-         inhMap'              : Map Identifier Attributes-         instDep              : Seq Edge-         mergeDep             : Seq Edge-         nAutoRules           : Int-         nExplicitRules       : Int-         nonts                : [(NontermIdent,[ConstructorIdent])]-         ntattrs              : Seq (Vertex,NTAttr)-         rules                : Seq (Vertex,CRule)-         synMap'              : Map Identifier Attributes-   alternatives:-      alternative Nonterminal:-         child nt             : {NontermIdent}-         child params         : {[Identifier]}-         child inh            : {Attributes}-         child syn            : {Attributes}-         child prods          : Productions -         visit 0:-            local mergeMap    : _-            local aroundMap   : _-            local ntattrs     : _-            local cInter      : _--}--- cata-sem_Nonterminal :: Nonterminal ->-                   T_Nonterminal-sem_Nonterminal (Nonterminal _nt _params _inh _syn _prods) =-    (sem_Nonterminal_Nonterminal _nt _params _inh _syn (sem_Productions _prods))--- semantic domain-newtype T_Nonterminal = T_Nonterminal (Int ->-                                       ([Identifier]) ->-                                       (Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))) ->-                                       CInterfaceMap ->-                                       CVisitsMap ->-                                       (Map Identifier Attributes) ->-                                       AttrOrderMap ->-                                       (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))) ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       String ->-                                       (Map Identifier Attributes) ->-                                       Int ->-                                       ( Int,(Seq Edge),(Seq (Int,Int,Int)),(Seq Edge),CNonterminal,(Seq Edge),(Seq Error),(Map Identifier Attributes),(Seq Edge),(Seq Edge),Int,Int,([(NontermIdent,[ConstructorIdent])]),(Seq (Vertex,NTAttr)),(Seq (Vertex,CRule)),(Map Identifier Attributes),Int))-data Inh_Nonterminal = Inh_Nonterminal {acount_Inh_Nonterminal :: !(Int),allnts_Inh_Nonterminal :: !(([Identifier])),aroundMap_Inh_Nonterminal :: !((Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression])))),cInterfaceMap_Inh_Nonterminal :: !(CInterfaceMap),cVisitsMap_Inh_Nonterminal :: !(CVisitsMap),inhMap_Inh_Nonterminal :: !((Map Identifier Attributes)),manualAttrDepMap_Inh_Nonterminal :: !(AttrOrderMap),mergeMap_Inh_Nonterminal :: !((Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))))),o_case_Inh_Nonterminal :: !(Bool),o_cata_Inh_Nonterminal :: !(Bool),o_data_Inh_Nonterminal :: !(Bool),o_dovisit_Inh_Nonterminal :: !(Bool),o_newtypes_Inh_Nonterminal :: !(Bool),o_rename_Inh_Nonterminal :: !(Bool),o_sem_Inh_Nonterminal :: !(Bool),o_sig_Inh_Nonterminal :: !(Bool),o_unbox_Inh_Nonterminal :: !(Bool),o_wantvisit_Inh_Nonterminal :: !(Bool),prefix_Inh_Nonterminal :: !(String),synMap_Inh_Nonterminal :: !((Map Identifier Attributes)),vcount_Inh_Nonterminal :: !(Int)}-data Syn_Nonterminal = Syn_Nonterminal {acount_Syn_Nonterminal :: !(Int),additionalDep_Syn_Nonterminal :: !((Seq Edge)),aranges_Syn_Nonterminal :: !((Seq (Int,Int,Int))),aroundDep_Syn_Nonterminal :: !((Seq Edge)),cNonterminal_Syn_Nonterminal :: !(CNonterminal),directDep_Syn_Nonterminal :: !((Seq Edge)),errors_Syn_Nonterminal :: !((Seq Error)),inhMap'_Syn_Nonterminal :: !((Map Identifier Attributes)),instDep_Syn_Nonterminal :: !((Seq Edge)),mergeDep_Syn_Nonterminal :: !((Seq Edge)),nAutoRules_Syn_Nonterminal :: !(Int),nExplicitRules_Syn_Nonterminal :: !(Int),nonts_Syn_Nonterminal :: !(([(NontermIdent,[ConstructorIdent])])),ntattrs_Syn_Nonterminal :: !((Seq (Vertex,NTAttr))),rules_Syn_Nonterminal :: !((Seq (Vertex,CRule))),synMap'_Syn_Nonterminal :: !((Map Identifier Attributes)),vcount_Syn_Nonterminal :: !(Int)}-wrap_Nonterminal :: T_Nonterminal ->-                    Inh_Nonterminal ->-                    Syn_Nonterminal-wrap_Nonterminal (T_Nonterminal sem) (Inh_Nonterminal _lhsIacount _lhsIallnts _lhsIaroundMap _lhsIcInterfaceMap _lhsIcVisitsMap _lhsIinhMap _lhsImanualAttrDepMap _lhsImergeMap _lhsIo_case _lhsIo_cata _lhsIo_data _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_unbox _lhsIo_wantvisit _lhsIprefix _lhsIsynMap _lhsIvcount) =-    (let ( _lhsOacount,_lhsOadditionalDep,_lhsOaranges,_lhsOaroundDep,_lhsOcNonterminal,_lhsOdirectDep,_lhsOerrors,_lhsOinhMap',_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOnonts,_lhsOntattrs,_lhsOrules,_lhsOsynMap',_lhsOvcount) = sem _lhsIacount _lhsIallnts _lhsIaroundMap _lhsIcInterfaceMap _lhsIcVisitsMap _lhsIinhMap _lhsImanualAttrDepMap _lhsImergeMap _lhsIo_case _lhsIo_cata _lhsIo_data _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_unbox _lhsIo_wantvisit _lhsIprefix _lhsIsynMap _lhsIvcount-     in  (Syn_Nonterminal _lhsOacount _lhsOadditionalDep _lhsOaranges _lhsOaroundDep _lhsOcNonterminal _lhsOdirectDep _lhsOerrors _lhsOinhMap' _lhsOinstDep _lhsOmergeDep _lhsOnAutoRules _lhsOnExplicitRules _lhsOnonts _lhsOntattrs _lhsOrules _lhsOsynMap' _lhsOvcount))-sem_Nonterminal_Nonterminal :: NontermIdent ->-                               ([Identifier]) ->-                               Attributes ->-                               Attributes ->-                               T_Productions ->-                               T_Nonterminal-sem_Nonterminal_Nonterminal nt_ params_ inh_ syn_ (T_Productions prods_) =-    (T_Nonterminal (\ _lhsIacount-                      _lhsIallnts-                      _lhsIaroundMap-                      _lhsIcInterfaceMap-                      _lhsIcVisitsMap-                      _lhsIinhMap-                      _lhsImanualAttrDepMap-                      _lhsImergeMap-                      _lhsIo_case-                      _lhsIo_cata-                      _lhsIo_data-                      _lhsIo_dovisit-                      _lhsIo_newtypes-                      _lhsIo_rename-                      _lhsIo_sem-                      _lhsIo_sig-                      _lhsIo_unbox-                      _lhsIo_wantvisit-                      _lhsIprefix-                      _lhsIsynMap-                      _lhsIvcount ->-                        (let _prodsOnt :: Identifier-                             _prodsOinh :: Attributes-                             _prodsOsyn :: Attributes-                             _lhsOntattrs :: (Seq (Vertex,NTAttr))-                             _lhsOacount :: Int-                             _lhsOaranges :: (Seq (Int,Int,Int))-                             _lhsOnonts :: ([(NontermIdent,[ConstructorIdent])])-                             _lhsOcNonterminal :: CNonterminal-                             _lhsOinhMap' :: (Map Identifier Attributes)-                             _lhsOsynMap' :: (Map Identifier Attributes)-                             _lhsOadditionalDep :: (Seq Edge)-                             _lhsOaroundDep :: (Seq Edge)-                             _lhsOdirectDep :: (Seq Edge)-                             _lhsOerrors :: (Seq Error)-                             _lhsOinstDep :: (Seq Edge)-                             _lhsOmergeDep :: (Seq Edge)-                             _lhsOnAutoRules :: Int-                             _lhsOnExplicitRules :: Int-                             _lhsOrules :: (Seq (Vertex,CRule))-                             _lhsOvcount :: Int-                             _prodsOallnts :: ([Identifier])-                             _prodsOaroundMap :: (Map ConstructorIdent (Map Identifier [Expression]))-                             _prodsOcVisitsMap :: CVisitsMap-                             _prodsOinhMap :: (Map Identifier Attributes)-                             _prodsOmanualAttrDepMap :: AttrOrderMap-                             _prodsOmergeMap :: (Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))-                             _prodsOo_case :: Bool-                             _prodsOo_cata :: Bool-                             _prodsOo_dovisit :: Bool-                             _prodsOo_newtypes :: Bool-                             _prodsOo_rename :: Bool-                             _prodsOo_sem :: Bool-                             _prodsOo_sig :: Bool-                             _prodsOo_unbox :: Bool-                             _prodsOo_wantvisit :: Bool-                             _prodsOprefix :: String-                             _prodsOsynMap :: (Map Identifier Attributes)-                             _prodsOvcount :: Int-                             _prodsIadditionalDep :: (Seq Edge)-                             _prodsIaroundDep :: (Seq Edge)-                             _prodsIcProductions :: CProductions-                             _prodsIcons :: ([ConstructorIdent])-                             _prodsIdirectDep :: (Seq Edge)-                             _prodsIerrors :: (Seq Error)-                             _prodsIinstDep :: (Seq Edge)-                             _prodsImergeDep :: (Seq Edge)-                             _prodsInAutoRules :: Int-                             _prodsInExplicitRules :: Int-                             _prodsIrules :: (Seq (Vertex,CRule))-                             _prodsIvcount :: Int-                             -- "src-ag/Order.ag"(line 98, column 17)-                             _prodsOnt =-                                 ({-# LINE 98 "src-ag/Order.ag" #-}-                                  nt_-                                  {-# LINE 1563 "dist/build/Order" #-}-                                  )-                             -- "src-ag/Order.ag"(line 101, column 17)-                             _prodsOinh =-                                 ({-# LINE 101 "src-ag/Order.ag" #-}-                                  inh_-                                  {-# LINE 1569 "dist/build/Order" #-}-                                  )-                             -- "src-ag/Order.ag"(line 102, column 17)-                             _prodsOsyn =-                                 ({-# LINE 102 "src-ag/Order.ag" #-}-                                  syn_-                                  {-# LINE 1575 "dist/build/Order" #-}-                                  )-                             -- "src-ag/Order.ag"(line 358, column 32)-                             _mergeMap =-                                 ({-# LINE 358 "src-ag/Order.ag" #-}-                                  Map.findWithDefault Map.empty nt_ _lhsImergeMap-                                  {-# LINE 1581 "dist/build/Order" #-}-                                  )-                             -- "src-ag/Order.ag"(line 411, column 32)-                             _aroundMap =-                                 ({-# LINE 411 "src-ag/Order.ag" #-}-                                  Map.findWithDefault Map.empty nt_ _lhsIaroundMap-                                  {-# LINE 1587 "dist/build/Order" #-}-                                  )-                             -- "src-ag/Order.ag"(line 507, column 17)-                             _ntattrs =-                                 ({-# LINE 507 "src-ag/Order.ag" #-}-                                  [ NTAInh nt_ inh tp | (inh,tp) <- Map.assocs inh_ ]-                                  ++ [NTASyn nt_ syn tp | (syn,tp) <- Map.assocs syn_ ]-                                  {-# LINE 1594 "dist/build/Order" #-}-                                  )-                             -- "src-ag/Order.ag"(line 509, column 17)-                             _lhsOntattrs =-                                 ({-# LINE 509 "src-ag/Order.ag" #-}-                                  Seq.fromList (zip [_lhsIacount ..] _ntattrs)-                                  {-# LINE 1600 "dist/build/Order" #-}-                                  )-                             -- "src-ag/Order.ag"(line 510, column 17)-                             _lhsOacount =-                                 ({-# LINE 510 "src-ag/Order.ag" #-}-                                  _lhsIacount + Map.size inh_ + Map.size syn_-                                  {-# LINE 1606 "dist/build/Order" #-}-                                  )-                             -- "src-ag/Order.ag"(line 511, column 17)-                             _lhsOaranges =-                                 ({-# LINE 511 "src-ag/Order.ag" #-}-                                  Seq.singleton-                                   (_lhsIacount-                                   ,_lhsIacount + Map.size inh_-                                   ,_lhsIacount + Map.size syn_ + Map.size inh_ - 1)-                                  {-# LINE 1615 "dist/build/Order" #-}-                                  )-                             -- "src-ag/Order.ag"(line 520, column 19)-                             _lhsOnonts =-                                 ({-# LINE 520 "src-ag/Order.ag" #-}-                                  [(nt_,_prodsIcons)]-                                  {-# LINE 1621 "dist/build/Order" #-}-                                  )-                             -- "src-ag/Order.ag"(line 597, column 19)-                             _cInter =-                                 ({-# LINE 597 "src-ag/Order.ag" #-}-                                  if  _lhsIo_dovisit-                                         then findWithErr1 "Nonterminal.cInter" nt_ _lhsIcInterfaceMap-                                         else CInterface [CSegment inh_ syn_]-                                  {-# LINE 1629 "dist/build/Order" #-}-                                  )-                             -- "src-ag/Order.ag"(line 625, column 19)-                             _lhsOcNonterminal =-                                 ({-# LINE 625 "src-ag/Order.ag" #-}-                                  CNonterminal nt_ params_ inh_ syn_ _prodsIcProductions _cInter-                                  {-# LINE 1635 "dist/build/Order" #-}-                                  )-                             -- "src-ag/DistChildAttr.ag"(line 7, column 18)-                             _lhsOinhMap' =-                                 ({-# LINE 7 "src-ag/DistChildAttr.ag" #-}-                                  Map.singleton nt_ inh_-                                  {-# LINE 1641 "dist/build/Order" #-}-                                  )-                             -- "src-ag/DistChildAttr.ag"(line 8, column 18)-                             _lhsOsynMap' =-                                 ({-# LINE 8 "src-ag/DistChildAttr.ag" #-}-                                  Map.singleton nt_ syn_-                                  {-# LINE 1647 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 282, column 60)-                             _lhsOadditionalDep =-                                 ({-# LINE 282 "src-ag/Order.ag" #-}-                                  _prodsIadditionalDep-                                  {-# LINE 1653 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 403, column 24)-                             _lhsOaroundDep =-                                 ({-# LINE 403 "src-ag/Order.ag" #-}-                                  _prodsIaroundDep-                                  {-# LINE 1659 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 268, column 33)-                             _lhsOdirectDep =-                                 ({-# LINE 268 "src-ag/Order.ag" #-}-                                  _prodsIdirectDep-                                  {-# LINE 1665 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 85, column 70)-                             _lhsOerrors =-                                 ({-# LINE 85 "src-ag/Order.ag" #-}-                                  _prodsIerrors-                                  {-# LINE 1671 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 311, column 31)-                             _lhsOinstDep =-                                 ({-# LINE 311 "src-ag/Order.ag" #-}-                                  _prodsIinstDep-                                  {-# LINE 1677 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 366, column 18)-                             _lhsOmergeDep =-                                 ({-# LINE 366 "src-ag/Order.ag" #-}-                                  _prodsImergeDep-                                  {-# LINE 1683 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 62, column 105)-                             _lhsOnAutoRules =-                                 ({-# LINE 62 "src-ag/Order.ag" #-}-                                  _prodsInAutoRules-                                  {-# LINE 1689 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 62, column 105)-                             _lhsOnExplicitRules =-                                 ({-# LINE 62 "src-ag/Order.ag" #-}-                                  _prodsInExplicitRules-                                  {-# LINE 1695 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 258, column 18)-                             _lhsOrules =-                                 ({-# LINE 258 "src-ag/Order.ag" #-}-                                  _prodsIrules-                                  {-# LINE 1701 "dist/build/Order" #-}-                                  )-                             -- copy rule (up)-                             _lhsOvcount =-                                 ({-# LINE 257 "src-ag/Order.ag" #-}-                                  _prodsIvcount-                                  {-# LINE 1707 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _prodsOallnts =-                                 ({-# LINE 648 "src-ag/Order.ag" #-}-                                  _lhsIallnts-                                  {-# LINE 1713 "dist/build/Order" #-}-                                  )-                             -- copy rule (from local)-                             _prodsOaroundMap =-                                 ({-# LINE 409 "src-ag/Order.ag" #-}-                                  _aroundMap-                                  {-# LINE 1719 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _prodsOcVisitsMap =-                                 ({-# LINE 602 "src-ag/Order.ag" #-}-                                  _lhsIcVisitsMap-                                  {-# LINE 1725 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _prodsOinhMap =-                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}-                                  _lhsIinhMap-                                  {-# LINE 1731 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _prodsOmanualAttrDepMap =-                                 ({-# LINE 282 "src-ag/Order.ag" #-}-                                  _lhsImanualAttrDepMap-                                  {-# LINE 1737 "dist/build/Order" #-}-                                  )-                             -- copy rule (from local)-                             _prodsOmergeMap =-                                 ({-# LINE 356 "src-ag/Order.ag" #-}-                                  _mergeMap-                                  {-# LINE 1743 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _prodsOo_case =-                                 ({-# LINE 118 "src-ag/Order.ag" #-}-                                  _lhsIo_case-                                  {-# LINE 1749 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _prodsOo_cata =-                                 ({-# LINE 112 "src-ag/Order.ag" #-}-                                  _lhsIo_cata-                                  {-# LINE 1755 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _prodsOo_dovisit =-                                 ({-# LINE 117 "src-ag/Order.ag" #-}-                                  _lhsIo_dovisit-                                  {-# LINE 1761 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _prodsOo_newtypes =-                                 ({-# LINE 111 "src-ag/Order.ag" #-}-                                  _lhsIo_newtypes-                                  {-# LINE 1767 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _prodsOo_rename =-                                 ({-# LINE 115 "src-ag/Order.ag" #-}-                                  _lhsIo_rename-                                  {-# LINE 1773 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _prodsOo_sem =-                                 ({-# LINE 114 "src-ag/Order.ag" #-}-                                  _lhsIo_sem-                                  {-# LINE 1779 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _prodsOo_sig =-                                 ({-# LINE 113 "src-ag/Order.ag" #-}-                                  _lhsIo_sig-                                  {-# LINE 1785 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _prodsOo_unbox =-                                 ({-# LINE 120 "src-ag/Order.ag" #-}-                                  _lhsIo_unbox-                                  {-# LINE 1791 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _prodsOo_wantvisit =-                                 ({-# LINE 116 "src-ag/Order.ag" #-}-                                  _lhsIo_wantvisit-                                  {-# LINE 1797 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _prodsOprefix =-                                 ({-# LINE 119 "src-ag/Order.ag" #-}-                                  _lhsIprefix-                                  {-# LINE 1803 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _prodsOsynMap =-                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}-                                  _lhsIsynMap-                                  {-# LINE 1809 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _prodsOvcount =-                                 ({-# LINE 257 "src-ag/Order.ag" #-}-                                  _lhsIvcount-                                  {-# LINE 1815 "dist/build/Order" #-}-                                  )-                             ( _prodsIadditionalDep,_prodsIaroundDep,_prodsIcProductions,_prodsIcons,_prodsIdirectDep,_prodsIerrors,_prodsIinstDep,_prodsImergeDep,_prodsInAutoRules,_prodsInExplicitRules,_prodsIrules,_prodsIvcount) =-                                 prods_ _prodsOallnts _prodsOaroundMap _prodsOcVisitsMap _prodsOinh _prodsOinhMap _prodsOmanualAttrDepMap _prodsOmergeMap _prodsOnt _prodsOo_case _prodsOo_cata _prodsOo_dovisit _prodsOo_newtypes _prodsOo_rename _prodsOo_sem _prodsOo_sig _prodsOo_unbox _prodsOo_wantvisit _prodsOprefix _prodsOsyn _prodsOsynMap _prodsOvcount-                         in  ( _lhsOacount,_lhsOadditionalDep,_lhsOaranges,_lhsOaroundDep,_lhsOcNonterminal,_lhsOdirectDep,_lhsOerrors,_lhsOinhMap',_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOnonts,_lhsOntattrs,_lhsOrules,_lhsOsynMap',_lhsOvcount))))--- Nonterminals -------------------------------------------------{--   visit 0:-      inherited attributes:-         allnts               : [Identifier]-         aroundMap            : Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))-         cInterfaceMap        : CInterfaceMap-         cVisitsMap           : CVisitsMap-         inhMap               : Map Identifier Attributes-         manualAttrDepMap     : AttrOrderMap-         mergeMap             : Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))-         o_case               : Bool-         o_cata               : Bool-         o_data               : Bool-         o_dovisit            : Bool-         o_newtypes           : Bool-         o_rename             : Bool-         o_sem                : Bool-         o_sig                : Bool-         o_unbox              : Bool-         o_wantvisit          : Bool-         prefix               : String-         synMap               : Map Identifier Attributes-      chained attributes:-         acount               : Int-         vcount               : Int-      synthesized attributes:-         additionalDep        : Seq Edge-         aranges              : Seq (Int,Int,Int)-         aroundDep            : Seq Edge-         cNonterminals        : CNonterminals-         directDep            : Seq Edge-         errors               : Seq Error-         inhMap'              : Map Identifier Attributes-         instDep              : Seq Edge-         mergeDep             : Seq Edge-         nAutoRules           : Int-         nExplicitRules       : Int-         nonts                : [(NontermIdent,[ConstructorIdent])]-         ntattrs              : Seq (Vertex,NTAttr)-         rules                : Seq (Vertex,CRule)-         synMap'              : Map Identifier Attributes-   alternatives:-      alternative Cons:-         child hd             : Nonterminal -         child tl             : Nonterminals -      alternative Nil:--}--- cata-sem_Nonterminals :: Nonterminals ->-                    T_Nonterminals-sem_Nonterminals list =-    (Prelude.foldr sem_Nonterminals_Cons sem_Nonterminals_Nil (Prelude.map sem_Nonterminal list))--- semantic domain-newtype T_Nonterminals = T_Nonterminals (Int ->-                                         ([Identifier]) ->-                                         (Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))) ->-                                         CInterfaceMap ->-                                         CVisitsMap ->-                                         (Map Identifier Attributes) ->-                                         AttrOrderMap ->-                                         (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))) ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         Bool ->-                                         String ->-                                         (Map Identifier Attributes) ->-                                         Int ->-                                         ( Int,(Seq Edge),(Seq (Int,Int,Int)),(Seq Edge),CNonterminals,(Seq Edge),(Seq Error),(Map Identifier Attributes),(Seq Edge),(Seq Edge),Int,Int,([(NontermIdent,[ConstructorIdent])]),(Seq (Vertex,NTAttr)),(Seq (Vertex,CRule)),(Map Identifier Attributes),Int))-data Inh_Nonterminals = Inh_Nonterminals {acount_Inh_Nonterminals :: !(Int),allnts_Inh_Nonterminals :: !(([Identifier])),aroundMap_Inh_Nonterminals :: !((Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression])))),cInterfaceMap_Inh_Nonterminals :: !(CInterfaceMap),cVisitsMap_Inh_Nonterminals :: !(CVisitsMap),inhMap_Inh_Nonterminals :: !((Map Identifier Attributes)),manualAttrDepMap_Inh_Nonterminals :: !(AttrOrderMap),mergeMap_Inh_Nonterminals :: !((Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))))),o_case_Inh_Nonterminals :: !(Bool),o_cata_Inh_Nonterminals :: !(Bool),o_data_Inh_Nonterminals :: !(Bool),o_dovisit_Inh_Nonterminals :: !(Bool),o_newtypes_Inh_Nonterminals :: !(Bool),o_rename_Inh_Nonterminals :: !(Bool),o_sem_Inh_Nonterminals :: !(Bool),o_sig_Inh_Nonterminals :: !(Bool),o_unbox_Inh_Nonterminals :: !(Bool),o_wantvisit_Inh_Nonterminals :: !(Bool),prefix_Inh_Nonterminals :: !(String),synMap_Inh_Nonterminals :: !((Map Identifier Attributes)),vcount_Inh_Nonterminals :: !(Int)}-data Syn_Nonterminals = Syn_Nonterminals {acount_Syn_Nonterminals :: !(Int),additionalDep_Syn_Nonterminals :: !((Seq Edge)),aranges_Syn_Nonterminals :: !((Seq (Int,Int,Int))),aroundDep_Syn_Nonterminals :: !((Seq Edge)),cNonterminals_Syn_Nonterminals :: !(CNonterminals),directDep_Syn_Nonterminals :: !((Seq Edge)),errors_Syn_Nonterminals :: !((Seq Error)),inhMap'_Syn_Nonterminals :: !((Map Identifier Attributes)),instDep_Syn_Nonterminals :: !((Seq Edge)),mergeDep_Syn_Nonterminals :: !((Seq Edge)),nAutoRules_Syn_Nonterminals :: !(Int),nExplicitRules_Syn_Nonterminals :: !(Int),nonts_Syn_Nonterminals :: !(([(NontermIdent,[ConstructorIdent])])),ntattrs_Syn_Nonterminals :: !((Seq (Vertex,NTAttr))),rules_Syn_Nonterminals :: !((Seq (Vertex,CRule))),synMap'_Syn_Nonterminals :: !((Map Identifier Attributes)),vcount_Syn_Nonterminals :: !(Int)}-wrap_Nonterminals :: T_Nonterminals ->-                     Inh_Nonterminals ->-                     Syn_Nonterminals-wrap_Nonterminals (T_Nonterminals sem) (Inh_Nonterminals _lhsIacount _lhsIallnts _lhsIaroundMap _lhsIcInterfaceMap _lhsIcVisitsMap _lhsIinhMap _lhsImanualAttrDepMap _lhsImergeMap _lhsIo_case _lhsIo_cata _lhsIo_data _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_unbox _lhsIo_wantvisit _lhsIprefix _lhsIsynMap _lhsIvcount) =-    (let ( _lhsOacount,_lhsOadditionalDep,_lhsOaranges,_lhsOaroundDep,_lhsOcNonterminals,_lhsOdirectDep,_lhsOerrors,_lhsOinhMap',_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOnonts,_lhsOntattrs,_lhsOrules,_lhsOsynMap',_lhsOvcount) = sem _lhsIacount _lhsIallnts _lhsIaroundMap _lhsIcInterfaceMap _lhsIcVisitsMap _lhsIinhMap _lhsImanualAttrDepMap _lhsImergeMap _lhsIo_case _lhsIo_cata _lhsIo_data _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_unbox _lhsIo_wantvisit _lhsIprefix _lhsIsynMap _lhsIvcount-     in  (Syn_Nonterminals _lhsOacount _lhsOadditionalDep _lhsOaranges _lhsOaroundDep _lhsOcNonterminals _lhsOdirectDep _lhsOerrors _lhsOinhMap' _lhsOinstDep _lhsOmergeDep _lhsOnAutoRules _lhsOnExplicitRules _lhsOnonts _lhsOntattrs _lhsOrules _lhsOsynMap' _lhsOvcount))-sem_Nonterminals_Cons :: T_Nonterminal ->-                         T_Nonterminals ->-                         T_Nonterminals-sem_Nonterminals_Cons (T_Nonterminal hd_) (T_Nonterminals tl_) =-    (T_Nonterminals (\ _lhsIacount-                       _lhsIallnts-                       _lhsIaroundMap-                       _lhsIcInterfaceMap-                       _lhsIcVisitsMap-                       _lhsIinhMap-                       _lhsImanualAttrDepMap-                       _lhsImergeMap-                       _lhsIo_case-                       _lhsIo_cata-                       _lhsIo_data-                       _lhsIo_dovisit-                       _lhsIo_newtypes-                       _lhsIo_rename-                       _lhsIo_sem-                       _lhsIo_sig-                       _lhsIo_unbox-                       _lhsIo_wantvisit-                       _lhsIprefix-                       _lhsIsynMap-                       _lhsIvcount ->-                         (let _lhsOcNonterminals :: CNonterminals-                              _lhsOadditionalDep :: (Seq Edge)-                              _lhsOaranges :: (Seq (Int,Int,Int))-                              _lhsOaroundDep :: (Seq Edge)-                              _lhsOdirectDep :: (Seq Edge)-                              _lhsOerrors :: (Seq Error)-                              _lhsOinhMap' :: (Map Identifier Attributes)-                              _lhsOinstDep :: (Seq Edge)-                              _lhsOmergeDep :: (Seq Edge)-                              _lhsOnAutoRules :: Int-                              _lhsOnExplicitRules :: Int-                              _lhsOnonts :: ([(NontermIdent,[ConstructorIdent])])-                              _lhsOntattrs :: (Seq (Vertex,NTAttr))-                              _lhsOrules :: (Seq (Vertex,CRule))-                              _lhsOsynMap' :: (Map Identifier Attributes)-                              _lhsOacount :: Int-                              _lhsOvcount :: Int-                              _hdOacount :: Int-                              _hdOallnts :: ([Identifier])-                              _hdOaroundMap :: (Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression])))-                              _hdOcInterfaceMap :: CInterfaceMap-                              _hdOcVisitsMap :: CVisitsMap-                              _hdOinhMap :: (Map Identifier Attributes)-                              _hdOmanualAttrDepMap :: AttrOrderMap-                              _hdOmergeMap :: (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))))-                              _hdOo_case :: Bool-                              _hdOo_cata :: Bool-                              _hdOo_data :: Bool-                              _hdOo_dovisit :: Bool-                              _hdOo_newtypes :: Bool-                              _hdOo_rename :: Bool-                              _hdOo_sem :: Bool-                              _hdOo_sig :: Bool-                              _hdOo_unbox :: Bool-                              _hdOo_wantvisit :: Bool-                              _hdOprefix :: String-                              _hdOsynMap :: (Map Identifier Attributes)-                              _hdOvcount :: Int-                              _tlOacount :: Int-                              _tlOallnts :: ([Identifier])-                              _tlOaroundMap :: (Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression])))-                              _tlOcInterfaceMap :: CInterfaceMap-                              _tlOcVisitsMap :: CVisitsMap-                              _tlOinhMap :: (Map Identifier Attributes)-                              _tlOmanualAttrDepMap :: AttrOrderMap-                              _tlOmergeMap :: (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))))-                              _tlOo_case :: Bool-                              _tlOo_cata :: Bool-                              _tlOo_data :: Bool-                              _tlOo_dovisit :: Bool-                              _tlOo_newtypes :: Bool-                              _tlOo_rename :: Bool-                              _tlOo_sem :: Bool-                              _tlOo_sig :: Bool-                              _tlOo_unbox :: Bool-                              _tlOo_wantvisit :: Bool-                              _tlOprefix :: String-                              _tlOsynMap :: (Map Identifier Attributes)-                              _tlOvcount :: Int-                              _hdIacount :: Int-                              _hdIadditionalDep :: (Seq Edge)-                              _hdIaranges :: (Seq (Int,Int,Int))-                              _hdIaroundDep :: (Seq Edge)-                              _hdIcNonterminal :: CNonterminal-                              _hdIdirectDep :: (Seq Edge)-                              _hdIerrors :: (Seq Error)-                              _hdIinhMap' :: (Map Identifier Attributes)-                              _hdIinstDep :: (Seq Edge)-                              _hdImergeDep :: (Seq Edge)-                              _hdInAutoRules :: Int-                              _hdInExplicitRules :: Int-                              _hdInonts :: ([(NontermIdent,[ConstructorIdent])])-                              _hdIntattrs :: (Seq (Vertex,NTAttr))-                              _hdIrules :: (Seq (Vertex,CRule))-                              _hdIsynMap' :: (Map Identifier Attributes)-                              _hdIvcount :: Int-                              _tlIacount :: Int-                              _tlIadditionalDep :: (Seq Edge)-                              _tlIaranges :: (Seq (Int,Int,Int))-                              _tlIaroundDep :: (Seq Edge)-                              _tlIcNonterminals :: CNonterminals-                              _tlIdirectDep :: (Seq Edge)-                              _tlIerrors :: (Seq Error)-                              _tlIinhMap' :: (Map Identifier Attributes)-                              _tlIinstDep :: (Seq Edge)-                              _tlImergeDep :: (Seq Edge)-                              _tlInAutoRules :: Int-                              _tlInExplicitRules :: Int-                              _tlInonts :: ([(NontermIdent,[ConstructorIdent])])-                              _tlIntattrs :: (Seq (Vertex,NTAttr))-                              _tlIrules :: (Seq (Vertex,CRule))-                              _tlIsynMap' :: (Map Identifier Attributes)-                              _tlIvcount :: Int-                              -- "src-ag/Order.ag"(line 622, column 12)-                              _lhsOcNonterminals =-                                  ({-# LINE 622 "src-ag/Order.ag" #-}-                                   _hdIcNonterminal : _tlIcNonterminals-                                   {-# LINE 2026 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 282, column 60)-                              _lhsOadditionalDep =-                                  ({-# LINE 282 "src-ag/Order.ag" #-}-                                   _hdIadditionalDep Seq.>< _tlIadditionalDep-                                   {-# LINE 2032 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 501, column 36)-                              _lhsOaranges =-                                  ({-# LINE 501 "src-ag/Order.ag" #-}-                                   _hdIaranges Seq.>< _tlIaranges-                                   {-# LINE 2038 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 403, column 24)-                              _lhsOaroundDep =-                                  ({-# LINE 403 "src-ag/Order.ag" #-}-                                   _hdIaroundDep Seq.>< _tlIaroundDep-                                   {-# LINE 2044 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 268, column 33)-                              _lhsOdirectDep =-                                  ({-# LINE 268 "src-ag/Order.ag" #-}-                                   _hdIdirectDep Seq.>< _tlIdirectDep-                                   {-# LINE 2050 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 85, column 70)-                              _lhsOerrors =-                                  ({-# LINE 85 "src-ag/Order.ag" #-}-                                   _hdIerrors Seq.>< _tlIerrors-                                   {-# LINE 2056 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)-                              _lhsOinhMap' =-                                  ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}-                                   _hdIinhMap' `Map.union` _tlIinhMap'-                                   {-# LINE 2062 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 311, column 31)-                              _lhsOinstDep =-                                  ({-# LINE 311 "src-ag/Order.ag" #-}-                                   _hdIinstDep Seq.>< _tlIinstDep-                                   {-# LINE 2068 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 366, column 18)-                              _lhsOmergeDep =-                                  ({-# LINE 366 "src-ag/Order.ag" #-}-                                   _hdImergeDep Seq.>< _tlImergeDep-                                   {-# LINE 2074 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 62, column 105)-                              _lhsOnAutoRules =-                                  ({-# LINE 62 "src-ag/Order.ag" #-}-                                   _hdInAutoRules + _tlInAutoRules-                                   {-# LINE 2080 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 62, column 105)-                              _lhsOnExplicitRules =-                                  ({-# LINE 62 "src-ag/Order.ag" #-}-                                   _hdInExplicitRules + _tlInExplicitRules-                                   {-# LINE 2086 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 518, column 43)-                              _lhsOnonts =-                                  ({-# LINE 518 "src-ag/Order.ag" #-}-                                   _hdInonts ++ _tlInonts-                                   {-# LINE 2092 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 500, column 35)-                              _lhsOntattrs =-                                  ({-# LINE 500 "src-ag/Order.ag" #-}-                                   _hdIntattrs Seq.>< _tlIntattrs-                                   {-# LINE 2098 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 258, column 18)-                              _lhsOrules =-                                  ({-# LINE 258 "src-ag/Order.ag" #-}-                                   _hdIrules Seq.>< _tlIrules-                                   {-# LINE 2104 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)-                              _lhsOsynMap' =-                                  ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}-                                   _hdIsynMap' `Map.union` _tlIsynMap'-                                   {-# LINE 2110 "dist/build/Order" #-}-                                   )-                              -- copy rule (up)-                              _lhsOacount =-                                  ({-# LINE 500 "src-ag/Order.ag" #-}-                                   _tlIacount-                                   {-# LINE 2116 "dist/build/Order" #-}-                                   )-                              -- copy rule (up)-                              _lhsOvcount =-                                  ({-# LINE 257 "src-ag/Order.ag" #-}-                                   _tlIvcount-                                   {-# LINE 2122 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOacount =-                                  ({-# LINE 500 "src-ag/Order.ag" #-}-                                   _lhsIacount-                                   {-# LINE 2128 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOallnts =-                                  ({-# LINE 648 "src-ag/Order.ag" #-}-                                   _lhsIallnts-                                   {-# LINE 2134 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOaroundMap =-                                  ({-# LINE 406 "src-ag/Order.ag" #-}-                                   _lhsIaroundMap-                                   {-# LINE 2140 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOcInterfaceMap =-                                  ({-# LINE 595 "src-ag/Order.ag" #-}-                                   _lhsIcInterfaceMap-                                   {-# LINE 2146 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOcVisitsMap =-                                  ({-# LINE 602 "src-ag/Order.ag" #-}-                                   _lhsIcVisitsMap-                                   {-# LINE 2152 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOinhMap =-                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}-                                   _lhsIinhMap-                                   {-# LINE 2158 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOmanualAttrDepMap =-                                  ({-# LINE 282 "src-ag/Order.ag" #-}-                                   _lhsImanualAttrDepMap-                                   {-# LINE 2164 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOmergeMap =-                                  ({-# LINE 353 "src-ag/Order.ag" #-}-                                   _lhsImergeMap-                                   {-# LINE 2170 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_case =-                                  ({-# LINE 118 "src-ag/Order.ag" #-}-                                   _lhsIo_case-                                   {-# LINE 2176 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_cata =-                                  ({-# LINE 112 "src-ag/Order.ag" #-}-                                   _lhsIo_cata-                                   {-# LINE 2182 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_data =-                                  ({-# LINE 121 "src-ag/Order.ag" #-}-                                   _lhsIo_data-                                   {-# LINE 2188 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_dovisit =-                                  ({-# LINE 117 "src-ag/Order.ag" #-}-                                   _lhsIo_dovisit-                                   {-# LINE 2194 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_newtypes =-                                  ({-# LINE 111 "src-ag/Order.ag" #-}-                                   _lhsIo_newtypes-                                   {-# LINE 2200 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_rename =-                                  ({-# LINE 115 "src-ag/Order.ag" #-}-                                   _lhsIo_rename-                                   {-# LINE 2206 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_sem =-                                  ({-# LINE 114 "src-ag/Order.ag" #-}-                                   _lhsIo_sem-                                   {-# LINE 2212 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_sig =-                                  ({-# LINE 113 "src-ag/Order.ag" #-}-                                   _lhsIo_sig-                                   {-# LINE 2218 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_unbox =-                                  ({-# LINE 120 "src-ag/Order.ag" #-}-                                   _lhsIo_unbox-                                   {-# LINE 2224 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOo_wantvisit =-                                  ({-# LINE 116 "src-ag/Order.ag" #-}-                                   _lhsIo_wantvisit-                                   {-# LINE 2230 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOprefix =-                                  ({-# LINE 119 "src-ag/Order.ag" #-}-                                   _lhsIprefix-                                   {-# LINE 2236 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOsynMap =-                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}-                                   _lhsIsynMap-                                   {-# LINE 2242 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _hdOvcount =-                                  ({-# LINE 257 "src-ag/Order.ag" #-}-                                   _lhsIvcount-                                   {-# LINE 2248 "dist/build/Order" #-}-                                   )-                              -- copy rule (chain)-                              _tlOacount =-                                  ({-# LINE 500 "src-ag/Order.ag" #-}-                                   _hdIacount-                                   {-# LINE 2254 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOallnts =-                                  ({-# LINE 648 "src-ag/Order.ag" #-}-                                   _lhsIallnts-                                   {-# LINE 2260 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOaroundMap =-                                  ({-# LINE 406 "src-ag/Order.ag" #-}-                                   _lhsIaroundMap-                                   {-# LINE 2266 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOcInterfaceMap =-                                  ({-# LINE 595 "src-ag/Order.ag" #-}-                                   _lhsIcInterfaceMap-                                   {-# LINE 2272 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOcVisitsMap =-                                  ({-# LINE 602 "src-ag/Order.ag" #-}-                                   _lhsIcVisitsMap-                                   {-# LINE 2278 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOinhMap =-                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}-                                   _lhsIinhMap-                                   {-# LINE 2284 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOmanualAttrDepMap =-                                  ({-# LINE 282 "src-ag/Order.ag" #-}-                                   _lhsImanualAttrDepMap-                                   {-# LINE 2290 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOmergeMap =-                                  ({-# LINE 353 "src-ag/Order.ag" #-}-                                   _lhsImergeMap-                                   {-# LINE 2296 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_case =-                                  ({-# LINE 118 "src-ag/Order.ag" #-}-                                   _lhsIo_case-                                   {-# LINE 2302 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_cata =-                                  ({-# LINE 112 "src-ag/Order.ag" #-}-                                   _lhsIo_cata-                                   {-# LINE 2308 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_data =-                                  ({-# LINE 121 "src-ag/Order.ag" #-}-                                   _lhsIo_data-                                   {-# LINE 2314 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_dovisit =-                                  ({-# LINE 117 "src-ag/Order.ag" #-}-                                   _lhsIo_dovisit-                                   {-# LINE 2320 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_newtypes =-                                  ({-# LINE 111 "src-ag/Order.ag" #-}-                                   _lhsIo_newtypes-                                   {-# LINE 2326 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_rename =-                                  ({-# LINE 115 "src-ag/Order.ag" #-}-                                   _lhsIo_rename-                                   {-# LINE 2332 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_sem =-                                  ({-# LINE 114 "src-ag/Order.ag" #-}-                                   _lhsIo_sem-                                   {-# LINE 2338 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_sig =-                                  ({-# LINE 113 "src-ag/Order.ag" #-}-                                   _lhsIo_sig-                                   {-# LINE 2344 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_unbox =-                                  ({-# LINE 120 "src-ag/Order.ag" #-}-                                   _lhsIo_unbox-                                   {-# LINE 2350 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOo_wantvisit =-                                  ({-# LINE 116 "src-ag/Order.ag" #-}-                                   _lhsIo_wantvisit-                                   {-# LINE 2356 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOprefix =-                                  ({-# LINE 119 "src-ag/Order.ag" #-}-                                   _lhsIprefix-                                   {-# LINE 2362 "dist/build/Order" #-}-                                   )-                              -- copy rule (down)-                              _tlOsynMap =-                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}-                                   _lhsIsynMap-                                   {-# LINE 2368 "dist/build/Order" #-}-                                   )-                              -- copy rule (chain)-                              _tlOvcount =-                                  ({-# LINE 257 "src-ag/Order.ag" #-}-                                   _hdIvcount-                                   {-# LINE 2374 "dist/build/Order" #-}-                                   )-                              ( _hdIacount,_hdIadditionalDep,_hdIaranges,_hdIaroundDep,_hdIcNonterminal,_hdIdirectDep,_hdIerrors,_hdIinhMap',_hdIinstDep,_hdImergeDep,_hdInAutoRules,_hdInExplicitRules,_hdInonts,_hdIntattrs,_hdIrules,_hdIsynMap',_hdIvcount) =-                                  hd_ _hdOacount _hdOallnts _hdOaroundMap _hdOcInterfaceMap _hdOcVisitsMap _hdOinhMap _hdOmanualAttrDepMap _hdOmergeMap _hdOo_case _hdOo_cata _hdOo_data _hdOo_dovisit _hdOo_newtypes _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_unbox _hdOo_wantvisit _hdOprefix _hdOsynMap _hdOvcount-                              ( _tlIacount,_tlIadditionalDep,_tlIaranges,_tlIaroundDep,_tlIcNonterminals,_tlIdirectDep,_tlIerrors,_tlIinhMap',_tlIinstDep,_tlImergeDep,_tlInAutoRules,_tlInExplicitRules,_tlInonts,_tlIntattrs,_tlIrules,_tlIsynMap',_tlIvcount) =-                                  tl_ _tlOacount _tlOallnts _tlOaroundMap _tlOcInterfaceMap _tlOcVisitsMap _tlOinhMap _tlOmanualAttrDepMap _tlOmergeMap _tlOo_case _tlOo_cata _tlOo_data _tlOo_dovisit _tlOo_newtypes _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_unbox _tlOo_wantvisit _tlOprefix _tlOsynMap _tlOvcount-                          in  ( _lhsOacount,_lhsOadditionalDep,_lhsOaranges,_lhsOaroundDep,_lhsOcNonterminals,_lhsOdirectDep,_lhsOerrors,_lhsOinhMap',_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOnonts,_lhsOntattrs,_lhsOrules,_lhsOsynMap',_lhsOvcount))))-sem_Nonterminals_Nil :: T_Nonterminals-sem_Nonterminals_Nil =-    (T_Nonterminals (\ _lhsIacount-                       _lhsIallnts-                       _lhsIaroundMap-                       _lhsIcInterfaceMap-                       _lhsIcVisitsMap-                       _lhsIinhMap-                       _lhsImanualAttrDepMap-                       _lhsImergeMap-                       _lhsIo_case-                       _lhsIo_cata-                       _lhsIo_data-                       _lhsIo_dovisit-                       _lhsIo_newtypes-                       _lhsIo_rename-                       _lhsIo_sem-                       _lhsIo_sig-                       _lhsIo_unbox-                       _lhsIo_wantvisit-                       _lhsIprefix-                       _lhsIsynMap-                       _lhsIvcount ->-                         (let _lhsOcNonterminals :: CNonterminals-                              _lhsOadditionalDep :: (Seq Edge)-                              _lhsOaranges :: (Seq (Int,Int,Int))-                              _lhsOaroundDep :: (Seq Edge)-                              _lhsOdirectDep :: (Seq Edge)-                              _lhsOerrors :: (Seq Error)-                              _lhsOinhMap' :: (Map Identifier Attributes)-                              _lhsOinstDep :: (Seq Edge)-                              _lhsOmergeDep :: (Seq Edge)-                              _lhsOnAutoRules :: Int-                              _lhsOnExplicitRules :: Int-                              _lhsOnonts :: ([(NontermIdent,[ConstructorIdent])])-                              _lhsOntattrs :: (Seq (Vertex,NTAttr))-                              _lhsOrules :: (Seq (Vertex,CRule))-                              _lhsOsynMap' :: (Map Identifier Attributes)-                              _lhsOacount :: Int-                              _lhsOvcount :: Int-                              -- "src-ag/Order.ag"(line 623, column 12)-                              _lhsOcNonterminals =-                                  ({-# LINE 623 "src-ag/Order.ag" #-}-                                   []-                                   {-# LINE 2425 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 282, column 60)-                              _lhsOadditionalDep =-                                  ({-# LINE 282 "src-ag/Order.ag" #-}-                                   Seq.empty-                                   {-# LINE 2431 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 501, column 36)-                              _lhsOaranges =-                                  ({-# LINE 501 "src-ag/Order.ag" #-}-                                   Seq.empty-                                   {-# LINE 2437 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 403, column 24)-                              _lhsOaroundDep =-                                  ({-# LINE 403 "src-ag/Order.ag" #-}-                                   Seq.empty-                                   {-# LINE 2443 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 268, column 33)-                              _lhsOdirectDep =-                                  ({-# LINE 268 "src-ag/Order.ag" #-}-                                   Seq.empty-                                   {-# LINE 2449 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 85, column 70)-                              _lhsOerrors =-                                  ({-# LINE 85 "src-ag/Order.ag" #-}-                                   Seq.empty-                                   {-# LINE 2455 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)-                              _lhsOinhMap' =-                                  ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}-                                   Map.empty-                                   {-# LINE 2461 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 311, column 31)-                              _lhsOinstDep =-                                  ({-# LINE 311 "src-ag/Order.ag" #-}-                                   Seq.empty-                                   {-# LINE 2467 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 366, column 18)-                              _lhsOmergeDep =-                                  ({-# LINE 366 "src-ag/Order.ag" #-}-                                   Seq.empty-                                   {-# LINE 2473 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 62, column 105)-                              _lhsOnAutoRules =-                                  ({-# LINE 62 "src-ag/Order.ag" #-}-                                   0-                                   {-# LINE 2479 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 62, column 105)-                              _lhsOnExplicitRules =-                                  ({-# LINE 62 "src-ag/Order.ag" #-}-                                   0-                                   {-# LINE 2485 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 518, column 43)-                              _lhsOnonts =-                                  ({-# LINE 518 "src-ag/Order.ag" #-}-                                   []-                                   {-# LINE 2491 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 500, column 35)-                              _lhsOntattrs =-                                  ({-# LINE 500 "src-ag/Order.ag" #-}-                                   Seq.empty-                                   {-# LINE 2497 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/Order.ag"(line 258, column 18)-                              _lhsOrules =-                                  ({-# LINE 258 "src-ag/Order.ag" #-}-                                   Seq.empty-                                   {-# LINE 2503 "dist/build/Order" #-}-                                   )-                              -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)-                              _lhsOsynMap' =-                                  ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}-                                   Map.empty-                                   {-# LINE 2509 "dist/build/Order" #-}-                                   )-                              -- copy rule (chain)-                              _lhsOacount =-                                  ({-# LINE 500 "src-ag/Order.ag" #-}-                                   _lhsIacount-                                   {-# LINE 2515 "dist/build/Order" #-}-                                   )-                              -- copy rule (chain)-                              _lhsOvcount =-                                  ({-# LINE 257 "src-ag/Order.ag" #-}-                                   _lhsIvcount-                                   {-# LINE 2521 "dist/build/Order" #-}-                                   )-                          in  ( _lhsOacount,_lhsOadditionalDep,_lhsOaranges,_lhsOaroundDep,_lhsOcNonterminals,_lhsOdirectDep,_lhsOerrors,_lhsOinhMap',_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOnonts,_lhsOntattrs,_lhsOrules,_lhsOsynMap',_lhsOvcount))))--- Pattern ------------------------------------------------------{--   visit 0:-      inherited attributes:-         allTypeSigs          : Map Identifier Type-         altAttrs             : Map AltAttr Vertex-         con                  : Identifier-         inh                  : Attributes-         nt                   : Identifier-         syn                  : Attributes-      synthesized attributes:-         copy                 : Pattern -         errors               : Seq Error-         gathAltAttrs         : [AltAttr]-         instVars             : [Identifier]-         locVars              : [Identifier]-         patternAttrs         : [(Identifier,Identifier,Bool)]-   alternatives:-      alternative Alias:-         child field          : {Identifier}-         child attr           : {Identifier}-         child pat            : Pattern -         visit 0:-            local copy        : _-      alternative Constr:-         child name           : {ConstructorIdent}-         child pats           : Patterns -         visit 0:-            local copy        : _-      alternative Irrefutable:-         child pat            : Pattern -         visit 0:-            local copy        : _-      alternative Product:-         child pos            : {Pos}-         child pats           : Patterns -         visit 0:-            local copy        : _-      alternative Underscore:-         child pos            : {Pos}-         visit 0:-            local copy        : _--}--- cata-sem_Pattern :: Pattern ->-               T_Pattern-sem_Pattern (Alias _field _attr _pat) =-    (sem_Pattern_Alias _field _attr (sem_Pattern _pat))-sem_Pattern (Constr _name _pats) =-    (sem_Pattern_Constr _name (sem_Patterns _pats))-sem_Pattern (Irrefutable _pat) =-    (sem_Pattern_Irrefutable (sem_Pattern _pat))-sem_Pattern (Product _pos _pats) =-    (sem_Pattern_Product _pos (sem_Patterns _pats))-sem_Pattern (Underscore _pos) =-    (sem_Pattern_Underscore _pos)--- semantic domain-newtype T_Pattern = T_Pattern ((Map Identifier Type) ->-                               (Map AltAttr Vertex) ->-                               Identifier ->-                               Attributes ->-                               Identifier ->-                               Attributes ->-                               ( Pattern,(Seq Error),([AltAttr]),([Identifier]),([Identifier]),([(Identifier,Identifier,Bool)])))-data Inh_Pattern = Inh_Pattern {allTypeSigs_Inh_Pattern :: !((Map Identifier Type)),altAttrs_Inh_Pattern :: !((Map AltAttr Vertex)),con_Inh_Pattern :: !(Identifier),inh_Inh_Pattern :: !(Attributes),nt_Inh_Pattern :: !(Identifier),syn_Inh_Pattern :: !(Attributes)}-data Syn_Pattern = Syn_Pattern {copy_Syn_Pattern :: !(Pattern),errors_Syn_Pattern :: !((Seq Error)),gathAltAttrs_Syn_Pattern :: !(([AltAttr])),instVars_Syn_Pattern :: !(([Identifier])),locVars_Syn_Pattern :: !(([Identifier])),patternAttrs_Syn_Pattern :: !(([(Identifier,Identifier,Bool)]))}-wrap_Pattern :: T_Pattern ->-                Inh_Pattern ->-                Syn_Pattern-wrap_Pattern (T_Pattern sem) (Inh_Pattern _lhsIallTypeSigs _lhsIaltAttrs _lhsIcon _lhsIinh _lhsInt _lhsIsyn) =-    (let ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs) = sem _lhsIallTypeSigs _lhsIaltAttrs _lhsIcon _lhsIinh _lhsInt _lhsIsyn-     in  (Syn_Pattern _lhsOcopy _lhsOerrors _lhsOgathAltAttrs _lhsOinstVars _lhsOlocVars _lhsOpatternAttrs))-sem_Pattern_Alias :: Identifier ->-                     Identifier ->-                     T_Pattern ->-                     T_Pattern-sem_Pattern_Alias field_ attr_ (T_Pattern pat_) =-    (T_Pattern (\ _lhsIallTypeSigs-                  _lhsIaltAttrs-                  _lhsIcon-                  _lhsIinh-                  _lhsInt-                  _lhsIsyn ->-                    (let _lhsOgathAltAttrs :: ([AltAttr])-                         _lhsOpatternAttrs :: ([(Identifier,Identifier,Bool)])-                         _lhsOlocVars :: ([Identifier])-                         _lhsOinstVars :: ([Identifier])-                         _lhsOerrors :: (Seq Error)-                         _lhsOcopy :: Pattern-                         _patOallTypeSigs :: (Map Identifier Type)-                         _patOaltAttrs :: (Map AltAttr Vertex)-                         _patOcon :: Identifier-                         _patOinh :: Attributes-                         _patOnt :: Identifier-                         _patOsyn :: Attributes-                         _patIcopy :: Pattern-                         _patIerrors :: (Seq Error)-                         _patIgathAltAttrs :: ([AltAttr])-                         _patIinstVars :: ([Identifier])-                         _patIlocVars :: ([Identifier])-                         _patIpatternAttrs :: ([(Identifier,Identifier,Bool)])-                         -- "src-ag/Order.ag"(line 185, column 12)-                         _lhsOgathAltAttrs =-                             ({-# LINE 185 "src-ag/Order.ag" #-}-                              [AltAttr field_ attr_ (field_ == _LOC || field_ == _INST)]-                              {-# LINE 2629 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 251, column 12)-                         _lhsOpatternAttrs =-                             ({-# LINE 251 "src-ag/Order.ag" #-}-                              [(field_,attr_,(field_ == _LOC || field_ == _INST))]-                              {-# LINE 2635 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 681, column 14)-                         _lhsOlocVars =-                             ({-# LINE 681 "src-ag/Order.ag" #-}-                              if field_ == _LOC-                                 then [attr_]-                                 else []-                              {-# LINE 2643 "dist/build/Order" #-}-                              )-                         -- "src-ag/Order.ag"(line 684, column 14)-                         _lhsOinstVars =-                             ({-# LINE 684 "src-ag/Order.ag" #-}-                              if field_ == _INST-                                 then [attr_]-                                 else []-                              {-# LINE 2651 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 85, column 70)-                         _lhsOerrors =-                             ({-# LINE 85 "src-ag/Order.ag" #-}-                              _patIerrors-                              {-# LINE 2657 "dist/build/Order" #-}-                              )-                         -- self rule-                         _copy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              Alias field_ attr_ _patIcopy-                              {-# LINE 2663 "dist/build/Order" #-}-                              )-                         -- self rule-                         _lhsOcopy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              _copy-                              {-# LINE 2669 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patOallTypeSigs =-                             ({-# LINE 534 "src-ag/Order.ag" #-}-                              _lhsIallTypeSigs-                              {-# LINE 2675 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patOaltAttrs =-                             ({-# LINE 187 "src-ag/Order.ag" #-}-                              _lhsIaltAttrs-                              {-# LINE 2681 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patOcon =-                             ({-# LINE 91 "src-ag/Order.ag" #-}-                              _lhsIcon-                              {-# LINE 2687 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patOinh =-                             ({-# LINE 90 "src-ag/Order.ag" #-}-                              _lhsIinh-                              {-# LINE 2693 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patOnt =-                             ({-# LINE 90 "src-ag/Order.ag" #-}-                              _lhsInt-                              {-# LINE 2699 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patOsyn =-                             ({-# LINE 90 "src-ag/Order.ag" #-}-                              _lhsIsyn-                              {-# LINE 2705 "dist/build/Order" #-}-                              )-                         ( _patIcopy,_patIerrors,_patIgathAltAttrs,_patIinstVars,_patIlocVars,_patIpatternAttrs) =-                             pat_ _patOallTypeSigs _patOaltAttrs _patOcon _patOinh _patOnt _patOsyn-                     in  ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs))))-sem_Pattern_Constr :: ConstructorIdent ->-                      T_Patterns ->-                      T_Pattern-sem_Pattern_Constr name_ (T_Patterns pats_) =-    (T_Pattern (\ _lhsIallTypeSigs-                  _lhsIaltAttrs-                  _lhsIcon-                  _lhsIinh-                  _lhsInt-                  _lhsIsyn ->-                    (let _lhsOerrors :: (Seq Error)-                         _lhsOgathAltAttrs :: ([AltAttr])-                         _lhsOinstVars :: ([Identifier])-                         _lhsOlocVars :: ([Identifier])-                         _lhsOpatternAttrs :: ([(Identifier,Identifier,Bool)])-                         _lhsOcopy :: Pattern-                         _patsOallTypeSigs :: (Map Identifier Type)-                         _patsOaltAttrs :: (Map AltAttr Vertex)-                         _patsOcon :: Identifier-                         _patsOinh :: Attributes-                         _patsOnt :: Identifier-                         _patsOsyn :: Attributes-                         _patsIcopy :: Patterns-                         _patsIerrors :: (Seq Error)-                         _patsIgathAltAttrs :: ([AltAttr])-                         _patsIinstVars :: ([Identifier])-                         _patsIlocVars :: ([Identifier])-                         _patsIpatternAttrs :: ([(Identifier,Identifier,Bool)])-                         -- use rule "src-ag/Order.ag"(line 85, column 70)-                         _lhsOerrors =-                             ({-# LINE 85 "src-ag/Order.ag" #-}-                              _patsIerrors-                              {-# LINE 2742 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 171, column 68)-                         _lhsOgathAltAttrs =-                             ({-# LINE 171 "src-ag/Order.ag" #-}-                              _patsIgathAltAttrs-                              {-# LINE 2748 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 678, column 86)-                         _lhsOinstVars =-                             ({-# LINE 678 "src-ag/Order.ag" #-}-                              _patsIinstVars-                              {-# LINE 2754 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 678, column 48)-                         _lhsOlocVars =-                             ({-# LINE 678 "src-ag/Order.ag" #-}-                              _patsIlocVars-                              {-# LINE 2760 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 248, column 42)-                         _lhsOpatternAttrs =-                             ({-# LINE 248 "src-ag/Order.ag" #-}-                              _patsIpatternAttrs-                              {-# LINE 2766 "dist/build/Order" #-}-                              )-                         -- self rule-                         _copy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              Constr name_ _patsIcopy-                              {-# LINE 2772 "dist/build/Order" #-}-                              )-                         -- self rule-                         _lhsOcopy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              _copy-                              {-# LINE 2778 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patsOallTypeSigs =-                             ({-# LINE 534 "src-ag/Order.ag" #-}-                              _lhsIallTypeSigs-                              {-# LINE 2784 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patsOaltAttrs =-                             ({-# LINE 187 "src-ag/Order.ag" #-}-                              _lhsIaltAttrs-                              {-# LINE 2790 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patsOcon =-                             ({-# LINE 91 "src-ag/Order.ag" #-}-                              _lhsIcon-                              {-# LINE 2796 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patsOinh =-                             ({-# LINE 90 "src-ag/Order.ag" #-}-                              _lhsIinh-                              {-# LINE 2802 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patsOnt =-                             ({-# LINE 90 "src-ag/Order.ag" #-}-                              _lhsInt-                              {-# LINE 2808 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patsOsyn =-                             ({-# LINE 90 "src-ag/Order.ag" #-}-                              _lhsIsyn-                              {-# LINE 2814 "dist/build/Order" #-}-                              )-                         ( _patsIcopy,_patsIerrors,_patsIgathAltAttrs,_patsIinstVars,_patsIlocVars,_patsIpatternAttrs) =-                             pats_ _patsOallTypeSigs _patsOaltAttrs _patsOcon _patsOinh _patsOnt _patsOsyn-                     in  ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs))))-sem_Pattern_Irrefutable :: T_Pattern ->-                           T_Pattern-sem_Pattern_Irrefutable (T_Pattern pat_) =-    (T_Pattern (\ _lhsIallTypeSigs-                  _lhsIaltAttrs-                  _lhsIcon-                  _lhsIinh-                  _lhsInt-                  _lhsIsyn ->-                    (let _lhsOerrors :: (Seq Error)-                         _lhsOgathAltAttrs :: ([AltAttr])-                         _lhsOinstVars :: ([Identifier])-                         _lhsOlocVars :: ([Identifier])-                         _lhsOpatternAttrs :: ([(Identifier,Identifier,Bool)])-                         _lhsOcopy :: Pattern-                         _patOallTypeSigs :: (Map Identifier Type)-                         _patOaltAttrs :: (Map AltAttr Vertex)-                         _patOcon :: Identifier-                         _patOinh :: Attributes-                         _patOnt :: Identifier-                         _patOsyn :: Attributes-                         _patIcopy :: Pattern-                         _patIerrors :: (Seq Error)-                         _patIgathAltAttrs :: ([AltAttr])-                         _patIinstVars :: ([Identifier])-                         _patIlocVars :: ([Identifier])-                         _patIpatternAttrs :: ([(Identifier,Identifier,Bool)])-                         -- use rule "src-ag/Order.ag"(line 85, column 70)-                         _lhsOerrors =-                             ({-# LINE 85 "src-ag/Order.ag" #-}-                              _patIerrors-                              {-# LINE 2850 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 171, column 68)-                         _lhsOgathAltAttrs =-                             ({-# LINE 171 "src-ag/Order.ag" #-}-                              _patIgathAltAttrs-                              {-# LINE 2856 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 678, column 86)-                         _lhsOinstVars =-                             ({-# LINE 678 "src-ag/Order.ag" #-}-                              _patIinstVars-                              {-# LINE 2862 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 678, column 48)-                         _lhsOlocVars =-                             ({-# LINE 678 "src-ag/Order.ag" #-}-                              _patIlocVars-                              {-# LINE 2868 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 248, column 42)-                         _lhsOpatternAttrs =-                             ({-# LINE 248 "src-ag/Order.ag" #-}-                              _patIpatternAttrs-                              {-# LINE 2874 "dist/build/Order" #-}-                              )-                         -- self rule-                         _copy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              Irrefutable _patIcopy-                              {-# LINE 2880 "dist/build/Order" #-}-                              )-                         -- self rule-                         _lhsOcopy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              _copy-                              {-# LINE 2886 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patOallTypeSigs =-                             ({-# LINE 534 "src-ag/Order.ag" #-}-                              _lhsIallTypeSigs-                              {-# LINE 2892 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patOaltAttrs =-                             ({-# LINE 187 "src-ag/Order.ag" #-}-                              _lhsIaltAttrs-                              {-# LINE 2898 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patOcon =-                             ({-# LINE 91 "src-ag/Order.ag" #-}-                              _lhsIcon-                              {-# LINE 2904 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patOinh =-                             ({-# LINE 90 "src-ag/Order.ag" #-}-                              _lhsIinh-                              {-# LINE 2910 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patOnt =-                             ({-# LINE 90 "src-ag/Order.ag" #-}-                              _lhsInt-                              {-# LINE 2916 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patOsyn =-                             ({-# LINE 90 "src-ag/Order.ag" #-}-                              _lhsIsyn-                              {-# LINE 2922 "dist/build/Order" #-}-                              )-                         ( _patIcopy,_patIerrors,_patIgathAltAttrs,_patIinstVars,_patIlocVars,_patIpatternAttrs) =-                             pat_ _patOallTypeSigs _patOaltAttrs _patOcon _patOinh _patOnt _patOsyn-                     in  ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs))))-sem_Pattern_Product :: Pos ->-                       T_Patterns ->-                       T_Pattern-sem_Pattern_Product pos_ (T_Patterns pats_) =-    (T_Pattern (\ _lhsIallTypeSigs-                  _lhsIaltAttrs-                  _lhsIcon-                  _lhsIinh-                  _lhsInt-                  _lhsIsyn ->-                    (let _lhsOerrors :: (Seq Error)-                         _lhsOgathAltAttrs :: ([AltAttr])-                         _lhsOinstVars :: ([Identifier])-                         _lhsOlocVars :: ([Identifier])-                         _lhsOpatternAttrs :: ([(Identifier,Identifier,Bool)])-                         _lhsOcopy :: Pattern-                         _patsOallTypeSigs :: (Map Identifier Type)-                         _patsOaltAttrs :: (Map AltAttr Vertex)-                         _patsOcon :: Identifier-                         _patsOinh :: Attributes-                         _patsOnt :: Identifier-                         _patsOsyn :: Attributes-                         _patsIcopy :: Patterns-                         _patsIerrors :: (Seq Error)-                         _patsIgathAltAttrs :: ([AltAttr])-                         _patsIinstVars :: ([Identifier])-                         _patsIlocVars :: ([Identifier])-                         _patsIpatternAttrs :: ([(Identifier,Identifier,Bool)])-                         -- use rule "src-ag/Order.ag"(line 85, column 70)-                         _lhsOerrors =-                             ({-# LINE 85 "src-ag/Order.ag" #-}-                              _patsIerrors-                              {-# LINE 2959 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 171, column 68)-                         _lhsOgathAltAttrs =-                             ({-# LINE 171 "src-ag/Order.ag" #-}-                              _patsIgathAltAttrs-                              {-# LINE 2965 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 678, column 86)-                         _lhsOinstVars =-                             ({-# LINE 678 "src-ag/Order.ag" #-}-                              _patsIinstVars-                              {-# LINE 2971 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 678, column 48)-                         _lhsOlocVars =-                             ({-# LINE 678 "src-ag/Order.ag" #-}-                              _patsIlocVars-                              {-# LINE 2977 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 248, column 42)-                         _lhsOpatternAttrs =-                             ({-# LINE 248 "src-ag/Order.ag" #-}-                              _patsIpatternAttrs-                              {-# LINE 2983 "dist/build/Order" #-}-                              )-                         -- self rule-                         _copy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              Product pos_ _patsIcopy-                              {-# LINE 2989 "dist/build/Order" #-}-                              )-                         -- self rule-                         _lhsOcopy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              _copy-                              {-# LINE 2995 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patsOallTypeSigs =-                             ({-# LINE 534 "src-ag/Order.ag" #-}-                              _lhsIallTypeSigs-                              {-# LINE 3001 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patsOaltAttrs =-                             ({-# LINE 187 "src-ag/Order.ag" #-}-                              _lhsIaltAttrs-                              {-# LINE 3007 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patsOcon =-                             ({-# LINE 91 "src-ag/Order.ag" #-}-                              _lhsIcon-                              {-# LINE 3013 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patsOinh =-                             ({-# LINE 90 "src-ag/Order.ag" #-}-                              _lhsIinh-                              {-# LINE 3019 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patsOnt =-                             ({-# LINE 90 "src-ag/Order.ag" #-}-                              _lhsInt-                              {-# LINE 3025 "dist/build/Order" #-}-                              )-                         -- copy rule (down)-                         _patsOsyn =-                             ({-# LINE 90 "src-ag/Order.ag" #-}-                              _lhsIsyn-                              {-# LINE 3031 "dist/build/Order" #-}-                              )-                         ( _patsIcopy,_patsIerrors,_patsIgathAltAttrs,_patsIinstVars,_patsIlocVars,_patsIpatternAttrs) =-                             pats_ _patsOallTypeSigs _patsOaltAttrs _patsOcon _patsOinh _patsOnt _patsOsyn-                     in  ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs))))-sem_Pattern_Underscore :: Pos ->-                          T_Pattern-sem_Pattern_Underscore pos_ =-    (T_Pattern (\ _lhsIallTypeSigs-                  _lhsIaltAttrs-                  _lhsIcon-                  _lhsIinh-                  _lhsInt-                  _lhsIsyn ->-                    (let _lhsOerrors :: (Seq Error)-                         _lhsOgathAltAttrs :: ([AltAttr])-                         _lhsOinstVars :: ([Identifier])-                         _lhsOlocVars :: ([Identifier])-                         _lhsOpatternAttrs :: ([(Identifier,Identifier,Bool)])-                         _lhsOcopy :: Pattern-                         -- use rule "src-ag/Order.ag"(line 85, column 70)-                         _lhsOerrors =-                             ({-# LINE 85 "src-ag/Order.ag" #-}-                              Seq.empty-                              {-# LINE 3055 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 171, column 68)-                         _lhsOgathAltAttrs =-                             ({-# LINE 171 "src-ag/Order.ag" #-}-                              []-                              {-# LINE 3061 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 678, column 86)-                         _lhsOinstVars =-                             ({-# LINE 678 "src-ag/Order.ag" #-}-                              []-                              {-# LINE 3067 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 678, column 48)-                         _lhsOlocVars =-                             ({-# LINE 678 "src-ag/Order.ag" #-}-                              []-                              {-# LINE 3073 "dist/build/Order" #-}-                              )-                         -- use rule "src-ag/Order.ag"(line 248, column 42)-                         _lhsOpatternAttrs =-                             ({-# LINE 248 "src-ag/Order.ag" #-}-                              []-                              {-# LINE 3079 "dist/build/Order" #-}-                              )-                         -- self rule-                         _copy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              Underscore pos_-                              {-# LINE 3085 "dist/build/Order" #-}-                              )-                         -- self rule-                         _lhsOcopy =-                             ({-# LINE 22 "src-ag/Patterns.ag" #-}-                              _copy-                              {-# LINE 3091 "dist/build/Order" #-}-                              )-                     in  ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs))))--- Patterns -----------------------------------------------------{--   visit 0:-      inherited attributes:-         allTypeSigs          : Map Identifier Type-         altAttrs             : Map AltAttr Vertex-         con                  : Identifier-         inh                  : Attributes-         nt                   : Identifier-         syn                  : Attributes-      synthesized attributes:-         copy                 : Patterns -         errors               : Seq Error-         gathAltAttrs         : [AltAttr]-         instVars             : [Identifier]-         locVars              : [Identifier]-         patternAttrs         : [(Identifier,Identifier,Bool)]-   alternatives:-      alternative Cons:-         child hd             : Pattern -         child tl             : Patterns -         visit 0:-            local copy        : _-      alternative Nil:-         visit 0:-            local copy        : _--}--- cata-sem_Patterns :: Patterns ->-                T_Patterns-sem_Patterns list =-    (Prelude.foldr sem_Patterns_Cons sem_Patterns_Nil (Prelude.map sem_Pattern list))--- semantic domain-newtype T_Patterns = T_Patterns ((Map Identifier Type) ->-                                 (Map AltAttr Vertex) ->-                                 Identifier ->-                                 Attributes ->-                                 Identifier ->-                                 Attributes ->-                                 ( Patterns,(Seq Error),([AltAttr]),([Identifier]),([Identifier]),([(Identifier,Identifier,Bool)])))-data Inh_Patterns = Inh_Patterns {allTypeSigs_Inh_Patterns :: !((Map Identifier Type)),altAttrs_Inh_Patterns :: !((Map AltAttr Vertex)),con_Inh_Patterns :: !(Identifier),inh_Inh_Patterns :: !(Attributes),nt_Inh_Patterns :: !(Identifier),syn_Inh_Patterns :: !(Attributes)}-data Syn_Patterns = Syn_Patterns {copy_Syn_Patterns :: !(Patterns),errors_Syn_Patterns :: !((Seq Error)),gathAltAttrs_Syn_Patterns :: !(([AltAttr])),instVars_Syn_Patterns :: !(([Identifier])),locVars_Syn_Patterns :: !(([Identifier])),patternAttrs_Syn_Patterns :: !(([(Identifier,Identifier,Bool)]))}-wrap_Patterns :: T_Patterns ->-                 Inh_Patterns ->-                 Syn_Patterns-wrap_Patterns (T_Patterns sem) (Inh_Patterns _lhsIallTypeSigs _lhsIaltAttrs _lhsIcon _lhsIinh _lhsInt _lhsIsyn) =-    (let ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs) = sem _lhsIallTypeSigs _lhsIaltAttrs _lhsIcon _lhsIinh _lhsInt _lhsIsyn-     in  (Syn_Patterns _lhsOcopy _lhsOerrors _lhsOgathAltAttrs _lhsOinstVars _lhsOlocVars _lhsOpatternAttrs))-sem_Patterns_Cons :: T_Pattern ->-                     T_Patterns ->-                     T_Patterns-sem_Patterns_Cons (T_Pattern hd_) (T_Patterns tl_) =-    (T_Patterns (\ _lhsIallTypeSigs-                   _lhsIaltAttrs-                   _lhsIcon-                   _lhsIinh-                   _lhsInt-                   _lhsIsyn ->-                     (let _lhsOerrors :: (Seq Error)-                          _lhsOgathAltAttrs :: ([AltAttr])-                          _lhsOinstVars :: ([Identifier])-                          _lhsOlocVars :: ([Identifier])-                          _lhsOpatternAttrs :: ([(Identifier,Identifier,Bool)])-                          _lhsOcopy :: Patterns-                          _hdOallTypeSigs :: (Map Identifier Type)-                          _hdOaltAttrs :: (Map AltAttr Vertex)-                          _hdOcon :: Identifier-                          _hdOinh :: Attributes-                          _hdOnt :: Identifier-                          _hdOsyn :: Attributes-                          _tlOallTypeSigs :: (Map Identifier Type)-                          _tlOaltAttrs :: (Map AltAttr Vertex)-                          _tlOcon :: Identifier-                          _tlOinh :: Attributes-                          _tlOnt :: Identifier-                          _tlOsyn :: Attributes-                          _hdIcopy :: Pattern-                          _hdIerrors :: (Seq Error)-                          _hdIgathAltAttrs :: ([AltAttr])-                          _hdIinstVars :: ([Identifier])-                          _hdIlocVars :: ([Identifier])-                          _hdIpatternAttrs :: ([(Identifier,Identifier,Bool)])-                          _tlIcopy :: Patterns-                          _tlIerrors :: (Seq Error)-                          _tlIgathAltAttrs :: ([AltAttr])-                          _tlIinstVars :: ([Identifier])-                          _tlIlocVars :: ([Identifier])-                          _tlIpatternAttrs :: ([(Identifier,Identifier,Bool)])-                          -- use rule "src-ag/Order.ag"(line 85, column 70)-                          _lhsOerrors =-                              ({-# LINE 85 "src-ag/Order.ag" #-}-                               _hdIerrors Seq.>< _tlIerrors-                               {-# LINE 3186 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 171, column 68)-                          _lhsOgathAltAttrs =-                              ({-# LINE 171 "src-ag/Order.ag" #-}-                               _hdIgathAltAttrs ++ _tlIgathAltAttrs-                               {-# LINE 3192 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 678, column 86)-                          _lhsOinstVars =-                              ({-# LINE 678 "src-ag/Order.ag" #-}-                               _hdIinstVars ++ _tlIinstVars-                               {-# LINE 3198 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 678, column 48)-                          _lhsOlocVars =-                              ({-# LINE 678 "src-ag/Order.ag" #-}-                               _hdIlocVars ++ _tlIlocVars-                               {-# LINE 3204 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 248, column 42)-                          _lhsOpatternAttrs =-                              ({-# LINE 248 "src-ag/Order.ag" #-}-                               _hdIpatternAttrs ++ _tlIpatternAttrs-                               {-# LINE 3210 "dist/build/Order" #-}-                               )-                          -- self rule-                          _copy =-                              ({-# LINE 22 "src-ag/Patterns.ag" #-}-                               (:) _hdIcopy _tlIcopy-                               {-# LINE 3216 "dist/build/Order" #-}-                               )-                          -- self rule-                          _lhsOcopy =-                              ({-# LINE 22 "src-ag/Patterns.ag" #-}-                               _copy-                               {-# LINE 3222 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOallTypeSigs =-                              ({-# LINE 534 "src-ag/Order.ag" #-}-                               _lhsIallTypeSigs-                               {-# LINE 3228 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOaltAttrs =-                              ({-# LINE 187 "src-ag/Order.ag" #-}-                               _lhsIaltAttrs-                               {-# LINE 3234 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOcon =-                              ({-# LINE 91 "src-ag/Order.ag" #-}-                               _lhsIcon-                               {-# LINE 3240 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOinh =-                              ({-# LINE 90 "src-ag/Order.ag" #-}-                               _lhsIinh-                               {-# LINE 3246 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOnt =-                              ({-# LINE 90 "src-ag/Order.ag" #-}-                               _lhsInt-                               {-# LINE 3252 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOsyn =-                              ({-# LINE 90 "src-ag/Order.ag" #-}-                               _lhsIsyn-                               {-# LINE 3258 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _tlOallTypeSigs =-                              ({-# LINE 534 "src-ag/Order.ag" #-}-                               _lhsIallTypeSigs-                               {-# LINE 3264 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _tlOaltAttrs =-                              ({-# LINE 187 "src-ag/Order.ag" #-}-                               _lhsIaltAttrs-                               {-# LINE 3270 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _tlOcon =-                              ({-# LINE 91 "src-ag/Order.ag" #-}-                               _lhsIcon-                               {-# LINE 3276 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _tlOinh =-                              ({-# LINE 90 "src-ag/Order.ag" #-}-                               _lhsIinh-                               {-# LINE 3282 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _tlOnt =-                              ({-# LINE 90 "src-ag/Order.ag" #-}-                               _lhsInt-                               {-# LINE 3288 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _tlOsyn =-                              ({-# LINE 90 "src-ag/Order.ag" #-}-                               _lhsIsyn-                               {-# LINE 3294 "dist/build/Order" #-}-                               )-                          ( _hdIcopy,_hdIerrors,_hdIgathAltAttrs,_hdIinstVars,_hdIlocVars,_hdIpatternAttrs) =-                              hd_ _hdOallTypeSigs _hdOaltAttrs _hdOcon _hdOinh _hdOnt _hdOsyn-                          ( _tlIcopy,_tlIerrors,_tlIgathAltAttrs,_tlIinstVars,_tlIlocVars,_tlIpatternAttrs) =-                              tl_ _tlOallTypeSigs _tlOaltAttrs _tlOcon _tlOinh _tlOnt _tlOsyn-                      in  ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs))))-sem_Patterns_Nil :: T_Patterns-sem_Patterns_Nil =-    (T_Patterns (\ _lhsIallTypeSigs-                   _lhsIaltAttrs-                   _lhsIcon-                   _lhsIinh-                   _lhsInt-                   _lhsIsyn ->-                     (let _lhsOerrors :: (Seq Error)-                          _lhsOgathAltAttrs :: ([AltAttr])-                          _lhsOinstVars :: ([Identifier])-                          _lhsOlocVars :: ([Identifier])-                          _lhsOpatternAttrs :: ([(Identifier,Identifier,Bool)])-                          _lhsOcopy :: Patterns-                          -- use rule "src-ag/Order.ag"(line 85, column 70)-                          _lhsOerrors =-                              ({-# LINE 85 "src-ag/Order.ag" #-}-                               Seq.empty-                               {-# LINE 3319 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 171, column 68)-                          _lhsOgathAltAttrs =-                              ({-# LINE 171 "src-ag/Order.ag" #-}-                               []-                               {-# LINE 3325 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 678, column 86)-                          _lhsOinstVars =-                              ({-# LINE 678 "src-ag/Order.ag" #-}-                               []-                               {-# LINE 3331 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 678, column 48)-                          _lhsOlocVars =-                              ({-# LINE 678 "src-ag/Order.ag" #-}-                               []-                               {-# LINE 3337 "dist/build/Order" #-}-                               )-                          -- use rule "src-ag/Order.ag"(line 248, column 42)-                          _lhsOpatternAttrs =-                              ({-# LINE 248 "src-ag/Order.ag" #-}-                               []-                               {-# LINE 3343 "dist/build/Order" #-}-                               )-                          -- self rule-                          _copy =-                              ({-# LINE 22 "src-ag/Patterns.ag" #-}-                               []-                               {-# LINE 3349 "dist/build/Order" #-}-                               )-                          -- self rule-                          _lhsOcopy =-                              ({-# LINE 22 "src-ag/Patterns.ag" #-}-                               _copy-                               {-# LINE 3355 "dist/build/Order" #-}-                               )-                      in  ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs))))--- Production ---------------------------------------------------{--   visit 0:-      inherited attributes:-         allnts               : [Identifier]-         aroundMap            : Map ConstructorIdent (Map Identifier [Expression])-         cVisitsMap           : CVisitsMap-         inh                  : Attributes-         inhMap               : Map Identifier Attributes-         manualAttrDepMap     : AttrOrderMap-         mergeMap             : Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))-         nt                   : Identifier-         o_case               : Bool-         o_cata               : Bool-         o_dovisit            : Bool-         o_newtypes           : Bool-         o_rename             : Bool-         o_sem                : Bool-         o_sig                : Bool-         o_unbox              : Bool-         o_wantvisit          : Bool-         prefix               : String-         syn                  : Attributes-         synMap               : Map Identifier Attributes-      chained attribute:-         vcount               : Int-      synthesized attributes:-         additionalDep        : Seq Edge-         aroundDep            : Seq Edge-         cProduction          : CProduction-         cons                 : [ConstructorIdent]-         directDep            : Seq Edge-         errors               : Seq Error-         instDep              : Seq Edge-         mergeDep             : Seq Edge-         nAutoRules           : Int-         nExplicitRules       : Int-         rules                : Seq (Vertex,CRule)-   alternatives:-      alternative Production:-         child con            : {ConstructorIdent}-         child params         : {[Identifier]}-         child constraints    : {[Type]}-         child children       : Children -         child rules          : Rules -         child typeSigs       : TypeSigs -         child macro          : {MaybeMacro}-         visit 0:-            local gathAltAttrs : _-            local altAttrs    : _-            local inhRules    : _-            local gathRules   : _-            local manualDeps  : _-            local mergeMap    : _-            local mergeDep1   : _-            local mergeDep2   : _-            local aroundMap   : _-            local aroundDep1  : _-            local aroundDep2  : _-            local cVisits     : _-            local allfields   : _-            local attrs       : _-            local inhnames    : _-            local synnames    : _--}--- cata-sem_Production :: Production ->-                  T_Production-sem_Production (Production _con _params _constraints _children _rules _typeSigs _macro) =-    (sem_Production_Production _con _params _constraints (sem_Children _children) (sem_Rules _rules) (sem_TypeSigs _typeSigs) _macro)--- semantic domain-newtype T_Production = T_Production (([Identifier]) ->-                                     (Map ConstructorIdent (Map Identifier [Expression])) ->-                                     CVisitsMap ->-                                     Attributes ->-                                     (Map Identifier Attributes) ->-                                     AttrOrderMap ->-                                     (Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))) ->-                                     Identifier ->-                                     Bool ->-                                     Bool ->-                                     Bool ->-                                     Bool ->-                                     Bool ->-                                     Bool ->-                                     Bool ->-                                     Bool ->-                                     Bool ->-                                     String ->-                                     Attributes ->-                                     (Map Identifier Attributes) ->-                                     Int ->-                                     ( (Seq Edge),(Seq Edge),CProduction,([ConstructorIdent]),(Seq Edge),(Seq Error),(Seq Edge),(Seq Edge),Int,Int,(Seq (Vertex,CRule)),Int))-data Inh_Production = Inh_Production {allnts_Inh_Production :: !(([Identifier])),aroundMap_Inh_Production :: !((Map ConstructorIdent (Map Identifier [Expression]))),cVisitsMap_Inh_Production :: !(CVisitsMap),inh_Inh_Production :: !(Attributes),inhMap_Inh_Production :: !((Map Identifier Attributes)),manualAttrDepMap_Inh_Production :: !(AttrOrderMap),mergeMap_Inh_Production :: !((Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))),nt_Inh_Production :: !(Identifier),o_case_Inh_Production :: !(Bool),o_cata_Inh_Production :: !(Bool),o_dovisit_Inh_Production :: !(Bool),o_newtypes_Inh_Production :: !(Bool),o_rename_Inh_Production :: !(Bool),o_sem_Inh_Production :: !(Bool),o_sig_Inh_Production :: !(Bool),o_unbox_Inh_Production :: !(Bool),o_wantvisit_Inh_Production :: !(Bool),prefix_Inh_Production :: !(String),syn_Inh_Production :: !(Attributes),synMap_Inh_Production :: !((Map Identifier Attributes)),vcount_Inh_Production :: !(Int)}-data Syn_Production = Syn_Production {additionalDep_Syn_Production :: !((Seq Edge)),aroundDep_Syn_Production :: !((Seq Edge)),cProduction_Syn_Production :: !(CProduction),cons_Syn_Production :: !(([ConstructorIdent])),directDep_Syn_Production :: !((Seq Edge)),errors_Syn_Production :: !((Seq Error)),instDep_Syn_Production :: !((Seq Edge)),mergeDep_Syn_Production :: !((Seq Edge)),nAutoRules_Syn_Production :: !(Int),nExplicitRules_Syn_Production :: !(Int),rules_Syn_Production :: !((Seq (Vertex,CRule))),vcount_Syn_Production :: !(Int)}-wrap_Production :: T_Production ->-                   Inh_Production ->-                   Syn_Production-wrap_Production (T_Production sem) (Inh_Production _lhsIallnts _lhsIaroundMap _lhsIcVisitsMap _lhsIinh _lhsIinhMap _lhsImanualAttrDepMap _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_unbox _lhsIo_wantvisit _lhsIprefix _lhsIsyn _lhsIsynMap _lhsIvcount) =-    (let ( _lhsOadditionalDep,_lhsOaroundDep,_lhsOcProduction,_lhsOcons,_lhsOdirectDep,_lhsOerrors,_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOrules,_lhsOvcount) = sem _lhsIallnts _lhsIaroundMap _lhsIcVisitsMap _lhsIinh _lhsIinhMap _lhsImanualAttrDepMap _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_unbox _lhsIo_wantvisit _lhsIprefix _lhsIsyn _lhsIsynMap _lhsIvcount-     in  (Syn_Production _lhsOadditionalDep _lhsOaroundDep _lhsOcProduction _lhsOcons _lhsOdirectDep _lhsOerrors _lhsOinstDep _lhsOmergeDep _lhsOnAutoRules _lhsOnExplicitRules _lhsOrules _lhsOvcount))-sem_Production_Production :: ConstructorIdent ->-                             ([Identifier]) ->-                             ([Type]) ->-                             T_Children ->-                             T_Rules ->-                             T_TypeSigs ->-                             MaybeMacro ->-                             T_Production-sem_Production_Production con_ params_ constraints_ (T_Children children_) (T_Rules rules_) (T_TypeSigs typeSigs_) macro_ =-    (T_Production (\ _lhsIallnts-                     _lhsIaroundMap-                     _lhsIcVisitsMap-                     _lhsIinh-                     _lhsIinhMap-                     _lhsImanualAttrDepMap-                     _lhsImergeMap-                     _lhsInt-                     _lhsIo_case-                     _lhsIo_cata-                     _lhsIo_dovisit-                     _lhsIo_newtypes-                     _lhsIo_rename-                     _lhsIo_sem-                     _lhsIo_sig-                     _lhsIo_unbox-                     _lhsIo_wantvisit-                     _lhsIprefix-                     _lhsIsyn-                     _lhsIsynMap-                     _lhsIvcount ->-                       (let _childrenOcon :: Identifier-                            _rulesOcon :: Identifier-                            _rulesOchildNts :: (Map Identifier NontermIdent)-                            _rulesOchildInhs :: (Map Identifier Attributes)-                            _lhsOrules :: (Seq (Vertex,CRule))-                            _lhsOvcount :: Int-                            _lhsOadditionalDep :: (Seq Edge)-                            _rulesOsynsOfChildren :: (Map Identifier Attributes)-                            _rulesOinhsOfChildren :: (Map Identifier Attributes)-                            _lhsOmergeDep :: (Seq Edge)-                            _lhsOaroundDep :: (Seq Edge)-                            _lhsOcons :: ([ConstructorIdent])-                            _typeSigsOtypeSigs :: (Map Identifier Type)-                            _rulesOallTypeSigs :: (Map Identifier Type)-                            _lhsOcProduction :: CProduction-                            _lhsOdirectDep :: (Seq Edge)-                            _lhsOerrors :: (Seq Error)-                            _lhsOinstDep :: (Seq Edge)-                            _lhsOnAutoRules :: Int-                            _lhsOnExplicitRules :: Int-                            _childrenOallfields :: ([(Identifier,Type,ChildKind)])-                            _childrenOallnts :: ([Identifier])-                            _childrenOattrs :: ([(Identifier,Identifier)])-                            _childrenOinh :: Attributes-                            _childrenOinhMap :: (Map Identifier Attributes)-                            _childrenOmergeMap :: (Map Identifier (Identifier,[Identifier]))-                            _childrenOnt :: Identifier-                            _childrenOo_unbox :: Bool-                            _childrenOsyn :: Attributes-                            _childrenOsynMap :: (Map Identifier Attributes)-                            _rulesOallfields :: ([(Identifier,Type,ChildKind)])-                            _rulesOallnts :: ([Identifier])-                            _rulesOaltAttrs :: (Map AltAttr Vertex)-                            _rulesOattrs :: ([(Identifier,Identifier)])-                            _rulesOinh :: Attributes-                            _rulesOmergeMap :: (Map Identifier (Identifier,[Identifier]))-                            _rulesOnt :: Identifier-                            _rulesOo_case :: Bool-                            _rulesOo_cata :: Bool-                            _rulesOo_dovisit :: Bool-                            _rulesOo_newtypes :: Bool-                            _rulesOo_rename :: Bool-                            _rulesOo_sem :: Bool-                            _rulesOo_sig :: Bool-                            _rulesOo_wantvisit :: Bool-                            _rulesOprefix :: String-                            _rulesOsyn :: Attributes-                            _childrenIattributes :: ([(Identifier,Attributes,Attributes)])-                            _childrenIcollectChildrenInhs :: (Map Identifier Attributes )-                            _childrenIcollectChildrenSyns :: (Map Identifier Attributes )-                            _childrenIerrors :: (Seq Error)-                            _childrenIfields :: ([(Identifier,Type,ChildKind)])-                            _childrenIgathAltAttrs :: ([AltAttr])-                            _childrenIgathRules :: (Seq CRule)-                            _childrenIinhs :: (Seq (Identifier,Attributes))-                            _childrenInts :: (Seq (Identifier,NontermIdent))-                            _childrenIsinglevisits :: ([CRule])-                            _childrenIterminals :: ([Identifier])-                            _rulesIdirectDep :: (Seq Edge)-                            _rulesIerrors :: (Seq Error)-                            _rulesIgathAltAttrs :: ([AltAttr])-                            _rulesIgathRules :: (Seq CRule)-                            _rulesIinstDep :: (Seq Edge)-                            _rulesIinstVars :: ([Identifier])-                            _rulesIlocVars :: ([Identifier])-                            _rulesInAutoRules :: Int-                            _rulesInExplicitRules :: Int-                            _typeSigsItypeSigs :: (Map Identifier Type)-                            -- "src-ag/Order.ag"(line 94, column 16)-                            _childrenOcon =-                                ({-# LINE 94 "src-ag/Order.ag" #-}-                                 con_-                                 {-# LINE 3561 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 96, column 16)-                            _rulesOcon =-                                ({-# LINE 96 "src-ag/Order.ag" #-}-                                 con_-                                 {-# LINE 3567 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 173, column 18)-                            _gathAltAttrs =-                                ({-# LINE 173 "src-ag/Order.ag" #-}-                                 [ AltAttr _LHS inh True | inh <- Map.keys _lhsIinh ]-                                  ++ _childrenIgathAltAttrs-                                  ++ _rulesIgathAltAttrs-                                 {-# LINE 3575 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 189, column 17)-                            _altAttrs =-                                ({-# LINE 189 "src-ag/Order.ag" #-}-                                 Map.fromList (zip _gathAltAttrs [_lhsIvcount..])-                                 {-# LINE 3581 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 202, column 18)-                            _rulesOchildNts =-                                ({-# LINE 202 "src-ag/Order.ag" #-}-                                 Map.fromList (toList _childrenInts)-                                 {-# LINE 3587 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 203, column 19)-                            _rulesOchildInhs =-                                ({-# LINE 203 "src-ag/Order.ag" #-}-                                 Map.fromList (toList _childrenIinhs)-                                 {-# LINE 3593 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 209, column 18)-                            _inhRules =-                                ({-# LINE 209 "src-ag/Order.ag" #-}-                                 [ cRuleLhsInh inh _lhsInt con_ tp | (inh,tp) <- Map.assocs _lhsIinh ]-                                 {-# LINE 3599 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 210, column 19)-                            _gathRules =-                                ({-# LINE 210 "src-ag/Order.ag" #-}-                                 _inhRules ++ toList (_childrenIgathRules Seq.>< _rulesIgathRules)-                                 {-# LINE 3605 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 262, column 18)-                            _lhsOrules =-                                ({-# LINE 262 "src-ag/Order.ag" #-}-                                 Seq.fromList (zip [_lhsIvcount..] _gathRules)-                                 {-# LINE 3611 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 263, column 19)-                            _lhsOvcount =-                                ({-# LINE 263 "src-ag/Order.ag" #-}-                                 _lhsIvcount + length _gathRules-                                 {-# LINE 3617 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 290, column 7)-                            _manualDeps =-                                ({-# LINE 290 "src-ag/Order.ag" #-}-                                 Set.toList $ Map.findWithDefault Set.empty con_ $ Map.findWithDefault Map.empty _lhsInt _lhsImanualAttrDepMap-                                 {-# LINE 3623 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 293, column 7)-                            _lhsOadditionalDep =-                                ({-# LINE 293 "src-ag/Order.ag" #-}-                                 Seq.fromList [ (vertex True occA, vertex False occB)-                                              | Dependency occA occB <- _manualDeps-                                              , let vertex inout (OccAttr child nm)-                                                      | child == _LOC = findWithErr2 (AltAttr _LOC nm True) _altAttrs-                                                      | otherwise     = findWithErr2 (AltAttr child nm inout) _altAttrs-                                                    vertex _ (OccRule nm)-                                                      = findWithErr2 (AltAttr _LOC (Ident ("_rule_" ++ show nm) (getPos nm)) True) _altAttrs-                                              ]-                                 {-# LINE 3636 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 340, column 17)-                            _rulesOsynsOfChildren =-                                ({-# LINE 340 "src-ag/Order.ag" #-}-                                 _childrenIcollectChildrenSyns-                                 {-# LINE 3642 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 341, column 17)-                            _rulesOinhsOfChildren =-                                ({-# LINE 341 "src-ag/Order.ag" #-}-                                 _childrenIcollectChildrenInhs-                                 {-# LINE 3648 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 359, column 32)-                            _mergeMap =-                                ({-# LINE 359 "src-ag/Order.ag" #-}-                                 Map.findWithDefault Map.empty con_ _lhsImergeMap-                                 {-# LINE 3654 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 370, column 7)-                            _lhsOmergeDep =-                                ({-# LINE 370 "src-ag/Order.ag" #-}-                                 _mergeDep1     Seq.>< _mergeDep2-                                 {-# LINE 3660 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 371, column 7)-                            _mergeDep1 =-                                ({-# LINE 371 "src-ag/Order.ag" #-}-                                 Seq.fromList $-                                    [ (childVert, synVert)-                                    | childNm <- Map.keys _mergeMap-                                    , synNm <- Map.keys (findWithErr2 childNm _childrenIcollectChildrenSyns)-                                    , let childNm' = Ident (show childNm ++ "_merge") (getPos childNm)-                                          childAttr = AltAttr _LOC childNm' True-                                          synAttr  = AltAttr childNm synNm True-                                          childVert = findWithErr2 childAttr _altAttrs-                                          synVert  = findWithErr2 synAttr _altAttrs-                                    ]-                                 {-# LINE 3675 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 382, column 7)-                            _mergeDep2 =-                                ({-# LINE 382 "src-ag/Order.ag" #-}-                                 Seq.fromList $-                                    [ (mergedVert, sourceVert)-                                    | (childNm, (_,cs)) <- Map.assocs _mergeMap-                                    , c <- cs-                                    , synNm <- Map.keys (findWithErr2 childNm _childrenIcollectChildrenSyns)-                                    , let sourceAttr = AltAttr childNm synNm True-                                          mergedAttr = AltAttr c synNm True-                                          sourceVert = findWithErr2 sourceAttr _altAttrs-                                          mergedVert = findWithErr2 mergedAttr _altAttrs-                                    ]-                                 {-# LINE 3690 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 412, column 32)-                            _aroundMap =-                                ({-# LINE 412 "src-ag/Order.ag" #-}-                                 Map.findWithDefault Map.empty con_ _lhsIaroundMap-                                 {-# LINE 3696 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 419, column 6)-                            _aroundDep1 =-                                ({-# LINE 419 "src-ag/Order.ag" #-}-                                 Seq.fromList $-                                   [ (childVert, synVert)-                                   | childNm <- Map.keys _aroundMap-                                   , synNm <- Map.keys (findWithErr2 childNm _childrenIcollectChildrenSyns)-                                   , let childNm' = Ident (show childNm ++ "_around") (getPos childNm)-                                         childAttr = AltAttr _LOC childNm' True-                                         synAttr  = AltAttr childNm synNm True-                                         childVert = findWithErr2 childAttr _altAttrs-                                         synVert  = findWithErr2 synAttr _altAttrs-                                   ]-                                 {-# LINE 3711 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 430, column 6)-                            _aroundDep2 =-                                ({-# LINE 430 "src-ag/Order.ag" #-}-                                 Seq.fromList $-                                   [ (childVert, inhVert)-                                   | childNm <- Map.keys _aroundMap-                                   , inhNm <- Map.keys (findWithErr2 childNm _childrenIcollectChildrenInhs)-                                   , let childNm'  = Ident (show childNm ++ "_around") (getPos childNm)-                                         childAttr = AltAttr _LOC childNm' True-                                         inhAttr   = AltAttr childNm inhNm False-                                         childVert = findWithErr2 childAttr _altAttrs-                                         inhVert   = findWithErr2 inhAttr _altAttrs-                                   ]-                                 {-# LINE 3726 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 441, column 6)-                            _lhsOaroundDep =-                                ({-# LINE 441 "src-ag/Order.ag" #-}-                                 _aroundDep1     Seq.>< _aroundDep2-                                 {-# LINE 3732 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 523, column 18)-                            _lhsOcons =-                                ({-# LINE 523 "src-ag/Order.ag" #-}-                                 [con_]-                                 {-# LINE 3738 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 530, column 16)-                            _typeSigsOtypeSigs =-                                ({-# LINE 530 "src-ag/Order.ag" #-}-                                 Map.empty-                                 {-# LINE 3744 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 536, column 17)-                            _rulesOallTypeSigs =-                                ({-# LINE 536 "src-ag/Order.ag" #-}-                                 _typeSigsItypeSigs-                                 {-# LINE 3750 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 604, column 17)-                            _cVisits =-                                ({-# LINE 604 "src-ag/Order.ag" #-}-                                 if  _lhsIo_dovisit-                                      then let prodsVisitsMap = findWithErr1 "Production.cVisits.nt" _lhsInt _lhsIcVisitsMap-                                               visits = findWithErr1 "Production.cVisits.con" con_ prodsVisitsMap-                                            in visits-                                      else  let  vss = nubBy eqCRuleDefines _gathRules ++ _childrenIsinglevisits-                                            in  [CVisit _lhsIinh _lhsIsyn vss [] False]-                                 {-# LINE 3761 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 630, column 18)-                            _lhsOcProduction =-                                ({-# LINE 630 "src-ag/Order.ag" #-}-                                 CProduction con_ _cVisits _childrenIfields _childrenIterminals-                                 {-# LINE 3767 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 658, column 16)-                            _allfields =-                                ({-# LINE 658 "src-ag/Order.ag" #-}-                                 _childrenIfields-                                 {-# LINE 3773 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 658, column 16)-                            _attrs =-                                ({-# LINE 659 "src-ag/Order.ag" #-}-                                 map ((,) _LOC)  _rulesIlocVars ++-                                 map ((,) _INST) _rulesIinstVars ++-                                 map ((,) _LHS)  _inhnames ++-                                 concat [map ((,) nm) (Map.keys as) | (nm,_,as) <- _childrenIattributes]-                                 {-# LINE 3782 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 658, column 16)-                            _inhnames =-                                ({-# LINE 663 "src-ag/Order.ag" #-}-                                 Map.keys _lhsIinh-                                 {-# LINE 3788 "dist/build/Order" #-}-                                 )-                            -- "src-ag/Order.ag"(line 658, column 16)-                            _synnames =-                                ({-# LINE 664 "src-ag/Order.ag" #-}-                                 Map.keys _lhsIsyn-                                 {-# LINE 3794 "dist/build/Order" #-}-                                 )-                            -- use rule "src-ag/Order.ag"(line 268, column 33)-                            _lhsOdirectDep =-                                ({-# LINE 268 "src-ag/Order.ag" #-}-                                 _rulesIdirectDep-                                 {-# LINE 3800 "dist/build/Order" #-}-                                 )-                            -- use rule "src-ag/Order.ag"(line 85, column 70)-                            _lhsOerrors =-                                ({-# LINE 85 "src-ag/Order.ag" #-}-                                 _childrenIerrors Seq.>< _rulesIerrors-                                 {-# LINE 3806 "dist/build/Order" #-}-                                 )-                            -- use rule "src-ag/Order.ag"(line 311, column 31)-                            _lhsOinstDep =-                                ({-# LINE 311 "src-ag/Order.ag" #-}-                                 _rulesIinstDep-                                 {-# LINE 3812 "dist/build/Order" #-}-                                 )-                            -- use rule "src-ag/Order.ag"(line 62, column 105)-                            _lhsOnAutoRules =-                                ({-# LINE 62 "src-ag/Order.ag" #-}-                                 _rulesInAutoRules-                                 {-# LINE 3818 "dist/build/Order" #-}-                                 )-                            -- use rule "src-ag/Order.ag"(line 62, column 105)-                            _lhsOnExplicitRules =-                                ({-# LINE 62 "src-ag/Order.ag" #-}-                                 _rulesInExplicitRules-                                 {-# LINE 3824 "dist/build/Order" #-}-                                 )-                            -- copy rule (from local)-                            _childrenOallfields =-                                ({-# LINE 655 "src-ag/Order.ag" #-}-                                 _allfields-                                 {-# LINE 3830 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _childrenOallnts =-                                ({-# LINE 648 "src-ag/Order.ag" #-}-                                 _lhsIallnts-                                 {-# LINE 3836 "dist/build/Order" #-}-                                 )-                            -- copy rule (from local)-                            _childrenOattrs =-                                ({-# LINE 655 "src-ag/Order.ag" #-}-                                 _attrs-                                 {-# LINE 3842 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _childrenOinh =-                                ({-# LINE 90 "src-ag/Order.ag" #-}-                                 _lhsIinh-                                 {-# LINE 3848 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _childrenOinhMap =-                                ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}-                                 _lhsIinhMap-                                 {-# LINE 3854 "dist/build/Order" #-}-                                 )-                            -- copy rule (from local)-                            _childrenOmergeMap =-                                ({-# LINE 361 "src-ag/Order.ag" #-}-                                 _mergeMap-                                 {-# LINE 3860 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _childrenOnt =-                                ({-# LINE 90 "src-ag/Order.ag" #-}-                                 _lhsInt-                                 {-# LINE 3866 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _childrenOo_unbox =-                                ({-# LINE 120 "src-ag/Order.ag" #-}-                                 _lhsIo_unbox-                                 {-# LINE 3872 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _childrenOsyn =-                                ({-# LINE 90 "src-ag/Order.ag" #-}-                                 _lhsIsyn-                                 {-# LINE 3878 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _childrenOsynMap =-                                ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}-                                 _lhsIsynMap-                                 {-# LINE 3884 "dist/build/Order" #-}-                                 )-                            -- copy rule (from local)-                            _rulesOallfields =-                                ({-# LINE 655 "src-ag/Order.ag" #-}-                                 _allfields-                                 {-# LINE 3890 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _rulesOallnts =-                                ({-# LINE 648 "src-ag/Order.ag" #-}-                                 _lhsIallnts-                                 {-# LINE 3896 "dist/build/Order" #-}-                                 )-                            -- copy rule (from local)-                            _rulesOaltAttrs =-                                ({-# LINE 187 "src-ag/Order.ag" #-}-                                 _altAttrs-                                 {-# LINE 3902 "dist/build/Order" #-}-                                 )-                            -- copy rule (from local)-                            _rulesOattrs =-                                ({-# LINE 655 "src-ag/Order.ag" #-}-                                 _attrs-                                 {-# LINE 3908 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _rulesOinh =-                                ({-# LINE 90 "src-ag/Order.ag" #-}-                                 _lhsIinh-                                 {-# LINE 3914 "dist/build/Order" #-}-                                 )-                            -- copy rule (from local)-                            _rulesOmergeMap =-                                ({-# LINE 361 "src-ag/Order.ag" #-}-                                 _mergeMap-                                 {-# LINE 3920 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _rulesOnt =-                                ({-# LINE 90 "src-ag/Order.ag" #-}-                                 _lhsInt-                                 {-# LINE 3926 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _rulesOo_case =-                                ({-# LINE 118 "src-ag/Order.ag" #-}-                                 _lhsIo_case-                                 {-# LINE 3932 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _rulesOo_cata =-                                ({-# LINE 112 "src-ag/Order.ag" #-}-                                 _lhsIo_cata-                                 {-# LINE 3938 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _rulesOo_dovisit =-                                ({-# LINE 117 "src-ag/Order.ag" #-}-                                 _lhsIo_dovisit-                                 {-# LINE 3944 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _rulesOo_newtypes =-                                ({-# LINE 111 "src-ag/Order.ag" #-}-                                 _lhsIo_newtypes-                                 {-# LINE 3950 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _rulesOo_rename =-                                ({-# LINE 115 "src-ag/Order.ag" #-}-                                 _lhsIo_rename-                                 {-# LINE 3956 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _rulesOo_sem =-                                ({-# LINE 114 "src-ag/Order.ag" #-}-                                 _lhsIo_sem-                                 {-# LINE 3962 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _rulesOo_sig =-                                ({-# LINE 113 "src-ag/Order.ag" #-}-                                 _lhsIo_sig-                                 {-# LINE 3968 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _rulesOo_wantvisit =-                                ({-# LINE 116 "src-ag/Order.ag" #-}-                                 _lhsIo_wantvisit-                                 {-# LINE 3974 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _rulesOprefix =-                                ({-# LINE 119 "src-ag/Order.ag" #-}-                                 _lhsIprefix-                                 {-# LINE 3980 "dist/build/Order" #-}-                                 )-                            -- copy rule (down)-                            _rulesOsyn =-                                ({-# LINE 90 "src-ag/Order.ag" #-}-                                 _lhsIsyn-                                 {-# LINE 3986 "dist/build/Order" #-}-                                 )-                            ( _childrenIattributes,_childrenIcollectChildrenInhs,_childrenIcollectChildrenSyns,_childrenIerrors,_childrenIfields,_childrenIgathAltAttrs,_childrenIgathRules,_childrenIinhs,_childrenInts,_childrenIsinglevisits,_childrenIterminals) =-                                children_ _childrenOallfields _childrenOallnts _childrenOattrs _childrenOcon _childrenOinh _childrenOinhMap _childrenOmergeMap _childrenOnt _childrenOo_unbox _childrenOsyn _childrenOsynMap-                            ( _rulesIdirectDep,_rulesIerrors,_rulesIgathAltAttrs,_rulesIgathRules,_rulesIinstDep,_rulesIinstVars,_rulesIlocVars,_rulesInAutoRules,_rulesInExplicitRules) =-                                rules_ _rulesOallTypeSigs _rulesOallfields _rulesOallnts _rulesOaltAttrs _rulesOattrs _rulesOchildInhs _rulesOchildNts _rulesOcon _rulesOinh _rulesOinhsOfChildren _rulesOmergeMap _rulesOnt _rulesOo_case _rulesOo_cata _rulesOo_dovisit _rulesOo_newtypes _rulesOo_rename _rulesOo_sem _rulesOo_sig _rulesOo_wantvisit _rulesOprefix _rulesOsyn _rulesOsynsOfChildren-                            ( _typeSigsItypeSigs) =-                                typeSigs_ _typeSigsOtypeSigs-                        in  ( _lhsOadditionalDep,_lhsOaroundDep,_lhsOcProduction,_lhsOcons,_lhsOdirectDep,_lhsOerrors,_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOrules,_lhsOvcount))))--- Productions --------------------------------------------------{--   visit 0:-      inherited attributes:-         allnts               : [Identifier]-         aroundMap            : Map ConstructorIdent (Map Identifier [Expression])-         cVisitsMap           : CVisitsMap-         inh                  : Attributes-         inhMap               : Map Identifier Attributes-         manualAttrDepMap     : AttrOrderMap-         mergeMap             : Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))-         nt                   : Identifier-         o_case               : Bool-         o_cata               : Bool-         o_dovisit            : Bool-         o_newtypes           : Bool-         o_rename             : Bool-         o_sem                : Bool-         o_sig                : Bool-         o_unbox              : Bool-         o_wantvisit          : Bool-         prefix               : String-         syn                  : Attributes-         synMap               : Map Identifier Attributes-      chained attribute:-         vcount               : Int-      synthesized attributes:-         additionalDep        : Seq Edge-         aroundDep            : Seq Edge-         cProductions         : CProductions-         cons                 : [ConstructorIdent]-         directDep            : Seq Edge-         errors               : Seq Error-         instDep              : Seq Edge-         mergeDep             : Seq Edge-         nAutoRules           : Int-         nExplicitRules       : Int-         rules                : Seq (Vertex,CRule)-   alternatives:-      alternative Cons:-         child hd             : Production -         child tl             : Productions -      alternative Nil:--}--- cata-sem_Productions :: Productions ->-                   T_Productions-sem_Productions list =-    (Prelude.foldr sem_Productions_Cons sem_Productions_Nil (Prelude.map sem_Production list))--- semantic domain-newtype T_Productions = T_Productions (([Identifier]) ->-                                       (Map ConstructorIdent (Map Identifier [Expression])) ->-                                       CVisitsMap ->-                                       Attributes ->-                                       (Map Identifier Attributes) ->-                                       AttrOrderMap ->-                                       (Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))) ->-                                       Identifier ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       Bool ->-                                       String ->-                                       Attributes ->-                                       (Map Identifier Attributes) ->-                                       Int ->-                                       ( (Seq Edge),(Seq Edge),CProductions,([ConstructorIdent]),(Seq Edge),(Seq Error),(Seq Edge),(Seq Edge),Int,Int,(Seq (Vertex,CRule)),Int))-data Inh_Productions = Inh_Productions {allnts_Inh_Productions :: !(([Identifier])),aroundMap_Inh_Productions :: !((Map ConstructorIdent (Map Identifier [Expression]))),cVisitsMap_Inh_Productions :: !(CVisitsMap),inh_Inh_Productions :: !(Attributes),inhMap_Inh_Productions :: !((Map Identifier Attributes)),manualAttrDepMap_Inh_Productions :: !(AttrOrderMap),mergeMap_Inh_Productions :: !((Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))),nt_Inh_Productions :: !(Identifier),o_case_Inh_Productions :: !(Bool),o_cata_Inh_Productions :: !(Bool),o_dovisit_Inh_Productions :: !(Bool),o_newtypes_Inh_Productions :: !(Bool),o_rename_Inh_Productions :: !(Bool),o_sem_Inh_Productions :: !(Bool),o_sig_Inh_Productions :: !(Bool),o_unbox_Inh_Productions :: !(Bool),o_wantvisit_Inh_Productions :: !(Bool),prefix_Inh_Productions :: !(String),syn_Inh_Productions :: !(Attributes),synMap_Inh_Productions :: !((Map Identifier Attributes)),vcount_Inh_Productions :: !(Int)}-data Syn_Productions = Syn_Productions {additionalDep_Syn_Productions :: !((Seq Edge)),aroundDep_Syn_Productions :: !((Seq Edge)),cProductions_Syn_Productions :: !(CProductions),cons_Syn_Productions :: !(([ConstructorIdent])),directDep_Syn_Productions :: !((Seq Edge)),errors_Syn_Productions :: !((Seq Error)),instDep_Syn_Productions :: !((Seq Edge)),mergeDep_Syn_Productions :: !((Seq Edge)),nAutoRules_Syn_Productions :: !(Int),nExplicitRules_Syn_Productions :: !(Int),rules_Syn_Productions :: !((Seq (Vertex,CRule))),vcount_Syn_Productions :: !(Int)}-wrap_Productions :: T_Productions ->-                    Inh_Productions ->-                    Syn_Productions-wrap_Productions (T_Productions sem) (Inh_Productions _lhsIallnts _lhsIaroundMap _lhsIcVisitsMap _lhsIinh _lhsIinhMap _lhsImanualAttrDepMap _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_unbox _lhsIo_wantvisit _lhsIprefix _lhsIsyn _lhsIsynMap _lhsIvcount) =-    (let ( _lhsOadditionalDep,_lhsOaroundDep,_lhsOcProductions,_lhsOcons,_lhsOdirectDep,_lhsOerrors,_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOrules,_lhsOvcount) = sem _lhsIallnts _lhsIaroundMap _lhsIcVisitsMap _lhsIinh _lhsIinhMap _lhsImanualAttrDepMap _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_unbox _lhsIo_wantvisit _lhsIprefix _lhsIsyn _lhsIsynMap _lhsIvcount-     in  (Syn_Productions _lhsOadditionalDep _lhsOaroundDep _lhsOcProductions _lhsOcons _lhsOdirectDep _lhsOerrors _lhsOinstDep _lhsOmergeDep _lhsOnAutoRules _lhsOnExplicitRules _lhsOrules _lhsOvcount))-sem_Productions_Cons :: T_Production ->-                        T_Productions ->-                        T_Productions-sem_Productions_Cons (T_Production hd_) (T_Productions tl_) =-    (T_Productions (\ _lhsIallnts-                      _lhsIaroundMap-                      _lhsIcVisitsMap-                      _lhsIinh-                      _lhsIinhMap-                      _lhsImanualAttrDepMap-                      _lhsImergeMap-                      _lhsInt-                      _lhsIo_case-                      _lhsIo_cata-                      _lhsIo_dovisit-                      _lhsIo_newtypes-                      _lhsIo_rename-                      _lhsIo_sem-                      _lhsIo_sig-                      _lhsIo_unbox-                      _lhsIo_wantvisit-                      _lhsIprefix-                      _lhsIsyn-                      _lhsIsynMap-                      _lhsIvcount ->-                        (let _lhsOcProductions :: CProductions-                             _lhsOadditionalDep :: (Seq Edge)-                             _lhsOaroundDep :: (Seq Edge)-                             _lhsOcons :: ([ConstructorIdent])-                             _lhsOdirectDep :: (Seq Edge)-                             _lhsOerrors :: (Seq Error)-                             _lhsOinstDep :: (Seq Edge)-                             _lhsOmergeDep :: (Seq Edge)-                             _lhsOnAutoRules :: Int-                             _lhsOnExplicitRules :: Int-                             _lhsOrules :: (Seq (Vertex,CRule))-                             _lhsOvcount :: Int-                             _hdOallnts :: ([Identifier])-                             _hdOaroundMap :: (Map ConstructorIdent (Map Identifier [Expression]))-                             _hdOcVisitsMap :: CVisitsMap-                             _hdOinh :: Attributes-                             _hdOinhMap :: (Map Identifier Attributes)-                             _hdOmanualAttrDepMap :: AttrOrderMap-                             _hdOmergeMap :: (Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))-                             _hdOnt :: Identifier-                             _hdOo_case :: Bool-                             _hdOo_cata :: Bool-                             _hdOo_dovisit :: Bool-                             _hdOo_newtypes :: Bool-                             _hdOo_rename :: Bool-                             _hdOo_sem :: Bool-                             _hdOo_sig :: Bool-                             _hdOo_unbox :: Bool-                             _hdOo_wantvisit :: Bool-                             _hdOprefix :: String-                             _hdOsyn :: Attributes-                             _hdOsynMap :: (Map Identifier Attributes)-                             _hdOvcount :: Int-                             _tlOallnts :: ([Identifier])-                             _tlOaroundMap :: (Map ConstructorIdent (Map Identifier [Expression]))-                             _tlOcVisitsMap :: CVisitsMap-                             _tlOinh :: Attributes-                             _tlOinhMap :: (Map Identifier Attributes)-                             _tlOmanualAttrDepMap :: AttrOrderMap-                             _tlOmergeMap :: (Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))-                             _tlOnt :: Identifier-                             _tlOo_case :: Bool-                             _tlOo_cata :: Bool-                             _tlOo_dovisit :: Bool-                             _tlOo_newtypes :: Bool-                             _tlOo_rename :: Bool-                             _tlOo_sem :: Bool-                             _tlOo_sig :: Bool-                             _tlOo_unbox :: Bool-                             _tlOo_wantvisit :: Bool-                             _tlOprefix :: String-                             _tlOsyn :: Attributes-                             _tlOsynMap :: (Map Identifier Attributes)-                             _tlOvcount :: Int-                             _hdIadditionalDep :: (Seq Edge)-                             _hdIaroundDep :: (Seq Edge)-                             _hdIcProduction :: CProduction-                             _hdIcons :: ([ConstructorIdent])-                             _hdIdirectDep :: (Seq Edge)-                             _hdIerrors :: (Seq Error)-                             _hdIinstDep :: (Seq Edge)-                             _hdImergeDep :: (Seq Edge)-                             _hdInAutoRules :: Int-                             _hdInExplicitRules :: Int-                             _hdIrules :: (Seq (Vertex,CRule))-                             _hdIvcount :: Int-                             _tlIadditionalDep :: (Seq Edge)-                             _tlIaroundDep :: (Seq Edge)-                             _tlIcProductions :: CProductions-                             _tlIcons :: ([ConstructorIdent])-                             _tlIdirectDep :: (Seq Edge)-                             _tlIerrors :: (Seq Error)-                             _tlIinstDep :: (Seq Edge)-                             _tlImergeDep :: (Seq Edge)-                             _tlInAutoRules :: Int-                             _tlInExplicitRules :: Int-                             _tlIrules :: (Seq (Vertex,CRule))-                             _tlIvcount :: Int-                             -- "src-ag/Order.ag"(line 627, column 12)-                             _lhsOcProductions =-                                 ({-# LINE 627 "src-ag/Order.ag" #-}-                                  _hdIcProduction : _tlIcProductions-                                  {-# LINE 4182 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 282, column 60)-                             _lhsOadditionalDep =-                                 ({-# LINE 282 "src-ag/Order.ag" #-}-                                  _hdIadditionalDep Seq.>< _tlIadditionalDep-                                  {-# LINE 4188 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 403, column 24)-                             _lhsOaroundDep =-                                 ({-# LINE 403 "src-ag/Order.ag" #-}-                                  _hdIaroundDep Seq.>< _tlIaroundDep-                                  {-# LINE 4194 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 521, column 40)-                             _lhsOcons =-                                 ({-# LINE 521 "src-ag/Order.ag" #-}-                                  _hdIcons ++ _tlIcons-                                  {-# LINE 4200 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 268, column 33)-                             _lhsOdirectDep =-                                 ({-# LINE 268 "src-ag/Order.ag" #-}-                                  _hdIdirectDep Seq.>< _tlIdirectDep-                                  {-# LINE 4206 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 85, column 70)-                             _lhsOerrors =-                                 ({-# LINE 85 "src-ag/Order.ag" #-}-                                  _hdIerrors Seq.>< _tlIerrors-                                  {-# LINE 4212 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 311, column 31)-                             _lhsOinstDep =-                                 ({-# LINE 311 "src-ag/Order.ag" #-}-                                  _hdIinstDep Seq.>< _tlIinstDep-                                  {-# LINE 4218 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 366, column 18)-                             _lhsOmergeDep =-                                 ({-# LINE 366 "src-ag/Order.ag" #-}-                                  _hdImergeDep Seq.>< _tlImergeDep-                                  {-# LINE 4224 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 62, column 105)-                             _lhsOnAutoRules =-                                 ({-# LINE 62 "src-ag/Order.ag" #-}-                                  _hdInAutoRules + _tlInAutoRules-                                  {-# LINE 4230 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 62, column 105)-                             _lhsOnExplicitRules =-                                 ({-# LINE 62 "src-ag/Order.ag" #-}-                                  _hdInExplicitRules + _tlInExplicitRules-                                  {-# LINE 4236 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 258, column 18)-                             _lhsOrules =-                                 ({-# LINE 258 "src-ag/Order.ag" #-}-                                  _hdIrules Seq.>< _tlIrules-                                  {-# LINE 4242 "dist/build/Order" #-}-                                  )-                             -- copy rule (up)-                             _lhsOvcount =-                                 ({-# LINE 257 "src-ag/Order.ag" #-}-                                  _tlIvcount-                                  {-# LINE 4248 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOallnts =-                                 ({-# LINE 648 "src-ag/Order.ag" #-}-                                  _lhsIallnts-                                  {-# LINE 4254 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOaroundMap =-                                 ({-# LINE 409 "src-ag/Order.ag" #-}-                                  _lhsIaroundMap-                                  {-# LINE 4260 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOcVisitsMap =-                                 ({-# LINE 602 "src-ag/Order.ag" #-}-                                  _lhsIcVisitsMap-                                  {-# LINE 4266 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOinh =-                                 ({-# LINE 90 "src-ag/Order.ag" #-}-                                  _lhsIinh-                                  {-# LINE 4272 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOinhMap =-                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}-                                  _lhsIinhMap-                                  {-# LINE 4278 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOmanualAttrDepMap =-                                 ({-# LINE 282 "src-ag/Order.ag" #-}-                                  _lhsImanualAttrDepMap-                                  {-# LINE 4284 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOmergeMap =-                                 ({-# LINE 356 "src-ag/Order.ag" #-}-                                  _lhsImergeMap-                                  {-# LINE 4290 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOnt =-                                 ({-# LINE 90 "src-ag/Order.ag" #-}-                                  _lhsInt-                                  {-# LINE 4296 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOo_case =-                                 ({-# LINE 118 "src-ag/Order.ag" #-}-                                  _lhsIo_case-                                  {-# LINE 4302 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOo_cata =-                                 ({-# LINE 112 "src-ag/Order.ag" #-}-                                  _lhsIo_cata-                                  {-# LINE 4308 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOo_dovisit =-                                 ({-# LINE 117 "src-ag/Order.ag" #-}-                                  _lhsIo_dovisit-                                  {-# LINE 4314 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOo_newtypes =-                                 ({-# LINE 111 "src-ag/Order.ag" #-}-                                  _lhsIo_newtypes-                                  {-# LINE 4320 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOo_rename =-                                 ({-# LINE 115 "src-ag/Order.ag" #-}-                                  _lhsIo_rename-                                  {-# LINE 4326 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOo_sem =-                                 ({-# LINE 114 "src-ag/Order.ag" #-}-                                  _lhsIo_sem-                                  {-# LINE 4332 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOo_sig =-                                 ({-# LINE 113 "src-ag/Order.ag" #-}-                                  _lhsIo_sig-                                  {-# LINE 4338 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOo_unbox =-                                 ({-# LINE 120 "src-ag/Order.ag" #-}-                                  _lhsIo_unbox-                                  {-# LINE 4344 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOo_wantvisit =-                                 ({-# LINE 116 "src-ag/Order.ag" #-}-                                  _lhsIo_wantvisit-                                  {-# LINE 4350 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOprefix =-                                 ({-# LINE 119 "src-ag/Order.ag" #-}-                                  _lhsIprefix-                                  {-# LINE 4356 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOsyn =-                                 ({-# LINE 90 "src-ag/Order.ag" #-}-                                  _lhsIsyn-                                  {-# LINE 4362 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOsynMap =-                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}-                                  _lhsIsynMap-                                  {-# LINE 4368 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _hdOvcount =-                                 ({-# LINE 257 "src-ag/Order.ag" #-}-                                  _lhsIvcount-                                  {-# LINE 4374 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOallnts =-                                 ({-# LINE 648 "src-ag/Order.ag" #-}-                                  _lhsIallnts-                                  {-# LINE 4380 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOaroundMap =-                                 ({-# LINE 409 "src-ag/Order.ag" #-}-                                  _lhsIaroundMap-                                  {-# LINE 4386 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOcVisitsMap =-                                 ({-# LINE 602 "src-ag/Order.ag" #-}-                                  _lhsIcVisitsMap-                                  {-# LINE 4392 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOinh =-                                 ({-# LINE 90 "src-ag/Order.ag" #-}-                                  _lhsIinh-                                  {-# LINE 4398 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOinhMap =-                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}-                                  _lhsIinhMap-                                  {-# LINE 4404 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOmanualAttrDepMap =-                                 ({-# LINE 282 "src-ag/Order.ag" #-}-                                  _lhsImanualAttrDepMap-                                  {-# LINE 4410 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOmergeMap =-                                 ({-# LINE 356 "src-ag/Order.ag" #-}-                                  _lhsImergeMap-                                  {-# LINE 4416 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOnt =-                                 ({-# LINE 90 "src-ag/Order.ag" #-}-                                  _lhsInt-                                  {-# LINE 4422 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOo_case =-                                 ({-# LINE 118 "src-ag/Order.ag" #-}-                                  _lhsIo_case-                                  {-# LINE 4428 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOo_cata =-                                 ({-# LINE 112 "src-ag/Order.ag" #-}-                                  _lhsIo_cata-                                  {-# LINE 4434 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOo_dovisit =-                                 ({-# LINE 117 "src-ag/Order.ag" #-}-                                  _lhsIo_dovisit-                                  {-# LINE 4440 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOo_newtypes =-                                 ({-# LINE 111 "src-ag/Order.ag" #-}-                                  _lhsIo_newtypes-                                  {-# LINE 4446 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOo_rename =-                                 ({-# LINE 115 "src-ag/Order.ag" #-}-                                  _lhsIo_rename-                                  {-# LINE 4452 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOo_sem =-                                 ({-# LINE 114 "src-ag/Order.ag" #-}-                                  _lhsIo_sem-                                  {-# LINE 4458 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOo_sig =-                                 ({-# LINE 113 "src-ag/Order.ag" #-}-                                  _lhsIo_sig-                                  {-# LINE 4464 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOo_unbox =-                                 ({-# LINE 120 "src-ag/Order.ag" #-}-                                  _lhsIo_unbox-                                  {-# LINE 4470 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOo_wantvisit =-                                 ({-# LINE 116 "src-ag/Order.ag" #-}-                                  _lhsIo_wantvisit-                                  {-# LINE 4476 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOprefix =-                                 ({-# LINE 119 "src-ag/Order.ag" #-}-                                  _lhsIprefix-                                  {-# LINE 4482 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOsyn =-                                 ({-# LINE 90 "src-ag/Order.ag" #-}-                                  _lhsIsyn-                                  {-# LINE 4488 "dist/build/Order" #-}-                                  )-                             -- copy rule (down)-                             _tlOsynMap =-                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}-                                  _lhsIsynMap-                                  {-# LINE 4494 "dist/build/Order" #-}-                                  )-                             -- copy rule (chain)-                             _tlOvcount =-                                 ({-# LINE 257 "src-ag/Order.ag" #-}-                                  _hdIvcount-                                  {-# LINE 4500 "dist/build/Order" #-}-                                  )-                             ( _hdIadditionalDep,_hdIaroundDep,_hdIcProduction,_hdIcons,_hdIdirectDep,_hdIerrors,_hdIinstDep,_hdImergeDep,_hdInAutoRules,_hdInExplicitRules,_hdIrules,_hdIvcount) =-                                 hd_ _hdOallnts _hdOaroundMap _hdOcVisitsMap _hdOinh _hdOinhMap _hdOmanualAttrDepMap _hdOmergeMap _hdOnt _hdOo_case _hdOo_cata _hdOo_dovisit _hdOo_newtypes _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_unbox _hdOo_wantvisit _hdOprefix _hdOsyn _hdOsynMap _hdOvcount-                             ( _tlIadditionalDep,_tlIaroundDep,_tlIcProductions,_tlIcons,_tlIdirectDep,_tlIerrors,_tlIinstDep,_tlImergeDep,_tlInAutoRules,_tlInExplicitRules,_tlIrules,_tlIvcount) =-                                 tl_ _tlOallnts _tlOaroundMap _tlOcVisitsMap _tlOinh _tlOinhMap _tlOmanualAttrDepMap _tlOmergeMap _tlOnt _tlOo_case _tlOo_cata _tlOo_dovisit _tlOo_newtypes _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_unbox _tlOo_wantvisit _tlOprefix _tlOsyn _tlOsynMap _tlOvcount-                         in  ( _lhsOadditionalDep,_lhsOaroundDep,_lhsOcProductions,_lhsOcons,_lhsOdirectDep,_lhsOerrors,_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOrules,_lhsOvcount))))-sem_Productions_Nil :: T_Productions-sem_Productions_Nil =-    (T_Productions (\ _lhsIallnts-                      _lhsIaroundMap-                      _lhsIcVisitsMap-                      _lhsIinh-                      _lhsIinhMap-                      _lhsImanualAttrDepMap-                      _lhsImergeMap-                      _lhsInt-                      _lhsIo_case-                      _lhsIo_cata-                      _lhsIo_dovisit-                      _lhsIo_newtypes-                      _lhsIo_rename-                      _lhsIo_sem-                      _lhsIo_sig-                      _lhsIo_unbox-                      _lhsIo_wantvisit-                      _lhsIprefix-                      _lhsIsyn-                      _lhsIsynMap-                      _lhsIvcount ->-                        (let _lhsOcProductions :: CProductions-                             _lhsOadditionalDep :: (Seq Edge)-                             _lhsOaroundDep :: (Seq Edge)-                             _lhsOcons :: ([ConstructorIdent])-                             _lhsOdirectDep :: (Seq Edge)-                             _lhsOerrors :: (Seq Error)-                             _lhsOinstDep :: (Seq Edge)-                             _lhsOmergeDep :: (Seq Edge)-                             _lhsOnAutoRules :: Int-                             _lhsOnExplicitRules :: Int-                             _lhsOrules :: (Seq (Vertex,CRule))-                             _lhsOvcount :: Int-                             -- "src-ag/Order.ag"(line 628, column 12)-                             _lhsOcProductions =-                                 ({-# LINE 628 "src-ag/Order.ag" #-}-                                  []-                                  {-# LINE 4546 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 282, column 60)-                             _lhsOadditionalDep =-                                 ({-# LINE 282 "src-ag/Order.ag" #-}-                                  Seq.empty-                                  {-# LINE 4552 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 403, column 24)-                             _lhsOaroundDep =-                                 ({-# LINE 403 "src-ag/Order.ag" #-}-                                  Seq.empty-                                  {-# LINE 4558 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 521, column 40)-                             _lhsOcons =-                                 ({-# LINE 521 "src-ag/Order.ag" #-}-                                  []-                                  {-# LINE 4564 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 268, column 33)-                             _lhsOdirectDep =-                                 ({-# LINE 268 "src-ag/Order.ag" #-}-                                  Seq.empty-                                  {-# LINE 4570 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 85, column 70)-                             _lhsOerrors =-                                 ({-# LINE 85 "src-ag/Order.ag" #-}-                                  Seq.empty-                                  {-# LINE 4576 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 311, column 31)-                             _lhsOinstDep =-                                 ({-# LINE 311 "src-ag/Order.ag" #-}-                                  Seq.empty-                                  {-# LINE 4582 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 366, column 18)-                             _lhsOmergeDep =-                                 ({-# LINE 366 "src-ag/Order.ag" #-}-                                  Seq.empty-                                  {-# LINE 4588 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 62, column 105)-                             _lhsOnAutoRules =-                                 ({-# LINE 62 "src-ag/Order.ag" #-}-                                  0-                                  {-# LINE 4594 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 62, column 105)-                             _lhsOnExplicitRules =-                                 ({-# LINE 62 "src-ag/Order.ag" #-}-                                  0-                                  {-# LINE 4600 "dist/build/Order" #-}-                                  )-                             -- use rule "src-ag/Order.ag"(line 258, column 18)-                             _lhsOrules =-                                 ({-# LINE 258 "src-ag/Order.ag" #-}-                                  Seq.empty-                                  {-# LINE 4606 "dist/build/Order" #-}-                                  )-                             -- copy rule (chain)-                             _lhsOvcount =-                                 ({-# LINE 257 "src-ag/Order.ag" #-}-                                  _lhsIvcount-                                  {-# LINE 4612 "dist/build/Order" #-}-                                  )-                         in  ( _lhsOadditionalDep,_lhsOaroundDep,_lhsOcProductions,_lhsOcons,_lhsOdirectDep,_lhsOerrors,_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOrules,_lhsOvcount))))--- Rule ---------------------------------------------------------{--   visit 0:-      inherited attributes:-         allTypeSigs          : Map Identifier Type-         allfields            : [(Identifier,Type,ChildKind)]-         allnts               : [Identifier]-         altAttrs             : Map AltAttr Vertex-         attrs                : [(Identifier,Identifier)]-         childInhs            : Map Identifier Attributes-         childNts             : Map Identifier NontermIdent-         con                  : Identifier-         inh                  : Attributes-         inhsOfChildren       : Map Identifier Attributes-         mergeMap             : Map Identifier (Identifier,[Identifier])-         nt                   : Identifier-         o_case               : Bool-         o_cata               : Bool-         o_dovisit            : Bool-         o_newtypes           : Bool-         o_rename             : Bool-         o_sem                : Bool-         o_sig                : Bool-         o_wantvisit          : Bool-         prefix               : String-         syn                  : Attributes-         synsOfChildren       : Map Identifier Attributes-      synthesized attributes:-         directDep            : Seq Edge-         errors               : Seq Error-         gathAltAttrs         : [AltAttr]-         gathRules            : Seq CRule-         instDep              : Seq Edge-         instVars             : [Identifier]-         locVars              : [Identifier]-         nAutoRules           : Int-         nExplicitRules       : Int-   alternatives:-      alternative Rule:-         child mbName         : {Maybe Identifier}-         child pattern        : Pattern -         child rhs            : Expression -         child owrt           : {Bool}-         child origin         : {String}-         child explicit       : {Bool}-         child pure           : {Bool}-         child identity       : {Bool}-         child mbError        : {Maybe Error}-         child eager          : {Bool}-         visit 0:-            local defines     : _-            local gathRules   : _-            local instDep1    : _-            local instDep2    : _--}--- cata-sem_Rule :: Rule ->-            T_Rule-sem_Rule (Rule _mbName _pattern _rhs _owrt _origin _explicit _pure _identity _mbError _eager) =-    (sem_Rule_Rule _mbName (sem_Pattern _pattern) (sem_Expression _rhs) _owrt _origin _explicit _pure _identity _mbError _eager)--- semantic domain-newtype T_Rule = T_Rule ((Map Identifier Type) ->-                         ([(Identifier,Type,ChildKind)]) ->-                         ([Identifier]) ->-                         (Map AltAttr Vertex) ->-                         ([(Identifier,Identifier)]) ->-                         (Map Identifier Attributes) ->-                         (Map Identifier NontermIdent) ->-                         Identifier ->-                         Attributes ->-                         (Map Identifier Attributes) ->-                         (Map Identifier (Identifier,[Identifier])) ->-                         Identifier ->-                         Bool ->-                         Bool ->-                         Bool ->-                         Bool ->-                         Bool ->-                         Bool ->-                         Bool ->-                         Bool ->-                         String ->-                         Attributes ->-                         (Map Identifier Attributes) ->-                         ( (Seq Edge),(Seq Error),([AltAttr]),(Seq CRule),(Seq Edge),([Identifier]),([Identifier]),Int,Int))-data Inh_Rule = Inh_Rule {allTypeSigs_Inh_Rule :: !((Map Identifier Type)),allfields_Inh_Rule :: !(([(Identifier,Type,ChildKind)])),allnts_Inh_Rule :: !(([Identifier])),altAttrs_Inh_Rule :: !((Map AltAttr Vertex)),attrs_Inh_Rule :: !(([(Identifier,Identifier)])),childInhs_Inh_Rule :: !((Map Identifier Attributes)),childNts_Inh_Rule :: !((Map Identifier NontermIdent)),con_Inh_Rule :: !(Identifier),inh_Inh_Rule :: !(Attributes),inhsOfChildren_Inh_Rule :: !((Map Identifier Attributes)),mergeMap_Inh_Rule :: !((Map Identifier (Identifier,[Identifier]))),nt_Inh_Rule :: !(Identifier),o_case_Inh_Rule :: !(Bool),o_cata_Inh_Rule :: !(Bool),o_dovisit_Inh_Rule :: !(Bool),o_newtypes_Inh_Rule :: !(Bool),o_rename_Inh_Rule :: !(Bool),o_sem_Inh_Rule :: !(Bool),o_sig_Inh_Rule :: !(Bool),o_wantvisit_Inh_Rule :: !(Bool),prefix_Inh_Rule :: !(String),syn_Inh_Rule :: !(Attributes),synsOfChildren_Inh_Rule :: !((Map Identifier Attributes))}-data Syn_Rule = Syn_Rule {directDep_Syn_Rule :: !((Seq Edge)),errors_Syn_Rule :: !((Seq Error)),gathAltAttrs_Syn_Rule :: !(([AltAttr])),gathRules_Syn_Rule :: !((Seq CRule)),instDep_Syn_Rule :: !((Seq Edge)),instVars_Syn_Rule :: !(([Identifier])),locVars_Syn_Rule :: !(([Identifier])),nAutoRules_Syn_Rule :: !(Int),nExplicitRules_Syn_Rule :: !(Int)}-wrap_Rule :: T_Rule ->-             Inh_Rule ->-             Syn_Rule-wrap_Rule (T_Rule sem) (Inh_Rule _lhsIallTypeSigs _lhsIallfields _lhsIallnts _lhsIaltAttrs _lhsIattrs _lhsIchildInhs _lhsIchildNts _lhsIcon _lhsIinh _lhsIinhsOfChildren _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_wantvisit _lhsIprefix _lhsIsyn _lhsIsynsOfChildren) =-    (let ( _lhsOdirectDep,_lhsOerrors,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinstDep,_lhsOinstVars,_lhsOlocVars,_lhsOnAutoRules,_lhsOnExplicitRules) = sem _lhsIallTypeSigs _lhsIallfields _lhsIallnts _lhsIaltAttrs _lhsIattrs _lhsIchildInhs _lhsIchildNts _lhsIcon _lhsIinh _lhsIinhsOfChildren _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_wantvisit _lhsIprefix _lhsIsyn _lhsIsynsOfChildren-     in  (Syn_Rule _lhsOdirectDep _lhsOerrors _lhsOgathAltAttrs _lhsOgathRules _lhsOinstDep _lhsOinstVars _lhsOlocVars _lhsOnAutoRules _lhsOnExplicitRules))-sem_Rule_Rule :: (Maybe Identifier) ->-                 T_Pattern ->-                 T_Expression ->-                 Bool ->-                 String ->-                 Bool ->-                 Bool ->-                 Bool ->-                 (Maybe Error) ->-                 Bool ->-                 T_Rule-sem_Rule_Rule mbName_ (T_Pattern pattern_) (T_Expression rhs_) owrt_ origin_ explicit_ pure_ identity_ mbError_ eager_ =-    (T_Rule (\ _lhsIallTypeSigs-               _lhsIallfields-               _lhsIallnts-               _lhsIaltAttrs-               _lhsIattrs-               _lhsIchildInhs-               _lhsIchildNts-               _lhsIcon-               _lhsIinh-               _lhsIinhsOfChildren-               _lhsImergeMap-               _lhsInt-               _lhsIo_case-               _lhsIo_cata-               _lhsIo_dovisit-               _lhsIo_newtypes-               _lhsIo_rename-               _lhsIo_sem-               _lhsIo_sig-               _lhsIo_wantvisit-               _lhsIprefix-               _lhsIsyn-               _lhsIsynsOfChildren ->-                 (let _lhsOnExplicitRules :: Int-                      _lhsOnAutoRules :: Int-                      _lhsOdirectDep :: (Seq Edge)-                      _lhsOinstDep :: (Seq Edge)-                      _lhsOerrors :: (Seq Error)-                      _lhsOgathAltAttrs :: ([AltAttr])-                      _lhsOgathRules :: (Seq CRule)-                      _lhsOinstVars :: ([Identifier])-                      _lhsOlocVars :: ([Identifier])-                      _patternOallTypeSigs :: (Map Identifier Type)-                      _patternOaltAttrs :: (Map AltAttr Vertex)-                      _patternOcon :: Identifier-                      _patternOinh :: Attributes-                      _patternOnt :: Identifier-                      _patternOsyn :: Attributes-                      _rhsOallfields :: ([(Identifier,Type,ChildKind)])-                      _rhsOallnts :: ([Identifier])-                      _rhsOattrs :: ([(Identifier,Identifier)])-                      _rhsOcon :: Identifier-                      _rhsOmergeMap :: (Map Identifier (Identifier,[Identifier]))-                      _rhsOnt :: Identifier-                      _patternIcopy :: Pattern-                      _patternIerrors :: (Seq Error)-                      _patternIgathAltAttrs :: ([AltAttr])-                      _patternIinstVars :: ([Identifier])-                      _patternIlocVars :: ([Identifier])-                      _patternIpatternAttrs :: ([(Identifier,Identifier,Bool)])-                      _rhsIallRhsVars :: (Set (Identifier,Identifier))-                      _rhsIcopy :: Expression-                      _rhsIerrors :: (Seq Error)-                      _rhsItextLines :: ([String])-                      _rhsIusedAttrs :: ([(Identifier,Identifier)])-                      _rhsIusedFields :: ([Identifier])-                      _rhsIusedLocals :: ([Identifier])-                      -- "src-ag/Order.ag"(line 65, column 11)-                      _lhsOnExplicitRules =-                          ({-# LINE 65 "src-ag/Order.ag" #-}-                           if explicit_-                           then 1-                           else 0-                           {-# LINE 4783 "dist/build/Order" #-}-                           )-                      -- "src-ag/Order.ag"(line 68, column 11)-                      _lhsOnAutoRules =-                          ({-# LINE 68 "src-ag/Order.ag" #-}-                           if startsWith "use rule" origin_ || startsWith "copy rule" origin_-                           then 1-                           else 0-                           {-# LINE 4791 "dist/build/Order" #-}-                           )-                      -- "src-ag/Order.ag"(line 218, column 12)-                      _defines =-                          ({-# LINE 218 "src-ag/Order.ag" #-}-                           let  tp field attr      | field == _LOC || field == _INST-                                                                    = Map.lookup attr _lhsIallTypeSigs-                                                    | field == _LHS = Map.lookup attr _lhsIsyn-                                                    | otherwise     = Map.lookup attr (findWithErr1 "Rule.defines.tp" field _lhsIchildInhs)-                                typ :: Pattern -> Maybe Type-                                typ (Alias field attr _)       = tp field attr-                                typ (Underscore _)             = Nothing-                                typ _                          = Nothing-                           in Map.fromList  [ (findWithErr1 "Rule.defines" aa _lhsIaltAttrs, (field,attr,(tp field attr)))-                                            | (field,attr,isLocalOrInst) <- _patternIpatternAttrs-                                            , let aa = AltAttr field attr isLocalOrInst-                                            ]-                           {-# LINE 4808 "dist/build/Order" #-}-                           )-                      -- "src-ag/Order.ag"(line 232, column 12)-                      _gathRules =-                          ({-# LINE 232 "src-ag/Order.ag" #-}-                           let childnt field = Map.lookup field _lhsIchildNts-                           in Seq.fromList [ CRule attr False True _lhsInt _lhsIcon field (childnt field) tp _patternIcopy _rhsItextLines _defines owrt_ origin_ _rhsIallRhsVars explicit_ mbName_-                                           | (field,attr,tp) <- Map.elems _defines-                                           ]-                           {-# LINE 4817 "dist/build/Order" #-}-                           )-                      -- "src-ag/Order.ag"(line 270, column 12)-                      _lhsOdirectDep =-                          ({-# LINE 270 "src-ag/Order.ag" #-}-                           let  defined = Map.keys _defines-                                used =  [ Map.lookup (AltAttr field attr True) _lhsIaltAttrs | (field,attr) <- _rhsIusedAttrs]-                                        ++ [ Map.lookup (AltAttr _LOC attr True) _lhsIaltAttrs | attr <- _rhsIusedLocals ++ _rhsIusedFields ]-                           in Seq.fromList [ (x,y) | Just x <- used, y <- defined ]-                           {-# LINE 4826 "dist/build/Order" #-}-                           )-                      -- "src-ag/Order.ag"(line 314, column 6)-                      _instDep1 =-                          ({-# LINE 314 "src-ag/Order.ag" #-}-                           Seq.fromList $-                             [ (instVert, synVert)-                             | (field,instNm,_) <- Map.elems _defines-                             , field == _INST-                             , synNm <- Map.keys (findWithErr2 instNm _lhsIsynsOfChildren)-                             , let instAttr = AltAttr _INST instNm True-                                   synAttr  = AltAttr instNm synNm True-                                   instVert = findWithErr2 instAttr _lhsIaltAttrs-                                   synVert  = findWithErr2 synAttr _lhsIaltAttrs-                             ]-                           {-# LINE 4841 "dist/build/Order" #-}-                           )-                      -- "src-ag/Order.ag"(line 325, column 6)-                      _instDep2 =-                          ({-# LINE 325 "src-ag/Order.ag" #-}-                           Seq.fromList $-                             [ (instVert, inhVert)-                             | (field,instNm,_) <- Map.elems _defines-                             , field == _INST-                             , inhNm <- Map.keys (findWithErr2 instNm _lhsIinhsOfChildren)-                             , let instAttr = AltAttr _INST instNm True-                                   inhAttr  = AltAttr instNm inhNm False-                                   instVert = findWithErr2 instAttr _lhsIaltAttrs-                                   inhVert  = findWithErr2 inhAttr _lhsIaltAttrs-                             ]-                           {-# LINE 4856 "dist/build/Order" #-}-                           )-                      -- "src-ag/Order.ag"(line 336, column 6)-                      _lhsOinstDep =-                          ({-# LINE 336 "src-ag/Order.ag" #-}-                           _instDep1     Seq.>< _instDep2-                           {-# LINE 4862 "dist/build/Order" #-}-                           )-                      -- use rule "src-ag/Order.ag"(line 85, column 70)-                      _lhsOerrors =-                          ({-# LINE 85 "src-ag/Order.ag" #-}-                           _patternIerrors Seq.>< _rhsIerrors-                           {-# LINE 4868 "dist/build/Order" #-}-                           )-                      -- use rule "src-ag/Order.ag"(line 171, column 68)-                      _lhsOgathAltAttrs =-                          ({-# LINE 171 "src-ag/Order.ag" #-}-                           _patternIgathAltAttrs-                           {-# LINE 4874 "dist/build/Order" #-}-                           )-                      -- use rule "src-ag/Order.ag"(line 207, column 23)-                      _lhsOgathRules =-                          ({-# LINE 207 "src-ag/Order.ag" #-}-                           _gathRules-                           {-# LINE 4880 "dist/build/Order" #-}-                           )-                      -- use rule "src-ag/Order.ag"(line 678, column 86)-                      _lhsOinstVars =-                          ({-# LINE 678 "src-ag/Order.ag" #-}-                           _patternIinstVars-                           {-# LINE 4886 "dist/build/Order" #-}-                           )-                      -- use rule "src-ag/Order.ag"(line 678, column 48)-                      _lhsOlocVars =-                          ({-# LINE 678 "src-ag/Order.ag" #-}-                           _patternIlocVars-                           {-# LINE 4892 "dist/build/Order" #-}-                           )-                      -- copy rule (down)-                      _patternOallTypeSigs =-                          ({-# LINE 534 "src-ag/Order.ag" #-}-                           _lhsIallTypeSigs-                           {-# LINE 4898 "dist/build/Order" #-}-                           )-                      -- copy rule (down)-                      _patternOaltAttrs =-                          ({-# LINE 187 "src-ag/Order.ag" #-}-                           _lhsIaltAttrs-                           {-# LINE 4904 "dist/build/Order" #-}-                           )-                      -- copy rule (down)-                      _patternOcon =-                          ({-# LINE 91 "src-ag/Order.ag" #-}-                           _lhsIcon-                           {-# LINE 4910 "dist/build/Order" #-}-                           )-                      -- copy rule (down)-                      _patternOinh =-                          ({-# LINE 90 "src-ag/Order.ag" #-}-                           _lhsIinh-                           {-# LINE 4916 "dist/build/Order" #-}-                           )-                      -- copy rule (down)-                      _patternOnt =-                          ({-# LINE 90 "src-ag/Order.ag" #-}-                           _lhsInt-                           {-# LINE 4922 "dist/build/Order" #-}-                           )-                      -- copy rule (down)-                      _patternOsyn =-                          ({-# LINE 90 "src-ag/Order.ag" #-}-                           _lhsIsyn-                           {-# LINE 4928 "dist/build/Order" #-}-                           )-                      -- copy rule (down)-                      _rhsOallfields =-                          ({-# LINE 447 "src-ag/Order.ag" #-}-                           _lhsIallfields-                           {-# LINE 4934 "dist/build/Order" #-}-                           )-                      -- copy rule (down)-                      _rhsOallnts =-                          ({-# LINE 448 "src-ag/Order.ag" #-}-                           _lhsIallnts-                           {-# LINE 4940 "dist/build/Order" #-}-                           )-                      -- copy rule (down)-                      _rhsOattrs =-                          ({-# LINE 449 "src-ag/Order.ag" #-}-                           _lhsIattrs-                           {-# LINE 4946 "dist/build/Order" #-}-                           )-                      -- copy rule (down)-                      _rhsOcon =-                          ({-# LINE 446 "src-ag/Order.ag" #-}-                           _lhsIcon-                           {-# LINE 4952 "dist/build/Order" #-}-                           )-                      -- copy rule (down)-                      _rhsOmergeMap =-                          ({-# LINE 361 "src-ag/Order.ag" #-}-                           _lhsImergeMap-                           {-# LINE 4958 "dist/build/Order" #-}-                           )-                      -- copy rule (down)-                      _rhsOnt =-                          ({-# LINE 446 "src-ag/Order.ag" #-}-                           _lhsInt-                           {-# LINE 4964 "dist/build/Order" #-}-                           )-                      ( _patternIcopy,_patternIerrors,_patternIgathAltAttrs,_patternIinstVars,_patternIlocVars,_patternIpatternAttrs) =-                          pattern_ _patternOallTypeSigs _patternOaltAttrs _patternOcon _patternOinh _patternOnt _patternOsyn-                      ( _rhsIallRhsVars,_rhsIcopy,_rhsIerrors,_rhsItextLines,_rhsIusedAttrs,_rhsIusedFields,_rhsIusedLocals) =-                          rhs_ _rhsOallfields _rhsOallnts _rhsOattrs _rhsOcon _rhsOmergeMap _rhsOnt-                  in  ( _lhsOdirectDep,_lhsOerrors,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinstDep,_lhsOinstVars,_lhsOlocVars,_lhsOnAutoRules,_lhsOnExplicitRules))))--- Rules --------------------------------------------------------{--   visit 0:-      inherited attributes:-         allTypeSigs          : Map Identifier Type-         allfields            : [(Identifier,Type,ChildKind)]-         allnts               : [Identifier]-         altAttrs             : Map AltAttr Vertex-         attrs                : [(Identifier,Identifier)]-         childInhs            : Map Identifier Attributes-         childNts             : Map Identifier NontermIdent-         con                  : Identifier-         inh                  : Attributes-         inhsOfChildren       : Map Identifier Attributes-         mergeMap             : Map Identifier (Identifier,[Identifier])-         nt                   : Identifier-         o_case               : Bool-         o_cata               : Bool-         o_dovisit            : Bool-         o_newtypes           : Bool-         o_rename             : Bool-         o_sem                : Bool-         o_sig                : Bool-         o_wantvisit          : Bool-         prefix               : String-         syn                  : Attributes-         synsOfChildren       : Map Identifier Attributes-      synthesized attributes:-         directDep            : Seq Edge-         errors               : Seq Error-         gathAltAttrs         : [AltAttr]-         gathRules            : Seq CRule-         instDep              : Seq Edge-         instVars             : [Identifier]-         locVars              : [Identifier]-         nAutoRules           : Int-         nExplicitRules       : Int-   alternatives:-      alternative Cons:-         child hd             : Rule -         child tl             : Rules -      alternative Nil:--}--- cata-sem_Rules :: Rules ->-             T_Rules-sem_Rules list =-    (Prelude.foldr sem_Rules_Cons sem_Rules_Nil (Prelude.map sem_Rule list))--- semantic domain-newtype T_Rules = T_Rules ((Map Identifier Type) ->-                           ([(Identifier,Type,ChildKind)]) ->-                           ([Identifier]) ->-                           (Map AltAttr Vertex) ->-                           ([(Identifier,Identifier)]) ->-                           (Map Identifier Attributes) ->-                           (Map Identifier NontermIdent) ->-                           Identifier ->-                           Attributes ->-                           (Map Identifier Attributes) ->-                           (Map Identifier (Identifier,[Identifier])) ->-                           Identifier ->-                           Bool ->-                           Bool ->-                           Bool ->-                           Bool ->-                           Bool ->-                           Bool ->-                           Bool ->-                           Bool ->-                           String ->-                           Attributes ->-                           (Map Identifier Attributes) ->-                           ( (Seq Edge),(Seq Error),([AltAttr]),(Seq CRule),(Seq Edge),([Identifier]),([Identifier]),Int,Int))-data Inh_Rules = Inh_Rules {allTypeSigs_Inh_Rules :: !((Map Identifier Type)),allfields_Inh_Rules :: !(([(Identifier,Type,ChildKind)])),allnts_Inh_Rules :: !(([Identifier])),altAttrs_Inh_Rules :: !((Map AltAttr Vertex)),attrs_Inh_Rules :: !(([(Identifier,Identifier)])),childInhs_Inh_Rules :: !((Map Identifier Attributes)),childNts_Inh_Rules :: !((Map Identifier NontermIdent)),con_Inh_Rules :: !(Identifier),inh_Inh_Rules :: !(Attributes),inhsOfChildren_Inh_Rules :: !((Map Identifier Attributes)),mergeMap_Inh_Rules :: !((Map Identifier (Identifier,[Identifier]))),nt_Inh_Rules :: !(Identifier),o_case_Inh_Rules :: !(Bool),o_cata_Inh_Rules :: !(Bool),o_dovisit_Inh_Rules :: !(Bool),o_newtypes_Inh_Rules :: !(Bool),o_rename_Inh_Rules :: !(Bool),o_sem_Inh_Rules :: !(Bool),o_sig_Inh_Rules :: !(Bool),o_wantvisit_Inh_Rules :: !(Bool),prefix_Inh_Rules :: !(String),syn_Inh_Rules :: !(Attributes),synsOfChildren_Inh_Rules :: !((Map Identifier Attributes))}-data Syn_Rules = Syn_Rules {directDep_Syn_Rules :: !((Seq Edge)),errors_Syn_Rules :: !((Seq Error)),gathAltAttrs_Syn_Rules :: !(([AltAttr])),gathRules_Syn_Rules :: !((Seq CRule)),instDep_Syn_Rules :: !((Seq Edge)),instVars_Syn_Rules :: !(([Identifier])),locVars_Syn_Rules :: !(([Identifier])),nAutoRules_Syn_Rules :: !(Int),nExplicitRules_Syn_Rules :: !(Int)}-wrap_Rules :: T_Rules ->-              Inh_Rules ->-              Syn_Rules-wrap_Rules (T_Rules sem) (Inh_Rules _lhsIallTypeSigs _lhsIallfields _lhsIallnts _lhsIaltAttrs _lhsIattrs _lhsIchildInhs _lhsIchildNts _lhsIcon _lhsIinh _lhsIinhsOfChildren _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_wantvisit _lhsIprefix _lhsIsyn _lhsIsynsOfChildren) =-    (let ( _lhsOdirectDep,_lhsOerrors,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinstDep,_lhsOinstVars,_lhsOlocVars,_lhsOnAutoRules,_lhsOnExplicitRules) = sem _lhsIallTypeSigs _lhsIallfields _lhsIallnts _lhsIaltAttrs _lhsIattrs _lhsIchildInhs _lhsIchildNts _lhsIcon _lhsIinh _lhsIinhsOfChildren _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_wantvisit _lhsIprefix _lhsIsyn _lhsIsynsOfChildren-     in  (Syn_Rules _lhsOdirectDep _lhsOerrors _lhsOgathAltAttrs _lhsOgathRules _lhsOinstDep _lhsOinstVars _lhsOlocVars _lhsOnAutoRules _lhsOnExplicitRules))-sem_Rules_Cons :: T_Rule ->-                  T_Rules ->-                  T_Rules-sem_Rules_Cons (T_Rule hd_) (T_Rules tl_) =-    (T_Rules (\ _lhsIallTypeSigs-                _lhsIallfields-                _lhsIallnts-                _lhsIaltAttrs-                _lhsIattrs-                _lhsIchildInhs-                _lhsIchildNts-                _lhsIcon-                _lhsIinh-                _lhsIinhsOfChildren-                _lhsImergeMap-                _lhsInt-                _lhsIo_case-                _lhsIo_cata-                _lhsIo_dovisit-                _lhsIo_newtypes-                _lhsIo_rename-                _lhsIo_sem-                _lhsIo_sig-                _lhsIo_wantvisit-                _lhsIprefix-                _lhsIsyn-                _lhsIsynsOfChildren ->-                  (let _lhsOdirectDep :: (Seq Edge)-                       _lhsOerrors :: (Seq Error)-                       _lhsOgathAltAttrs :: ([AltAttr])-                       _lhsOgathRules :: (Seq CRule)-                       _lhsOinstDep :: (Seq Edge)-                       _lhsOinstVars :: ([Identifier])-                       _lhsOlocVars :: ([Identifier])-                       _lhsOnAutoRules :: Int-                       _lhsOnExplicitRules :: Int-                       _hdOallTypeSigs :: (Map Identifier Type)-                       _hdOallfields :: ([(Identifier,Type,ChildKind)])-                       _hdOallnts :: ([Identifier])-                       _hdOaltAttrs :: (Map AltAttr Vertex)-                       _hdOattrs :: ([(Identifier,Identifier)])-                       _hdOchildInhs :: (Map Identifier Attributes)-                       _hdOchildNts :: (Map Identifier NontermIdent)-                       _hdOcon :: Identifier-                       _hdOinh :: Attributes-                       _hdOinhsOfChildren :: (Map Identifier Attributes)-                       _hdOmergeMap :: (Map Identifier (Identifier,[Identifier]))-                       _hdOnt :: Identifier-                       _hdOo_case :: Bool-                       _hdOo_cata :: Bool-                       _hdOo_dovisit :: Bool-                       _hdOo_newtypes :: Bool-                       _hdOo_rename :: Bool-                       _hdOo_sem :: Bool-                       _hdOo_sig :: Bool-                       _hdOo_wantvisit :: Bool-                       _hdOprefix :: String-                       _hdOsyn :: Attributes-                       _hdOsynsOfChildren :: (Map Identifier Attributes)-                       _tlOallTypeSigs :: (Map Identifier Type)-                       _tlOallfields :: ([(Identifier,Type,ChildKind)])-                       _tlOallnts :: ([Identifier])-                       _tlOaltAttrs :: (Map AltAttr Vertex)-                       _tlOattrs :: ([(Identifier,Identifier)])-                       _tlOchildInhs :: (Map Identifier Attributes)-                       _tlOchildNts :: (Map Identifier NontermIdent)-                       _tlOcon :: Identifier-                       _tlOinh :: Attributes-                       _tlOinhsOfChildren :: (Map Identifier Attributes)-                       _tlOmergeMap :: (Map Identifier (Identifier,[Identifier]))-                       _tlOnt :: Identifier-                       _tlOo_case :: Bool-                       _tlOo_cata :: Bool-                       _tlOo_dovisit :: Bool-                       _tlOo_newtypes :: Bool-                       _tlOo_rename :: Bool-                       _tlOo_sem :: Bool-                       _tlOo_sig :: Bool-                       _tlOo_wantvisit :: Bool-                       _tlOprefix :: String-                       _tlOsyn :: Attributes-                       _tlOsynsOfChildren :: (Map Identifier Attributes)-                       _hdIdirectDep :: (Seq Edge)-                       _hdIerrors :: (Seq Error)-                       _hdIgathAltAttrs :: ([AltAttr])-                       _hdIgathRules :: (Seq CRule)-                       _hdIinstDep :: (Seq Edge)-                       _hdIinstVars :: ([Identifier])-                       _hdIlocVars :: ([Identifier])-                       _hdInAutoRules :: Int-                       _hdInExplicitRules :: Int-                       _tlIdirectDep :: (Seq Edge)-                       _tlIerrors :: (Seq Error)-                       _tlIgathAltAttrs :: ([AltAttr])-                       _tlIgathRules :: (Seq CRule)-                       _tlIinstDep :: (Seq Edge)-                       _tlIinstVars :: ([Identifier])-                       _tlIlocVars :: ([Identifier])-                       _tlInAutoRules :: Int-                       _tlInExplicitRules :: Int-                       -- use rule "src-ag/Order.ag"(line 268, column 33)-                       _lhsOdirectDep =-                           ({-# LINE 268 "src-ag/Order.ag" #-}-                            _hdIdirectDep Seq.>< _tlIdirectDep-                            {-# LINE 5156 "dist/build/Order" #-}-                            )-                       -- use rule "src-ag/Order.ag"(line 85, column 70)-                       _lhsOerrors =-                           ({-# LINE 85 "src-ag/Order.ag" #-}-                            _hdIerrors Seq.>< _tlIerrors-                            {-# LINE 5162 "dist/build/Order" #-}-                            )-                       -- use rule "src-ag/Order.ag"(line 171, column 68)-                       _lhsOgathAltAttrs =-                           ({-# LINE 171 "src-ag/Order.ag" #-}-                            _hdIgathAltAttrs ++ _tlIgathAltAttrs-                            {-# LINE 5168 "dist/build/Order" #-}-                            )-                       -- use rule "src-ag/Order.ag"(line 207, column 23)-                       _lhsOgathRules =-                           ({-# LINE 207 "src-ag/Order.ag" #-}-                            _hdIgathRules Seq.>< _tlIgathRules-                            {-# LINE 5174 "dist/build/Order" #-}-                            )-                       -- use rule "src-ag/Order.ag"(line 311, column 31)-                       _lhsOinstDep =-                           ({-# LINE 311 "src-ag/Order.ag" #-}-                            _hdIinstDep Seq.>< _tlIinstDep-                            {-# LINE 5180 "dist/build/Order" #-}-                            )-                       -- use rule "src-ag/Order.ag"(line 678, column 86)-                       _lhsOinstVars =-                           ({-# LINE 678 "src-ag/Order.ag" #-}-                            _hdIinstVars ++ _tlIinstVars-                            {-# LINE 5186 "dist/build/Order" #-}-                            )-                       -- use rule "src-ag/Order.ag"(line 678, column 48)-                       _lhsOlocVars =-                           ({-# LINE 678 "src-ag/Order.ag" #-}-                            _hdIlocVars ++ _tlIlocVars-                            {-# LINE 5192 "dist/build/Order" #-}-                            )-                       -- use rule "src-ag/Order.ag"(line 62, column 105)-                       _lhsOnAutoRules =-                           ({-# LINE 62 "src-ag/Order.ag" #-}-                            _hdInAutoRules + _tlInAutoRules-                            {-# LINE 5198 "dist/build/Order" #-}-                            )-                       -- use rule "src-ag/Order.ag"(line 62, column 105)-                       _lhsOnExplicitRules =-                           ({-# LINE 62 "src-ag/Order.ag" #-}-                            _hdInExplicitRules + _tlInExplicitRules-                            {-# LINE 5204 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOallTypeSigs =-                           ({-# LINE 534 "src-ag/Order.ag" #-}-                            _lhsIallTypeSigs-                            {-# LINE 5210 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOallfields =-                           ({-# LINE 655 "src-ag/Order.ag" #-}-                            _lhsIallfields-                            {-# LINE 5216 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOallnts =-                           ({-# LINE 648 "src-ag/Order.ag" #-}-                            _lhsIallnts-                            {-# LINE 5222 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOaltAttrs =-                           ({-# LINE 187 "src-ag/Order.ag" #-}-                            _lhsIaltAttrs-                            {-# LINE 5228 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOattrs =-                           ({-# LINE 655 "src-ag/Order.ag" #-}-                            _lhsIattrs-                            {-# LINE 5234 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOchildInhs =-                           ({-# LINE 200 "src-ag/Order.ag" #-}-                            _lhsIchildInhs-                            {-# LINE 5240 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOchildNts =-                           ({-# LINE 199 "src-ag/Order.ag" #-}-                            _lhsIchildNts-                            {-# LINE 5246 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOcon =-                           ({-# LINE 91 "src-ag/Order.ag" #-}-                            _lhsIcon-                            {-# LINE 5252 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOinh =-                           ({-# LINE 90 "src-ag/Order.ag" #-}-                            _lhsIinh-                            {-# LINE 5258 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOinhsOfChildren =-                           ({-# LINE 338 "src-ag/Order.ag" #-}-                            _lhsIinhsOfChildren-                            {-# LINE 5264 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOmergeMap =-                           ({-# LINE 361 "src-ag/Order.ag" #-}-                            _lhsImergeMap-                            {-# LINE 5270 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOnt =-                           ({-# LINE 90 "src-ag/Order.ag" #-}-                            _lhsInt-                            {-# LINE 5276 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOo_case =-                           ({-# LINE 118 "src-ag/Order.ag" #-}-                            _lhsIo_case-                            {-# LINE 5282 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOo_cata =-                           ({-# LINE 112 "src-ag/Order.ag" #-}-                            _lhsIo_cata-                            {-# LINE 5288 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOo_dovisit =-                           ({-# LINE 117 "src-ag/Order.ag" #-}-                            _lhsIo_dovisit-                            {-# LINE 5294 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOo_newtypes =-                           ({-# LINE 111 "src-ag/Order.ag" #-}-                            _lhsIo_newtypes-                            {-# LINE 5300 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOo_rename =-                           ({-# LINE 115 "src-ag/Order.ag" #-}-                            _lhsIo_rename-                            {-# LINE 5306 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOo_sem =-                           ({-# LINE 114 "src-ag/Order.ag" #-}-                            _lhsIo_sem-                            {-# LINE 5312 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOo_sig =-                           ({-# LINE 113 "src-ag/Order.ag" #-}-                            _lhsIo_sig-                            {-# LINE 5318 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOo_wantvisit =-                           ({-# LINE 116 "src-ag/Order.ag" #-}-                            _lhsIo_wantvisit-                            {-# LINE 5324 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOprefix =-                           ({-# LINE 119 "src-ag/Order.ag" #-}-                            _lhsIprefix-                            {-# LINE 5330 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOsyn =-                           ({-# LINE 90 "src-ag/Order.ag" #-}-                            _lhsIsyn-                            {-# LINE 5336 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _hdOsynsOfChildren =-                           ({-# LINE 338 "src-ag/Order.ag" #-}-                            _lhsIsynsOfChildren-                            {-# LINE 5342 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOallTypeSigs =-                           ({-# LINE 534 "src-ag/Order.ag" #-}-                            _lhsIallTypeSigs-                            {-# LINE 5348 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOallfields =-                           ({-# LINE 655 "src-ag/Order.ag" #-}-                            _lhsIallfields-                            {-# LINE 5354 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOallnts =-                           ({-# LINE 648 "src-ag/Order.ag" #-}-                            _lhsIallnts-                            {-# LINE 5360 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOaltAttrs =-                           ({-# LINE 187 "src-ag/Order.ag" #-}-                            _lhsIaltAttrs-                            {-# LINE 5366 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOattrs =-                           ({-# LINE 655 "src-ag/Order.ag" #-}-                            _lhsIattrs-                            {-# LINE 5372 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOchildInhs =-                           ({-# LINE 200 "src-ag/Order.ag" #-}-                            _lhsIchildInhs-                            {-# LINE 5378 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOchildNts =-                           ({-# LINE 199 "src-ag/Order.ag" #-}-                            _lhsIchildNts-                            {-# LINE 5384 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOcon =-                           ({-# LINE 91 "src-ag/Order.ag" #-}-                            _lhsIcon-                            {-# LINE 5390 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOinh =-                           ({-# LINE 90 "src-ag/Order.ag" #-}-                            _lhsIinh-                            {-# LINE 5396 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOinhsOfChildren =-                           ({-# LINE 338 "src-ag/Order.ag" #-}-                            _lhsIinhsOfChildren-                            {-# LINE 5402 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOmergeMap =-                           ({-# LINE 361 "src-ag/Order.ag" #-}-                            _lhsImergeMap-                            {-# LINE 5408 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOnt =-                           ({-# LINE 90 "src-ag/Order.ag" #-}-                            _lhsInt-                            {-# LINE 5414 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOo_case =-                           ({-# LINE 118 "src-ag/Order.ag" #-}-                            _lhsIo_case-                            {-# LINE 5420 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOo_cata =-                           ({-# LINE 112 "src-ag/Order.ag" #-}-                            _lhsIo_cata-                            {-# LINE 5426 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOo_dovisit =-                           ({-# LINE 117 "src-ag/Order.ag" #-}-                            _lhsIo_dovisit-                            {-# LINE 5432 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOo_newtypes =-                           ({-# LINE 111 "src-ag/Order.ag" #-}-                            _lhsIo_newtypes-                            {-# LINE 5438 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOo_rename =-                           ({-# LINE 115 "src-ag/Order.ag" #-}-                            _lhsIo_rename-                            {-# LINE 5444 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOo_sem =-                           ({-# LINE 114 "src-ag/Order.ag" #-}-                            _lhsIo_sem-                            {-# LINE 5450 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOo_sig =-                           ({-# LINE 113 "src-ag/Order.ag" #-}-                            _lhsIo_sig-                            {-# LINE 5456 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOo_wantvisit =-                           ({-# LINE 116 "src-ag/Order.ag" #-}-                            _lhsIo_wantvisit-                            {-# LINE 5462 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOprefix =-                           ({-# LINE 119 "src-ag/Order.ag" #-}-                            _lhsIprefix-                            {-# LINE 5468 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOsyn =-                           ({-# LINE 90 "src-ag/Order.ag" #-}-                            _lhsIsyn-                            {-# LINE 5474 "dist/build/Order" #-}-                            )-                       -- copy rule (down)-                       _tlOsynsOfChildren =-                           ({-# LINE 338 "src-ag/Order.ag" #-}-                            _lhsIsynsOfChildren-                            {-# LINE 5480 "dist/build/Order" #-}-                            )-                       ( _hdIdirectDep,_hdIerrors,_hdIgathAltAttrs,_hdIgathRules,_hdIinstDep,_hdIinstVars,_hdIlocVars,_hdInAutoRules,_hdInExplicitRules) =-                           hd_ _hdOallTypeSigs _hdOallfields _hdOallnts _hdOaltAttrs _hdOattrs _hdOchildInhs _hdOchildNts _hdOcon _hdOinh _hdOinhsOfChildren _hdOmergeMap _hdOnt _hdOo_case _hdOo_cata _hdOo_dovisit _hdOo_newtypes _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_wantvisit _hdOprefix _hdOsyn _hdOsynsOfChildren-                       ( _tlIdirectDep,_tlIerrors,_tlIgathAltAttrs,_tlIgathRules,_tlIinstDep,_tlIinstVars,_tlIlocVars,_tlInAutoRules,_tlInExplicitRules) =-                           tl_ _tlOallTypeSigs _tlOallfields _tlOallnts _tlOaltAttrs _tlOattrs _tlOchildInhs _tlOchildNts _tlOcon _tlOinh _tlOinhsOfChildren _tlOmergeMap _tlOnt _tlOo_case _tlOo_cata _tlOo_dovisit _tlOo_newtypes _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_wantvisit _tlOprefix _tlOsyn _tlOsynsOfChildren-                   in  ( _lhsOdirectDep,_lhsOerrors,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinstDep,_lhsOinstVars,_lhsOlocVars,_lhsOnAutoRules,_lhsOnExplicitRules))))-sem_Rules_Nil :: T_Rules-sem_Rules_Nil =-    (T_Rules (\ _lhsIallTypeSigs-                _lhsIallfields-                _lhsIallnts-                _lhsIaltAttrs-                _lhsIattrs-                _lhsIchildInhs-                _lhsIchildNts-                _lhsIcon-                _lhsIinh-                _lhsIinhsOfChildren-                _lhsImergeMap-                _lhsInt-                _lhsIo_case-                _lhsIo_cata-                _lhsIo_dovisit-                _lhsIo_newtypes-                _lhsIo_rename-                _lhsIo_sem-                _lhsIo_sig-                _lhsIo_wantvisit-                _lhsIprefix-                _lhsIsyn-                _lhsIsynsOfChildren ->-                  (let _lhsOdirectDep :: (Seq Edge)-                       _lhsOerrors :: (Seq Error)-                       _lhsOgathAltAttrs :: ([AltAttr])-                       _lhsOgathRules :: (Seq CRule)-                       _lhsOinstDep :: (Seq Edge)-                       _lhsOinstVars :: ([Identifier])-                       _lhsOlocVars :: ([Identifier])-                       _lhsOnAutoRules :: Int-                       _lhsOnExplicitRules :: Int-                       -- use rule "src-ag/Order.ag"(line 268, column 33)-                       _lhsOdirectDep =-                           ({-# LINE 268 "src-ag/Order.ag" #-}-                            Seq.empty-                            {-# LINE 5525 "dist/build/Order" #-}-                            )-                       -- use rule "src-ag/Order.ag"(line 85, column 70)-                       _lhsOerrors =-                           ({-# LINE 85 "src-ag/Order.ag" #-}-                            Seq.empty-                            {-# LINE 5531 "dist/build/Order" #-}-                            )-                       -- use rule "src-ag/Order.ag"(line 171, column 68)-                       _lhsOgathAltAttrs =-                           ({-# LINE 171 "src-ag/Order.ag" #-}-                            []-                            {-# LINE 5537 "dist/build/Order" #-}-                            )-                       -- use rule "src-ag/Order.ag"(line 207, column 23)-                       _lhsOgathRules =-                           ({-# LINE 207 "src-ag/Order.ag" #-}-                            Seq.empty-                            {-# LINE 5543 "dist/build/Order" #-}-                            )-                       -- use rule "src-ag/Order.ag"(line 311, column 31)-                       _lhsOinstDep =-                           ({-# LINE 311 "src-ag/Order.ag" #-}-                            Seq.empty-                            {-# LINE 5549 "dist/build/Order" #-}-                            )-                       -- use rule "src-ag/Order.ag"(line 678, column 86)-                       _lhsOinstVars =-                           ({-# LINE 678 "src-ag/Order.ag" #-}-                            []-                            {-# LINE 5555 "dist/build/Order" #-}-                            )-                       -- use rule "src-ag/Order.ag"(line 678, column 48)-                       _lhsOlocVars =-                           ({-# LINE 678 "src-ag/Order.ag" #-}-                            []-                            {-# LINE 5561 "dist/build/Order" #-}-                            )-                       -- use rule "src-ag/Order.ag"(line 62, column 105)-                       _lhsOnAutoRules =-                           ({-# LINE 62 "src-ag/Order.ag" #-}-                            0-                            {-# LINE 5567 "dist/build/Order" #-}-                            )-                       -- use rule "src-ag/Order.ag"(line 62, column 105)-                       _lhsOnExplicitRules =-                           ({-# LINE 62 "src-ag/Order.ag" #-}-                            0-                            {-# LINE 5573 "dist/build/Order" #-}-                            )-                   in  ( _lhsOdirectDep,_lhsOerrors,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinstDep,_lhsOinstVars,_lhsOlocVars,_lhsOnAutoRules,_lhsOnExplicitRules))))--- TypeSig ------------------------------------------------------{--   visit 0:-      chained attribute:-         typeSigs             : Map Identifier Type-   alternatives:-      alternative TypeSig:-         child name           : {Identifier}-         child tp             : {Type}--}--- cata-sem_TypeSig :: TypeSig ->-               T_TypeSig-sem_TypeSig (TypeSig _name _tp) =-    (sem_TypeSig_TypeSig _name _tp)--- semantic domain-newtype T_TypeSig = T_TypeSig ((Map Identifier Type) ->-                               ( (Map Identifier Type)))-data Inh_TypeSig = Inh_TypeSig {typeSigs_Inh_TypeSig :: !((Map Identifier Type))}-data Syn_TypeSig = Syn_TypeSig {typeSigs_Syn_TypeSig :: !((Map Identifier Type))}-wrap_TypeSig :: T_TypeSig ->-                Inh_TypeSig ->-                Syn_TypeSig-wrap_TypeSig (T_TypeSig sem) (Inh_TypeSig _lhsItypeSigs) =-    (let ( _lhsOtypeSigs) = sem _lhsItypeSigs-     in  (Syn_TypeSig _lhsOtypeSigs))-sem_TypeSig_TypeSig :: Identifier ->-                       Type ->-                       T_TypeSig-sem_TypeSig_TypeSig name_ tp_ =-    (T_TypeSig (\ _lhsItypeSigs ->-                    (let _lhsOtypeSigs :: (Map Identifier Type)-                         -- "src-ag/Order.ag"(line 532, column 13)-                         _lhsOtypeSigs =-                             ({-# LINE 532 "src-ag/Order.ag" #-}-                              Map.insert name_ tp_ _lhsItypeSigs-                              {-# LINE 5612 "dist/build/Order" #-}-                              )-                     in  ( _lhsOtypeSigs))))--- TypeSigs -----------------------------------------------------{--   visit 0:-      chained attribute:-         typeSigs             : Map Identifier Type-   alternatives:-      alternative Cons:-         child hd             : TypeSig -         child tl             : TypeSigs -      alternative Nil:--}--- cata-sem_TypeSigs :: TypeSigs ->-                T_TypeSigs-sem_TypeSigs list =-    (Prelude.foldr sem_TypeSigs_Cons sem_TypeSigs_Nil (Prelude.map sem_TypeSig list))--- semantic domain-newtype T_TypeSigs = T_TypeSigs ((Map Identifier Type) ->-                                 ( (Map Identifier Type)))-data Inh_TypeSigs = Inh_TypeSigs {typeSigs_Inh_TypeSigs :: !((Map Identifier Type))}-data Syn_TypeSigs = Syn_TypeSigs {typeSigs_Syn_TypeSigs :: !((Map Identifier Type))}-wrap_TypeSigs :: T_TypeSigs ->-                 Inh_TypeSigs ->-                 Syn_TypeSigs-wrap_TypeSigs (T_TypeSigs sem) (Inh_TypeSigs _lhsItypeSigs) =-    (let ( _lhsOtypeSigs) = sem _lhsItypeSigs-     in  (Syn_TypeSigs _lhsOtypeSigs))-sem_TypeSigs_Cons :: T_TypeSig ->-                     T_TypeSigs ->-                     T_TypeSigs-sem_TypeSigs_Cons (T_TypeSig hd_) (T_TypeSigs tl_) =-    (T_TypeSigs (\ _lhsItypeSigs ->-                     (let _lhsOtypeSigs :: (Map Identifier Type)-                          _hdOtypeSigs :: (Map Identifier Type)-                          _tlOtypeSigs :: (Map Identifier Type)-                          _hdItypeSigs :: (Map Identifier Type)-                          _tlItypeSigs :: (Map Identifier Type)-                          -- copy rule (up)-                          _lhsOtypeSigs =-                              ({-# LINE 528 "src-ag/Order.ag" #-}-                               _tlItypeSigs-                               {-# LINE 5656 "dist/build/Order" #-}-                               )-                          -- copy rule (down)-                          _hdOtypeSigs =-                              ({-# LINE 528 "src-ag/Order.ag" #-}-                               _lhsItypeSigs-                               {-# LINE 5662 "dist/build/Order" #-}-                               )-                          -- copy rule (chain)-                          _tlOtypeSigs =-                              ({-# LINE 528 "src-ag/Order.ag" #-}-                               _hdItypeSigs-                               {-# LINE 5668 "dist/build/Order" #-}-                               )-                          ( _hdItypeSigs) =-                              hd_ _hdOtypeSigs-                          ( _tlItypeSigs) =-                              tl_ _tlOtypeSigs-                      in  ( _lhsOtypeSigs))))-sem_TypeSigs_Nil :: T_TypeSigs-sem_TypeSigs_Nil =-    (T_TypeSigs (\ _lhsItypeSigs ->-                     (let _lhsOtypeSigs :: (Map Identifier Type)-                          -- copy rule (chain)-                          _lhsOtypeSigs =-                              ({-# LINE 528 "src-ag/Order.ag" #-}-                               _lhsItypeSigs-                               {-# LINE 5683 "dist/build/Order" #-}-                               )+                       ___node =+                           (Syn_Child _lhsOattributes _lhsOcollectChildrenInhs _lhsOcollectChildrenSyns _lhsOerrors _lhsOfield _lhsOgathAltAttrs _lhsOgathRules _lhsOinhs _lhsOnts _lhsOsinglevisits _lhsOterminals)+                   in  ( _lhsOattributes,_lhsOcollectChildrenInhs,_lhsOcollectChildrenSyns,_lhsOerrors,_lhsOfield,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinhs,_lhsOnts,_lhsOsinglevisits,_lhsOterminals))))+-- Children ----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allfields            : [(Identifier,Type,ChildKind)]+         allnts               : [Identifier]+         attrs                : [(Identifier,Identifier)]+         con                  : Identifier+         inh                  : Attributes+         inhMap               : Map Identifier Attributes+         mergeMap             : Map Identifier (Identifier,[Identifier])+         nt                   : Identifier+         o_unbox              : Bool+         syn                  : Attributes+         synMap               : Map Identifier Attributes+      synthesized attributes:+         attributes           : [(Identifier,Attributes,Attributes)]+         collectChildrenInhs  : Map Identifier Attributes +         collectChildrenSyns  : Map Identifier Attributes +         errors               : Seq Error+         fields               : [(Identifier,Type,ChildKind)]+         gathAltAttrs         : [AltAttr]+         gathRules            : Seq CRule+         inhs                 : Seq (Identifier,Attributes)+         nts                  : Seq (Identifier,NontermIdent)+         singlevisits         : [CRule]+         terminals            : [Identifier]+   alternatives:+      alternative Cons:+         child hd             : Child +         child tl             : Children +      alternative Nil:+-}+-- cata+sem_Children :: Children ->+                T_Children+sem_Children list =+    (Prelude.foldr sem_Children_Cons sem_Children_Nil (Prelude.map sem_Child list))+-- semantic domain+newtype T_Children = T_Children (([(Identifier,Type,ChildKind)]) ->+                                 ([Identifier]) ->+                                 ([(Identifier,Identifier)]) ->+                                 Identifier ->+                                 Attributes ->+                                 (Map Identifier Attributes) ->+                                 (Map Identifier (Identifier,[Identifier])) ->+                                 Identifier ->+                                 Bool ->+                                 Attributes ->+                                 (Map Identifier Attributes) ->+                                 ( ([(Identifier,Attributes,Attributes)]),(Map Identifier Attributes ),(Map Identifier Attributes ),(Seq Error),([(Identifier,Type,ChildKind)]),([AltAttr]),(Seq CRule),(Seq (Identifier,Attributes)),(Seq (Identifier,NontermIdent)),([CRule]),([Identifier])))+data Inh_Children = Inh_Children {allfields_Inh_Children :: !(([(Identifier,Type,ChildKind)])),allnts_Inh_Children :: !(([Identifier])),attrs_Inh_Children :: !(([(Identifier,Identifier)])),con_Inh_Children :: !(Identifier),inh_Inh_Children :: !(Attributes),inhMap_Inh_Children :: !((Map Identifier Attributes)),mergeMap_Inh_Children :: !((Map Identifier (Identifier,[Identifier]))),nt_Inh_Children :: !(Identifier),o_unbox_Inh_Children :: !(Bool),syn_Inh_Children :: !(Attributes),synMap_Inh_Children :: !((Map Identifier Attributes))}+data Syn_Children = Syn_Children {attributes_Syn_Children :: !(([(Identifier,Attributes,Attributes)])),collectChildrenInhs_Syn_Children :: !((Map Identifier Attributes )),collectChildrenSyns_Syn_Children :: !((Map Identifier Attributes )),errors_Syn_Children :: !((Seq Error)),fields_Syn_Children :: !(([(Identifier,Type,ChildKind)])),gathAltAttrs_Syn_Children :: !(([AltAttr])),gathRules_Syn_Children :: !((Seq CRule)),inhs_Syn_Children :: !((Seq (Identifier,Attributes))),nts_Syn_Children :: !((Seq (Identifier,NontermIdent))),singlevisits_Syn_Children :: !(([CRule])),terminals_Syn_Children :: !(([Identifier]))}+wrap_Children :: T_Children ->+                 Inh_Children ->+                 Syn_Children+wrap_Children (T_Children sem) (Inh_Children _lhsIallfields _lhsIallnts _lhsIattrs _lhsIcon _lhsIinh _lhsIinhMap _lhsImergeMap _lhsInt _lhsIo_unbox _lhsIsyn _lhsIsynMap) =+    (let ( _lhsOattributes,_lhsOcollectChildrenInhs,_lhsOcollectChildrenSyns,_lhsOerrors,_lhsOfields,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinhs,_lhsOnts,_lhsOsinglevisits,_lhsOterminals) = sem _lhsIallfields _lhsIallnts _lhsIattrs _lhsIcon _lhsIinh _lhsIinhMap _lhsImergeMap _lhsInt _lhsIo_unbox _lhsIsyn _lhsIsynMap+     in  (Syn_Children _lhsOattributes _lhsOcollectChildrenInhs _lhsOcollectChildrenSyns _lhsOerrors _lhsOfields _lhsOgathAltAttrs _lhsOgathRules _lhsOinhs _lhsOnts _lhsOsinglevisits _lhsOterminals))+sem_Children_Cons :: T_Child ->+                     T_Children ->+                     T_Children+sem_Children_Cons (T_Child hd_) (T_Children tl_) =+    (T_Children (\ _lhsIallfields+                   _lhsIallnts+                   _lhsIattrs+                   _lhsIcon+                   _lhsIinh+                   _lhsIinhMap+                   _lhsImergeMap+                   _lhsInt+                   _lhsIo_unbox+                   _lhsIsyn+                   _lhsIsynMap ->+                     (let _lhsOfields :: ([(Identifier,Type,ChildKind)])+                          _lhsOattributes :: ([(Identifier,Attributes,Attributes)])+                          _lhsOcollectChildrenInhs :: (Map Identifier Attributes )+                          _lhsOcollectChildrenSyns :: (Map Identifier Attributes )+                          _lhsOerrors :: (Seq Error)+                          _lhsOgathAltAttrs :: ([AltAttr])+                          _lhsOgathRules :: (Seq CRule)+                          _lhsOinhs :: (Seq (Identifier,Attributes))+                          _lhsOnts :: (Seq (Identifier,NontermIdent))+                          _lhsOsinglevisits :: ([CRule])+                          _lhsOterminals :: ([Identifier])+                          _hdOallfields :: ([(Identifier,Type,ChildKind)])+                          _hdOallnts :: ([Identifier])+                          _hdOattrs :: ([(Identifier,Identifier)])+                          _hdOcon :: Identifier+                          _hdOinh :: Attributes+                          _hdOinhMap :: (Map Identifier Attributes)+                          _hdOmergeMap :: (Map Identifier (Identifier,[Identifier]))+                          _hdOnt :: Identifier+                          _hdOo_unbox :: Bool+                          _hdOsyn :: Attributes+                          _hdOsynMap :: (Map Identifier Attributes)+                          _tlOallfields :: ([(Identifier,Type,ChildKind)])+                          _tlOallnts :: ([Identifier])+                          _tlOattrs :: ([(Identifier,Identifier)])+                          _tlOcon :: Identifier+                          _tlOinh :: Attributes+                          _tlOinhMap :: (Map Identifier Attributes)+                          _tlOmergeMap :: (Map Identifier (Identifier,[Identifier]))+                          _tlOnt :: Identifier+                          _tlOo_unbox :: Bool+                          _tlOsyn :: Attributes+                          _tlOsynMap :: (Map Identifier Attributes)+                          _hdIattributes :: ([(Identifier,Attributes,Attributes)])+                          _hdIcollectChildrenInhs :: (Map Identifier Attributes )+                          _hdIcollectChildrenSyns :: (Map Identifier Attributes )+                          _hdIerrors :: (Seq Error)+                          _hdIfield :: ((Identifier,Type,ChildKind))+                          _hdIgathAltAttrs :: ([AltAttr])+                          _hdIgathRules :: (Seq CRule)+                          _hdIinhs :: (Seq (Identifier,Attributes))+                          _hdInts :: (Seq (Identifier,NontermIdent))+                          _hdIsinglevisits :: ([CRule])+                          _hdIterminals :: ([Identifier])+                          _tlIattributes :: ([(Identifier,Attributes,Attributes)])+                          _tlIcollectChildrenInhs :: (Map Identifier Attributes )+                          _tlIcollectChildrenSyns :: (Map Identifier Attributes )+                          _tlIerrors :: (Seq Error)+                          _tlIfields :: ([(Identifier,Type,ChildKind)])+                          _tlIgathAltAttrs :: ([AltAttr])+                          _tlIgathRules :: (Seq CRule)+                          _tlIinhs :: (Seq (Identifier,Attributes))+                          _tlInts :: (Seq (Identifier,NontermIdent))+                          _tlIsinglevisits :: ([CRule])+                          _tlIterminals :: ([Identifier])+                          -- "src-ag/Order.ag"(line 675, column 11)+                          _lhsOfields =+                              ({-# LINE 675 "src-ag/Order.ag" #-}+                               _hdIfield : _tlIfields+                               {-# LINE 566 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 666, column 32)+                          _lhsOattributes =+                              ({-# LINE 666 "src-ag/Order.ag" #-}+                               _hdIattributes ++ _tlIattributes+                               {-# LINE 572 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 343, column 68)+                          _lhsOcollectChildrenInhs =+                              ({-# LINE 343 "src-ag/Order.ag" #-}+                               _hdIcollectChildrenInhs `Map.union` _tlIcollectChildrenInhs+                               {-# LINE 578 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 343, column 68)+                          _lhsOcollectChildrenSyns =+                              ({-# LINE 343 "src-ag/Order.ag" #-}+                               _hdIcollectChildrenSyns `Map.union` _tlIcollectChildrenSyns+                               {-# LINE 584 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 85, column 70)+                          _lhsOerrors =+                              ({-# LINE 85 "src-ag/Order.ag" #-}+                               _hdIerrors Seq.>< _tlIerrors+                               {-# LINE 590 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 171, column 68)+                          _lhsOgathAltAttrs =+                              ({-# LINE 171 "src-ag/Order.ag" #-}+                               _hdIgathAltAttrs ++ _tlIgathAltAttrs+                               {-# LINE 596 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 207, column 23)+                          _lhsOgathRules =+                              ({-# LINE 207 "src-ag/Order.ag" #-}+                               _hdIgathRules Seq.>< _tlIgathRules+                               {-# LINE 602 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 194, column 20)+                          _lhsOinhs =+                              ({-# LINE 194 "src-ag/Order.ag" #-}+                               _hdIinhs Seq.>< _tlIinhs+                               {-# LINE 608 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 193, column 19)+                          _lhsOnts =+                              ({-# LINE 193 "src-ag/Order.ag" #-}+                               _hdInts Seq.>< _tlInts+                               {-# LINE 614 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 612, column 40)+                          _lhsOsinglevisits =+                              ({-# LINE 612 "src-ag/Order.ag" #-}+                               _hdIsinglevisits ++ _tlIsinglevisits+                               {-# LINE 620 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 637, column 38)+                          _lhsOterminals =+                              ({-# LINE 637 "src-ag/Order.ag" #-}+                               _hdIterminals ++ _tlIterminals+                               {-# LINE 626 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOallfields =+                              ({-# LINE 655 "src-ag/Order.ag" #-}+                               _lhsIallfields+                               {-# LINE 632 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOallnts =+                              ({-# LINE 648 "src-ag/Order.ag" #-}+                               _lhsIallnts+                               {-# LINE 638 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOattrs =+                              ({-# LINE 655 "src-ag/Order.ag" #-}+                               _lhsIattrs+                               {-# LINE 644 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOcon =+                              ({-# LINE 91 "src-ag/Order.ag" #-}+                               _lhsIcon+                               {-# LINE 650 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOinh =+                              ({-# LINE 90 "src-ag/Order.ag" #-}+                               _lhsIinh+                               {-# LINE 656 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOinhMap =+                              ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}+                               _lhsIinhMap+                               {-# LINE 662 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOmergeMap =+                              ({-# LINE 361 "src-ag/Order.ag" #-}+                               _lhsImergeMap+                               {-# LINE 668 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOnt =+                              ({-# LINE 90 "src-ag/Order.ag" #-}+                               _lhsInt+                               {-# LINE 674 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOo_unbox =+                              ({-# LINE 120 "src-ag/Order.ag" #-}+                               _lhsIo_unbox+                               {-# LINE 680 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOsyn =+                              ({-# LINE 90 "src-ag/Order.ag" #-}+                               _lhsIsyn+                               {-# LINE 686 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOsynMap =+                              ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}+                               _lhsIsynMap+                               {-# LINE 692 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _tlOallfields =+                              ({-# LINE 655 "src-ag/Order.ag" #-}+                               _lhsIallfields+                               {-# LINE 698 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _tlOallnts =+                              ({-# LINE 648 "src-ag/Order.ag" #-}+                               _lhsIallnts+                               {-# LINE 704 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _tlOattrs =+                              ({-# LINE 655 "src-ag/Order.ag" #-}+                               _lhsIattrs+                               {-# LINE 710 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _tlOcon =+                              ({-# LINE 91 "src-ag/Order.ag" #-}+                               _lhsIcon+                               {-# LINE 716 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _tlOinh =+                              ({-# LINE 90 "src-ag/Order.ag" #-}+                               _lhsIinh+                               {-# LINE 722 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _tlOinhMap =+                              ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}+                               _lhsIinhMap+                               {-# LINE 728 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _tlOmergeMap =+                              ({-# LINE 361 "src-ag/Order.ag" #-}+                               _lhsImergeMap+                               {-# LINE 734 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _tlOnt =+                              ({-# LINE 90 "src-ag/Order.ag" #-}+                               _lhsInt+                               {-# LINE 740 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _tlOo_unbox =+                              ({-# LINE 120 "src-ag/Order.ag" #-}+                               _lhsIo_unbox+                               {-# LINE 746 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _tlOsyn =+                              ({-# LINE 90 "src-ag/Order.ag" #-}+                               _lhsIsyn+                               {-# LINE 752 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _tlOsynMap =+                              ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}+                               _lhsIsynMap+                               {-# LINE 758 "dist/build/Order" #-}+                               )+                          ( _hdIattributes,_hdIcollectChildrenInhs,_hdIcollectChildrenSyns,_hdIerrors,_hdIfield,_hdIgathAltAttrs,_hdIgathRules,_hdIinhs,_hdInts,_hdIsinglevisits,_hdIterminals) =+                              hd_ _hdOallfields _hdOallnts _hdOattrs _hdOcon _hdOinh _hdOinhMap _hdOmergeMap _hdOnt _hdOo_unbox _hdOsyn _hdOsynMap+                          ( _tlIattributes,_tlIcollectChildrenInhs,_tlIcollectChildrenSyns,_tlIerrors,_tlIfields,_tlIgathAltAttrs,_tlIgathRules,_tlIinhs,_tlInts,_tlIsinglevisits,_tlIterminals) =+                              tl_ _tlOallfields _tlOallnts _tlOattrs _tlOcon _tlOinh _tlOinhMap _tlOmergeMap _tlOnt _tlOo_unbox _tlOsyn _tlOsynMap+                          ___node =+                              (Syn_Children _lhsOattributes _lhsOcollectChildrenInhs _lhsOcollectChildrenSyns _lhsOerrors _lhsOfields _lhsOgathAltAttrs _lhsOgathRules _lhsOinhs _lhsOnts _lhsOsinglevisits _lhsOterminals)+                      in  ( _lhsOattributes,_lhsOcollectChildrenInhs,_lhsOcollectChildrenSyns,_lhsOerrors,_lhsOfields,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinhs,_lhsOnts,_lhsOsinglevisits,_lhsOterminals))))+sem_Children_Nil :: T_Children+sem_Children_Nil =+    (T_Children (\ _lhsIallfields+                   _lhsIallnts+                   _lhsIattrs+                   _lhsIcon+                   _lhsIinh+                   _lhsIinhMap+                   _lhsImergeMap+                   _lhsInt+                   _lhsIo_unbox+                   _lhsIsyn+                   _lhsIsynMap ->+                     (let _lhsOfields :: ([(Identifier,Type,ChildKind)])+                          _lhsOattributes :: ([(Identifier,Attributes,Attributes)])+                          _lhsOcollectChildrenInhs :: (Map Identifier Attributes )+                          _lhsOcollectChildrenSyns :: (Map Identifier Attributes )+                          _lhsOerrors :: (Seq Error)+                          _lhsOgathAltAttrs :: ([AltAttr])+                          _lhsOgathRules :: (Seq CRule)+                          _lhsOinhs :: (Seq (Identifier,Attributes))+                          _lhsOnts :: (Seq (Identifier,NontermIdent))+                          _lhsOsinglevisits :: ([CRule])+                          _lhsOterminals :: ([Identifier])+                          -- "src-ag/Order.ag"(line 676, column 11)+                          _lhsOfields =+                              ({-# LINE 676 "src-ag/Order.ag" #-}+                               []+                               {-# LINE 795 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 666, column 32)+                          _lhsOattributes =+                              ({-# LINE 666 "src-ag/Order.ag" #-}+                               []+                               {-# LINE 801 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 343, column 68)+                          _lhsOcollectChildrenInhs =+                              ({-# LINE 343 "src-ag/Order.ag" #-}+                               Map.empty+                               {-# LINE 807 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 343, column 68)+                          _lhsOcollectChildrenSyns =+                              ({-# LINE 343 "src-ag/Order.ag" #-}+                               Map.empty+                               {-# LINE 813 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 85, column 70)+                          _lhsOerrors =+                              ({-# LINE 85 "src-ag/Order.ag" #-}+                               Seq.empty+                               {-# LINE 819 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 171, column 68)+                          _lhsOgathAltAttrs =+                              ({-# LINE 171 "src-ag/Order.ag" #-}+                               []+                               {-# LINE 825 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 207, column 23)+                          _lhsOgathRules =+                              ({-# LINE 207 "src-ag/Order.ag" #-}+                               Seq.empty+                               {-# LINE 831 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 194, column 20)+                          _lhsOinhs =+                              ({-# LINE 194 "src-ag/Order.ag" #-}+                               Seq.empty+                               {-# LINE 837 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 193, column 19)+                          _lhsOnts =+                              ({-# LINE 193 "src-ag/Order.ag" #-}+                               Seq.empty+                               {-# LINE 843 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 612, column 40)+                          _lhsOsinglevisits =+                              ({-# LINE 612 "src-ag/Order.ag" #-}+                               []+                               {-# LINE 849 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 637, column 38)+                          _lhsOterminals =+                              ({-# LINE 637 "src-ag/Order.ag" #-}+                               []+                               {-# LINE 855 "dist/build/Order" #-}+                               )+                          ___node =+                              (Syn_Children _lhsOattributes _lhsOcollectChildrenInhs _lhsOcollectChildrenSyns _lhsOerrors _lhsOfields _lhsOgathAltAttrs _lhsOgathRules _lhsOinhs _lhsOnts _lhsOsinglevisits _lhsOterminals)+                      in  ( _lhsOattributes,_lhsOcollectChildrenInhs,_lhsOcollectChildrenSyns,_lhsOerrors,_lhsOfields,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinhs,_lhsOnts,_lhsOsinglevisits,_lhsOterminals))))+-- Expression --------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allfields            : [(Identifier,Type,ChildKind)]+         allnts               : [Identifier]+         attrs                : [(Identifier,Identifier)]+         con                  : Identifier+         mergeMap             : Map Identifier (Identifier,[Identifier])+         nt                   : Identifier+      synthesized attributes:+         allRhsVars           : Set (Identifier,Identifier)+         copy                 : Expression +         errors               : Seq Error+         textLines            : [String]+         usedAttrs            : [(Identifier,Identifier)]+         usedFields           : [Identifier]+         usedLocals           : [Identifier]+   alternatives:+      alternative Expression:+         child pos            : {Pos}+         child tks            : {[HsToken]}+         visit 0:+            local textLines   : _+            local usedAttrs   : _+            local usedLocals  : _+            local usedFields  : _+            local copy        : _+-}+-- cata+sem_Expression :: Expression ->+                  T_Expression+sem_Expression (Expression _pos _tks) =+    (sem_Expression_Expression _pos _tks)+-- semantic domain+newtype T_Expression = T_Expression (([(Identifier,Type,ChildKind)]) ->+                                     ([Identifier]) ->+                                     ([(Identifier,Identifier)]) ->+                                     Identifier ->+                                     (Map Identifier (Identifier,[Identifier])) ->+                                     Identifier ->+                                     ( (Set (Identifier,Identifier)),Expression,(Seq Error),([String]),([(Identifier,Identifier)]),([Identifier]),([Identifier])))+data Inh_Expression = Inh_Expression {allfields_Inh_Expression :: !(([(Identifier,Type,ChildKind)])),allnts_Inh_Expression :: !(([Identifier])),attrs_Inh_Expression :: !(([(Identifier,Identifier)])),con_Inh_Expression :: !(Identifier),mergeMap_Inh_Expression :: !((Map Identifier (Identifier,[Identifier]))),nt_Inh_Expression :: !(Identifier)}+data Syn_Expression = Syn_Expression {allRhsVars_Syn_Expression :: !((Set (Identifier,Identifier))),copy_Syn_Expression :: !(Expression),errors_Syn_Expression :: !((Seq Error)),textLines_Syn_Expression :: !(([String])),usedAttrs_Syn_Expression :: !(([(Identifier,Identifier)])),usedFields_Syn_Expression :: !(([Identifier])),usedLocals_Syn_Expression :: !(([Identifier]))}+wrap_Expression :: T_Expression ->+                   Inh_Expression ->+                   Syn_Expression+wrap_Expression (T_Expression sem) (Inh_Expression _lhsIallfields _lhsIallnts _lhsIattrs _lhsIcon _lhsImergeMap _lhsInt) =+    (let ( _lhsOallRhsVars,_lhsOcopy,_lhsOerrors,_lhsOtextLines,_lhsOusedAttrs,_lhsOusedFields,_lhsOusedLocals) = sem _lhsIallfields _lhsIallnts _lhsIattrs _lhsIcon _lhsImergeMap _lhsInt+     in  (Syn_Expression _lhsOallRhsVars _lhsOcopy _lhsOerrors _lhsOtextLines _lhsOusedAttrs _lhsOusedFields _lhsOusedLocals))+sem_Expression_Expression :: Pos ->+                             ([HsToken]) ->+                             T_Expression+sem_Expression_Expression pos_ tks_ =+    (T_Expression (\ _lhsIallfields+                     _lhsIallnts+                     _lhsIattrs+                     _lhsIcon+                     _lhsImergeMap+                     _lhsInt ->+                       (let _lhsOerrors :: (Seq Error)+                            _lhsOallRhsVars :: (Set (Identifier,Identifier))+                            _lhsOcopy :: Expression+                            _lhsOtextLines :: ([String])+                            _lhsOusedAttrs :: ([(Identifier,Identifier)])+                            _lhsOusedFields :: ([Identifier])+                            _lhsOusedLocals :: ([Identifier])+                            -- "src-ag/Order.ag"(line 465, column 21)+                            (_textLines,_usedAttrs,_usedLocals,_usedFields) =+                                ({-# LINE 465 "src-ag/Order.ag" #-}+                                 let mergedChildren = [ x | (_,xs) <- Map.elems _lhsImergeMap, x <- xs ]+                                     attrsIn = filter (\(fld,_) -> not (fld `elem` mergedChildren)) _lhsIattrs+                                     inherited = Inh_HsTokensRoot+                                                 { attrs_Inh_HsTokensRoot      = attrsIn+                                                 , con_Inh_HsTokensRoot        = _lhsIcon+                                                 , allfields_Inh_HsTokensRoot  = _lhsIallfields+                                                 , allnts_Inh_HsTokensRoot     = _lhsIallnts+                                                 , nt_Inh_HsTokensRoot         = _lhsInt+                                                 }+                                     synthesized = wrap_HsTokensRoot (sem_HsTokensRoot (HsTokensRoot tks_)) inherited+                                 in case synthesized of+                                      Syn_HsTokensRoot+                                       { textLines_Syn_HsTokensRoot  = textLines+                                       , usedAttrs_Syn_HsTokensRoot  = usedAttrs+                                       , usedLocals_Syn_HsTokensRoot = usedLocals+                                       , usedFields_Syn_HsTokensRoot = usedFields+                                       }  -> let extraAttrs = [ (src,attr)+                                                              | (fld,attr) <- usedAttrs, let mbMerged = Map.lookup fld _lhsImergeMap, isJust mbMerged+                                                              , let (Just (_, srcs)) = mbMerged, src <- srcs ]+                                                 usedAttrs' = usedAttrs ++ extraAttrs+                                             in (textLines,usedAttrs',usedLocals,usedFields)+                                 {-# LINE 951 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 488, column 17)+                            _lhsOerrors =+                                ({-# LINE 488 "src-ag/Order.ag" #-}+                                 Seq.empty+                                 {-# LINE 957 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 489, column 17)+                            _lhsOallRhsVars =+                                ({-# LINE 489 "src-ag/Order.ag" #-}+                                 Set.fromList _usedAttrs+                                 `Set.union`+                                 Set.fromList [ (_LOC, l) | l <- _usedLocals    ]+                                 `Set.union`+                                 Set.fromList [ (_FIELD, fld) | fld <- _usedFields    ]+                                 {-# LINE 967 "dist/build/Order" #-}+                                 )+                            -- self rule+                            _copy =+                                ({-# LINE 456 "src-ag/Order.ag" #-}+                                 Expression pos_ tks_+                                 {-# LINE 973 "dist/build/Order" #-}+                                 )+                            -- self rule+                            _lhsOcopy =+                                ({-# LINE 456 "src-ag/Order.ag" #-}+                                 _copy+                                 {-# LINE 979 "dist/build/Order" #-}+                                 )+                            -- copy rule (from local)+                            _lhsOtextLines =+                                ({-# LINE 455 "src-ag/Order.ag" #-}+                                 _textLines+                                 {-# LINE 985 "dist/build/Order" #-}+                                 )+                            -- copy rule (from local)+                            _lhsOusedAttrs =+                                ({-# LINE 453 "src-ag/Order.ag" #-}+                                 _usedAttrs+                                 {-# LINE 991 "dist/build/Order" #-}+                                 )+                            -- copy rule (from local)+                            _lhsOusedFields =+                                ({-# LINE 454 "src-ag/Order.ag" #-}+                                 _usedFields+                                 {-# LINE 997 "dist/build/Order" #-}+                                 )+                            -- copy rule (from local)+                            _lhsOusedLocals =+                                ({-# LINE 452 "src-ag/Order.ag" #-}+                                 _usedLocals+                                 {-# LINE 1003 "dist/build/Order" #-}+                                 )+                            ___node =+                                (Syn_Expression _lhsOallRhsVars _lhsOcopy _lhsOerrors _lhsOtextLines _lhsOusedAttrs _lhsOusedFields _lhsOusedLocals)+                        in  ( _lhsOallRhsVars,_lhsOcopy,_lhsOerrors,_lhsOtextLines,_lhsOusedAttrs,_lhsOusedFields,_lhsOusedLocals))))+-- Grammar -----------------------------------------------------+{-+   visit 0:+      inherited attribute:+         options              : Options+      synthesized attributes:+         errors               : Seq Error+         nAutoRules           : Int+         nExplicitRules       : Int+         output               : CGrammar+   alternatives:+      alternative Grammar:+         child typeSyns       : {TypeSyns}+         child useMap         : {UseMap}+         child derivings      : {Derivings}+         child wrappers       : {Set NontermIdent}+         child nonts          : Nonterminals +         child pragmas        : {PragmaMap}+         child manualAttrOrderMap : {AttrOrderMap}+         child paramMap       : {ParamMap}+         child contextMap     : {ContextMap}+         child quantMap       : {QuantMap}+         child uniqueMap      : {UniqueMap}+         child augmentsMap    : {Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))}+         child aroundsMap     : {Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))}+         child mergeMap       : {Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression)))}+         visit 0:+            local o_dovisit   : _+            local ruleTable   : _+            local attrTable   : _+            local attrVertex  : _+            local tdpToTds    : _+            local tdsToTdp    : _+            local directDep   : _+            local instDep     : _+            local aroundDep   : _+            local mergeDep    : _+            local info        : _+            local cInterfaceMap : _+            local cVisitsMap  : _+            local cyclesErrors : _+            local aroundMap   : _+            local mergeMap    : _+-}+-- cata+sem_Grammar :: Grammar ->+               T_Grammar+sem_Grammar (Grammar _typeSyns _useMap _derivings _wrappers _nonts _pragmas _manualAttrOrderMap _paramMap _contextMap _quantMap _uniqueMap _augmentsMap _aroundsMap _mergeMap) =+    (sem_Grammar_Grammar _typeSyns _useMap _derivings _wrappers (sem_Nonterminals _nonts) _pragmas _manualAttrOrderMap _paramMap _contextMap _quantMap _uniqueMap _augmentsMap _aroundsMap _mergeMap)+-- semantic domain+newtype T_Grammar = T_Grammar (Options ->+                               ( (Seq Error),Int,Int,CGrammar))+data Inh_Grammar = Inh_Grammar {options_Inh_Grammar :: !(Options)}+data Syn_Grammar = Syn_Grammar {errors_Syn_Grammar :: !((Seq Error)),nAutoRules_Syn_Grammar :: !(Int),nExplicitRules_Syn_Grammar :: !(Int),output_Syn_Grammar :: !(CGrammar)}+wrap_Grammar :: T_Grammar ->+                Inh_Grammar ->+                Syn_Grammar+wrap_Grammar (T_Grammar sem) (Inh_Grammar _lhsIoptions) =+    (let ( _lhsOerrors,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOoutput) = sem _lhsIoptions+     in  (Syn_Grammar _lhsOerrors _lhsOnAutoRules _lhsOnExplicitRules _lhsOoutput))+sem_Grammar_Grammar :: TypeSyns ->+                       UseMap ->+                       Derivings ->+                       (Set NontermIdent) ->+                       T_Nonterminals ->+                       PragmaMap ->+                       AttrOrderMap ->+                       ParamMap ->+                       ContextMap ->+                       QuantMap ->+                       UniqueMap ->+                       (Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))) ->+                       (Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))) ->+                       (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression)))) ->+                       T_Grammar+sem_Grammar_Grammar typeSyns_ useMap_ derivings_ wrappers_ (T_Nonterminals nonts_) pragmas_ manualAttrOrderMap_ paramMap_ contextMap_ quantMap_ uniqueMap_ augmentsMap_ aroundsMap_ mergeMap_ =+    (T_Grammar (\ _lhsIoptions ->+                    (let _nontsOo_cata :: Bool+                         _nontsOo_data :: Bool+                         _nontsOo_sig :: Bool+                         _nontsOo_sem :: Bool+                         _nontsOo_rename :: Bool+                         _nontsOo_newtypes :: Bool+                         _nontsOo_wantvisit :: Bool+                         _nontsOo_unbox :: Bool+                         _nontsOo_case :: Bool+                         _nontsOprefix :: String+                         _nontsOvcount :: Int+                         _nontsOmanualAttrDepMap :: AttrOrderMap+                         _nontsOaroundMap :: (Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression])))+                         _nontsOacount :: Int+                         _lhsOerrors :: (Seq Error)+                         _lhsOoutput :: CGrammar+                         _nontsOallnts :: ([Identifier])+                         _nontsOinhMap :: (Map Identifier Attributes)+                         _nontsOsynMap :: (Map Identifier Attributes)+                         _lhsOnAutoRules :: Int+                         _lhsOnExplicitRules :: Int+                         _nontsOcInterfaceMap :: CInterfaceMap+                         _nontsOcVisitsMap :: CVisitsMap+                         _nontsOmergeMap :: (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))))+                         _nontsOo_dovisit :: Bool+                         _nontsIacount :: Int+                         _nontsIadditionalDep :: (Seq Edge)+                         _nontsIaranges :: (Seq (Int,Int,Int))+                         _nontsIaroundDep :: (Seq Edge)+                         _nontsIcNonterminals :: CNonterminals+                         _nontsIdirectDep :: (Seq Edge)+                         _nontsIerrors :: (Seq Error)+                         _nontsIinhMap' :: (Map Identifier Attributes)+                         _nontsIinstDep :: (Seq Edge)+                         _nontsImergeDep :: (Seq Edge)+                         _nontsInAutoRules :: Int+                         _nontsInExplicitRules :: Int+                         _nontsInonts :: ([(NontermIdent,[ConstructorIdent])])+                         _nontsIntattrs :: (Seq (Vertex,NTAttr))+                         _nontsIrules :: (Seq (Vertex,CRule))+                         _nontsIsynMap' :: (Map Identifier Attributes)+                         _nontsIvcount :: Int+                         -- "src-ag/Order.ag"(line 124, column 17)+                         _o_dovisit =+                             ({-# LINE 124 "src-ag/Order.ag" #-}+                              visit     _lhsIoptions && null _cyclesErrors+                              {-# LINE 1131 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 125, column 17)+                         _nontsOo_cata =+                             ({-# LINE 125 "src-ag/Order.ag" #-}+                              folds     _lhsIoptions+                              {-# LINE 1137 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 125, column 17)+                         _nontsOo_data =+                             ({-# LINE 126 "src-ag/Order.ag" #-}+                              dataTypes _lhsIoptions+                              {-# LINE 1143 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 125, column 17)+                         _nontsOo_sig =+                             ({-# LINE 127 "src-ag/Order.ag" #-}+                              typeSigs  _lhsIoptions+                              {-# LINE 1149 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 125, column 17)+                         _nontsOo_sem =+                             ({-# LINE 128 "src-ag/Order.ag" #-}+                              semfuns   _lhsIoptions+                              {-# LINE 1155 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 125, column 17)+                         _nontsOo_rename =+                             ({-# LINE 129 "src-ag/Order.ag" #-}+                              rename    _lhsIoptions+                              {-# LINE 1161 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 125, column 17)+                         _nontsOo_newtypes =+                             ({-# LINE 130 "src-ag/Order.ag" #-}+                              newtypes  _lhsIoptions+                              {-# LINE 1167 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 125, column 17)+                         _nontsOo_wantvisit =+                             ({-# LINE 131 "src-ag/Order.ag" #-}+                              visit   _lhsIoptions+                              {-# LINE 1173 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 125, column 17)+                         _nontsOo_unbox =+                             ({-# LINE 132 "src-ag/Order.ag" #-}+                              unbox     _lhsIoptions+                              {-# LINE 1179 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 125, column 17)+                         _nontsOo_case =+                             ({-# LINE 133 "src-ag/Order.ag" #-}+                              cases     _lhsIoptions+                              {-# LINE 1185 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 125, column 17)+                         _nontsOprefix =+                             ({-# LINE 134 "src-ag/Order.ag" #-}+                              prefix    _lhsIoptions+                              {-# LINE 1191 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 260, column 15)+                         _nontsOvcount =+                             ({-# LINE 260 "src-ag/Order.ag" #-}+                              0+                              {-# LINE 1197 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 286, column 7)+                         _nontsOmanualAttrDepMap =+                             ({-# LINE 286 "src-ag/Order.ag" #-}+                              manualAttrOrderMap_+                              {-# LINE 1203 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 415, column 14)+                         _nontsOaroundMap =+                             ({-# LINE 415 "src-ag/Order.ag" #-}+                              aroundsMap_+                              {-# LINE 1209 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 504, column 13)+                         _nontsOacount =+                             ({-# LINE 504 "src-ag/Order.ag" #-}+                              0+                              {-# LINE 1215 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 542, column 13)+                         _ruleTable =+                             ({-# LINE 542 "src-ag/Order.ag" #-}+                              Array.array (0,_nontsIvcount-1) (toList _nontsIrules)+                              {-# LINE 1221 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 543, column 13)+                         _attrTable =+                             ({-# LINE 543 "src-ag/Order.ag" #-}+                              Array.array (0,_nontsIacount-1) (toList _nontsIntattrs)+                              {-# LINE 1227 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 544, column 13)+                         _attrVertex =+                             ({-# LINE 544 "src-ag/Order.ag" #-}+                              Map.fromList (map swap (toList _nontsIntattrs))+                              {-# LINE 1233 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 545, column 13)+                         _tdpToTds =+                             ({-# LINE 545 "src-ag/Order.ag" #-}+                              [ (s, maybe (-1) (\v -> findWithErr1 "Grammar.tdpToTds" v _attrVertex) (ntattr cr))+                              | (s,cr) <- toList _nontsIrules]+                              {-# LINE 1240 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 547, column 13)+                         _tdsToTdp =+                             ({-# LINE 547 "src-ag/Order.ag" #-}+                              let  eq (_,v) (_,v') = v == v'+                                   conv ((s,v):svs)  | v == -1 = Nothing+                                                     | otherwise = Just (v,s:map fst svs)+                              in mapMaybe conv (eqClasses eq _tdpToTds)+                              {-# LINE 1249 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 551, column 13)+                         _directDep =+                             ({-# LINE 551 "src-ag/Order.ag" #-}+                              toList (_nontsIdirectDep Seq.>< _nontsIadditionalDep)+                              {-# LINE 1255 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 552, column 13)+                         _instDep =+                             ({-# LINE 552 "src-ag/Order.ag" #-}+                              toList _nontsIinstDep+                              {-# LINE 1261 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 553, column 13)+                         _aroundDep =+                             ({-# LINE 553 "src-ag/Order.ag" #-}+                              toList _nontsIaroundDep+                              {-# LINE 1267 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 554, column 13)+                         _mergeDep =+                             ({-# LINE 554 "src-ag/Order.ag" #-}+                              toList _nontsImergeDep+                              {-# LINE 1273 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 555, column 13)+                         _info =+                             ({-# LINE 555 "src-ag/Order.ag" #-}+                              let def [] = -1+                                  def (v:vs) = v+                               in Info { tdsToTdp   = Array.array (0,_nontsIacount-1) _tdsToTdp+                                       , tdpToTds   = Array.array (0,_nontsIvcount-1) _tdpToTds+                                       , attrTable  = _attrTable+                                       , ruleTable  = _ruleTable+                                       , lmh        = toList _nontsIaranges+                                       , nonts      = _nontsInonts+                                       , wraps      = wrappers_+                                       }+                              {-# LINE 1288 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 566, column 17)+                         (_cInterfaceMap,_cVisitsMap,_cyclesErrors) =+                             ({-# LINE 566 "src-ag/Order.ag" #-}+                              case computeSequential _info _directDep (_instDep ++ _aroundDep ++ _mergeDep    ) of+                                           CycleFree    cim cvm   -> ( cim+                                                                     , cvm+                                                                     , []+                                                                     )+                                           LocalCycle   errs      -> ( error "No interfaces for AG with local cycles"+                                                                     , error "No visit sub-sequences for AG with local cycles"+                                                                     , map (localCycleErr _ruleTable (visit _lhsIoptions)) errs+                                                                     )+                                           InstCycle    errs      -> ( error "No interfaces for AG with cycles through insts"+                                                                     , error "No visit sub-sequences for AG with cycles through insts"+                                                                     , map (instCycleErr _ruleTable (visit _lhsIoptions)) errs+                                                                     )+                                           DirectCycle  errs      -> ( error "No interfaces for AG with direct cycles"+                                                                     , error "No visit sub-sequences for AG with direct cycles"+                                                                     , directCycleErrs _attrTable _ruleTable (visit _lhsIoptions) errs+                                                                     )+                                           InducedCycle cim errs ->  ( cim+                                                                     , error "No visit sub-sequences for AG with induced cycles"+                                                                     , inducedCycleErrs _attrTable _ruleTable cim errs+                                                                     )+                              {-# LINE 1314 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 588, column 13)+                         _lhsOerrors =+                             ({-# LINE 588 "src-ag/Order.ag" #-}+                              (if withCycle _lhsIoptions then Seq.fromList _cyclesErrors else Seq.empty)+                              Seq.>< _nontsIerrors+                              {-# LINE 1321 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 620, column 15)+                         _lhsOoutput =+                             ({-# LINE 620 "src-ag/Order.ag" #-}+                              CGrammar typeSyns_ derivings_ wrappers_ _nontsIcNonterminals pragmas_ paramMap_ contextMap_ quantMap_ _aroundMap     _mergeMap     _o_dovisit+                              {-# LINE 1327 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 633, column 14)+                         _aroundMap =+                             ({-# LINE 633 "src-ag/Order.ag" #-}+                              Map.map (Map.map Map.keysSet) aroundsMap_+                              {-# LINE 1333 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 634, column 14)+                         _mergeMap =+                             ({-# LINE 634 "src-ag/Order.ag" #-}+                              Map.map (Map.map (Map.map (\(nt,srcs,_) -> (nt,srcs)))) mergeMap_+                              {-# LINE 1339 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 651, column 13)+                         _nontsOallnts =+                             ({-# LINE 651 "src-ag/Order.ag" #-}+                              map fst (_nontsInonts)+                              {-# LINE 1345 "dist/build/Order" #-}+                              )+                         -- "src-ag/DistChildAttr.ag"(line 15, column 13)+                         _nontsOinhMap =+                             ({-# LINE 15 "src-ag/DistChildAttr.ag" #-}+                              _nontsIinhMap'+                              {-# LINE 1351 "dist/build/Order" #-}+                              )+                         -- "src-ag/DistChildAttr.ag"(line 16, column 13)+                         _nontsOsynMap =+                             ({-# LINE 16 "src-ag/DistChildAttr.ag" #-}+                              _nontsIsynMap'+                              {-# LINE 1357 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 62, column 105)+                         _lhsOnAutoRules =+                             ({-# LINE 62 "src-ag/Order.ag" #-}+                              _nontsInAutoRules+                              {-# LINE 1363 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 62, column 105)+                         _lhsOnExplicitRules =+                             ({-# LINE 62 "src-ag/Order.ag" #-}+                              _nontsInExplicitRules+                              {-# LINE 1369 "dist/build/Order" #-}+                              )+                         -- copy rule (from local)+                         _nontsOcInterfaceMap =+                             ({-# LINE 595 "src-ag/Order.ag" #-}+                              _cInterfaceMap+                              {-# LINE 1375 "dist/build/Order" #-}+                              )+                         -- copy rule (from local)+                         _nontsOcVisitsMap =+                             ({-# LINE 602 "src-ag/Order.ag" #-}+                              _cVisitsMap+                              {-# LINE 1381 "dist/build/Order" #-}+                              )+                         -- copy rule (from local)+                         _nontsOmergeMap =+                             ({-# LINE 353 "src-ag/Order.ag" #-}+                              _mergeMap+                              {-# LINE 1387 "dist/build/Order" #-}+                              )+                         -- copy rule (from local)+                         _nontsOo_dovisit =+                             ({-# LINE 117 "src-ag/Order.ag" #-}+                              _o_dovisit+                              {-# LINE 1393 "dist/build/Order" #-}+                              )+                         ( _nontsIacount,_nontsIadditionalDep,_nontsIaranges,_nontsIaroundDep,_nontsIcNonterminals,_nontsIdirectDep,_nontsIerrors,_nontsIinhMap',_nontsIinstDep,_nontsImergeDep,_nontsInAutoRules,_nontsInExplicitRules,_nontsInonts,_nontsIntattrs,_nontsIrules,_nontsIsynMap',_nontsIvcount) =+                             nonts_ _nontsOacount _nontsOallnts _nontsOaroundMap _nontsOcInterfaceMap _nontsOcVisitsMap _nontsOinhMap _nontsOmanualAttrDepMap _nontsOmergeMap _nontsOo_case _nontsOo_cata _nontsOo_data _nontsOo_dovisit _nontsOo_newtypes _nontsOo_rename _nontsOo_sem _nontsOo_sig _nontsOo_unbox _nontsOo_wantvisit _nontsOprefix _nontsOsynMap _nontsOvcount+                         ___node =+                             (Syn_Grammar _lhsOerrors _lhsOnAutoRules _lhsOnExplicitRules _lhsOoutput)+                     in  ( _lhsOerrors,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOoutput))))+-- Nonterminal -------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allnts               : [Identifier]+         aroundMap            : Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))+         cInterfaceMap        : CInterfaceMap+         cVisitsMap           : CVisitsMap+         inhMap               : Map Identifier Attributes+         manualAttrDepMap     : AttrOrderMap+         mergeMap             : Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))+         o_case               : Bool+         o_cata               : Bool+         o_data               : Bool+         o_dovisit            : Bool+         o_newtypes           : Bool+         o_rename             : Bool+         o_sem                : Bool+         o_sig                : Bool+         o_unbox              : Bool+         o_wantvisit          : Bool+         prefix               : String+         synMap               : Map Identifier Attributes+      chained attributes:+         acount               : Int+         vcount               : Int+      synthesized attributes:+         additionalDep        : Seq Edge+         aranges              : Seq (Int,Int,Int)+         aroundDep            : Seq Edge+         cNonterminal         : CNonterminal+         directDep            : Seq Edge+         errors               : Seq Error+         inhMap'              : Map Identifier Attributes+         instDep              : Seq Edge+         mergeDep             : Seq Edge+         nAutoRules           : Int+         nExplicitRules       : Int+         nonts                : [(NontermIdent,[ConstructorIdent])]+         ntattrs              : Seq (Vertex,NTAttr)+         rules                : Seq (Vertex,CRule)+         synMap'              : Map Identifier Attributes+   alternatives:+      alternative Nonterminal:+         child nt             : {NontermIdent}+         child params         : {[Identifier]}+         child inh            : {Attributes}+         child syn            : {Attributes}+         child prods          : Productions +         visit 0:+            local mergeMap    : _+            local aroundMap   : _+            local ntattrs     : _+            local cInter      : _+-}+-- cata+sem_Nonterminal :: Nonterminal ->+                   T_Nonterminal+sem_Nonterminal (Nonterminal _nt _params _inh _syn _prods) =+    (sem_Nonterminal_Nonterminal _nt _params _inh _syn (sem_Productions _prods))+-- semantic domain+newtype T_Nonterminal = T_Nonterminal (Int ->+                                       ([Identifier]) ->+                                       (Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))) ->+                                       CInterfaceMap ->+                                       CVisitsMap ->+                                       (Map Identifier Attributes) ->+                                       AttrOrderMap ->+                                       (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))) ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       String ->+                                       (Map Identifier Attributes) ->+                                       Int ->+                                       ( Int,(Seq Edge),(Seq (Int,Int,Int)),(Seq Edge),CNonterminal,(Seq Edge),(Seq Error),(Map Identifier Attributes),(Seq Edge),(Seq Edge),Int,Int,([(NontermIdent,[ConstructorIdent])]),(Seq (Vertex,NTAttr)),(Seq (Vertex,CRule)),(Map Identifier Attributes),Int))+data Inh_Nonterminal = Inh_Nonterminal {acount_Inh_Nonterminal :: !(Int),allnts_Inh_Nonterminal :: !(([Identifier])),aroundMap_Inh_Nonterminal :: !((Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression])))),cInterfaceMap_Inh_Nonterminal :: !(CInterfaceMap),cVisitsMap_Inh_Nonterminal :: !(CVisitsMap),inhMap_Inh_Nonterminal :: !((Map Identifier Attributes)),manualAttrDepMap_Inh_Nonterminal :: !(AttrOrderMap),mergeMap_Inh_Nonterminal :: !((Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))))),o_case_Inh_Nonterminal :: !(Bool),o_cata_Inh_Nonterminal :: !(Bool),o_data_Inh_Nonterminal :: !(Bool),o_dovisit_Inh_Nonterminal :: !(Bool),o_newtypes_Inh_Nonterminal :: !(Bool),o_rename_Inh_Nonterminal :: !(Bool),o_sem_Inh_Nonterminal :: !(Bool),o_sig_Inh_Nonterminal :: !(Bool),o_unbox_Inh_Nonterminal :: !(Bool),o_wantvisit_Inh_Nonterminal :: !(Bool),prefix_Inh_Nonterminal :: !(String),synMap_Inh_Nonterminal :: !((Map Identifier Attributes)),vcount_Inh_Nonterminal :: !(Int)}+data Syn_Nonterminal = Syn_Nonterminal {acount_Syn_Nonterminal :: !(Int),additionalDep_Syn_Nonterminal :: !((Seq Edge)),aranges_Syn_Nonterminal :: !((Seq (Int,Int,Int))),aroundDep_Syn_Nonterminal :: !((Seq Edge)),cNonterminal_Syn_Nonterminal :: !(CNonterminal),directDep_Syn_Nonterminal :: !((Seq Edge)),errors_Syn_Nonterminal :: !((Seq Error)),inhMap'_Syn_Nonterminal :: !((Map Identifier Attributes)),instDep_Syn_Nonterminal :: !((Seq Edge)),mergeDep_Syn_Nonterminal :: !((Seq Edge)),nAutoRules_Syn_Nonterminal :: !(Int),nExplicitRules_Syn_Nonterminal :: !(Int),nonts_Syn_Nonterminal :: !(([(NontermIdent,[ConstructorIdent])])),ntattrs_Syn_Nonterminal :: !((Seq (Vertex,NTAttr))),rules_Syn_Nonterminal :: !((Seq (Vertex,CRule))),synMap'_Syn_Nonterminal :: !((Map Identifier Attributes)),vcount_Syn_Nonterminal :: !(Int)}+wrap_Nonterminal :: T_Nonterminal ->+                    Inh_Nonterminal ->+                    Syn_Nonterminal+wrap_Nonterminal (T_Nonterminal sem) (Inh_Nonterminal _lhsIacount _lhsIallnts _lhsIaroundMap _lhsIcInterfaceMap _lhsIcVisitsMap _lhsIinhMap _lhsImanualAttrDepMap _lhsImergeMap _lhsIo_case _lhsIo_cata _lhsIo_data _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_unbox _lhsIo_wantvisit _lhsIprefix _lhsIsynMap _lhsIvcount) =+    (let ( _lhsOacount,_lhsOadditionalDep,_lhsOaranges,_lhsOaroundDep,_lhsOcNonterminal,_lhsOdirectDep,_lhsOerrors,_lhsOinhMap',_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOnonts,_lhsOntattrs,_lhsOrules,_lhsOsynMap',_lhsOvcount) = sem _lhsIacount _lhsIallnts _lhsIaroundMap _lhsIcInterfaceMap _lhsIcVisitsMap _lhsIinhMap _lhsImanualAttrDepMap _lhsImergeMap _lhsIo_case _lhsIo_cata _lhsIo_data _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_unbox _lhsIo_wantvisit _lhsIprefix _lhsIsynMap _lhsIvcount+     in  (Syn_Nonterminal _lhsOacount _lhsOadditionalDep _lhsOaranges _lhsOaroundDep _lhsOcNonterminal _lhsOdirectDep _lhsOerrors _lhsOinhMap' _lhsOinstDep _lhsOmergeDep _lhsOnAutoRules _lhsOnExplicitRules _lhsOnonts _lhsOntattrs _lhsOrules _lhsOsynMap' _lhsOvcount))+sem_Nonterminal_Nonterminal :: NontermIdent ->+                               ([Identifier]) ->+                               Attributes ->+                               Attributes ->+                               T_Productions ->+                               T_Nonterminal+sem_Nonterminal_Nonterminal nt_ params_ inh_ syn_ (T_Productions prods_) =+    (T_Nonterminal (\ _lhsIacount+                      _lhsIallnts+                      _lhsIaroundMap+                      _lhsIcInterfaceMap+                      _lhsIcVisitsMap+                      _lhsIinhMap+                      _lhsImanualAttrDepMap+                      _lhsImergeMap+                      _lhsIo_case+                      _lhsIo_cata+                      _lhsIo_data+                      _lhsIo_dovisit+                      _lhsIo_newtypes+                      _lhsIo_rename+                      _lhsIo_sem+                      _lhsIo_sig+                      _lhsIo_unbox+                      _lhsIo_wantvisit+                      _lhsIprefix+                      _lhsIsynMap+                      _lhsIvcount ->+                        (let _prodsOnt :: Identifier+                             _prodsOinh :: Attributes+                             _prodsOsyn :: Attributes+                             _lhsOntattrs :: (Seq (Vertex,NTAttr))+                             _lhsOacount :: Int+                             _lhsOaranges :: (Seq (Int,Int,Int))+                             _lhsOnonts :: ([(NontermIdent,[ConstructorIdent])])+                             _lhsOcNonterminal :: CNonterminal+                             _lhsOinhMap' :: (Map Identifier Attributes)+                             _lhsOsynMap' :: (Map Identifier Attributes)+                             _lhsOadditionalDep :: (Seq Edge)+                             _lhsOaroundDep :: (Seq Edge)+                             _lhsOdirectDep :: (Seq Edge)+                             _lhsOerrors :: (Seq Error)+                             _lhsOinstDep :: (Seq Edge)+                             _lhsOmergeDep :: (Seq Edge)+                             _lhsOnAutoRules :: Int+                             _lhsOnExplicitRules :: Int+                             _lhsOrules :: (Seq (Vertex,CRule))+                             _lhsOvcount :: Int+                             _prodsOallnts :: ([Identifier])+                             _prodsOaroundMap :: (Map ConstructorIdent (Map Identifier [Expression]))+                             _prodsOcVisitsMap :: CVisitsMap+                             _prodsOinhMap :: (Map Identifier Attributes)+                             _prodsOmanualAttrDepMap :: AttrOrderMap+                             _prodsOmergeMap :: (Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))+                             _prodsOo_case :: Bool+                             _prodsOo_cata :: Bool+                             _prodsOo_dovisit :: Bool+                             _prodsOo_newtypes :: Bool+                             _prodsOo_rename :: Bool+                             _prodsOo_sem :: Bool+                             _prodsOo_sig :: Bool+                             _prodsOo_unbox :: Bool+                             _prodsOo_wantvisit :: Bool+                             _prodsOprefix :: String+                             _prodsOsynMap :: (Map Identifier Attributes)+                             _prodsOvcount :: Int+                             _prodsIadditionalDep :: (Seq Edge)+                             _prodsIaroundDep :: (Seq Edge)+                             _prodsIcProductions :: CProductions+                             _prodsIcons :: ([ConstructorIdent])+                             _prodsIdirectDep :: (Seq Edge)+                             _prodsIerrors :: (Seq Error)+                             _prodsIinstDep :: (Seq Edge)+                             _prodsImergeDep :: (Seq Edge)+                             _prodsInAutoRules :: Int+                             _prodsInExplicitRules :: Int+                             _prodsIrules :: (Seq (Vertex,CRule))+                             _prodsIvcount :: Int+                             -- "src-ag/Order.ag"(line 98, column 17)+                             _prodsOnt =+                                 ({-# LINE 98 "src-ag/Order.ag" #-}+                                  nt_+                                  {-# LINE 1573 "dist/build/Order" #-}+                                  )+                             -- "src-ag/Order.ag"(line 101, column 17)+                             _prodsOinh =+                                 ({-# LINE 101 "src-ag/Order.ag" #-}+                                  inh_+                                  {-# LINE 1579 "dist/build/Order" #-}+                                  )+                             -- "src-ag/Order.ag"(line 102, column 17)+                             _prodsOsyn =+                                 ({-# LINE 102 "src-ag/Order.ag" #-}+                                  syn_+                                  {-# LINE 1585 "dist/build/Order" #-}+                                  )+                             -- "src-ag/Order.ag"(line 358, column 32)+                             _mergeMap =+                                 ({-# LINE 358 "src-ag/Order.ag" #-}+                                  Map.findWithDefault Map.empty nt_ _lhsImergeMap+                                  {-# LINE 1591 "dist/build/Order" #-}+                                  )+                             -- "src-ag/Order.ag"(line 411, column 32)+                             _aroundMap =+                                 ({-# LINE 411 "src-ag/Order.ag" #-}+                                  Map.findWithDefault Map.empty nt_ _lhsIaroundMap+                                  {-# LINE 1597 "dist/build/Order" #-}+                                  )+                             -- "src-ag/Order.ag"(line 507, column 17)+                             _ntattrs =+                                 ({-# LINE 507 "src-ag/Order.ag" #-}+                                  [ NTAInh nt_ inh tp | (inh,tp) <- Map.assocs inh_ ]+                                  ++ [NTASyn nt_ syn tp | (syn,tp) <- Map.assocs syn_ ]+                                  {-# LINE 1604 "dist/build/Order" #-}+                                  )+                             -- "src-ag/Order.ag"(line 509, column 17)+                             _lhsOntattrs =+                                 ({-# LINE 509 "src-ag/Order.ag" #-}+                                  Seq.fromList (zip [_lhsIacount ..] _ntattrs)+                                  {-# LINE 1610 "dist/build/Order" #-}+                                  )+                             -- "src-ag/Order.ag"(line 510, column 17)+                             _lhsOacount =+                                 ({-# LINE 510 "src-ag/Order.ag" #-}+                                  _lhsIacount + Map.size inh_ + Map.size syn_+                                  {-# LINE 1616 "dist/build/Order" #-}+                                  )+                             -- "src-ag/Order.ag"(line 511, column 17)+                             _lhsOaranges =+                                 ({-# LINE 511 "src-ag/Order.ag" #-}+                                  Seq.singleton+                                   (_lhsIacount+                                   ,_lhsIacount + Map.size inh_+                                   ,_lhsIacount + Map.size syn_ + Map.size inh_ - 1)+                                  {-# LINE 1625 "dist/build/Order" #-}+                                  )+                             -- "src-ag/Order.ag"(line 520, column 19)+                             _lhsOnonts =+                                 ({-# LINE 520 "src-ag/Order.ag" #-}+                                  [(nt_,_prodsIcons)]+                                  {-# LINE 1631 "dist/build/Order" #-}+                                  )+                             -- "src-ag/Order.ag"(line 597, column 19)+                             _cInter =+                                 ({-# LINE 597 "src-ag/Order.ag" #-}+                                  if  _lhsIo_dovisit+                                         then findWithErr1 "Nonterminal.cInter" nt_ _lhsIcInterfaceMap+                                         else CInterface [CSegment inh_ syn_]+                                  {-# LINE 1639 "dist/build/Order" #-}+                                  )+                             -- "src-ag/Order.ag"(line 625, column 19)+                             _lhsOcNonterminal =+                                 ({-# LINE 625 "src-ag/Order.ag" #-}+                                  CNonterminal nt_ params_ inh_ syn_ _prodsIcProductions _cInter+                                  {-# LINE 1645 "dist/build/Order" #-}+                                  )+                             -- "src-ag/DistChildAttr.ag"(line 7, column 18)+                             _lhsOinhMap' =+                                 ({-# LINE 7 "src-ag/DistChildAttr.ag" #-}+                                  Map.singleton nt_ inh_+                                  {-# LINE 1651 "dist/build/Order" #-}+                                  )+                             -- "src-ag/DistChildAttr.ag"(line 8, column 18)+                             _lhsOsynMap' =+                                 ({-# LINE 8 "src-ag/DistChildAttr.ag" #-}+                                  Map.singleton nt_ syn_+                                  {-# LINE 1657 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 282, column 60)+                             _lhsOadditionalDep =+                                 ({-# LINE 282 "src-ag/Order.ag" #-}+                                  _prodsIadditionalDep+                                  {-# LINE 1663 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 403, column 24)+                             _lhsOaroundDep =+                                 ({-# LINE 403 "src-ag/Order.ag" #-}+                                  _prodsIaroundDep+                                  {-# LINE 1669 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 268, column 33)+                             _lhsOdirectDep =+                                 ({-# LINE 268 "src-ag/Order.ag" #-}+                                  _prodsIdirectDep+                                  {-# LINE 1675 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 85, column 70)+                             _lhsOerrors =+                                 ({-# LINE 85 "src-ag/Order.ag" #-}+                                  _prodsIerrors+                                  {-# LINE 1681 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 311, column 31)+                             _lhsOinstDep =+                                 ({-# LINE 311 "src-ag/Order.ag" #-}+                                  _prodsIinstDep+                                  {-# LINE 1687 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 366, column 18)+                             _lhsOmergeDep =+                                 ({-# LINE 366 "src-ag/Order.ag" #-}+                                  _prodsImergeDep+                                  {-# LINE 1693 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 62, column 105)+                             _lhsOnAutoRules =+                                 ({-# LINE 62 "src-ag/Order.ag" #-}+                                  _prodsInAutoRules+                                  {-# LINE 1699 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 62, column 105)+                             _lhsOnExplicitRules =+                                 ({-# LINE 62 "src-ag/Order.ag" #-}+                                  _prodsInExplicitRules+                                  {-# LINE 1705 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 258, column 18)+                             _lhsOrules =+                                 ({-# LINE 258 "src-ag/Order.ag" #-}+                                  _prodsIrules+                                  {-# LINE 1711 "dist/build/Order" #-}+                                  )+                             -- copy rule (up)+                             _lhsOvcount =+                                 ({-# LINE 257 "src-ag/Order.ag" #-}+                                  _prodsIvcount+                                  {-# LINE 1717 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _prodsOallnts =+                                 ({-# LINE 648 "src-ag/Order.ag" #-}+                                  _lhsIallnts+                                  {-# LINE 1723 "dist/build/Order" #-}+                                  )+                             -- copy rule (from local)+                             _prodsOaroundMap =+                                 ({-# LINE 409 "src-ag/Order.ag" #-}+                                  _aroundMap+                                  {-# LINE 1729 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _prodsOcVisitsMap =+                                 ({-# LINE 602 "src-ag/Order.ag" #-}+                                  _lhsIcVisitsMap+                                  {-# LINE 1735 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _prodsOinhMap =+                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}+                                  _lhsIinhMap+                                  {-# LINE 1741 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _prodsOmanualAttrDepMap =+                                 ({-# LINE 282 "src-ag/Order.ag" #-}+                                  _lhsImanualAttrDepMap+                                  {-# LINE 1747 "dist/build/Order" #-}+                                  )+                             -- copy rule (from local)+                             _prodsOmergeMap =+                                 ({-# LINE 356 "src-ag/Order.ag" #-}+                                  _mergeMap+                                  {-# LINE 1753 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _prodsOo_case =+                                 ({-# LINE 118 "src-ag/Order.ag" #-}+                                  _lhsIo_case+                                  {-# LINE 1759 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _prodsOo_cata =+                                 ({-# LINE 112 "src-ag/Order.ag" #-}+                                  _lhsIo_cata+                                  {-# LINE 1765 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _prodsOo_dovisit =+                                 ({-# LINE 117 "src-ag/Order.ag" #-}+                                  _lhsIo_dovisit+                                  {-# LINE 1771 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _prodsOo_newtypes =+                                 ({-# LINE 111 "src-ag/Order.ag" #-}+                                  _lhsIo_newtypes+                                  {-# LINE 1777 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _prodsOo_rename =+                                 ({-# LINE 115 "src-ag/Order.ag" #-}+                                  _lhsIo_rename+                                  {-# LINE 1783 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _prodsOo_sem =+                                 ({-# LINE 114 "src-ag/Order.ag" #-}+                                  _lhsIo_sem+                                  {-# LINE 1789 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _prodsOo_sig =+                                 ({-# LINE 113 "src-ag/Order.ag" #-}+                                  _lhsIo_sig+                                  {-# LINE 1795 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _prodsOo_unbox =+                                 ({-# LINE 120 "src-ag/Order.ag" #-}+                                  _lhsIo_unbox+                                  {-# LINE 1801 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _prodsOo_wantvisit =+                                 ({-# LINE 116 "src-ag/Order.ag" #-}+                                  _lhsIo_wantvisit+                                  {-# LINE 1807 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _prodsOprefix =+                                 ({-# LINE 119 "src-ag/Order.ag" #-}+                                  _lhsIprefix+                                  {-# LINE 1813 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _prodsOsynMap =+                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}+                                  _lhsIsynMap+                                  {-# LINE 1819 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _prodsOvcount =+                                 ({-# LINE 257 "src-ag/Order.ag" #-}+                                  _lhsIvcount+                                  {-# LINE 1825 "dist/build/Order" #-}+                                  )+                             ( _prodsIadditionalDep,_prodsIaroundDep,_prodsIcProductions,_prodsIcons,_prodsIdirectDep,_prodsIerrors,_prodsIinstDep,_prodsImergeDep,_prodsInAutoRules,_prodsInExplicitRules,_prodsIrules,_prodsIvcount) =+                                 prods_ _prodsOallnts _prodsOaroundMap _prodsOcVisitsMap _prodsOinh _prodsOinhMap _prodsOmanualAttrDepMap _prodsOmergeMap _prodsOnt _prodsOo_case _prodsOo_cata _prodsOo_dovisit _prodsOo_newtypes _prodsOo_rename _prodsOo_sem _prodsOo_sig _prodsOo_unbox _prodsOo_wantvisit _prodsOprefix _prodsOsyn _prodsOsynMap _prodsOvcount+                             ___node =+                                 (Syn_Nonterminal _lhsOacount _lhsOadditionalDep _lhsOaranges _lhsOaroundDep _lhsOcNonterminal _lhsOdirectDep _lhsOerrors _lhsOinhMap' _lhsOinstDep _lhsOmergeDep _lhsOnAutoRules _lhsOnExplicitRules _lhsOnonts _lhsOntattrs _lhsOrules _lhsOsynMap' _lhsOvcount)+                         in  ( _lhsOacount,_lhsOadditionalDep,_lhsOaranges,_lhsOaroundDep,_lhsOcNonterminal,_lhsOdirectDep,_lhsOerrors,_lhsOinhMap',_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOnonts,_lhsOntattrs,_lhsOrules,_lhsOsynMap',_lhsOvcount))))+-- Nonterminals ------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allnts               : [Identifier]+         aroundMap            : Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))+         cInterfaceMap        : CInterfaceMap+         cVisitsMap           : CVisitsMap+         inhMap               : Map Identifier Attributes+         manualAttrDepMap     : AttrOrderMap+         mergeMap             : Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))+         o_case               : Bool+         o_cata               : Bool+         o_data               : Bool+         o_dovisit            : Bool+         o_newtypes           : Bool+         o_rename             : Bool+         o_sem                : Bool+         o_sig                : Bool+         o_unbox              : Bool+         o_wantvisit          : Bool+         prefix               : String+         synMap               : Map Identifier Attributes+      chained attributes:+         acount               : Int+         vcount               : Int+      synthesized attributes:+         additionalDep        : Seq Edge+         aranges              : Seq (Int,Int,Int)+         aroundDep            : Seq Edge+         cNonterminals        : CNonterminals+         directDep            : Seq Edge+         errors               : Seq Error+         inhMap'              : Map Identifier Attributes+         instDep              : Seq Edge+         mergeDep             : Seq Edge+         nAutoRules           : Int+         nExplicitRules       : Int+         nonts                : [(NontermIdent,[ConstructorIdent])]+         ntattrs              : Seq (Vertex,NTAttr)+         rules                : Seq (Vertex,CRule)+         synMap'              : Map Identifier Attributes+   alternatives:+      alternative Cons:+         child hd             : Nonterminal +         child tl             : Nonterminals +      alternative Nil:+-}+-- cata+sem_Nonterminals :: Nonterminals ->+                    T_Nonterminals+sem_Nonterminals list =+    (Prelude.foldr sem_Nonterminals_Cons sem_Nonterminals_Nil (Prelude.map sem_Nonterminal list))+-- semantic domain+newtype T_Nonterminals = T_Nonterminals (Int ->+                                         ([Identifier]) ->+                                         (Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))) ->+                                         CInterfaceMap ->+                                         CVisitsMap ->+                                         (Map Identifier Attributes) ->+                                         AttrOrderMap ->+                                         (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))) ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         Bool ->+                                         String ->+                                         (Map Identifier Attributes) ->+                                         Int ->+                                         ( Int,(Seq Edge),(Seq (Int,Int,Int)),(Seq Edge),CNonterminals,(Seq Edge),(Seq Error),(Map Identifier Attributes),(Seq Edge),(Seq Edge),Int,Int,([(NontermIdent,[ConstructorIdent])]),(Seq (Vertex,NTAttr)),(Seq (Vertex,CRule)),(Map Identifier Attributes),Int))+data Inh_Nonterminals = Inh_Nonterminals {acount_Inh_Nonterminals :: !(Int),allnts_Inh_Nonterminals :: !(([Identifier])),aroundMap_Inh_Nonterminals :: !((Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression])))),cInterfaceMap_Inh_Nonterminals :: !(CInterfaceMap),cVisitsMap_Inh_Nonterminals :: !(CVisitsMap),inhMap_Inh_Nonterminals :: !((Map Identifier Attributes)),manualAttrDepMap_Inh_Nonterminals :: !(AttrOrderMap),mergeMap_Inh_Nonterminals :: !((Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))))),o_case_Inh_Nonterminals :: !(Bool),o_cata_Inh_Nonterminals :: !(Bool),o_data_Inh_Nonterminals :: !(Bool),o_dovisit_Inh_Nonterminals :: !(Bool),o_newtypes_Inh_Nonterminals :: !(Bool),o_rename_Inh_Nonterminals :: !(Bool),o_sem_Inh_Nonterminals :: !(Bool),o_sig_Inh_Nonterminals :: !(Bool),o_unbox_Inh_Nonterminals :: !(Bool),o_wantvisit_Inh_Nonterminals :: !(Bool),prefix_Inh_Nonterminals :: !(String),synMap_Inh_Nonterminals :: !((Map Identifier Attributes)),vcount_Inh_Nonterminals :: !(Int)}+data Syn_Nonterminals = Syn_Nonterminals {acount_Syn_Nonterminals :: !(Int),additionalDep_Syn_Nonterminals :: !((Seq Edge)),aranges_Syn_Nonterminals :: !((Seq (Int,Int,Int))),aroundDep_Syn_Nonterminals :: !((Seq Edge)),cNonterminals_Syn_Nonterminals :: !(CNonterminals),directDep_Syn_Nonterminals :: !((Seq Edge)),errors_Syn_Nonterminals :: !((Seq Error)),inhMap'_Syn_Nonterminals :: !((Map Identifier Attributes)),instDep_Syn_Nonterminals :: !((Seq Edge)),mergeDep_Syn_Nonterminals :: !((Seq Edge)),nAutoRules_Syn_Nonterminals :: !(Int),nExplicitRules_Syn_Nonterminals :: !(Int),nonts_Syn_Nonterminals :: !(([(NontermIdent,[ConstructorIdent])])),ntattrs_Syn_Nonterminals :: !((Seq (Vertex,NTAttr))),rules_Syn_Nonterminals :: !((Seq (Vertex,CRule))),synMap'_Syn_Nonterminals :: !((Map Identifier Attributes)),vcount_Syn_Nonterminals :: !(Int)}+wrap_Nonterminals :: T_Nonterminals ->+                     Inh_Nonterminals ->+                     Syn_Nonterminals+wrap_Nonterminals (T_Nonterminals sem) (Inh_Nonterminals _lhsIacount _lhsIallnts _lhsIaroundMap _lhsIcInterfaceMap _lhsIcVisitsMap _lhsIinhMap _lhsImanualAttrDepMap _lhsImergeMap _lhsIo_case _lhsIo_cata _lhsIo_data _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_unbox _lhsIo_wantvisit _lhsIprefix _lhsIsynMap _lhsIvcount) =+    (let ( _lhsOacount,_lhsOadditionalDep,_lhsOaranges,_lhsOaroundDep,_lhsOcNonterminals,_lhsOdirectDep,_lhsOerrors,_lhsOinhMap',_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOnonts,_lhsOntattrs,_lhsOrules,_lhsOsynMap',_lhsOvcount) = sem _lhsIacount _lhsIallnts _lhsIaroundMap _lhsIcInterfaceMap _lhsIcVisitsMap _lhsIinhMap _lhsImanualAttrDepMap _lhsImergeMap _lhsIo_case _lhsIo_cata _lhsIo_data _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_unbox _lhsIo_wantvisit _lhsIprefix _lhsIsynMap _lhsIvcount+     in  (Syn_Nonterminals _lhsOacount _lhsOadditionalDep _lhsOaranges _lhsOaroundDep _lhsOcNonterminals _lhsOdirectDep _lhsOerrors _lhsOinhMap' _lhsOinstDep _lhsOmergeDep _lhsOnAutoRules _lhsOnExplicitRules _lhsOnonts _lhsOntattrs _lhsOrules _lhsOsynMap' _lhsOvcount))+sem_Nonterminals_Cons :: T_Nonterminal ->+                         T_Nonterminals ->+                         T_Nonterminals+sem_Nonterminals_Cons (T_Nonterminal hd_) (T_Nonterminals tl_) =+    (T_Nonterminals (\ _lhsIacount+                       _lhsIallnts+                       _lhsIaroundMap+                       _lhsIcInterfaceMap+                       _lhsIcVisitsMap+                       _lhsIinhMap+                       _lhsImanualAttrDepMap+                       _lhsImergeMap+                       _lhsIo_case+                       _lhsIo_cata+                       _lhsIo_data+                       _lhsIo_dovisit+                       _lhsIo_newtypes+                       _lhsIo_rename+                       _lhsIo_sem+                       _lhsIo_sig+                       _lhsIo_unbox+                       _lhsIo_wantvisit+                       _lhsIprefix+                       _lhsIsynMap+                       _lhsIvcount ->+                         (let _lhsOcNonterminals :: CNonterminals+                              _lhsOadditionalDep :: (Seq Edge)+                              _lhsOaranges :: (Seq (Int,Int,Int))+                              _lhsOaroundDep :: (Seq Edge)+                              _lhsOdirectDep :: (Seq Edge)+                              _lhsOerrors :: (Seq Error)+                              _lhsOinhMap' :: (Map Identifier Attributes)+                              _lhsOinstDep :: (Seq Edge)+                              _lhsOmergeDep :: (Seq Edge)+                              _lhsOnAutoRules :: Int+                              _lhsOnExplicitRules :: Int+                              _lhsOnonts :: ([(NontermIdent,[ConstructorIdent])])+                              _lhsOntattrs :: (Seq (Vertex,NTAttr))+                              _lhsOrules :: (Seq (Vertex,CRule))+                              _lhsOsynMap' :: (Map Identifier Attributes)+                              _lhsOacount :: Int+                              _lhsOvcount :: Int+                              _hdOacount :: Int+                              _hdOallnts :: ([Identifier])+                              _hdOaroundMap :: (Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression])))+                              _hdOcInterfaceMap :: CInterfaceMap+                              _hdOcVisitsMap :: CVisitsMap+                              _hdOinhMap :: (Map Identifier Attributes)+                              _hdOmanualAttrDepMap :: AttrOrderMap+                              _hdOmergeMap :: (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))))+                              _hdOo_case :: Bool+                              _hdOo_cata :: Bool+                              _hdOo_data :: Bool+                              _hdOo_dovisit :: Bool+                              _hdOo_newtypes :: Bool+                              _hdOo_rename :: Bool+                              _hdOo_sem :: Bool+                              _hdOo_sig :: Bool+                              _hdOo_unbox :: Bool+                              _hdOo_wantvisit :: Bool+                              _hdOprefix :: String+                              _hdOsynMap :: (Map Identifier Attributes)+                              _hdOvcount :: Int+                              _tlOacount :: Int+                              _tlOallnts :: ([Identifier])+                              _tlOaroundMap :: (Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression])))+                              _tlOcInterfaceMap :: CInterfaceMap+                              _tlOcVisitsMap :: CVisitsMap+                              _tlOinhMap :: (Map Identifier Attributes)+                              _tlOmanualAttrDepMap :: AttrOrderMap+                              _tlOmergeMap :: (Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))))+                              _tlOo_case :: Bool+                              _tlOo_cata :: Bool+                              _tlOo_data :: Bool+                              _tlOo_dovisit :: Bool+                              _tlOo_newtypes :: Bool+                              _tlOo_rename :: Bool+                              _tlOo_sem :: Bool+                              _tlOo_sig :: Bool+                              _tlOo_unbox :: Bool+                              _tlOo_wantvisit :: Bool+                              _tlOprefix :: String+                              _tlOsynMap :: (Map Identifier Attributes)+                              _tlOvcount :: Int+                              _hdIacount :: Int+                              _hdIadditionalDep :: (Seq Edge)+                              _hdIaranges :: (Seq (Int,Int,Int))+                              _hdIaroundDep :: (Seq Edge)+                              _hdIcNonterminal :: CNonterminal+                              _hdIdirectDep :: (Seq Edge)+                              _hdIerrors :: (Seq Error)+                              _hdIinhMap' :: (Map Identifier Attributes)+                              _hdIinstDep :: (Seq Edge)+                              _hdImergeDep :: (Seq Edge)+                              _hdInAutoRules :: Int+                              _hdInExplicitRules :: Int+                              _hdInonts :: ([(NontermIdent,[ConstructorIdent])])+                              _hdIntattrs :: (Seq (Vertex,NTAttr))+                              _hdIrules :: (Seq (Vertex,CRule))+                              _hdIsynMap' :: (Map Identifier Attributes)+                              _hdIvcount :: Int+                              _tlIacount :: Int+                              _tlIadditionalDep :: (Seq Edge)+                              _tlIaranges :: (Seq (Int,Int,Int))+                              _tlIaroundDep :: (Seq Edge)+                              _tlIcNonterminals :: CNonterminals+                              _tlIdirectDep :: (Seq Edge)+                              _tlIerrors :: (Seq Error)+                              _tlIinhMap' :: (Map Identifier Attributes)+                              _tlIinstDep :: (Seq Edge)+                              _tlImergeDep :: (Seq Edge)+                              _tlInAutoRules :: Int+                              _tlInExplicitRules :: Int+                              _tlInonts :: ([(NontermIdent,[ConstructorIdent])])+                              _tlIntattrs :: (Seq (Vertex,NTAttr))+                              _tlIrules :: (Seq (Vertex,CRule))+                              _tlIsynMap' :: (Map Identifier Attributes)+                              _tlIvcount :: Int+                              -- "src-ag/Order.ag"(line 622, column 12)+                              _lhsOcNonterminals =+                                  ({-# LINE 622 "src-ag/Order.ag" #-}+                                   _hdIcNonterminal : _tlIcNonterminals+                                   {-# LINE 2038 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 282, column 60)+                              _lhsOadditionalDep =+                                  ({-# LINE 282 "src-ag/Order.ag" #-}+                                   _hdIadditionalDep Seq.>< _tlIadditionalDep+                                   {-# LINE 2044 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 501, column 36)+                              _lhsOaranges =+                                  ({-# LINE 501 "src-ag/Order.ag" #-}+                                   _hdIaranges Seq.>< _tlIaranges+                                   {-# LINE 2050 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 403, column 24)+                              _lhsOaroundDep =+                                  ({-# LINE 403 "src-ag/Order.ag" #-}+                                   _hdIaroundDep Seq.>< _tlIaroundDep+                                   {-# LINE 2056 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 268, column 33)+                              _lhsOdirectDep =+                                  ({-# LINE 268 "src-ag/Order.ag" #-}+                                   _hdIdirectDep Seq.>< _tlIdirectDep+                                   {-# LINE 2062 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 85, column 70)+                              _lhsOerrors =+                                  ({-# LINE 85 "src-ag/Order.ag" #-}+                                   _hdIerrors Seq.>< _tlIerrors+                                   {-# LINE 2068 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)+                              _lhsOinhMap' =+                                  ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}+                                   _hdIinhMap' `Map.union` _tlIinhMap'+                                   {-# LINE 2074 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 311, column 31)+                              _lhsOinstDep =+                                  ({-# LINE 311 "src-ag/Order.ag" #-}+                                   _hdIinstDep Seq.>< _tlIinstDep+                                   {-# LINE 2080 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 366, column 18)+                              _lhsOmergeDep =+                                  ({-# LINE 366 "src-ag/Order.ag" #-}+                                   _hdImergeDep Seq.>< _tlImergeDep+                                   {-# LINE 2086 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 62, column 105)+                              _lhsOnAutoRules =+                                  ({-# LINE 62 "src-ag/Order.ag" #-}+                                   _hdInAutoRules + _tlInAutoRules+                                   {-# LINE 2092 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 62, column 105)+                              _lhsOnExplicitRules =+                                  ({-# LINE 62 "src-ag/Order.ag" #-}+                                   _hdInExplicitRules + _tlInExplicitRules+                                   {-# LINE 2098 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 518, column 43)+                              _lhsOnonts =+                                  ({-# LINE 518 "src-ag/Order.ag" #-}+                                   _hdInonts ++ _tlInonts+                                   {-# LINE 2104 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 500, column 35)+                              _lhsOntattrs =+                                  ({-# LINE 500 "src-ag/Order.ag" #-}+                                   _hdIntattrs Seq.>< _tlIntattrs+                                   {-# LINE 2110 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 258, column 18)+                              _lhsOrules =+                                  ({-# LINE 258 "src-ag/Order.ag" #-}+                                   _hdIrules Seq.>< _tlIrules+                                   {-# LINE 2116 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)+                              _lhsOsynMap' =+                                  ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}+                                   _hdIsynMap' `Map.union` _tlIsynMap'+                                   {-# LINE 2122 "dist/build/Order" #-}+                                   )+                              -- copy rule (up)+                              _lhsOacount =+                                  ({-# LINE 500 "src-ag/Order.ag" #-}+                                   _tlIacount+                                   {-# LINE 2128 "dist/build/Order" #-}+                                   )+                              -- copy rule (up)+                              _lhsOvcount =+                                  ({-# LINE 257 "src-ag/Order.ag" #-}+                                   _tlIvcount+                                   {-# LINE 2134 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOacount =+                                  ({-# LINE 500 "src-ag/Order.ag" #-}+                                   _lhsIacount+                                   {-# LINE 2140 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOallnts =+                                  ({-# LINE 648 "src-ag/Order.ag" #-}+                                   _lhsIallnts+                                   {-# LINE 2146 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOaroundMap =+                                  ({-# LINE 406 "src-ag/Order.ag" #-}+                                   _lhsIaroundMap+                                   {-# LINE 2152 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOcInterfaceMap =+                                  ({-# LINE 595 "src-ag/Order.ag" #-}+                                   _lhsIcInterfaceMap+                                   {-# LINE 2158 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOcVisitsMap =+                                  ({-# LINE 602 "src-ag/Order.ag" #-}+                                   _lhsIcVisitsMap+                                   {-# LINE 2164 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOinhMap =+                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}+                                   _lhsIinhMap+                                   {-# LINE 2170 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOmanualAttrDepMap =+                                  ({-# LINE 282 "src-ag/Order.ag" #-}+                                   _lhsImanualAttrDepMap+                                   {-# LINE 2176 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOmergeMap =+                                  ({-# LINE 353 "src-ag/Order.ag" #-}+                                   _lhsImergeMap+                                   {-# LINE 2182 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_case =+                                  ({-# LINE 118 "src-ag/Order.ag" #-}+                                   _lhsIo_case+                                   {-# LINE 2188 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_cata =+                                  ({-# LINE 112 "src-ag/Order.ag" #-}+                                   _lhsIo_cata+                                   {-# LINE 2194 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_data =+                                  ({-# LINE 121 "src-ag/Order.ag" #-}+                                   _lhsIo_data+                                   {-# LINE 2200 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_dovisit =+                                  ({-# LINE 117 "src-ag/Order.ag" #-}+                                   _lhsIo_dovisit+                                   {-# LINE 2206 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_newtypes =+                                  ({-# LINE 111 "src-ag/Order.ag" #-}+                                   _lhsIo_newtypes+                                   {-# LINE 2212 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_rename =+                                  ({-# LINE 115 "src-ag/Order.ag" #-}+                                   _lhsIo_rename+                                   {-# LINE 2218 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_sem =+                                  ({-# LINE 114 "src-ag/Order.ag" #-}+                                   _lhsIo_sem+                                   {-# LINE 2224 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_sig =+                                  ({-# LINE 113 "src-ag/Order.ag" #-}+                                   _lhsIo_sig+                                   {-# LINE 2230 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_unbox =+                                  ({-# LINE 120 "src-ag/Order.ag" #-}+                                   _lhsIo_unbox+                                   {-# LINE 2236 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOo_wantvisit =+                                  ({-# LINE 116 "src-ag/Order.ag" #-}+                                   _lhsIo_wantvisit+                                   {-# LINE 2242 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOprefix =+                                  ({-# LINE 119 "src-ag/Order.ag" #-}+                                   _lhsIprefix+                                   {-# LINE 2248 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOsynMap =+                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}+                                   _lhsIsynMap+                                   {-# LINE 2254 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _hdOvcount =+                                  ({-# LINE 257 "src-ag/Order.ag" #-}+                                   _lhsIvcount+                                   {-# LINE 2260 "dist/build/Order" #-}+                                   )+                              -- copy rule (chain)+                              _tlOacount =+                                  ({-# LINE 500 "src-ag/Order.ag" #-}+                                   _hdIacount+                                   {-# LINE 2266 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOallnts =+                                  ({-# LINE 648 "src-ag/Order.ag" #-}+                                   _lhsIallnts+                                   {-# LINE 2272 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOaroundMap =+                                  ({-# LINE 406 "src-ag/Order.ag" #-}+                                   _lhsIaroundMap+                                   {-# LINE 2278 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOcInterfaceMap =+                                  ({-# LINE 595 "src-ag/Order.ag" #-}+                                   _lhsIcInterfaceMap+                                   {-# LINE 2284 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOcVisitsMap =+                                  ({-# LINE 602 "src-ag/Order.ag" #-}+                                   _lhsIcVisitsMap+                                   {-# LINE 2290 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOinhMap =+                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}+                                   _lhsIinhMap+                                   {-# LINE 2296 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOmanualAttrDepMap =+                                  ({-# LINE 282 "src-ag/Order.ag" #-}+                                   _lhsImanualAttrDepMap+                                   {-# LINE 2302 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOmergeMap =+                                  ({-# LINE 353 "src-ag/Order.ag" #-}+                                   _lhsImergeMap+                                   {-# LINE 2308 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_case =+                                  ({-# LINE 118 "src-ag/Order.ag" #-}+                                   _lhsIo_case+                                   {-# LINE 2314 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_cata =+                                  ({-# LINE 112 "src-ag/Order.ag" #-}+                                   _lhsIo_cata+                                   {-# LINE 2320 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_data =+                                  ({-# LINE 121 "src-ag/Order.ag" #-}+                                   _lhsIo_data+                                   {-# LINE 2326 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_dovisit =+                                  ({-# LINE 117 "src-ag/Order.ag" #-}+                                   _lhsIo_dovisit+                                   {-# LINE 2332 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_newtypes =+                                  ({-# LINE 111 "src-ag/Order.ag" #-}+                                   _lhsIo_newtypes+                                   {-# LINE 2338 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_rename =+                                  ({-# LINE 115 "src-ag/Order.ag" #-}+                                   _lhsIo_rename+                                   {-# LINE 2344 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_sem =+                                  ({-# LINE 114 "src-ag/Order.ag" #-}+                                   _lhsIo_sem+                                   {-# LINE 2350 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_sig =+                                  ({-# LINE 113 "src-ag/Order.ag" #-}+                                   _lhsIo_sig+                                   {-# LINE 2356 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_unbox =+                                  ({-# LINE 120 "src-ag/Order.ag" #-}+                                   _lhsIo_unbox+                                   {-# LINE 2362 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOo_wantvisit =+                                  ({-# LINE 116 "src-ag/Order.ag" #-}+                                   _lhsIo_wantvisit+                                   {-# LINE 2368 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOprefix =+                                  ({-# LINE 119 "src-ag/Order.ag" #-}+                                   _lhsIprefix+                                   {-# LINE 2374 "dist/build/Order" #-}+                                   )+                              -- copy rule (down)+                              _tlOsynMap =+                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}+                                   _lhsIsynMap+                                   {-# LINE 2380 "dist/build/Order" #-}+                                   )+                              -- copy rule (chain)+                              _tlOvcount =+                                  ({-# LINE 257 "src-ag/Order.ag" #-}+                                   _hdIvcount+                                   {-# LINE 2386 "dist/build/Order" #-}+                                   )+                              ( _hdIacount,_hdIadditionalDep,_hdIaranges,_hdIaroundDep,_hdIcNonterminal,_hdIdirectDep,_hdIerrors,_hdIinhMap',_hdIinstDep,_hdImergeDep,_hdInAutoRules,_hdInExplicitRules,_hdInonts,_hdIntattrs,_hdIrules,_hdIsynMap',_hdIvcount) =+                                  hd_ _hdOacount _hdOallnts _hdOaroundMap _hdOcInterfaceMap _hdOcVisitsMap _hdOinhMap _hdOmanualAttrDepMap _hdOmergeMap _hdOo_case _hdOo_cata _hdOo_data _hdOo_dovisit _hdOo_newtypes _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_unbox _hdOo_wantvisit _hdOprefix _hdOsynMap _hdOvcount+                              ( _tlIacount,_tlIadditionalDep,_tlIaranges,_tlIaroundDep,_tlIcNonterminals,_tlIdirectDep,_tlIerrors,_tlIinhMap',_tlIinstDep,_tlImergeDep,_tlInAutoRules,_tlInExplicitRules,_tlInonts,_tlIntattrs,_tlIrules,_tlIsynMap',_tlIvcount) =+                                  tl_ _tlOacount _tlOallnts _tlOaroundMap _tlOcInterfaceMap _tlOcVisitsMap _tlOinhMap _tlOmanualAttrDepMap _tlOmergeMap _tlOo_case _tlOo_cata _tlOo_data _tlOo_dovisit _tlOo_newtypes _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_unbox _tlOo_wantvisit _tlOprefix _tlOsynMap _tlOvcount+                              ___node =+                                  (Syn_Nonterminals _lhsOacount _lhsOadditionalDep _lhsOaranges _lhsOaroundDep _lhsOcNonterminals _lhsOdirectDep _lhsOerrors _lhsOinhMap' _lhsOinstDep _lhsOmergeDep _lhsOnAutoRules _lhsOnExplicitRules _lhsOnonts _lhsOntattrs _lhsOrules _lhsOsynMap' _lhsOvcount)+                          in  ( _lhsOacount,_lhsOadditionalDep,_lhsOaranges,_lhsOaroundDep,_lhsOcNonterminals,_lhsOdirectDep,_lhsOerrors,_lhsOinhMap',_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOnonts,_lhsOntattrs,_lhsOrules,_lhsOsynMap',_lhsOvcount))))+sem_Nonterminals_Nil :: T_Nonterminals+sem_Nonterminals_Nil =+    (T_Nonterminals (\ _lhsIacount+                       _lhsIallnts+                       _lhsIaroundMap+                       _lhsIcInterfaceMap+                       _lhsIcVisitsMap+                       _lhsIinhMap+                       _lhsImanualAttrDepMap+                       _lhsImergeMap+                       _lhsIo_case+                       _lhsIo_cata+                       _lhsIo_data+                       _lhsIo_dovisit+                       _lhsIo_newtypes+                       _lhsIo_rename+                       _lhsIo_sem+                       _lhsIo_sig+                       _lhsIo_unbox+                       _lhsIo_wantvisit+                       _lhsIprefix+                       _lhsIsynMap+                       _lhsIvcount ->+                         (let _lhsOcNonterminals :: CNonterminals+                              _lhsOadditionalDep :: (Seq Edge)+                              _lhsOaranges :: (Seq (Int,Int,Int))+                              _lhsOaroundDep :: (Seq Edge)+                              _lhsOdirectDep :: (Seq Edge)+                              _lhsOerrors :: (Seq Error)+                              _lhsOinhMap' :: (Map Identifier Attributes)+                              _lhsOinstDep :: (Seq Edge)+                              _lhsOmergeDep :: (Seq Edge)+                              _lhsOnAutoRules :: Int+                              _lhsOnExplicitRules :: Int+                              _lhsOnonts :: ([(NontermIdent,[ConstructorIdent])])+                              _lhsOntattrs :: (Seq (Vertex,NTAttr))+                              _lhsOrules :: (Seq (Vertex,CRule))+                              _lhsOsynMap' :: (Map Identifier Attributes)+                              _lhsOacount :: Int+                              _lhsOvcount :: Int+                              -- "src-ag/Order.ag"(line 623, column 12)+                              _lhsOcNonterminals =+                                  ({-# LINE 623 "src-ag/Order.ag" #-}+                                   []+                                   {-# LINE 2439 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 282, column 60)+                              _lhsOadditionalDep =+                                  ({-# LINE 282 "src-ag/Order.ag" #-}+                                   Seq.empty+                                   {-# LINE 2445 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 501, column 36)+                              _lhsOaranges =+                                  ({-# LINE 501 "src-ag/Order.ag" #-}+                                   Seq.empty+                                   {-# LINE 2451 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 403, column 24)+                              _lhsOaroundDep =+                                  ({-# LINE 403 "src-ag/Order.ag" #-}+                                   Seq.empty+                                   {-# LINE 2457 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 268, column 33)+                              _lhsOdirectDep =+                                  ({-# LINE 268 "src-ag/Order.ag" #-}+                                   Seq.empty+                                   {-# LINE 2463 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 85, column 70)+                              _lhsOerrors =+                                  ({-# LINE 85 "src-ag/Order.ag" #-}+                                   Seq.empty+                                   {-# LINE 2469 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)+                              _lhsOinhMap' =+                                  ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}+                                   Map.empty+                                   {-# LINE 2475 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 311, column 31)+                              _lhsOinstDep =+                                  ({-# LINE 311 "src-ag/Order.ag" #-}+                                   Seq.empty+                                   {-# LINE 2481 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 366, column 18)+                              _lhsOmergeDep =+                                  ({-# LINE 366 "src-ag/Order.ag" #-}+                                   Seq.empty+                                   {-# LINE 2487 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 62, column 105)+                              _lhsOnAutoRules =+                                  ({-# LINE 62 "src-ag/Order.ag" #-}+                                   0+                                   {-# LINE 2493 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 62, column 105)+                              _lhsOnExplicitRules =+                                  ({-# LINE 62 "src-ag/Order.ag" #-}+                                   0+                                   {-# LINE 2499 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 518, column 43)+                              _lhsOnonts =+                                  ({-# LINE 518 "src-ag/Order.ag" #-}+                                   []+                                   {-# LINE 2505 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 500, column 35)+                              _lhsOntattrs =+                                  ({-# LINE 500 "src-ag/Order.ag" #-}+                                   Seq.empty+                                   {-# LINE 2511 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/Order.ag"(line 258, column 18)+                              _lhsOrules =+                                  ({-# LINE 258 "src-ag/Order.ag" #-}+                                   Seq.empty+                                   {-# LINE 2517 "dist/build/Order" #-}+                                   )+                              -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)+                              _lhsOsynMap' =+                                  ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}+                                   Map.empty+                                   {-# LINE 2523 "dist/build/Order" #-}+                                   )+                              -- copy rule (chain)+                              _lhsOacount =+                                  ({-# LINE 500 "src-ag/Order.ag" #-}+                                   _lhsIacount+                                   {-# LINE 2529 "dist/build/Order" #-}+                                   )+                              -- copy rule (chain)+                              _lhsOvcount =+                                  ({-# LINE 257 "src-ag/Order.ag" #-}+                                   _lhsIvcount+                                   {-# LINE 2535 "dist/build/Order" #-}+                                   )+                              ___node =+                                  (Syn_Nonterminals _lhsOacount _lhsOadditionalDep _lhsOaranges _lhsOaroundDep _lhsOcNonterminals _lhsOdirectDep _lhsOerrors _lhsOinhMap' _lhsOinstDep _lhsOmergeDep _lhsOnAutoRules _lhsOnExplicitRules _lhsOnonts _lhsOntattrs _lhsOrules _lhsOsynMap' _lhsOvcount)+                          in  ( _lhsOacount,_lhsOadditionalDep,_lhsOaranges,_lhsOaroundDep,_lhsOcNonterminals,_lhsOdirectDep,_lhsOerrors,_lhsOinhMap',_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOnonts,_lhsOntattrs,_lhsOrules,_lhsOsynMap',_lhsOvcount))))+-- Pattern -----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allTypeSigs          : Map Identifier Type+         altAttrs             : Map AltAttr Vertex+         con                  : Identifier+         inh                  : Attributes+         nt                   : Identifier+         syn                  : Attributes+      synthesized attributes:+         copy                 : Pattern +         errors               : Seq Error+         gathAltAttrs         : [AltAttr]+         instVars             : [Identifier]+         locVars              : [Identifier]+         patternAttrs         : [(Identifier,Identifier,Bool)]+   alternatives:+      alternative Alias:+         child field          : {Identifier}+         child attr           : {Identifier}+         child pat            : Pattern +         visit 0:+            local copy        : _+      alternative Constr:+         child name           : {ConstructorIdent}+         child pats           : Patterns +         visit 0:+            local copy        : _+      alternative Irrefutable:+         child pat            : Pattern +         visit 0:+            local copy        : _+      alternative Product:+         child pos            : {Pos}+         child pats           : Patterns +         visit 0:+            local copy        : _+      alternative Underscore:+         child pos            : {Pos}+         visit 0:+            local copy        : _+-}+-- cata+sem_Pattern :: Pattern ->+               T_Pattern+sem_Pattern (Alias _field _attr _pat) =+    (sem_Pattern_Alias _field _attr (sem_Pattern _pat))+sem_Pattern (Constr _name _pats) =+    (sem_Pattern_Constr _name (sem_Patterns _pats))+sem_Pattern (Irrefutable _pat) =+    (sem_Pattern_Irrefutable (sem_Pattern _pat))+sem_Pattern (Product _pos _pats) =+    (sem_Pattern_Product _pos (sem_Patterns _pats))+sem_Pattern (Underscore _pos) =+    (sem_Pattern_Underscore _pos)+-- semantic domain+newtype T_Pattern = T_Pattern ((Map Identifier Type) ->+                               (Map AltAttr Vertex) ->+                               Identifier ->+                               Attributes ->+                               Identifier ->+                               Attributes ->+                               ( Pattern,(Seq Error),([AltAttr]),([Identifier]),([Identifier]),([(Identifier,Identifier,Bool)])))+data Inh_Pattern = Inh_Pattern {allTypeSigs_Inh_Pattern :: !((Map Identifier Type)),altAttrs_Inh_Pattern :: !((Map AltAttr Vertex)),con_Inh_Pattern :: !(Identifier),inh_Inh_Pattern :: !(Attributes),nt_Inh_Pattern :: !(Identifier),syn_Inh_Pattern :: !(Attributes)}+data Syn_Pattern = Syn_Pattern {copy_Syn_Pattern :: !(Pattern),errors_Syn_Pattern :: !((Seq Error)),gathAltAttrs_Syn_Pattern :: !(([AltAttr])),instVars_Syn_Pattern :: !(([Identifier])),locVars_Syn_Pattern :: !(([Identifier])),patternAttrs_Syn_Pattern :: !(([(Identifier,Identifier,Bool)]))}+wrap_Pattern :: T_Pattern ->+                Inh_Pattern ->+                Syn_Pattern+wrap_Pattern (T_Pattern sem) (Inh_Pattern _lhsIallTypeSigs _lhsIaltAttrs _lhsIcon _lhsIinh _lhsInt _lhsIsyn) =+    (let ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs) = sem _lhsIallTypeSigs _lhsIaltAttrs _lhsIcon _lhsIinh _lhsInt _lhsIsyn+     in  (Syn_Pattern _lhsOcopy _lhsOerrors _lhsOgathAltAttrs _lhsOinstVars _lhsOlocVars _lhsOpatternAttrs))+sem_Pattern_Alias :: Identifier ->+                     Identifier ->+                     T_Pattern ->+                     T_Pattern+sem_Pattern_Alias field_ attr_ (T_Pattern pat_) =+    (T_Pattern (\ _lhsIallTypeSigs+                  _lhsIaltAttrs+                  _lhsIcon+                  _lhsIinh+                  _lhsInt+                  _lhsIsyn ->+                    (let _lhsOgathAltAttrs :: ([AltAttr])+                         _lhsOpatternAttrs :: ([(Identifier,Identifier,Bool)])+                         _lhsOlocVars :: ([Identifier])+                         _lhsOinstVars :: ([Identifier])+                         _lhsOerrors :: (Seq Error)+                         _lhsOcopy :: Pattern+                         _patOallTypeSigs :: (Map Identifier Type)+                         _patOaltAttrs :: (Map AltAttr Vertex)+                         _patOcon :: Identifier+                         _patOinh :: Attributes+                         _patOnt :: Identifier+                         _patOsyn :: Attributes+                         _patIcopy :: Pattern+                         _patIerrors :: (Seq Error)+                         _patIgathAltAttrs :: ([AltAttr])+                         _patIinstVars :: ([Identifier])+                         _patIlocVars :: ([Identifier])+                         _patIpatternAttrs :: ([(Identifier,Identifier,Bool)])+                         -- "src-ag/Order.ag"(line 185, column 12)+                         _lhsOgathAltAttrs =+                             ({-# LINE 185 "src-ag/Order.ag" #-}+                              [AltAttr field_ attr_ (field_ == _LOC || field_ == _INST)]+                              {-# LINE 2645 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 251, column 12)+                         _lhsOpatternAttrs =+                             ({-# LINE 251 "src-ag/Order.ag" #-}+                              [(field_,attr_,(field_ == _LOC || field_ == _INST))]+                              {-# LINE 2651 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 681, column 14)+                         _lhsOlocVars =+                             ({-# LINE 681 "src-ag/Order.ag" #-}+                              if field_ == _LOC+                                 then [attr_]+                                 else []+                              {-# LINE 2659 "dist/build/Order" #-}+                              )+                         -- "src-ag/Order.ag"(line 684, column 14)+                         _lhsOinstVars =+                             ({-# LINE 684 "src-ag/Order.ag" #-}+                              if field_ == _INST+                                 then [attr_]+                                 else []+                              {-# LINE 2667 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 85, column 70)+                         _lhsOerrors =+                             ({-# LINE 85 "src-ag/Order.ag" #-}+                              _patIerrors+                              {-# LINE 2673 "dist/build/Order" #-}+                              )+                         -- self rule+                         _copy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              Alias field_ attr_ _patIcopy+                              {-# LINE 2679 "dist/build/Order" #-}+                              )+                         -- self rule+                         _lhsOcopy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              _copy+                              {-# LINE 2685 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patOallTypeSigs =+                             ({-# LINE 534 "src-ag/Order.ag" #-}+                              _lhsIallTypeSigs+                              {-# LINE 2691 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patOaltAttrs =+                             ({-# LINE 187 "src-ag/Order.ag" #-}+                              _lhsIaltAttrs+                              {-# LINE 2697 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patOcon =+                             ({-# LINE 91 "src-ag/Order.ag" #-}+                              _lhsIcon+                              {-# LINE 2703 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patOinh =+                             ({-# LINE 90 "src-ag/Order.ag" #-}+                              _lhsIinh+                              {-# LINE 2709 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patOnt =+                             ({-# LINE 90 "src-ag/Order.ag" #-}+                              _lhsInt+                              {-# LINE 2715 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patOsyn =+                             ({-# LINE 90 "src-ag/Order.ag" #-}+                              _lhsIsyn+                              {-# LINE 2721 "dist/build/Order" #-}+                              )+                         ( _patIcopy,_patIerrors,_patIgathAltAttrs,_patIinstVars,_patIlocVars,_patIpatternAttrs) =+                             pat_ _patOallTypeSigs _patOaltAttrs _patOcon _patOinh _patOnt _patOsyn+                         ___node =+                             (Syn_Pattern _lhsOcopy _lhsOerrors _lhsOgathAltAttrs _lhsOinstVars _lhsOlocVars _lhsOpatternAttrs)+                     in  ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs))))+sem_Pattern_Constr :: ConstructorIdent ->+                      T_Patterns ->+                      T_Pattern+sem_Pattern_Constr name_ (T_Patterns pats_) =+    (T_Pattern (\ _lhsIallTypeSigs+                  _lhsIaltAttrs+                  _lhsIcon+                  _lhsIinh+                  _lhsInt+                  _lhsIsyn ->+                    (let _lhsOerrors :: (Seq Error)+                         _lhsOgathAltAttrs :: ([AltAttr])+                         _lhsOinstVars :: ([Identifier])+                         _lhsOlocVars :: ([Identifier])+                         _lhsOpatternAttrs :: ([(Identifier,Identifier,Bool)])+                         _lhsOcopy :: Pattern+                         _patsOallTypeSigs :: (Map Identifier Type)+                         _patsOaltAttrs :: (Map AltAttr Vertex)+                         _patsOcon :: Identifier+                         _patsOinh :: Attributes+                         _patsOnt :: Identifier+                         _patsOsyn :: Attributes+                         _patsIcopy :: Patterns+                         _patsIerrors :: (Seq Error)+                         _patsIgathAltAttrs :: ([AltAttr])+                         _patsIinstVars :: ([Identifier])+                         _patsIlocVars :: ([Identifier])+                         _patsIpatternAttrs :: ([(Identifier,Identifier,Bool)])+                         -- use rule "src-ag/Order.ag"(line 85, column 70)+                         _lhsOerrors =+                             ({-# LINE 85 "src-ag/Order.ag" #-}+                              _patsIerrors+                              {-# LINE 2760 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 171, column 68)+                         _lhsOgathAltAttrs =+                             ({-# LINE 171 "src-ag/Order.ag" #-}+                              _patsIgathAltAttrs+                              {-# LINE 2766 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 678, column 86)+                         _lhsOinstVars =+                             ({-# LINE 678 "src-ag/Order.ag" #-}+                              _patsIinstVars+                              {-# LINE 2772 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 678, column 48)+                         _lhsOlocVars =+                             ({-# LINE 678 "src-ag/Order.ag" #-}+                              _patsIlocVars+                              {-# LINE 2778 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 248, column 42)+                         _lhsOpatternAttrs =+                             ({-# LINE 248 "src-ag/Order.ag" #-}+                              _patsIpatternAttrs+                              {-# LINE 2784 "dist/build/Order" #-}+                              )+                         -- self rule+                         _copy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              Constr name_ _patsIcopy+                              {-# LINE 2790 "dist/build/Order" #-}+                              )+                         -- self rule+                         _lhsOcopy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              _copy+                              {-# LINE 2796 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patsOallTypeSigs =+                             ({-# LINE 534 "src-ag/Order.ag" #-}+                              _lhsIallTypeSigs+                              {-# LINE 2802 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patsOaltAttrs =+                             ({-# LINE 187 "src-ag/Order.ag" #-}+                              _lhsIaltAttrs+                              {-# LINE 2808 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patsOcon =+                             ({-# LINE 91 "src-ag/Order.ag" #-}+                              _lhsIcon+                              {-# LINE 2814 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patsOinh =+                             ({-# LINE 90 "src-ag/Order.ag" #-}+                              _lhsIinh+                              {-# LINE 2820 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patsOnt =+                             ({-# LINE 90 "src-ag/Order.ag" #-}+                              _lhsInt+                              {-# LINE 2826 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patsOsyn =+                             ({-# LINE 90 "src-ag/Order.ag" #-}+                              _lhsIsyn+                              {-# LINE 2832 "dist/build/Order" #-}+                              )+                         ( _patsIcopy,_patsIerrors,_patsIgathAltAttrs,_patsIinstVars,_patsIlocVars,_patsIpatternAttrs) =+                             pats_ _patsOallTypeSigs _patsOaltAttrs _patsOcon _patsOinh _patsOnt _patsOsyn+                         ___node =+                             (Syn_Pattern _lhsOcopy _lhsOerrors _lhsOgathAltAttrs _lhsOinstVars _lhsOlocVars _lhsOpatternAttrs)+                     in  ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs))))+sem_Pattern_Irrefutable :: T_Pattern ->+                           T_Pattern+sem_Pattern_Irrefutable (T_Pattern pat_) =+    (T_Pattern (\ _lhsIallTypeSigs+                  _lhsIaltAttrs+                  _lhsIcon+                  _lhsIinh+                  _lhsInt+                  _lhsIsyn ->+                    (let _lhsOerrors :: (Seq Error)+                         _lhsOgathAltAttrs :: ([AltAttr])+                         _lhsOinstVars :: ([Identifier])+                         _lhsOlocVars :: ([Identifier])+                         _lhsOpatternAttrs :: ([(Identifier,Identifier,Bool)])+                         _lhsOcopy :: Pattern+                         _patOallTypeSigs :: (Map Identifier Type)+                         _patOaltAttrs :: (Map AltAttr Vertex)+                         _patOcon :: Identifier+                         _patOinh :: Attributes+                         _patOnt :: Identifier+                         _patOsyn :: Attributes+                         _patIcopy :: Pattern+                         _patIerrors :: (Seq Error)+                         _patIgathAltAttrs :: ([AltAttr])+                         _patIinstVars :: ([Identifier])+                         _patIlocVars :: ([Identifier])+                         _patIpatternAttrs :: ([(Identifier,Identifier,Bool)])+                         -- use rule "src-ag/Order.ag"(line 85, column 70)+                         _lhsOerrors =+                             ({-# LINE 85 "src-ag/Order.ag" #-}+                              _patIerrors+                              {-# LINE 2870 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 171, column 68)+                         _lhsOgathAltAttrs =+                             ({-# LINE 171 "src-ag/Order.ag" #-}+                              _patIgathAltAttrs+                              {-# LINE 2876 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 678, column 86)+                         _lhsOinstVars =+                             ({-# LINE 678 "src-ag/Order.ag" #-}+                              _patIinstVars+                              {-# LINE 2882 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 678, column 48)+                         _lhsOlocVars =+                             ({-# LINE 678 "src-ag/Order.ag" #-}+                              _patIlocVars+                              {-# LINE 2888 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 248, column 42)+                         _lhsOpatternAttrs =+                             ({-# LINE 248 "src-ag/Order.ag" #-}+                              _patIpatternAttrs+                              {-# LINE 2894 "dist/build/Order" #-}+                              )+                         -- self rule+                         _copy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              Irrefutable _patIcopy+                              {-# LINE 2900 "dist/build/Order" #-}+                              )+                         -- self rule+                         _lhsOcopy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              _copy+                              {-# LINE 2906 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patOallTypeSigs =+                             ({-# LINE 534 "src-ag/Order.ag" #-}+                              _lhsIallTypeSigs+                              {-# LINE 2912 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patOaltAttrs =+                             ({-# LINE 187 "src-ag/Order.ag" #-}+                              _lhsIaltAttrs+                              {-# LINE 2918 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patOcon =+                             ({-# LINE 91 "src-ag/Order.ag" #-}+                              _lhsIcon+                              {-# LINE 2924 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patOinh =+                             ({-# LINE 90 "src-ag/Order.ag" #-}+                              _lhsIinh+                              {-# LINE 2930 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patOnt =+                             ({-# LINE 90 "src-ag/Order.ag" #-}+                              _lhsInt+                              {-# LINE 2936 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patOsyn =+                             ({-# LINE 90 "src-ag/Order.ag" #-}+                              _lhsIsyn+                              {-# LINE 2942 "dist/build/Order" #-}+                              )+                         ( _patIcopy,_patIerrors,_patIgathAltAttrs,_patIinstVars,_patIlocVars,_patIpatternAttrs) =+                             pat_ _patOallTypeSigs _patOaltAttrs _patOcon _patOinh _patOnt _patOsyn+                         ___node =+                             (Syn_Pattern _lhsOcopy _lhsOerrors _lhsOgathAltAttrs _lhsOinstVars _lhsOlocVars _lhsOpatternAttrs)+                     in  ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs))))+sem_Pattern_Product :: Pos ->+                       T_Patterns ->+                       T_Pattern+sem_Pattern_Product pos_ (T_Patterns pats_) =+    (T_Pattern (\ _lhsIallTypeSigs+                  _lhsIaltAttrs+                  _lhsIcon+                  _lhsIinh+                  _lhsInt+                  _lhsIsyn ->+                    (let _lhsOerrors :: (Seq Error)+                         _lhsOgathAltAttrs :: ([AltAttr])+                         _lhsOinstVars :: ([Identifier])+                         _lhsOlocVars :: ([Identifier])+                         _lhsOpatternAttrs :: ([(Identifier,Identifier,Bool)])+                         _lhsOcopy :: Pattern+                         _patsOallTypeSigs :: (Map Identifier Type)+                         _patsOaltAttrs :: (Map AltAttr Vertex)+                         _patsOcon :: Identifier+                         _patsOinh :: Attributes+                         _patsOnt :: Identifier+                         _patsOsyn :: Attributes+                         _patsIcopy :: Patterns+                         _patsIerrors :: (Seq Error)+                         _patsIgathAltAttrs :: ([AltAttr])+                         _patsIinstVars :: ([Identifier])+                         _patsIlocVars :: ([Identifier])+                         _patsIpatternAttrs :: ([(Identifier,Identifier,Bool)])+                         -- use rule "src-ag/Order.ag"(line 85, column 70)+                         _lhsOerrors =+                             ({-# LINE 85 "src-ag/Order.ag" #-}+                              _patsIerrors+                              {-# LINE 2981 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 171, column 68)+                         _lhsOgathAltAttrs =+                             ({-# LINE 171 "src-ag/Order.ag" #-}+                              _patsIgathAltAttrs+                              {-# LINE 2987 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 678, column 86)+                         _lhsOinstVars =+                             ({-# LINE 678 "src-ag/Order.ag" #-}+                              _patsIinstVars+                              {-# LINE 2993 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 678, column 48)+                         _lhsOlocVars =+                             ({-# LINE 678 "src-ag/Order.ag" #-}+                              _patsIlocVars+                              {-# LINE 2999 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 248, column 42)+                         _lhsOpatternAttrs =+                             ({-# LINE 248 "src-ag/Order.ag" #-}+                              _patsIpatternAttrs+                              {-# LINE 3005 "dist/build/Order" #-}+                              )+                         -- self rule+                         _copy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              Product pos_ _patsIcopy+                              {-# LINE 3011 "dist/build/Order" #-}+                              )+                         -- self rule+                         _lhsOcopy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              _copy+                              {-# LINE 3017 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patsOallTypeSigs =+                             ({-# LINE 534 "src-ag/Order.ag" #-}+                              _lhsIallTypeSigs+                              {-# LINE 3023 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patsOaltAttrs =+                             ({-# LINE 187 "src-ag/Order.ag" #-}+                              _lhsIaltAttrs+                              {-# LINE 3029 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patsOcon =+                             ({-# LINE 91 "src-ag/Order.ag" #-}+                              _lhsIcon+                              {-# LINE 3035 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patsOinh =+                             ({-# LINE 90 "src-ag/Order.ag" #-}+                              _lhsIinh+                              {-# LINE 3041 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patsOnt =+                             ({-# LINE 90 "src-ag/Order.ag" #-}+                              _lhsInt+                              {-# LINE 3047 "dist/build/Order" #-}+                              )+                         -- copy rule (down)+                         _patsOsyn =+                             ({-# LINE 90 "src-ag/Order.ag" #-}+                              _lhsIsyn+                              {-# LINE 3053 "dist/build/Order" #-}+                              )+                         ( _patsIcopy,_patsIerrors,_patsIgathAltAttrs,_patsIinstVars,_patsIlocVars,_patsIpatternAttrs) =+                             pats_ _patsOallTypeSigs _patsOaltAttrs _patsOcon _patsOinh _patsOnt _patsOsyn+                         ___node =+                             (Syn_Pattern _lhsOcopy _lhsOerrors _lhsOgathAltAttrs _lhsOinstVars _lhsOlocVars _lhsOpatternAttrs)+                     in  ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs))))+sem_Pattern_Underscore :: Pos ->+                          T_Pattern+sem_Pattern_Underscore pos_ =+    (T_Pattern (\ _lhsIallTypeSigs+                  _lhsIaltAttrs+                  _lhsIcon+                  _lhsIinh+                  _lhsInt+                  _lhsIsyn ->+                    (let _lhsOerrors :: (Seq Error)+                         _lhsOgathAltAttrs :: ([AltAttr])+                         _lhsOinstVars :: ([Identifier])+                         _lhsOlocVars :: ([Identifier])+                         _lhsOpatternAttrs :: ([(Identifier,Identifier,Bool)])+                         _lhsOcopy :: Pattern+                         -- use rule "src-ag/Order.ag"(line 85, column 70)+                         _lhsOerrors =+                             ({-# LINE 85 "src-ag/Order.ag" #-}+                              Seq.empty+                              {-# LINE 3079 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 171, column 68)+                         _lhsOgathAltAttrs =+                             ({-# LINE 171 "src-ag/Order.ag" #-}+                              []+                              {-# LINE 3085 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 678, column 86)+                         _lhsOinstVars =+                             ({-# LINE 678 "src-ag/Order.ag" #-}+                              []+                              {-# LINE 3091 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 678, column 48)+                         _lhsOlocVars =+                             ({-# LINE 678 "src-ag/Order.ag" #-}+                              []+                              {-# LINE 3097 "dist/build/Order" #-}+                              )+                         -- use rule "src-ag/Order.ag"(line 248, column 42)+                         _lhsOpatternAttrs =+                             ({-# LINE 248 "src-ag/Order.ag" #-}+                              []+                              {-# LINE 3103 "dist/build/Order" #-}+                              )+                         -- self rule+                         _copy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              Underscore pos_+                              {-# LINE 3109 "dist/build/Order" #-}+                              )+                         -- self rule+                         _lhsOcopy =+                             ({-# LINE 22 "src-ag/Patterns.ag" #-}+                              _copy+                              {-# LINE 3115 "dist/build/Order" #-}+                              )+                         ___node =+                             (Syn_Pattern _lhsOcopy _lhsOerrors _lhsOgathAltAttrs _lhsOinstVars _lhsOlocVars _lhsOpatternAttrs)+                     in  ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs))))+-- Patterns ----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allTypeSigs          : Map Identifier Type+         altAttrs             : Map AltAttr Vertex+         con                  : Identifier+         inh                  : Attributes+         nt                   : Identifier+         syn                  : Attributes+      synthesized attributes:+         copy                 : Patterns +         errors               : Seq Error+         gathAltAttrs         : [AltAttr]+         instVars             : [Identifier]+         locVars              : [Identifier]+         patternAttrs         : [(Identifier,Identifier,Bool)]+   alternatives:+      alternative Cons:+         child hd             : Pattern +         child tl             : Patterns +         visit 0:+            local copy        : _+      alternative Nil:+         visit 0:+            local copy        : _+-}+-- cata+sem_Patterns :: Patterns ->+                T_Patterns+sem_Patterns list =+    (Prelude.foldr sem_Patterns_Cons sem_Patterns_Nil (Prelude.map sem_Pattern list))+-- semantic domain+newtype T_Patterns = T_Patterns ((Map Identifier Type) ->+                                 (Map AltAttr Vertex) ->+                                 Identifier ->+                                 Attributes ->+                                 Identifier ->+                                 Attributes ->+                                 ( Patterns,(Seq Error),([AltAttr]),([Identifier]),([Identifier]),([(Identifier,Identifier,Bool)])))+data Inh_Patterns = Inh_Patterns {allTypeSigs_Inh_Patterns :: !((Map Identifier Type)),altAttrs_Inh_Patterns :: !((Map AltAttr Vertex)),con_Inh_Patterns :: !(Identifier),inh_Inh_Patterns :: !(Attributes),nt_Inh_Patterns :: !(Identifier),syn_Inh_Patterns :: !(Attributes)}+data Syn_Patterns = Syn_Patterns {copy_Syn_Patterns :: !(Patterns),errors_Syn_Patterns :: !((Seq Error)),gathAltAttrs_Syn_Patterns :: !(([AltAttr])),instVars_Syn_Patterns :: !(([Identifier])),locVars_Syn_Patterns :: !(([Identifier])),patternAttrs_Syn_Patterns :: !(([(Identifier,Identifier,Bool)]))}+wrap_Patterns :: T_Patterns ->+                 Inh_Patterns ->+                 Syn_Patterns+wrap_Patterns (T_Patterns sem) (Inh_Patterns _lhsIallTypeSigs _lhsIaltAttrs _lhsIcon _lhsIinh _lhsInt _lhsIsyn) =+    (let ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs) = sem _lhsIallTypeSigs _lhsIaltAttrs _lhsIcon _lhsIinh _lhsInt _lhsIsyn+     in  (Syn_Patterns _lhsOcopy _lhsOerrors _lhsOgathAltAttrs _lhsOinstVars _lhsOlocVars _lhsOpatternAttrs))+sem_Patterns_Cons :: T_Pattern ->+                     T_Patterns ->+                     T_Patterns+sem_Patterns_Cons (T_Pattern hd_) (T_Patterns tl_) =+    (T_Patterns (\ _lhsIallTypeSigs+                   _lhsIaltAttrs+                   _lhsIcon+                   _lhsIinh+                   _lhsInt+                   _lhsIsyn ->+                     (let _lhsOerrors :: (Seq Error)+                          _lhsOgathAltAttrs :: ([AltAttr])+                          _lhsOinstVars :: ([Identifier])+                          _lhsOlocVars :: ([Identifier])+                          _lhsOpatternAttrs :: ([(Identifier,Identifier,Bool)])+                          _lhsOcopy :: Patterns+                          _hdOallTypeSigs :: (Map Identifier Type)+                          _hdOaltAttrs :: (Map AltAttr Vertex)+                          _hdOcon :: Identifier+                          _hdOinh :: Attributes+                          _hdOnt :: Identifier+                          _hdOsyn :: Attributes+                          _tlOallTypeSigs :: (Map Identifier Type)+                          _tlOaltAttrs :: (Map AltAttr Vertex)+                          _tlOcon :: Identifier+                          _tlOinh :: Attributes+                          _tlOnt :: Identifier+                          _tlOsyn :: Attributes+                          _hdIcopy :: Pattern+                          _hdIerrors :: (Seq Error)+                          _hdIgathAltAttrs :: ([AltAttr])+                          _hdIinstVars :: ([Identifier])+                          _hdIlocVars :: ([Identifier])+                          _hdIpatternAttrs :: ([(Identifier,Identifier,Bool)])+                          _tlIcopy :: Patterns+                          _tlIerrors :: (Seq Error)+                          _tlIgathAltAttrs :: ([AltAttr])+                          _tlIinstVars :: ([Identifier])+                          _tlIlocVars :: ([Identifier])+                          _tlIpatternAttrs :: ([(Identifier,Identifier,Bool)])+                          -- use rule "src-ag/Order.ag"(line 85, column 70)+                          _lhsOerrors =+                              ({-# LINE 85 "src-ag/Order.ag" #-}+                               _hdIerrors Seq.>< _tlIerrors+                               {-# LINE 3212 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 171, column 68)+                          _lhsOgathAltAttrs =+                              ({-# LINE 171 "src-ag/Order.ag" #-}+                               _hdIgathAltAttrs ++ _tlIgathAltAttrs+                               {-# LINE 3218 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 678, column 86)+                          _lhsOinstVars =+                              ({-# LINE 678 "src-ag/Order.ag" #-}+                               _hdIinstVars ++ _tlIinstVars+                               {-# LINE 3224 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 678, column 48)+                          _lhsOlocVars =+                              ({-# LINE 678 "src-ag/Order.ag" #-}+                               _hdIlocVars ++ _tlIlocVars+                               {-# LINE 3230 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 248, column 42)+                          _lhsOpatternAttrs =+                              ({-# LINE 248 "src-ag/Order.ag" #-}+                               _hdIpatternAttrs ++ _tlIpatternAttrs+                               {-# LINE 3236 "dist/build/Order" #-}+                               )+                          -- self rule+                          _copy =+                              ({-# LINE 22 "src-ag/Patterns.ag" #-}+                               (:) _hdIcopy _tlIcopy+                               {-# LINE 3242 "dist/build/Order" #-}+                               )+                          -- self rule+                          _lhsOcopy =+                              ({-# LINE 22 "src-ag/Patterns.ag" #-}+                               _copy+                               {-# LINE 3248 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOallTypeSigs =+                              ({-# LINE 534 "src-ag/Order.ag" #-}+                               _lhsIallTypeSigs+                               {-# LINE 3254 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOaltAttrs =+                              ({-# LINE 187 "src-ag/Order.ag" #-}+                               _lhsIaltAttrs+                               {-# LINE 3260 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOcon =+                              ({-# LINE 91 "src-ag/Order.ag" #-}+                               _lhsIcon+                               {-# LINE 3266 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOinh =+                              ({-# LINE 90 "src-ag/Order.ag" #-}+                               _lhsIinh+                               {-# LINE 3272 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOnt =+                              ({-# LINE 90 "src-ag/Order.ag" #-}+                               _lhsInt+                               {-# LINE 3278 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOsyn =+                              ({-# LINE 90 "src-ag/Order.ag" #-}+                               _lhsIsyn+                               {-# LINE 3284 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _tlOallTypeSigs =+                              ({-# LINE 534 "src-ag/Order.ag" #-}+                               _lhsIallTypeSigs+                               {-# LINE 3290 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _tlOaltAttrs =+                              ({-# LINE 187 "src-ag/Order.ag" #-}+                               _lhsIaltAttrs+                               {-# LINE 3296 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _tlOcon =+                              ({-# LINE 91 "src-ag/Order.ag" #-}+                               _lhsIcon+                               {-# LINE 3302 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _tlOinh =+                              ({-# LINE 90 "src-ag/Order.ag" #-}+                               _lhsIinh+                               {-# LINE 3308 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _tlOnt =+                              ({-# LINE 90 "src-ag/Order.ag" #-}+                               _lhsInt+                               {-# LINE 3314 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _tlOsyn =+                              ({-# LINE 90 "src-ag/Order.ag" #-}+                               _lhsIsyn+                               {-# LINE 3320 "dist/build/Order" #-}+                               )+                          ( _hdIcopy,_hdIerrors,_hdIgathAltAttrs,_hdIinstVars,_hdIlocVars,_hdIpatternAttrs) =+                              hd_ _hdOallTypeSigs _hdOaltAttrs _hdOcon _hdOinh _hdOnt _hdOsyn+                          ( _tlIcopy,_tlIerrors,_tlIgathAltAttrs,_tlIinstVars,_tlIlocVars,_tlIpatternAttrs) =+                              tl_ _tlOallTypeSigs _tlOaltAttrs _tlOcon _tlOinh _tlOnt _tlOsyn+                          ___node =+                              (Syn_Patterns _lhsOcopy _lhsOerrors _lhsOgathAltAttrs _lhsOinstVars _lhsOlocVars _lhsOpatternAttrs)+                      in  ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs))))+sem_Patterns_Nil :: T_Patterns+sem_Patterns_Nil =+    (T_Patterns (\ _lhsIallTypeSigs+                   _lhsIaltAttrs+                   _lhsIcon+                   _lhsIinh+                   _lhsInt+                   _lhsIsyn ->+                     (let _lhsOerrors :: (Seq Error)+                          _lhsOgathAltAttrs :: ([AltAttr])+                          _lhsOinstVars :: ([Identifier])+                          _lhsOlocVars :: ([Identifier])+                          _lhsOpatternAttrs :: ([(Identifier,Identifier,Bool)])+                          _lhsOcopy :: Patterns+                          -- use rule "src-ag/Order.ag"(line 85, column 70)+                          _lhsOerrors =+                              ({-# LINE 85 "src-ag/Order.ag" #-}+                               Seq.empty+                               {-# LINE 3347 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 171, column 68)+                          _lhsOgathAltAttrs =+                              ({-# LINE 171 "src-ag/Order.ag" #-}+                               []+                               {-# LINE 3353 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 678, column 86)+                          _lhsOinstVars =+                              ({-# LINE 678 "src-ag/Order.ag" #-}+                               []+                               {-# LINE 3359 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 678, column 48)+                          _lhsOlocVars =+                              ({-# LINE 678 "src-ag/Order.ag" #-}+                               []+                               {-# LINE 3365 "dist/build/Order" #-}+                               )+                          -- use rule "src-ag/Order.ag"(line 248, column 42)+                          _lhsOpatternAttrs =+                              ({-# LINE 248 "src-ag/Order.ag" #-}+                               []+                               {-# LINE 3371 "dist/build/Order" #-}+                               )+                          -- self rule+                          _copy =+                              ({-# LINE 22 "src-ag/Patterns.ag" #-}+                               []+                               {-# LINE 3377 "dist/build/Order" #-}+                               )+                          -- self rule+                          _lhsOcopy =+                              ({-# LINE 22 "src-ag/Patterns.ag" #-}+                               _copy+                               {-# LINE 3383 "dist/build/Order" #-}+                               )+                          ___node =+                              (Syn_Patterns _lhsOcopy _lhsOerrors _lhsOgathAltAttrs _lhsOinstVars _lhsOlocVars _lhsOpatternAttrs)+                      in  ( _lhsOcopy,_lhsOerrors,_lhsOgathAltAttrs,_lhsOinstVars,_lhsOlocVars,_lhsOpatternAttrs))))+-- Production --------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allnts               : [Identifier]+         aroundMap            : Map ConstructorIdent (Map Identifier [Expression])+         cVisitsMap           : CVisitsMap+         inh                  : Attributes+         inhMap               : Map Identifier Attributes+         manualAttrDepMap     : AttrOrderMap+         mergeMap             : Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))+         nt                   : Identifier+         o_case               : Bool+         o_cata               : Bool+         o_dovisit            : Bool+         o_newtypes           : Bool+         o_rename             : Bool+         o_sem                : Bool+         o_sig                : Bool+         o_unbox              : Bool+         o_wantvisit          : Bool+         prefix               : String+         syn                  : Attributes+         synMap               : Map Identifier Attributes+      chained attribute:+         vcount               : Int+      synthesized attributes:+         additionalDep        : Seq Edge+         aroundDep            : Seq Edge+         cProduction          : CProduction+         cons                 : [ConstructorIdent]+         directDep            : Seq Edge+         errors               : Seq Error+         instDep              : Seq Edge+         mergeDep             : Seq Edge+         nAutoRules           : Int+         nExplicitRules       : Int+         rules                : Seq (Vertex,CRule)+   alternatives:+      alternative Production:+         child con            : {ConstructorIdent}+         child params         : {[Identifier]}+         child constraints    : {[Type]}+         child children       : Children +         child rules          : Rules +         child typeSigs       : TypeSigs +         child macro          : {MaybeMacro}+         visit 0:+            local gathAltAttrs : _+            local altAttrs    : _+            local inhRules    : _+            local gathRules   : _+            local manualDeps  : _+            local mergeMap    : _+            local mergeDep1   : _+            local mergeDep2   : _+            local aroundMap   : _+            local aroundDep1  : _+            local aroundDep2  : _+            local cVisits     : _+            local allfields   : _+            local attrs       : _+            local inhnames    : _+            local synnames    : _+-}+-- cata+sem_Production :: Production ->+                  T_Production+sem_Production (Production _con _params _constraints _children _rules _typeSigs _macro) =+    (sem_Production_Production _con _params _constraints (sem_Children _children) (sem_Rules _rules) (sem_TypeSigs _typeSigs) _macro)+-- semantic domain+newtype T_Production = T_Production (([Identifier]) ->+                                     (Map ConstructorIdent (Map Identifier [Expression])) ->+                                     CVisitsMap ->+                                     Attributes ->+                                     (Map Identifier Attributes) ->+                                     AttrOrderMap ->+                                     (Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))) ->+                                     Identifier ->+                                     Bool ->+                                     Bool ->+                                     Bool ->+                                     Bool ->+                                     Bool ->+                                     Bool ->+                                     Bool ->+                                     Bool ->+                                     Bool ->+                                     String ->+                                     Attributes ->+                                     (Map Identifier Attributes) ->+                                     Int ->+                                     ( (Seq Edge),(Seq Edge),CProduction,([ConstructorIdent]),(Seq Edge),(Seq Error),(Seq Edge),(Seq Edge),Int,Int,(Seq (Vertex,CRule)),Int))+data Inh_Production = Inh_Production {allnts_Inh_Production :: !(([Identifier])),aroundMap_Inh_Production :: !((Map ConstructorIdent (Map Identifier [Expression]))),cVisitsMap_Inh_Production :: !(CVisitsMap),inh_Inh_Production :: !(Attributes),inhMap_Inh_Production :: !((Map Identifier Attributes)),manualAttrDepMap_Inh_Production :: !(AttrOrderMap),mergeMap_Inh_Production :: !((Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))),nt_Inh_Production :: !(Identifier),o_case_Inh_Production :: !(Bool),o_cata_Inh_Production :: !(Bool),o_dovisit_Inh_Production :: !(Bool),o_newtypes_Inh_Production :: !(Bool),o_rename_Inh_Production :: !(Bool),o_sem_Inh_Production :: !(Bool),o_sig_Inh_Production :: !(Bool),o_unbox_Inh_Production :: !(Bool),o_wantvisit_Inh_Production :: !(Bool),prefix_Inh_Production :: !(String),syn_Inh_Production :: !(Attributes),synMap_Inh_Production :: !((Map Identifier Attributes)),vcount_Inh_Production :: !(Int)}+data Syn_Production = Syn_Production {additionalDep_Syn_Production :: !((Seq Edge)),aroundDep_Syn_Production :: !((Seq Edge)),cProduction_Syn_Production :: !(CProduction),cons_Syn_Production :: !(([ConstructorIdent])),directDep_Syn_Production :: !((Seq Edge)),errors_Syn_Production :: !((Seq Error)),instDep_Syn_Production :: !((Seq Edge)),mergeDep_Syn_Production :: !((Seq Edge)),nAutoRules_Syn_Production :: !(Int),nExplicitRules_Syn_Production :: !(Int),rules_Syn_Production :: !((Seq (Vertex,CRule))),vcount_Syn_Production :: !(Int)}+wrap_Production :: T_Production ->+                   Inh_Production ->+                   Syn_Production+wrap_Production (T_Production sem) (Inh_Production _lhsIallnts _lhsIaroundMap _lhsIcVisitsMap _lhsIinh _lhsIinhMap _lhsImanualAttrDepMap _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_unbox _lhsIo_wantvisit _lhsIprefix _lhsIsyn _lhsIsynMap _lhsIvcount) =+    (let ( _lhsOadditionalDep,_lhsOaroundDep,_lhsOcProduction,_lhsOcons,_lhsOdirectDep,_lhsOerrors,_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOrules,_lhsOvcount) = sem _lhsIallnts _lhsIaroundMap _lhsIcVisitsMap _lhsIinh _lhsIinhMap _lhsImanualAttrDepMap _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_unbox _lhsIo_wantvisit _lhsIprefix _lhsIsyn _lhsIsynMap _lhsIvcount+     in  (Syn_Production _lhsOadditionalDep _lhsOaroundDep _lhsOcProduction _lhsOcons _lhsOdirectDep _lhsOerrors _lhsOinstDep _lhsOmergeDep _lhsOnAutoRules _lhsOnExplicitRules _lhsOrules _lhsOvcount))+sem_Production_Production :: ConstructorIdent ->+                             ([Identifier]) ->+                             ([Type]) ->+                             T_Children ->+                             T_Rules ->+                             T_TypeSigs ->+                             MaybeMacro ->+                             T_Production+sem_Production_Production con_ params_ constraints_ (T_Children children_) (T_Rules rules_) (T_TypeSigs typeSigs_) macro_ =+    (T_Production (\ _lhsIallnts+                     _lhsIaroundMap+                     _lhsIcVisitsMap+                     _lhsIinh+                     _lhsIinhMap+                     _lhsImanualAttrDepMap+                     _lhsImergeMap+                     _lhsInt+                     _lhsIo_case+                     _lhsIo_cata+                     _lhsIo_dovisit+                     _lhsIo_newtypes+                     _lhsIo_rename+                     _lhsIo_sem+                     _lhsIo_sig+                     _lhsIo_unbox+                     _lhsIo_wantvisit+                     _lhsIprefix+                     _lhsIsyn+                     _lhsIsynMap+                     _lhsIvcount ->+                       (let _childrenOcon :: Identifier+                            _rulesOcon :: Identifier+                            _rulesOchildNts :: (Map Identifier NontermIdent)+                            _rulesOchildInhs :: (Map Identifier Attributes)+                            _lhsOrules :: (Seq (Vertex,CRule))+                            _lhsOvcount :: Int+                            _lhsOadditionalDep :: (Seq Edge)+                            _rulesOsynsOfChildren :: (Map Identifier Attributes)+                            _rulesOinhsOfChildren :: (Map Identifier Attributes)+                            _lhsOmergeDep :: (Seq Edge)+                            _lhsOaroundDep :: (Seq Edge)+                            _lhsOcons :: ([ConstructorIdent])+                            _typeSigsOtypeSigs :: (Map Identifier Type)+                            _rulesOallTypeSigs :: (Map Identifier Type)+                            _lhsOcProduction :: CProduction+                            _lhsOdirectDep :: (Seq Edge)+                            _lhsOerrors :: (Seq Error)+                            _lhsOinstDep :: (Seq Edge)+                            _lhsOnAutoRules :: Int+                            _lhsOnExplicitRules :: Int+                            _childrenOallfields :: ([(Identifier,Type,ChildKind)])+                            _childrenOallnts :: ([Identifier])+                            _childrenOattrs :: ([(Identifier,Identifier)])+                            _childrenOinh :: Attributes+                            _childrenOinhMap :: (Map Identifier Attributes)+                            _childrenOmergeMap :: (Map Identifier (Identifier,[Identifier]))+                            _childrenOnt :: Identifier+                            _childrenOo_unbox :: Bool+                            _childrenOsyn :: Attributes+                            _childrenOsynMap :: (Map Identifier Attributes)+                            _rulesOallfields :: ([(Identifier,Type,ChildKind)])+                            _rulesOallnts :: ([Identifier])+                            _rulesOaltAttrs :: (Map AltAttr Vertex)+                            _rulesOattrs :: ([(Identifier,Identifier)])+                            _rulesOinh :: Attributes+                            _rulesOmergeMap :: (Map Identifier (Identifier,[Identifier]))+                            _rulesOnt :: Identifier+                            _rulesOo_case :: Bool+                            _rulesOo_cata :: Bool+                            _rulesOo_dovisit :: Bool+                            _rulesOo_newtypes :: Bool+                            _rulesOo_rename :: Bool+                            _rulesOo_sem :: Bool+                            _rulesOo_sig :: Bool+                            _rulesOo_wantvisit :: Bool+                            _rulesOprefix :: String+                            _rulesOsyn :: Attributes+                            _childrenIattributes :: ([(Identifier,Attributes,Attributes)])+                            _childrenIcollectChildrenInhs :: (Map Identifier Attributes )+                            _childrenIcollectChildrenSyns :: (Map Identifier Attributes )+                            _childrenIerrors :: (Seq Error)+                            _childrenIfields :: ([(Identifier,Type,ChildKind)])+                            _childrenIgathAltAttrs :: ([AltAttr])+                            _childrenIgathRules :: (Seq CRule)+                            _childrenIinhs :: (Seq (Identifier,Attributes))+                            _childrenInts :: (Seq (Identifier,NontermIdent))+                            _childrenIsinglevisits :: ([CRule])+                            _childrenIterminals :: ([Identifier])+                            _rulesIdirectDep :: (Seq Edge)+                            _rulesIerrors :: (Seq Error)+                            _rulesIgathAltAttrs :: ([AltAttr])+                            _rulesIgathRules :: (Seq CRule)+                            _rulesIinstDep :: (Seq Edge)+                            _rulesIinstVars :: ([Identifier])+                            _rulesIlocVars :: ([Identifier])+                            _rulesInAutoRules :: Int+                            _rulesInExplicitRules :: Int+                            _typeSigsItypeSigs :: (Map Identifier Type)+                            -- "src-ag/Order.ag"(line 94, column 16)+                            _childrenOcon =+                                ({-# LINE 94 "src-ag/Order.ag" #-}+                                 con_+                                 {-# LINE 3591 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 96, column 16)+                            _rulesOcon =+                                ({-# LINE 96 "src-ag/Order.ag" #-}+                                 con_+                                 {-# LINE 3597 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 173, column 18)+                            _gathAltAttrs =+                                ({-# LINE 173 "src-ag/Order.ag" #-}+                                 [ AltAttr _LHS inh True | inh <- Map.keys _lhsIinh ]+                                  ++ _childrenIgathAltAttrs+                                  ++ _rulesIgathAltAttrs+                                 {-# LINE 3605 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 189, column 17)+                            _altAttrs =+                                ({-# LINE 189 "src-ag/Order.ag" #-}+                                 Map.fromList (zip _gathAltAttrs [_lhsIvcount..])+                                 {-# LINE 3611 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 202, column 18)+                            _rulesOchildNts =+                                ({-# LINE 202 "src-ag/Order.ag" #-}+                                 Map.fromList (toList _childrenInts)+                                 {-# LINE 3617 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 203, column 19)+                            _rulesOchildInhs =+                                ({-# LINE 203 "src-ag/Order.ag" #-}+                                 Map.fromList (toList _childrenIinhs)+                                 {-# LINE 3623 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 209, column 18)+                            _inhRules =+                                ({-# LINE 209 "src-ag/Order.ag" #-}+                                 [ cRuleLhsInh inh _lhsInt con_ tp | (inh,tp) <- Map.assocs _lhsIinh ]+                                 {-# LINE 3629 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 210, column 19)+                            _gathRules =+                                ({-# LINE 210 "src-ag/Order.ag" #-}+                                 _inhRules ++ toList (_childrenIgathRules Seq.>< _rulesIgathRules)+                                 {-# LINE 3635 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 262, column 18)+                            _lhsOrules =+                                ({-# LINE 262 "src-ag/Order.ag" #-}+                                 Seq.fromList (zip [_lhsIvcount..] _gathRules)+                                 {-# LINE 3641 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 263, column 19)+                            _lhsOvcount =+                                ({-# LINE 263 "src-ag/Order.ag" #-}+                                 _lhsIvcount + length _gathRules+                                 {-# LINE 3647 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 290, column 7)+                            _manualDeps =+                                ({-# LINE 290 "src-ag/Order.ag" #-}+                                 Set.toList $ Map.findWithDefault Set.empty con_ $ Map.findWithDefault Map.empty _lhsInt _lhsImanualAttrDepMap+                                 {-# LINE 3653 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 293, column 7)+                            _lhsOadditionalDep =+                                ({-# LINE 293 "src-ag/Order.ag" #-}+                                 Seq.fromList [ (vertex True occA, vertex False occB)+                                              | Dependency occA occB <- _manualDeps+                                              , let vertex inout (OccAttr child nm)+                                                      | child == _LOC = findWithErr2 (AltAttr _LOC nm True) _altAttrs+                                                      | otherwise     = findWithErr2 (AltAttr child nm inout) _altAttrs+                                                    vertex _ (OccRule nm)+                                                      = findWithErr2 (AltAttr _LOC (Ident ("_rule_" ++ show nm) (getPos nm)) True) _altAttrs+                                              ]+                                 {-# LINE 3666 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 340, column 17)+                            _rulesOsynsOfChildren =+                                ({-# LINE 340 "src-ag/Order.ag" #-}+                                 _childrenIcollectChildrenSyns+                                 {-# LINE 3672 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 341, column 17)+                            _rulesOinhsOfChildren =+                                ({-# LINE 341 "src-ag/Order.ag" #-}+                                 _childrenIcollectChildrenInhs+                                 {-# LINE 3678 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 359, column 32)+                            _mergeMap =+                                ({-# LINE 359 "src-ag/Order.ag" #-}+                                 Map.findWithDefault Map.empty con_ _lhsImergeMap+                                 {-# LINE 3684 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 370, column 7)+                            _lhsOmergeDep =+                                ({-# LINE 370 "src-ag/Order.ag" #-}+                                 _mergeDep1     Seq.>< _mergeDep2+                                 {-# LINE 3690 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 371, column 7)+                            _mergeDep1 =+                                ({-# LINE 371 "src-ag/Order.ag" #-}+                                 Seq.fromList $+                                    [ (childVert, synVert)+                                    | childNm <- Map.keys _mergeMap+                                    , synNm <- Map.keys (findWithErr2 childNm _childrenIcollectChildrenSyns)+                                    , let childNm' = Ident (show childNm ++ "_merge") (getPos childNm)+                                          childAttr = AltAttr _LOC childNm' True+                                          synAttr  = AltAttr childNm synNm True+                                          childVert = findWithErr2 childAttr _altAttrs+                                          synVert  = findWithErr2 synAttr _altAttrs+                                    ]+                                 {-# LINE 3705 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 382, column 7)+                            _mergeDep2 =+                                ({-# LINE 382 "src-ag/Order.ag" #-}+                                 Seq.fromList $+                                    [ (mergedVert, sourceVert)+                                    | (childNm, (_,cs)) <- Map.assocs _mergeMap+                                    , c <- cs+                                    , synNm <- Map.keys (findWithErr2 childNm _childrenIcollectChildrenSyns)+                                    , let sourceAttr = AltAttr childNm synNm True+                                          mergedAttr = AltAttr c synNm True+                                          sourceVert = findWithErr2 sourceAttr _altAttrs+                                          mergedVert = findWithErr2 mergedAttr _altAttrs+                                    ]+                                 {-# LINE 3720 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 412, column 32)+                            _aroundMap =+                                ({-# LINE 412 "src-ag/Order.ag" #-}+                                 Map.findWithDefault Map.empty con_ _lhsIaroundMap+                                 {-# LINE 3726 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 419, column 6)+                            _aroundDep1 =+                                ({-# LINE 419 "src-ag/Order.ag" #-}+                                 Seq.fromList $+                                   [ (childVert, synVert)+                                   | childNm <- Map.keys _aroundMap+                                   , synNm <- Map.keys (findWithErr2 childNm _childrenIcollectChildrenSyns)+                                   , let childNm' = Ident (show childNm ++ "_around") (getPos childNm)+                                         childAttr = AltAttr _LOC childNm' True+                                         synAttr  = AltAttr childNm synNm True+                                         childVert = findWithErr2 childAttr _altAttrs+                                         synVert  = findWithErr2 synAttr _altAttrs+                                   ]+                                 {-# LINE 3741 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 430, column 6)+                            _aroundDep2 =+                                ({-# LINE 430 "src-ag/Order.ag" #-}+                                 Seq.fromList $+                                   [ (childVert, inhVert)+                                   | childNm <- Map.keys _aroundMap+                                   , inhNm <- Map.keys (findWithErr2 childNm _childrenIcollectChildrenInhs)+                                   , let childNm'  = Ident (show childNm ++ "_around") (getPos childNm)+                                         childAttr = AltAttr _LOC childNm' True+                                         inhAttr   = AltAttr childNm inhNm False+                                         childVert = findWithErr2 childAttr _altAttrs+                                         inhVert   = findWithErr2 inhAttr _altAttrs+                                   ]+                                 {-# LINE 3756 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 441, column 6)+                            _lhsOaroundDep =+                                ({-# LINE 441 "src-ag/Order.ag" #-}+                                 _aroundDep1     Seq.>< _aroundDep2+                                 {-# LINE 3762 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 523, column 18)+                            _lhsOcons =+                                ({-# LINE 523 "src-ag/Order.ag" #-}+                                 [con_]+                                 {-# LINE 3768 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 530, column 16)+                            _typeSigsOtypeSigs =+                                ({-# LINE 530 "src-ag/Order.ag" #-}+                                 Map.empty+                                 {-# LINE 3774 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 536, column 17)+                            _rulesOallTypeSigs =+                                ({-# LINE 536 "src-ag/Order.ag" #-}+                                 _typeSigsItypeSigs+                                 {-# LINE 3780 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 604, column 17)+                            _cVisits =+                                ({-# LINE 604 "src-ag/Order.ag" #-}+                                 if  _lhsIo_dovisit+                                      then let prodsVisitsMap = findWithErr1 "Production.cVisits.nt" _lhsInt _lhsIcVisitsMap+                                               visits = findWithErr1 "Production.cVisits.con" con_ prodsVisitsMap+                                            in visits+                                      else  let  vss = nubBy eqCRuleDefines _gathRules ++ _childrenIsinglevisits+                                            in  [CVisit _lhsIinh _lhsIsyn vss [] False]+                                 {-# LINE 3791 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 630, column 18)+                            _lhsOcProduction =+                                ({-# LINE 630 "src-ag/Order.ag" #-}+                                 CProduction con_ _cVisits _childrenIfields _childrenIterminals+                                 {-# LINE 3797 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 658, column 16)+                            _allfields =+                                ({-# LINE 658 "src-ag/Order.ag" #-}+                                 _childrenIfields+                                 {-# LINE 3803 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 658, column 16)+                            _attrs =+                                ({-# LINE 659 "src-ag/Order.ag" #-}+                                 map ((,) _LOC)  _rulesIlocVars +++                                 map ((,) _INST) _rulesIinstVars +++                                 map ((,) _LHS)  _inhnames +++                                 concat [map ((,) nm) (Map.keys as) | (nm,_,as) <- _childrenIattributes]+                                 {-# LINE 3812 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 658, column 16)+                            _inhnames =+                                ({-# LINE 663 "src-ag/Order.ag" #-}+                                 Map.keys _lhsIinh+                                 {-# LINE 3818 "dist/build/Order" #-}+                                 )+                            -- "src-ag/Order.ag"(line 658, column 16)+                            _synnames =+                                ({-# LINE 664 "src-ag/Order.ag" #-}+                                 Map.keys _lhsIsyn+                                 {-# LINE 3824 "dist/build/Order" #-}+                                 )+                            -- use rule "src-ag/Order.ag"(line 268, column 33)+                            _lhsOdirectDep =+                                ({-# LINE 268 "src-ag/Order.ag" #-}+                                 _rulesIdirectDep+                                 {-# LINE 3830 "dist/build/Order" #-}+                                 )+                            -- use rule "src-ag/Order.ag"(line 85, column 70)+                            _lhsOerrors =+                                ({-# LINE 85 "src-ag/Order.ag" #-}+                                 _childrenIerrors Seq.>< _rulesIerrors+                                 {-# LINE 3836 "dist/build/Order" #-}+                                 )+                            -- use rule "src-ag/Order.ag"(line 311, column 31)+                            _lhsOinstDep =+                                ({-# LINE 311 "src-ag/Order.ag" #-}+                                 _rulesIinstDep+                                 {-# LINE 3842 "dist/build/Order" #-}+                                 )+                            -- use rule "src-ag/Order.ag"(line 62, column 105)+                            _lhsOnAutoRules =+                                ({-# LINE 62 "src-ag/Order.ag" #-}+                                 _rulesInAutoRules+                                 {-# LINE 3848 "dist/build/Order" #-}+                                 )+                            -- use rule "src-ag/Order.ag"(line 62, column 105)+                            _lhsOnExplicitRules =+                                ({-# LINE 62 "src-ag/Order.ag" #-}+                                 _rulesInExplicitRules+                                 {-# LINE 3854 "dist/build/Order" #-}+                                 )+                            -- copy rule (from local)+                            _childrenOallfields =+                                ({-# LINE 655 "src-ag/Order.ag" #-}+                                 _allfields+                                 {-# LINE 3860 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _childrenOallnts =+                                ({-# LINE 648 "src-ag/Order.ag" #-}+                                 _lhsIallnts+                                 {-# LINE 3866 "dist/build/Order" #-}+                                 )+                            -- copy rule (from local)+                            _childrenOattrs =+                                ({-# LINE 655 "src-ag/Order.ag" #-}+                                 _attrs+                                 {-# LINE 3872 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _childrenOinh =+                                ({-# LINE 90 "src-ag/Order.ag" #-}+                                 _lhsIinh+                                 {-# LINE 3878 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _childrenOinhMap =+                                ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}+                                 _lhsIinhMap+                                 {-# LINE 3884 "dist/build/Order" #-}+                                 )+                            -- copy rule (from local)+                            _childrenOmergeMap =+                                ({-# LINE 361 "src-ag/Order.ag" #-}+                                 _mergeMap+                                 {-# LINE 3890 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _childrenOnt =+                                ({-# LINE 90 "src-ag/Order.ag" #-}+                                 _lhsInt+                                 {-# LINE 3896 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _childrenOo_unbox =+                                ({-# LINE 120 "src-ag/Order.ag" #-}+                                 _lhsIo_unbox+                                 {-# LINE 3902 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _childrenOsyn =+                                ({-# LINE 90 "src-ag/Order.ag" #-}+                                 _lhsIsyn+                                 {-# LINE 3908 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _childrenOsynMap =+                                ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}+                                 _lhsIsynMap+                                 {-# LINE 3914 "dist/build/Order" #-}+                                 )+                            -- copy rule (from local)+                            _rulesOallfields =+                                ({-# LINE 655 "src-ag/Order.ag" #-}+                                 _allfields+                                 {-# LINE 3920 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _rulesOallnts =+                                ({-# LINE 648 "src-ag/Order.ag" #-}+                                 _lhsIallnts+                                 {-# LINE 3926 "dist/build/Order" #-}+                                 )+                            -- copy rule (from local)+                            _rulesOaltAttrs =+                                ({-# LINE 187 "src-ag/Order.ag" #-}+                                 _altAttrs+                                 {-# LINE 3932 "dist/build/Order" #-}+                                 )+                            -- copy rule (from local)+                            _rulesOattrs =+                                ({-# LINE 655 "src-ag/Order.ag" #-}+                                 _attrs+                                 {-# LINE 3938 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _rulesOinh =+                                ({-# LINE 90 "src-ag/Order.ag" #-}+                                 _lhsIinh+                                 {-# LINE 3944 "dist/build/Order" #-}+                                 )+                            -- copy rule (from local)+                            _rulesOmergeMap =+                                ({-# LINE 361 "src-ag/Order.ag" #-}+                                 _mergeMap+                                 {-# LINE 3950 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _rulesOnt =+                                ({-# LINE 90 "src-ag/Order.ag" #-}+                                 _lhsInt+                                 {-# LINE 3956 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _rulesOo_case =+                                ({-# LINE 118 "src-ag/Order.ag" #-}+                                 _lhsIo_case+                                 {-# LINE 3962 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _rulesOo_cata =+                                ({-# LINE 112 "src-ag/Order.ag" #-}+                                 _lhsIo_cata+                                 {-# LINE 3968 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _rulesOo_dovisit =+                                ({-# LINE 117 "src-ag/Order.ag" #-}+                                 _lhsIo_dovisit+                                 {-# LINE 3974 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _rulesOo_newtypes =+                                ({-# LINE 111 "src-ag/Order.ag" #-}+                                 _lhsIo_newtypes+                                 {-# LINE 3980 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _rulesOo_rename =+                                ({-# LINE 115 "src-ag/Order.ag" #-}+                                 _lhsIo_rename+                                 {-# LINE 3986 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _rulesOo_sem =+                                ({-# LINE 114 "src-ag/Order.ag" #-}+                                 _lhsIo_sem+                                 {-# LINE 3992 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _rulesOo_sig =+                                ({-# LINE 113 "src-ag/Order.ag" #-}+                                 _lhsIo_sig+                                 {-# LINE 3998 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _rulesOo_wantvisit =+                                ({-# LINE 116 "src-ag/Order.ag" #-}+                                 _lhsIo_wantvisit+                                 {-# LINE 4004 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _rulesOprefix =+                                ({-# LINE 119 "src-ag/Order.ag" #-}+                                 _lhsIprefix+                                 {-# LINE 4010 "dist/build/Order" #-}+                                 )+                            -- copy rule (down)+                            _rulesOsyn =+                                ({-# LINE 90 "src-ag/Order.ag" #-}+                                 _lhsIsyn+                                 {-# LINE 4016 "dist/build/Order" #-}+                                 )+                            ( _childrenIattributes,_childrenIcollectChildrenInhs,_childrenIcollectChildrenSyns,_childrenIerrors,_childrenIfields,_childrenIgathAltAttrs,_childrenIgathRules,_childrenIinhs,_childrenInts,_childrenIsinglevisits,_childrenIterminals) =+                                children_ _childrenOallfields _childrenOallnts _childrenOattrs _childrenOcon _childrenOinh _childrenOinhMap _childrenOmergeMap _childrenOnt _childrenOo_unbox _childrenOsyn _childrenOsynMap+                            ( _rulesIdirectDep,_rulesIerrors,_rulesIgathAltAttrs,_rulesIgathRules,_rulesIinstDep,_rulesIinstVars,_rulesIlocVars,_rulesInAutoRules,_rulesInExplicitRules) =+                                rules_ _rulesOallTypeSigs _rulesOallfields _rulesOallnts _rulesOaltAttrs _rulesOattrs _rulesOchildInhs _rulesOchildNts _rulesOcon _rulesOinh _rulesOinhsOfChildren _rulesOmergeMap _rulesOnt _rulesOo_case _rulesOo_cata _rulesOo_dovisit _rulesOo_newtypes _rulesOo_rename _rulesOo_sem _rulesOo_sig _rulesOo_wantvisit _rulesOprefix _rulesOsyn _rulesOsynsOfChildren+                            ( _typeSigsItypeSigs) =+                                typeSigs_ _typeSigsOtypeSigs+                            ___node =+                                (Syn_Production _lhsOadditionalDep _lhsOaroundDep _lhsOcProduction _lhsOcons _lhsOdirectDep _lhsOerrors _lhsOinstDep _lhsOmergeDep _lhsOnAutoRules _lhsOnExplicitRules _lhsOrules _lhsOvcount)+                        in  ( _lhsOadditionalDep,_lhsOaroundDep,_lhsOcProduction,_lhsOcons,_lhsOdirectDep,_lhsOerrors,_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOrules,_lhsOvcount))))+-- Productions -------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allnts               : [Identifier]+         aroundMap            : Map ConstructorIdent (Map Identifier [Expression])+         cVisitsMap           : CVisitsMap+         inh                  : Attributes+         inhMap               : Map Identifier Attributes+         manualAttrDepMap     : AttrOrderMap+         mergeMap             : Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))+         nt                   : Identifier+         o_case               : Bool+         o_cata               : Bool+         o_dovisit            : Bool+         o_newtypes           : Bool+         o_rename             : Bool+         o_sem                : Bool+         o_sig                : Bool+         o_unbox              : Bool+         o_wantvisit          : Bool+         prefix               : String+         syn                  : Attributes+         synMap               : Map Identifier Attributes+      chained attribute:+         vcount               : Int+      synthesized attributes:+         additionalDep        : Seq Edge+         aroundDep            : Seq Edge+         cProductions         : CProductions+         cons                 : [ConstructorIdent]+         directDep            : Seq Edge+         errors               : Seq Error+         instDep              : Seq Edge+         mergeDep             : Seq Edge+         nAutoRules           : Int+         nExplicitRules       : Int+         rules                : Seq (Vertex,CRule)+   alternatives:+      alternative Cons:+         child hd             : Production +         child tl             : Productions +      alternative Nil:+-}+-- cata+sem_Productions :: Productions ->+                   T_Productions+sem_Productions list =+    (Prelude.foldr sem_Productions_Cons sem_Productions_Nil (Prelude.map sem_Production list))+-- semantic domain+newtype T_Productions = T_Productions (([Identifier]) ->+                                       (Map ConstructorIdent (Map Identifier [Expression])) ->+                                       CVisitsMap ->+                                       Attributes ->+                                       (Map Identifier Attributes) ->+                                       AttrOrderMap ->+                                       (Map ConstructorIdent (Map Identifier (Identifier,[Identifier]))) ->+                                       Identifier ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       Bool ->+                                       String ->+                                       Attributes ->+                                       (Map Identifier Attributes) ->+                                       Int ->+                                       ( (Seq Edge),(Seq Edge),CProductions,([ConstructorIdent]),(Seq Edge),(Seq Error),(Seq Edge),(Seq Edge),Int,Int,(Seq (Vertex,CRule)),Int))+data Inh_Productions = Inh_Productions {allnts_Inh_Productions :: !(([Identifier])),aroundMap_Inh_Productions :: !((Map ConstructorIdent (Map Identifier [Expression]))),cVisitsMap_Inh_Productions :: !(CVisitsMap),inh_Inh_Productions :: !(Attributes),inhMap_Inh_Productions :: !((Map Identifier Attributes)),manualAttrDepMap_Inh_Productions :: !(AttrOrderMap),mergeMap_Inh_Productions :: !((Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))),nt_Inh_Productions :: !(Identifier),o_case_Inh_Productions :: !(Bool),o_cata_Inh_Productions :: !(Bool),o_dovisit_Inh_Productions :: !(Bool),o_newtypes_Inh_Productions :: !(Bool),o_rename_Inh_Productions :: !(Bool),o_sem_Inh_Productions :: !(Bool),o_sig_Inh_Productions :: !(Bool),o_unbox_Inh_Productions :: !(Bool),o_wantvisit_Inh_Productions :: !(Bool),prefix_Inh_Productions :: !(String),syn_Inh_Productions :: !(Attributes),synMap_Inh_Productions :: !((Map Identifier Attributes)),vcount_Inh_Productions :: !(Int)}+data Syn_Productions = Syn_Productions {additionalDep_Syn_Productions :: !((Seq Edge)),aroundDep_Syn_Productions :: !((Seq Edge)),cProductions_Syn_Productions :: !(CProductions),cons_Syn_Productions :: !(([ConstructorIdent])),directDep_Syn_Productions :: !((Seq Edge)),errors_Syn_Productions :: !((Seq Error)),instDep_Syn_Productions :: !((Seq Edge)),mergeDep_Syn_Productions :: !((Seq Edge)),nAutoRules_Syn_Productions :: !(Int),nExplicitRules_Syn_Productions :: !(Int),rules_Syn_Productions :: !((Seq (Vertex,CRule))),vcount_Syn_Productions :: !(Int)}+wrap_Productions :: T_Productions ->+                    Inh_Productions ->+                    Syn_Productions+wrap_Productions (T_Productions sem) (Inh_Productions _lhsIallnts _lhsIaroundMap _lhsIcVisitsMap _lhsIinh _lhsIinhMap _lhsImanualAttrDepMap _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_unbox _lhsIo_wantvisit _lhsIprefix _lhsIsyn _lhsIsynMap _lhsIvcount) =+    (let ( _lhsOadditionalDep,_lhsOaroundDep,_lhsOcProductions,_lhsOcons,_lhsOdirectDep,_lhsOerrors,_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOrules,_lhsOvcount) = sem _lhsIallnts _lhsIaroundMap _lhsIcVisitsMap _lhsIinh _lhsIinhMap _lhsImanualAttrDepMap _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_unbox _lhsIo_wantvisit _lhsIprefix _lhsIsyn _lhsIsynMap _lhsIvcount+     in  (Syn_Productions _lhsOadditionalDep _lhsOaroundDep _lhsOcProductions _lhsOcons _lhsOdirectDep _lhsOerrors _lhsOinstDep _lhsOmergeDep _lhsOnAutoRules _lhsOnExplicitRules _lhsOrules _lhsOvcount))+sem_Productions_Cons :: T_Production ->+                        T_Productions ->+                        T_Productions+sem_Productions_Cons (T_Production hd_) (T_Productions tl_) =+    (T_Productions (\ _lhsIallnts+                      _lhsIaroundMap+                      _lhsIcVisitsMap+                      _lhsIinh+                      _lhsIinhMap+                      _lhsImanualAttrDepMap+                      _lhsImergeMap+                      _lhsInt+                      _lhsIo_case+                      _lhsIo_cata+                      _lhsIo_dovisit+                      _lhsIo_newtypes+                      _lhsIo_rename+                      _lhsIo_sem+                      _lhsIo_sig+                      _lhsIo_unbox+                      _lhsIo_wantvisit+                      _lhsIprefix+                      _lhsIsyn+                      _lhsIsynMap+                      _lhsIvcount ->+                        (let _lhsOcProductions :: CProductions+                             _lhsOadditionalDep :: (Seq Edge)+                             _lhsOaroundDep :: (Seq Edge)+                             _lhsOcons :: ([ConstructorIdent])+                             _lhsOdirectDep :: (Seq Edge)+                             _lhsOerrors :: (Seq Error)+                             _lhsOinstDep :: (Seq Edge)+                             _lhsOmergeDep :: (Seq Edge)+                             _lhsOnAutoRules :: Int+                             _lhsOnExplicitRules :: Int+                             _lhsOrules :: (Seq (Vertex,CRule))+                             _lhsOvcount :: Int+                             _hdOallnts :: ([Identifier])+                             _hdOaroundMap :: (Map ConstructorIdent (Map Identifier [Expression]))+                             _hdOcVisitsMap :: CVisitsMap+                             _hdOinh :: Attributes+                             _hdOinhMap :: (Map Identifier Attributes)+                             _hdOmanualAttrDepMap :: AttrOrderMap+                             _hdOmergeMap :: (Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))+                             _hdOnt :: Identifier+                             _hdOo_case :: Bool+                             _hdOo_cata :: Bool+                             _hdOo_dovisit :: Bool+                             _hdOo_newtypes :: Bool+                             _hdOo_rename :: Bool+                             _hdOo_sem :: Bool+                             _hdOo_sig :: Bool+                             _hdOo_unbox :: Bool+                             _hdOo_wantvisit :: Bool+                             _hdOprefix :: String+                             _hdOsyn :: Attributes+                             _hdOsynMap :: (Map Identifier Attributes)+                             _hdOvcount :: Int+                             _tlOallnts :: ([Identifier])+                             _tlOaroundMap :: (Map ConstructorIdent (Map Identifier [Expression]))+                             _tlOcVisitsMap :: CVisitsMap+                             _tlOinh :: Attributes+                             _tlOinhMap :: (Map Identifier Attributes)+                             _tlOmanualAttrDepMap :: AttrOrderMap+                             _tlOmergeMap :: (Map ConstructorIdent (Map Identifier (Identifier,[Identifier])))+                             _tlOnt :: Identifier+                             _tlOo_case :: Bool+                             _tlOo_cata :: Bool+                             _tlOo_dovisit :: Bool+                             _tlOo_newtypes :: Bool+                             _tlOo_rename :: Bool+                             _tlOo_sem :: Bool+                             _tlOo_sig :: Bool+                             _tlOo_unbox :: Bool+                             _tlOo_wantvisit :: Bool+                             _tlOprefix :: String+                             _tlOsyn :: Attributes+                             _tlOsynMap :: (Map Identifier Attributes)+                             _tlOvcount :: Int+                             _hdIadditionalDep :: (Seq Edge)+                             _hdIaroundDep :: (Seq Edge)+                             _hdIcProduction :: CProduction+                             _hdIcons :: ([ConstructorIdent])+                             _hdIdirectDep :: (Seq Edge)+                             _hdIerrors :: (Seq Error)+                             _hdIinstDep :: (Seq Edge)+                             _hdImergeDep :: (Seq Edge)+                             _hdInAutoRules :: Int+                             _hdInExplicitRules :: Int+                             _hdIrules :: (Seq (Vertex,CRule))+                             _hdIvcount :: Int+                             _tlIadditionalDep :: (Seq Edge)+                             _tlIaroundDep :: (Seq Edge)+                             _tlIcProductions :: CProductions+                             _tlIcons :: ([ConstructorIdent])+                             _tlIdirectDep :: (Seq Edge)+                             _tlIerrors :: (Seq Error)+                             _tlIinstDep :: (Seq Edge)+                             _tlImergeDep :: (Seq Edge)+                             _tlInAutoRules :: Int+                             _tlInExplicitRules :: Int+                             _tlIrules :: (Seq (Vertex,CRule))+                             _tlIvcount :: Int+                             -- "src-ag/Order.ag"(line 627, column 12)+                             _lhsOcProductions =+                                 ({-# LINE 627 "src-ag/Order.ag" #-}+                                  _hdIcProduction : _tlIcProductions+                                  {-# LINE 4214 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 282, column 60)+                             _lhsOadditionalDep =+                                 ({-# LINE 282 "src-ag/Order.ag" #-}+                                  _hdIadditionalDep Seq.>< _tlIadditionalDep+                                  {-# LINE 4220 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 403, column 24)+                             _lhsOaroundDep =+                                 ({-# LINE 403 "src-ag/Order.ag" #-}+                                  _hdIaroundDep Seq.>< _tlIaroundDep+                                  {-# LINE 4226 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 521, column 40)+                             _lhsOcons =+                                 ({-# LINE 521 "src-ag/Order.ag" #-}+                                  _hdIcons ++ _tlIcons+                                  {-# LINE 4232 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 268, column 33)+                             _lhsOdirectDep =+                                 ({-# LINE 268 "src-ag/Order.ag" #-}+                                  _hdIdirectDep Seq.>< _tlIdirectDep+                                  {-# LINE 4238 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 85, column 70)+                             _lhsOerrors =+                                 ({-# LINE 85 "src-ag/Order.ag" #-}+                                  _hdIerrors Seq.>< _tlIerrors+                                  {-# LINE 4244 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 311, column 31)+                             _lhsOinstDep =+                                 ({-# LINE 311 "src-ag/Order.ag" #-}+                                  _hdIinstDep Seq.>< _tlIinstDep+                                  {-# LINE 4250 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 366, column 18)+                             _lhsOmergeDep =+                                 ({-# LINE 366 "src-ag/Order.ag" #-}+                                  _hdImergeDep Seq.>< _tlImergeDep+                                  {-# LINE 4256 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 62, column 105)+                             _lhsOnAutoRules =+                                 ({-# LINE 62 "src-ag/Order.ag" #-}+                                  _hdInAutoRules + _tlInAutoRules+                                  {-# LINE 4262 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 62, column 105)+                             _lhsOnExplicitRules =+                                 ({-# LINE 62 "src-ag/Order.ag" #-}+                                  _hdInExplicitRules + _tlInExplicitRules+                                  {-# LINE 4268 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 258, column 18)+                             _lhsOrules =+                                 ({-# LINE 258 "src-ag/Order.ag" #-}+                                  _hdIrules Seq.>< _tlIrules+                                  {-# LINE 4274 "dist/build/Order" #-}+                                  )+                             -- copy rule (up)+                             _lhsOvcount =+                                 ({-# LINE 257 "src-ag/Order.ag" #-}+                                  _tlIvcount+                                  {-# LINE 4280 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOallnts =+                                 ({-# LINE 648 "src-ag/Order.ag" #-}+                                  _lhsIallnts+                                  {-# LINE 4286 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOaroundMap =+                                 ({-# LINE 409 "src-ag/Order.ag" #-}+                                  _lhsIaroundMap+                                  {-# LINE 4292 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOcVisitsMap =+                                 ({-# LINE 602 "src-ag/Order.ag" #-}+                                  _lhsIcVisitsMap+                                  {-# LINE 4298 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOinh =+                                 ({-# LINE 90 "src-ag/Order.ag" #-}+                                  _lhsIinh+                                  {-# LINE 4304 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOinhMap =+                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}+                                  _lhsIinhMap+                                  {-# LINE 4310 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOmanualAttrDepMap =+                                 ({-# LINE 282 "src-ag/Order.ag" #-}+                                  _lhsImanualAttrDepMap+                                  {-# LINE 4316 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOmergeMap =+                                 ({-# LINE 356 "src-ag/Order.ag" #-}+                                  _lhsImergeMap+                                  {-# LINE 4322 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOnt =+                                 ({-# LINE 90 "src-ag/Order.ag" #-}+                                  _lhsInt+                                  {-# LINE 4328 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOo_case =+                                 ({-# LINE 118 "src-ag/Order.ag" #-}+                                  _lhsIo_case+                                  {-# LINE 4334 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOo_cata =+                                 ({-# LINE 112 "src-ag/Order.ag" #-}+                                  _lhsIo_cata+                                  {-# LINE 4340 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOo_dovisit =+                                 ({-# LINE 117 "src-ag/Order.ag" #-}+                                  _lhsIo_dovisit+                                  {-# LINE 4346 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOo_newtypes =+                                 ({-# LINE 111 "src-ag/Order.ag" #-}+                                  _lhsIo_newtypes+                                  {-# LINE 4352 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOo_rename =+                                 ({-# LINE 115 "src-ag/Order.ag" #-}+                                  _lhsIo_rename+                                  {-# LINE 4358 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOo_sem =+                                 ({-# LINE 114 "src-ag/Order.ag" #-}+                                  _lhsIo_sem+                                  {-# LINE 4364 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOo_sig =+                                 ({-# LINE 113 "src-ag/Order.ag" #-}+                                  _lhsIo_sig+                                  {-# LINE 4370 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOo_unbox =+                                 ({-# LINE 120 "src-ag/Order.ag" #-}+                                  _lhsIo_unbox+                                  {-# LINE 4376 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOo_wantvisit =+                                 ({-# LINE 116 "src-ag/Order.ag" #-}+                                  _lhsIo_wantvisit+                                  {-# LINE 4382 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOprefix =+                                 ({-# LINE 119 "src-ag/Order.ag" #-}+                                  _lhsIprefix+                                  {-# LINE 4388 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOsyn =+                                 ({-# LINE 90 "src-ag/Order.ag" #-}+                                  _lhsIsyn+                                  {-# LINE 4394 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOsynMap =+                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}+                                  _lhsIsynMap+                                  {-# LINE 4400 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _hdOvcount =+                                 ({-# LINE 257 "src-ag/Order.ag" #-}+                                  _lhsIvcount+                                  {-# LINE 4406 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOallnts =+                                 ({-# LINE 648 "src-ag/Order.ag" #-}+                                  _lhsIallnts+                                  {-# LINE 4412 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOaroundMap =+                                 ({-# LINE 409 "src-ag/Order.ag" #-}+                                  _lhsIaroundMap+                                  {-# LINE 4418 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOcVisitsMap =+                                 ({-# LINE 602 "src-ag/Order.ag" #-}+                                  _lhsIcVisitsMap+                                  {-# LINE 4424 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOinh =+                                 ({-# LINE 90 "src-ag/Order.ag" #-}+                                  _lhsIinh+                                  {-# LINE 4430 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOinhMap =+                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}+                                  _lhsIinhMap+                                  {-# LINE 4436 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOmanualAttrDepMap =+                                 ({-# LINE 282 "src-ag/Order.ag" #-}+                                  _lhsImanualAttrDepMap+                                  {-# LINE 4442 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOmergeMap =+                                 ({-# LINE 356 "src-ag/Order.ag" #-}+                                  _lhsImergeMap+                                  {-# LINE 4448 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOnt =+                                 ({-# LINE 90 "src-ag/Order.ag" #-}+                                  _lhsInt+                                  {-# LINE 4454 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOo_case =+                                 ({-# LINE 118 "src-ag/Order.ag" #-}+                                  _lhsIo_case+                                  {-# LINE 4460 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOo_cata =+                                 ({-# LINE 112 "src-ag/Order.ag" #-}+                                  _lhsIo_cata+                                  {-# LINE 4466 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOo_dovisit =+                                 ({-# LINE 117 "src-ag/Order.ag" #-}+                                  _lhsIo_dovisit+                                  {-# LINE 4472 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOo_newtypes =+                                 ({-# LINE 111 "src-ag/Order.ag" #-}+                                  _lhsIo_newtypes+                                  {-# LINE 4478 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOo_rename =+                                 ({-# LINE 115 "src-ag/Order.ag" #-}+                                  _lhsIo_rename+                                  {-# LINE 4484 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOo_sem =+                                 ({-# LINE 114 "src-ag/Order.ag" #-}+                                  _lhsIo_sem+                                  {-# LINE 4490 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOo_sig =+                                 ({-# LINE 113 "src-ag/Order.ag" #-}+                                  _lhsIo_sig+                                  {-# LINE 4496 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOo_unbox =+                                 ({-# LINE 120 "src-ag/Order.ag" #-}+                                  _lhsIo_unbox+                                  {-# LINE 4502 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOo_wantvisit =+                                 ({-# LINE 116 "src-ag/Order.ag" #-}+                                  _lhsIo_wantvisit+                                  {-# LINE 4508 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOprefix =+                                 ({-# LINE 119 "src-ag/Order.ag" #-}+                                  _lhsIprefix+                                  {-# LINE 4514 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOsyn =+                                 ({-# LINE 90 "src-ag/Order.ag" #-}+                                  _lhsIsyn+                                  {-# LINE 4520 "dist/build/Order" #-}+                                  )+                             -- copy rule (down)+                             _tlOsynMap =+                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}+                                  _lhsIsynMap+                                  {-# LINE 4526 "dist/build/Order" #-}+                                  )+                             -- copy rule (chain)+                             _tlOvcount =+                                 ({-# LINE 257 "src-ag/Order.ag" #-}+                                  _hdIvcount+                                  {-# LINE 4532 "dist/build/Order" #-}+                                  )+                             ( _hdIadditionalDep,_hdIaroundDep,_hdIcProduction,_hdIcons,_hdIdirectDep,_hdIerrors,_hdIinstDep,_hdImergeDep,_hdInAutoRules,_hdInExplicitRules,_hdIrules,_hdIvcount) =+                                 hd_ _hdOallnts _hdOaroundMap _hdOcVisitsMap _hdOinh _hdOinhMap _hdOmanualAttrDepMap _hdOmergeMap _hdOnt _hdOo_case _hdOo_cata _hdOo_dovisit _hdOo_newtypes _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_unbox _hdOo_wantvisit _hdOprefix _hdOsyn _hdOsynMap _hdOvcount+                             ( _tlIadditionalDep,_tlIaroundDep,_tlIcProductions,_tlIcons,_tlIdirectDep,_tlIerrors,_tlIinstDep,_tlImergeDep,_tlInAutoRules,_tlInExplicitRules,_tlIrules,_tlIvcount) =+                                 tl_ _tlOallnts _tlOaroundMap _tlOcVisitsMap _tlOinh _tlOinhMap _tlOmanualAttrDepMap _tlOmergeMap _tlOnt _tlOo_case _tlOo_cata _tlOo_dovisit _tlOo_newtypes _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_unbox _tlOo_wantvisit _tlOprefix _tlOsyn _tlOsynMap _tlOvcount+                             ___node =+                                 (Syn_Productions _lhsOadditionalDep _lhsOaroundDep _lhsOcProductions _lhsOcons _lhsOdirectDep _lhsOerrors _lhsOinstDep _lhsOmergeDep _lhsOnAutoRules _lhsOnExplicitRules _lhsOrules _lhsOvcount)+                         in  ( _lhsOadditionalDep,_lhsOaroundDep,_lhsOcProductions,_lhsOcons,_lhsOdirectDep,_lhsOerrors,_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOrules,_lhsOvcount))))+sem_Productions_Nil :: T_Productions+sem_Productions_Nil =+    (T_Productions (\ _lhsIallnts+                      _lhsIaroundMap+                      _lhsIcVisitsMap+                      _lhsIinh+                      _lhsIinhMap+                      _lhsImanualAttrDepMap+                      _lhsImergeMap+                      _lhsInt+                      _lhsIo_case+                      _lhsIo_cata+                      _lhsIo_dovisit+                      _lhsIo_newtypes+                      _lhsIo_rename+                      _lhsIo_sem+                      _lhsIo_sig+                      _lhsIo_unbox+                      _lhsIo_wantvisit+                      _lhsIprefix+                      _lhsIsyn+                      _lhsIsynMap+                      _lhsIvcount ->+                        (let _lhsOcProductions :: CProductions+                             _lhsOadditionalDep :: (Seq Edge)+                             _lhsOaroundDep :: (Seq Edge)+                             _lhsOcons :: ([ConstructorIdent])+                             _lhsOdirectDep :: (Seq Edge)+                             _lhsOerrors :: (Seq Error)+                             _lhsOinstDep :: (Seq Edge)+                             _lhsOmergeDep :: (Seq Edge)+                             _lhsOnAutoRules :: Int+                             _lhsOnExplicitRules :: Int+                             _lhsOrules :: (Seq (Vertex,CRule))+                             _lhsOvcount :: Int+                             -- "src-ag/Order.ag"(line 628, column 12)+                             _lhsOcProductions =+                                 ({-# LINE 628 "src-ag/Order.ag" #-}+                                  []+                                  {-# LINE 4580 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 282, column 60)+                             _lhsOadditionalDep =+                                 ({-# LINE 282 "src-ag/Order.ag" #-}+                                  Seq.empty+                                  {-# LINE 4586 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 403, column 24)+                             _lhsOaroundDep =+                                 ({-# LINE 403 "src-ag/Order.ag" #-}+                                  Seq.empty+                                  {-# LINE 4592 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 521, column 40)+                             _lhsOcons =+                                 ({-# LINE 521 "src-ag/Order.ag" #-}+                                  []+                                  {-# LINE 4598 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 268, column 33)+                             _lhsOdirectDep =+                                 ({-# LINE 268 "src-ag/Order.ag" #-}+                                  Seq.empty+                                  {-# LINE 4604 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 85, column 70)+                             _lhsOerrors =+                                 ({-# LINE 85 "src-ag/Order.ag" #-}+                                  Seq.empty+                                  {-# LINE 4610 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 311, column 31)+                             _lhsOinstDep =+                                 ({-# LINE 311 "src-ag/Order.ag" #-}+                                  Seq.empty+                                  {-# LINE 4616 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 366, column 18)+                             _lhsOmergeDep =+                                 ({-# LINE 366 "src-ag/Order.ag" #-}+                                  Seq.empty+                                  {-# LINE 4622 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 62, column 105)+                             _lhsOnAutoRules =+                                 ({-# LINE 62 "src-ag/Order.ag" #-}+                                  0+                                  {-# LINE 4628 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 62, column 105)+                             _lhsOnExplicitRules =+                                 ({-# LINE 62 "src-ag/Order.ag" #-}+                                  0+                                  {-# LINE 4634 "dist/build/Order" #-}+                                  )+                             -- use rule "src-ag/Order.ag"(line 258, column 18)+                             _lhsOrules =+                                 ({-# LINE 258 "src-ag/Order.ag" #-}+                                  Seq.empty+                                  {-# LINE 4640 "dist/build/Order" #-}+                                  )+                             -- copy rule (chain)+                             _lhsOvcount =+                                 ({-# LINE 257 "src-ag/Order.ag" #-}+                                  _lhsIvcount+                                  {-# LINE 4646 "dist/build/Order" #-}+                                  )+                             ___node =+                                 (Syn_Productions _lhsOadditionalDep _lhsOaroundDep _lhsOcProductions _lhsOcons _lhsOdirectDep _lhsOerrors _lhsOinstDep _lhsOmergeDep _lhsOnAutoRules _lhsOnExplicitRules _lhsOrules _lhsOvcount)+                         in  ( _lhsOadditionalDep,_lhsOaroundDep,_lhsOcProductions,_lhsOcons,_lhsOdirectDep,_lhsOerrors,_lhsOinstDep,_lhsOmergeDep,_lhsOnAutoRules,_lhsOnExplicitRules,_lhsOrules,_lhsOvcount))))+-- Rule --------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allTypeSigs          : Map Identifier Type+         allfields            : [(Identifier,Type,ChildKind)]+         allnts               : [Identifier]+         altAttrs             : Map AltAttr Vertex+         attrs                : [(Identifier,Identifier)]+         childInhs            : Map Identifier Attributes+         childNts             : Map Identifier NontermIdent+         con                  : Identifier+         inh                  : Attributes+         inhsOfChildren       : Map Identifier Attributes+         mergeMap             : Map Identifier (Identifier,[Identifier])+         nt                   : Identifier+         o_case               : Bool+         o_cata               : Bool+         o_dovisit            : Bool+         o_newtypes           : Bool+         o_rename             : Bool+         o_sem                : Bool+         o_sig                : Bool+         o_wantvisit          : Bool+         prefix               : String+         syn                  : Attributes+         synsOfChildren       : Map Identifier Attributes+      synthesized attributes:+         directDep            : Seq Edge+         errors               : Seq Error+         gathAltAttrs         : [AltAttr]+         gathRules            : Seq CRule+         instDep              : Seq Edge+         instVars             : [Identifier]+         locVars              : [Identifier]+         nAutoRules           : Int+         nExplicitRules       : Int+   alternatives:+      alternative Rule:+         child mbName         : {Maybe Identifier}+         child pattern        : Pattern +         child rhs            : Expression +         child owrt           : {Bool}+         child origin         : {String}+         child explicit       : {Bool}+         child pure           : {Bool}+         child identity       : {Bool}+         child mbError        : {Maybe Error}+         child eager          : {Bool}+         visit 0:+            local defines     : _+            local gathRules   : _+            local instDep1    : _+            local instDep2    : _+-}+-- cata+sem_Rule :: Rule ->+            T_Rule+sem_Rule (Rule _mbName _pattern _rhs _owrt _origin _explicit _pure _identity _mbError _eager) =+    (sem_Rule_Rule _mbName (sem_Pattern _pattern) (sem_Expression _rhs) _owrt _origin _explicit _pure _identity _mbError _eager)+-- semantic domain+newtype T_Rule = T_Rule ((Map Identifier Type) ->+                         ([(Identifier,Type,ChildKind)]) ->+                         ([Identifier]) ->+                         (Map AltAttr Vertex) ->+                         ([(Identifier,Identifier)]) ->+                         (Map Identifier Attributes) ->+                         (Map Identifier NontermIdent) ->+                         Identifier ->+                         Attributes ->+                         (Map Identifier Attributes) ->+                         (Map Identifier (Identifier,[Identifier])) ->+                         Identifier ->+                         Bool ->+                         Bool ->+                         Bool ->+                         Bool ->+                         Bool ->+                         Bool ->+                         Bool ->+                         Bool ->+                         String ->+                         Attributes ->+                         (Map Identifier Attributes) ->+                         ( (Seq Edge),(Seq Error),([AltAttr]),(Seq CRule),(Seq Edge),([Identifier]),([Identifier]),Int,Int))+data Inh_Rule = Inh_Rule {allTypeSigs_Inh_Rule :: !((Map Identifier Type)),allfields_Inh_Rule :: !(([(Identifier,Type,ChildKind)])),allnts_Inh_Rule :: !(([Identifier])),altAttrs_Inh_Rule :: !((Map AltAttr Vertex)),attrs_Inh_Rule :: !(([(Identifier,Identifier)])),childInhs_Inh_Rule :: !((Map Identifier Attributes)),childNts_Inh_Rule :: !((Map Identifier NontermIdent)),con_Inh_Rule :: !(Identifier),inh_Inh_Rule :: !(Attributes),inhsOfChildren_Inh_Rule :: !((Map Identifier Attributes)),mergeMap_Inh_Rule :: !((Map Identifier (Identifier,[Identifier]))),nt_Inh_Rule :: !(Identifier),o_case_Inh_Rule :: !(Bool),o_cata_Inh_Rule :: !(Bool),o_dovisit_Inh_Rule :: !(Bool),o_newtypes_Inh_Rule :: !(Bool),o_rename_Inh_Rule :: !(Bool),o_sem_Inh_Rule :: !(Bool),o_sig_Inh_Rule :: !(Bool),o_wantvisit_Inh_Rule :: !(Bool),prefix_Inh_Rule :: !(String),syn_Inh_Rule :: !(Attributes),synsOfChildren_Inh_Rule :: !((Map Identifier Attributes))}+data Syn_Rule = Syn_Rule {directDep_Syn_Rule :: !((Seq Edge)),errors_Syn_Rule :: !((Seq Error)),gathAltAttrs_Syn_Rule :: !(([AltAttr])),gathRules_Syn_Rule :: !((Seq CRule)),instDep_Syn_Rule :: !((Seq Edge)),instVars_Syn_Rule :: !(([Identifier])),locVars_Syn_Rule :: !(([Identifier])),nAutoRules_Syn_Rule :: !(Int),nExplicitRules_Syn_Rule :: !(Int)}+wrap_Rule :: T_Rule ->+             Inh_Rule ->+             Syn_Rule+wrap_Rule (T_Rule sem) (Inh_Rule _lhsIallTypeSigs _lhsIallfields _lhsIallnts _lhsIaltAttrs _lhsIattrs _lhsIchildInhs _lhsIchildNts _lhsIcon _lhsIinh _lhsIinhsOfChildren _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_wantvisit _lhsIprefix _lhsIsyn _lhsIsynsOfChildren) =+    (let ( _lhsOdirectDep,_lhsOerrors,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinstDep,_lhsOinstVars,_lhsOlocVars,_lhsOnAutoRules,_lhsOnExplicitRules) = sem _lhsIallTypeSigs _lhsIallfields _lhsIallnts _lhsIaltAttrs _lhsIattrs _lhsIchildInhs _lhsIchildNts _lhsIcon _lhsIinh _lhsIinhsOfChildren _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_wantvisit _lhsIprefix _lhsIsyn _lhsIsynsOfChildren+     in  (Syn_Rule _lhsOdirectDep _lhsOerrors _lhsOgathAltAttrs _lhsOgathRules _lhsOinstDep _lhsOinstVars _lhsOlocVars _lhsOnAutoRules _lhsOnExplicitRules))+sem_Rule_Rule :: (Maybe Identifier) ->+                 T_Pattern ->+                 T_Expression ->+                 Bool ->+                 String ->+                 Bool ->+                 Bool ->+                 Bool ->+                 (Maybe Error) ->+                 Bool ->+                 T_Rule+sem_Rule_Rule mbName_ (T_Pattern pattern_) (T_Expression rhs_) owrt_ origin_ explicit_ pure_ identity_ mbError_ eager_ =+    (T_Rule (\ _lhsIallTypeSigs+               _lhsIallfields+               _lhsIallnts+               _lhsIaltAttrs+               _lhsIattrs+               _lhsIchildInhs+               _lhsIchildNts+               _lhsIcon+               _lhsIinh+               _lhsIinhsOfChildren+               _lhsImergeMap+               _lhsInt+               _lhsIo_case+               _lhsIo_cata+               _lhsIo_dovisit+               _lhsIo_newtypes+               _lhsIo_rename+               _lhsIo_sem+               _lhsIo_sig+               _lhsIo_wantvisit+               _lhsIprefix+               _lhsIsyn+               _lhsIsynsOfChildren ->+                 (let _lhsOnExplicitRules :: Int+                      _lhsOnAutoRules :: Int+                      _lhsOdirectDep :: (Seq Edge)+                      _lhsOinstDep :: (Seq Edge)+                      _lhsOerrors :: (Seq Error)+                      _lhsOgathAltAttrs :: ([AltAttr])+                      _lhsOgathRules :: (Seq CRule)+                      _lhsOinstVars :: ([Identifier])+                      _lhsOlocVars :: ([Identifier])+                      _patternOallTypeSigs :: (Map Identifier Type)+                      _patternOaltAttrs :: (Map AltAttr Vertex)+                      _patternOcon :: Identifier+                      _patternOinh :: Attributes+                      _patternOnt :: Identifier+                      _patternOsyn :: Attributes+                      _rhsOallfields :: ([(Identifier,Type,ChildKind)])+                      _rhsOallnts :: ([Identifier])+                      _rhsOattrs :: ([(Identifier,Identifier)])+                      _rhsOcon :: Identifier+                      _rhsOmergeMap :: (Map Identifier (Identifier,[Identifier]))+                      _rhsOnt :: Identifier+                      _patternIcopy :: Pattern+                      _patternIerrors :: (Seq Error)+                      _patternIgathAltAttrs :: ([AltAttr])+                      _patternIinstVars :: ([Identifier])+                      _patternIlocVars :: ([Identifier])+                      _patternIpatternAttrs :: ([(Identifier,Identifier,Bool)])+                      _rhsIallRhsVars :: (Set (Identifier,Identifier))+                      _rhsIcopy :: Expression+                      _rhsIerrors :: (Seq Error)+                      _rhsItextLines :: ([String])+                      _rhsIusedAttrs :: ([(Identifier,Identifier)])+                      _rhsIusedFields :: ([Identifier])+                      _rhsIusedLocals :: ([Identifier])+                      -- "src-ag/Order.ag"(line 65, column 11)+                      _lhsOnExplicitRules =+                          ({-# LINE 65 "src-ag/Order.ag" #-}+                           if explicit_+                           then 1+                           else 0+                           {-# LINE 4819 "dist/build/Order" #-}+                           )+                      -- "src-ag/Order.ag"(line 68, column 11)+                      _lhsOnAutoRules =+                          ({-# LINE 68 "src-ag/Order.ag" #-}+                           if startsWith "use rule" origin_ || startsWith "copy rule" origin_+                           then 1+                           else 0+                           {-# LINE 4827 "dist/build/Order" #-}+                           )+                      -- "src-ag/Order.ag"(line 218, column 12)+                      _defines =+                          ({-# LINE 218 "src-ag/Order.ag" #-}+                           let  tp field attr      | field == _LOC || field == _INST+                                                                    = Map.lookup attr _lhsIallTypeSigs+                                                    | field == _LHS = Map.lookup attr _lhsIsyn+                                                    | otherwise     = Map.lookup attr (findWithErr1 "Rule.defines.tp" field _lhsIchildInhs)+                                typ :: Pattern -> Maybe Type+                                typ (Alias field attr _)       = tp field attr+                                typ (Underscore _)             = Nothing+                                typ _                          = Nothing+                           in Map.fromList  [ (findWithErr1 "Rule.defines" aa _lhsIaltAttrs, (field,attr,(tp field attr)))+                                            | (field,attr,isLocalOrInst) <- _patternIpatternAttrs+                                            , let aa = AltAttr field attr isLocalOrInst+                                            ]+                           {-# LINE 4844 "dist/build/Order" #-}+                           )+                      -- "src-ag/Order.ag"(line 232, column 12)+                      _gathRules =+                          ({-# LINE 232 "src-ag/Order.ag" #-}+                           let childnt field = Map.lookup field _lhsIchildNts+                           in Seq.fromList [ CRule attr False True _lhsInt _lhsIcon field (childnt field) tp _patternIcopy _rhsItextLines _defines owrt_ origin_ _rhsIallRhsVars explicit_ mbName_+                                           | (field,attr,tp) <- Map.elems _defines+                                           ]+                           {-# LINE 4853 "dist/build/Order" #-}+                           )+                      -- "src-ag/Order.ag"(line 270, column 12)+                      _lhsOdirectDep =+                          ({-# LINE 270 "src-ag/Order.ag" #-}+                           let  defined = Map.keys _defines+                                used =  [ Map.lookup (AltAttr field attr True) _lhsIaltAttrs | (field,attr) <- _rhsIusedAttrs]+                                        ++ [ Map.lookup (AltAttr _LOC attr True) _lhsIaltAttrs | attr <- _rhsIusedLocals ++ _rhsIusedFields ]+                           in Seq.fromList [ (x,y) | Just x <- used, y <- defined ]+                           {-# LINE 4862 "dist/build/Order" #-}+                           )+                      -- "src-ag/Order.ag"(line 314, column 6)+                      _instDep1 =+                          ({-# LINE 314 "src-ag/Order.ag" #-}+                           Seq.fromList $+                             [ (instVert, synVert)+                             | (field,instNm,_) <- Map.elems _defines+                             , field == _INST+                             , synNm <- Map.keys (findWithErr2 instNm _lhsIsynsOfChildren)+                             , let instAttr = AltAttr _INST instNm True+                                   synAttr  = AltAttr instNm synNm True+                                   instVert = findWithErr2 instAttr _lhsIaltAttrs+                                   synVert  = findWithErr2 synAttr _lhsIaltAttrs+                             ]+                           {-# LINE 4877 "dist/build/Order" #-}+                           )+                      -- "src-ag/Order.ag"(line 325, column 6)+                      _instDep2 =+                          ({-# LINE 325 "src-ag/Order.ag" #-}+                           Seq.fromList $+                             [ (instVert, inhVert)+                             | (field,instNm,_) <- Map.elems _defines+                             , field == _INST+                             , inhNm <- Map.keys (findWithErr2 instNm _lhsIinhsOfChildren)+                             , let instAttr = AltAttr _INST instNm True+                                   inhAttr  = AltAttr instNm inhNm False+                                   instVert = findWithErr2 instAttr _lhsIaltAttrs+                                   inhVert  = findWithErr2 inhAttr _lhsIaltAttrs+                             ]+                           {-# LINE 4892 "dist/build/Order" #-}+                           )+                      -- "src-ag/Order.ag"(line 336, column 6)+                      _lhsOinstDep =+                          ({-# LINE 336 "src-ag/Order.ag" #-}+                           _instDep1     Seq.>< _instDep2+                           {-# LINE 4898 "dist/build/Order" #-}+                           )+                      -- use rule "src-ag/Order.ag"(line 85, column 70)+                      _lhsOerrors =+                          ({-# LINE 85 "src-ag/Order.ag" #-}+                           _patternIerrors Seq.>< _rhsIerrors+                           {-# LINE 4904 "dist/build/Order" #-}+                           )+                      -- use rule "src-ag/Order.ag"(line 171, column 68)+                      _lhsOgathAltAttrs =+                          ({-# LINE 171 "src-ag/Order.ag" #-}+                           _patternIgathAltAttrs+                           {-# LINE 4910 "dist/build/Order" #-}+                           )+                      -- use rule "src-ag/Order.ag"(line 207, column 23)+                      _lhsOgathRules =+                          ({-# LINE 207 "src-ag/Order.ag" #-}+                           _gathRules+                           {-# LINE 4916 "dist/build/Order" #-}+                           )+                      -- use rule "src-ag/Order.ag"(line 678, column 86)+                      _lhsOinstVars =+                          ({-# LINE 678 "src-ag/Order.ag" #-}+                           _patternIinstVars+                           {-# LINE 4922 "dist/build/Order" #-}+                           )+                      -- use rule "src-ag/Order.ag"(line 678, column 48)+                      _lhsOlocVars =+                          ({-# LINE 678 "src-ag/Order.ag" #-}+                           _patternIlocVars+                           {-# LINE 4928 "dist/build/Order" #-}+                           )+                      -- copy rule (down)+                      _patternOallTypeSigs =+                          ({-# LINE 534 "src-ag/Order.ag" #-}+                           _lhsIallTypeSigs+                           {-# LINE 4934 "dist/build/Order" #-}+                           )+                      -- copy rule (down)+                      _patternOaltAttrs =+                          ({-# LINE 187 "src-ag/Order.ag" #-}+                           _lhsIaltAttrs+                           {-# LINE 4940 "dist/build/Order" #-}+                           )+                      -- copy rule (down)+                      _patternOcon =+                          ({-# LINE 91 "src-ag/Order.ag" #-}+                           _lhsIcon+                           {-# LINE 4946 "dist/build/Order" #-}+                           )+                      -- copy rule (down)+                      _patternOinh =+                          ({-# LINE 90 "src-ag/Order.ag" #-}+                           _lhsIinh+                           {-# LINE 4952 "dist/build/Order" #-}+                           )+                      -- copy rule (down)+                      _patternOnt =+                          ({-# LINE 90 "src-ag/Order.ag" #-}+                           _lhsInt+                           {-# LINE 4958 "dist/build/Order" #-}+                           )+                      -- copy rule (down)+                      _patternOsyn =+                          ({-# LINE 90 "src-ag/Order.ag" #-}+                           _lhsIsyn+                           {-# LINE 4964 "dist/build/Order" #-}+                           )+                      -- copy rule (down)+                      _rhsOallfields =+                          ({-# LINE 447 "src-ag/Order.ag" #-}+                           _lhsIallfields+                           {-# LINE 4970 "dist/build/Order" #-}+                           )+                      -- copy rule (down)+                      _rhsOallnts =+                          ({-# LINE 448 "src-ag/Order.ag" #-}+                           _lhsIallnts+                           {-# LINE 4976 "dist/build/Order" #-}+                           )+                      -- copy rule (down)+                      _rhsOattrs =+                          ({-# LINE 449 "src-ag/Order.ag" #-}+                           _lhsIattrs+                           {-# LINE 4982 "dist/build/Order" #-}+                           )+                      -- copy rule (down)+                      _rhsOcon =+                          ({-# LINE 446 "src-ag/Order.ag" #-}+                           _lhsIcon+                           {-# LINE 4988 "dist/build/Order" #-}+                           )+                      -- copy rule (down)+                      _rhsOmergeMap =+                          ({-# LINE 361 "src-ag/Order.ag" #-}+                           _lhsImergeMap+                           {-# LINE 4994 "dist/build/Order" #-}+                           )+                      -- copy rule (down)+                      _rhsOnt =+                          ({-# LINE 446 "src-ag/Order.ag" #-}+                           _lhsInt+                           {-# LINE 5000 "dist/build/Order" #-}+                           )+                      ( _patternIcopy,_patternIerrors,_patternIgathAltAttrs,_patternIinstVars,_patternIlocVars,_patternIpatternAttrs) =+                          pattern_ _patternOallTypeSigs _patternOaltAttrs _patternOcon _patternOinh _patternOnt _patternOsyn+                      ( _rhsIallRhsVars,_rhsIcopy,_rhsIerrors,_rhsItextLines,_rhsIusedAttrs,_rhsIusedFields,_rhsIusedLocals) =+                          rhs_ _rhsOallfields _rhsOallnts _rhsOattrs _rhsOcon _rhsOmergeMap _rhsOnt+                      ___node =+                          (Syn_Rule _lhsOdirectDep _lhsOerrors _lhsOgathAltAttrs _lhsOgathRules _lhsOinstDep _lhsOinstVars _lhsOlocVars _lhsOnAutoRules _lhsOnExplicitRules)+                  in  ( _lhsOdirectDep,_lhsOerrors,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinstDep,_lhsOinstVars,_lhsOlocVars,_lhsOnAutoRules,_lhsOnExplicitRules))))+-- Rules -------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allTypeSigs          : Map Identifier Type+         allfields            : [(Identifier,Type,ChildKind)]+         allnts               : [Identifier]+         altAttrs             : Map AltAttr Vertex+         attrs                : [(Identifier,Identifier)]+         childInhs            : Map Identifier Attributes+         childNts             : Map Identifier NontermIdent+         con                  : Identifier+         inh                  : Attributes+         inhsOfChildren       : Map Identifier Attributes+         mergeMap             : Map Identifier (Identifier,[Identifier])+         nt                   : Identifier+         o_case               : Bool+         o_cata               : Bool+         o_dovisit            : Bool+         o_newtypes           : Bool+         o_rename             : Bool+         o_sem                : Bool+         o_sig                : Bool+         o_wantvisit          : Bool+         prefix               : String+         syn                  : Attributes+         synsOfChildren       : Map Identifier Attributes+      synthesized attributes:+         directDep            : Seq Edge+         errors               : Seq Error+         gathAltAttrs         : [AltAttr]+         gathRules            : Seq CRule+         instDep              : Seq Edge+         instVars             : [Identifier]+         locVars              : [Identifier]+         nAutoRules           : Int+         nExplicitRules       : Int+   alternatives:+      alternative Cons:+         child hd             : Rule +         child tl             : Rules +      alternative Nil:+-}+-- cata+sem_Rules :: Rules ->+             T_Rules+sem_Rules list =+    (Prelude.foldr sem_Rules_Cons sem_Rules_Nil (Prelude.map sem_Rule list))+-- semantic domain+newtype T_Rules = T_Rules ((Map Identifier Type) ->+                           ([(Identifier,Type,ChildKind)]) ->+                           ([Identifier]) ->+                           (Map AltAttr Vertex) ->+                           ([(Identifier,Identifier)]) ->+                           (Map Identifier Attributes) ->+                           (Map Identifier NontermIdent) ->+                           Identifier ->+                           Attributes ->+                           (Map Identifier Attributes) ->+                           (Map Identifier (Identifier,[Identifier])) ->+                           Identifier ->+                           Bool ->+                           Bool ->+                           Bool ->+                           Bool ->+                           Bool ->+                           Bool ->+                           Bool ->+                           Bool ->+                           String ->+                           Attributes ->+                           (Map Identifier Attributes) ->+                           ( (Seq Edge),(Seq Error),([AltAttr]),(Seq CRule),(Seq Edge),([Identifier]),([Identifier]),Int,Int))+data Inh_Rules = Inh_Rules {allTypeSigs_Inh_Rules :: !((Map Identifier Type)),allfields_Inh_Rules :: !(([(Identifier,Type,ChildKind)])),allnts_Inh_Rules :: !(([Identifier])),altAttrs_Inh_Rules :: !((Map AltAttr Vertex)),attrs_Inh_Rules :: !(([(Identifier,Identifier)])),childInhs_Inh_Rules :: !((Map Identifier Attributes)),childNts_Inh_Rules :: !((Map Identifier NontermIdent)),con_Inh_Rules :: !(Identifier),inh_Inh_Rules :: !(Attributes),inhsOfChildren_Inh_Rules :: !((Map Identifier Attributes)),mergeMap_Inh_Rules :: !((Map Identifier (Identifier,[Identifier]))),nt_Inh_Rules :: !(Identifier),o_case_Inh_Rules :: !(Bool),o_cata_Inh_Rules :: !(Bool),o_dovisit_Inh_Rules :: !(Bool),o_newtypes_Inh_Rules :: !(Bool),o_rename_Inh_Rules :: !(Bool),o_sem_Inh_Rules :: !(Bool),o_sig_Inh_Rules :: !(Bool),o_wantvisit_Inh_Rules :: !(Bool),prefix_Inh_Rules :: !(String),syn_Inh_Rules :: !(Attributes),synsOfChildren_Inh_Rules :: !((Map Identifier Attributes))}+data Syn_Rules = Syn_Rules {directDep_Syn_Rules :: !((Seq Edge)),errors_Syn_Rules :: !((Seq Error)),gathAltAttrs_Syn_Rules :: !(([AltAttr])),gathRules_Syn_Rules :: !((Seq CRule)),instDep_Syn_Rules :: !((Seq Edge)),instVars_Syn_Rules :: !(([Identifier])),locVars_Syn_Rules :: !(([Identifier])),nAutoRules_Syn_Rules :: !(Int),nExplicitRules_Syn_Rules :: !(Int)}+wrap_Rules :: T_Rules ->+              Inh_Rules ->+              Syn_Rules+wrap_Rules (T_Rules sem) (Inh_Rules _lhsIallTypeSigs _lhsIallfields _lhsIallnts _lhsIaltAttrs _lhsIattrs _lhsIchildInhs _lhsIchildNts _lhsIcon _lhsIinh _lhsIinhsOfChildren _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_wantvisit _lhsIprefix _lhsIsyn _lhsIsynsOfChildren) =+    (let ( _lhsOdirectDep,_lhsOerrors,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinstDep,_lhsOinstVars,_lhsOlocVars,_lhsOnAutoRules,_lhsOnExplicitRules) = sem _lhsIallTypeSigs _lhsIallfields _lhsIallnts _lhsIaltAttrs _lhsIattrs _lhsIchildInhs _lhsIchildNts _lhsIcon _lhsIinh _lhsIinhsOfChildren _lhsImergeMap _lhsInt _lhsIo_case _lhsIo_cata _lhsIo_dovisit _lhsIo_newtypes _lhsIo_rename _lhsIo_sem _lhsIo_sig _lhsIo_wantvisit _lhsIprefix _lhsIsyn _lhsIsynsOfChildren+     in  (Syn_Rules _lhsOdirectDep _lhsOerrors _lhsOgathAltAttrs _lhsOgathRules _lhsOinstDep _lhsOinstVars _lhsOlocVars _lhsOnAutoRules _lhsOnExplicitRules))+sem_Rules_Cons :: T_Rule ->+                  T_Rules ->+                  T_Rules+sem_Rules_Cons (T_Rule hd_) (T_Rules tl_) =+    (T_Rules (\ _lhsIallTypeSigs+                _lhsIallfields+                _lhsIallnts+                _lhsIaltAttrs+                _lhsIattrs+                _lhsIchildInhs+                _lhsIchildNts+                _lhsIcon+                _lhsIinh+                _lhsIinhsOfChildren+                _lhsImergeMap+                _lhsInt+                _lhsIo_case+                _lhsIo_cata+                _lhsIo_dovisit+                _lhsIo_newtypes+                _lhsIo_rename+                _lhsIo_sem+                _lhsIo_sig+                _lhsIo_wantvisit+                _lhsIprefix+                _lhsIsyn+                _lhsIsynsOfChildren ->+                  (let _lhsOdirectDep :: (Seq Edge)+                       _lhsOerrors :: (Seq Error)+                       _lhsOgathAltAttrs :: ([AltAttr])+                       _lhsOgathRules :: (Seq CRule)+                       _lhsOinstDep :: (Seq Edge)+                       _lhsOinstVars :: ([Identifier])+                       _lhsOlocVars :: ([Identifier])+                       _lhsOnAutoRules :: Int+                       _lhsOnExplicitRules :: Int+                       _hdOallTypeSigs :: (Map Identifier Type)+                       _hdOallfields :: ([(Identifier,Type,ChildKind)])+                       _hdOallnts :: ([Identifier])+                       _hdOaltAttrs :: (Map AltAttr Vertex)+                       _hdOattrs :: ([(Identifier,Identifier)])+                       _hdOchildInhs :: (Map Identifier Attributes)+                       _hdOchildNts :: (Map Identifier NontermIdent)+                       _hdOcon :: Identifier+                       _hdOinh :: Attributes+                       _hdOinhsOfChildren :: (Map Identifier Attributes)+                       _hdOmergeMap :: (Map Identifier (Identifier,[Identifier]))+                       _hdOnt :: Identifier+                       _hdOo_case :: Bool+                       _hdOo_cata :: Bool+                       _hdOo_dovisit :: Bool+                       _hdOo_newtypes :: Bool+                       _hdOo_rename :: Bool+                       _hdOo_sem :: Bool+                       _hdOo_sig :: Bool+                       _hdOo_wantvisit :: Bool+                       _hdOprefix :: String+                       _hdOsyn :: Attributes+                       _hdOsynsOfChildren :: (Map Identifier Attributes)+                       _tlOallTypeSigs :: (Map Identifier Type)+                       _tlOallfields :: ([(Identifier,Type,ChildKind)])+                       _tlOallnts :: ([Identifier])+                       _tlOaltAttrs :: (Map AltAttr Vertex)+                       _tlOattrs :: ([(Identifier,Identifier)])+                       _tlOchildInhs :: (Map Identifier Attributes)+                       _tlOchildNts :: (Map Identifier NontermIdent)+                       _tlOcon :: Identifier+                       _tlOinh :: Attributes+                       _tlOinhsOfChildren :: (Map Identifier Attributes)+                       _tlOmergeMap :: (Map Identifier (Identifier,[Identifier]))+                       _tlOnt :: Identifier+                       _tlOo_case :: Bool+                       _tlOo_cata :: Bool+                       _tlOo_dovisit :: Bool+                       _tlOo_newtypes :: Bool+                       _tlOo_rename :: Bool+                       _tlOo_sem :: Bool+                       _tlOo_sig :: Bool+                       _tlOo_wantvisit :: Bool+                       _tlOprefix :: String+                       _tlOsyn :: Attributes+                       _tlOsynsOfChildren :: (Map Identifier Attributes)+                       _hdIdirectDep :: (Seq Edge)+                       _hdIerrors :: (Seq Error)+                       _hdIgathAltAttrs :: ([AltAttr])+                       _hdIgathRules :: (Seq CRule)+                       _hdIinstDep :: (Seq Edge)+                       _hdIinstVars :: ([Identifier])+                       _hdIlocVars :: ([Identifier])+                       _hdInAutoRules :: Int+                       _hdInExplicitRules :: Int+                       _tlIdirectDep :: (Seq Edge)+                       _tlIerrors :: (Seq Error)+                       _tlIgathAltAttrs :: ([AltAttr])+                       _tlIgathRules :: (Seq CRule)+                       _tlIinstDep :: (Seq Edge)+                       _tlIinstVars :: ([Identifier])+                       _tlIlocVars :: ([Identifier])+                       _tlInAutoRules :: Int+                       _tlInExplicitRules :: Int+                       -- use rule "src-ag/Order.ag"(line 268, column 33)+                       _lhsOdirectDep =+                           ({-# LINE 268 "src-ag/Order.ag" #-}+                            _hdIdirectDep Seq.>< _tlIdirectDep+                            {-# LINE 5194 "dist/build/Order" #-}+                            )+                       -- use rule "src-ag/Order.ag"(line 85, column 70)+                       _lhsOerrors =+                           ({-# LINE 85 "src-ag/Order.ag" #-}+                            _hdIerrors Seq.>< _tlIerrors+                            {-# LINE 5200 "dist/build/Order" #-}+                            )+                       -- use rule "src-ag/Order.ag"(line 171, column 68)+                       _lhsOgathAltAttrs =+                           ({-# LINE 171 "src-ag/Order.ag" #-}+                            _hdIgathAltAttrs ++ _tlIgathAltAttrs+                            {-# LINE 5206 "dist/build/Order" #-}+                            )+                       -- use rule "src-ag/Order.ag"(line 207, column 23)+                       _lhsOgathRules =+                           ({-# LINE 207 "src-ag/Order.ag" #-}+                            _hdIgathRules Seq.>< _tlIgathRules+                            {-# LINE 5212 "dist/build/Order" #-}+                            )+                       -- use rule "src-ag/Order.ag"(line 311, column 31)+                       _lhsOinstDep =+                           ({-# LINE 311 "src-ag/Order.ag" #-}+                            _hdIinstDep Seq.>< _tlIinstDep+                            {-# LINE 5218 "dist/build/Order" #-}+                            )+                       -- use rule "src-ag/Order.ag"(line 678, column 86)+                       _lhsOinstVars =+                           ({-# LINE 678 "src-ag/Order.ag" #-}+                            _hdIinstVars ++ _tlIinstVars+                            {-# LINE 5224 "dist/build/Order" #-}+                            )+                       -- use rule "src-ag/Order.ag"(line 678, column 48)+                       _lhsOlocVars =+                           ({-# LINE 678 "src-ag/Order.ag" #-}+                            _hdIlocVars ++ _tlIlocVars+                            {-# LINE 5230 "dist/build/Order" #-}+                            )+                       -- use rule "src-ag/Order.ag"(line 62, column 105)+                       _lhsOnAutoRules =+                           ({-# LINE 62 "src-ag/Order.ag" #-}+                            _hdInAutoRules + _tlInAutoRules+                            {-# LINE 5236 "dist/build/Order" #-}+                            )+                       -- use rule "src-ag/Order.ag"(line 62, column 105)+                       _lhsOnExplicitRules =+                           ({-# LINE 62 "src-ag/Order.ag" #-}+                            _hdInExplicitRules + _tlInExplicitRules+                            {-# LINE 5242 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOallTypeSigs =+                           ({-# LINE 534 "src-ag/Order.ag" #-}+                            _lhsIallTypeSigs+                            {-# LINE 5248 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOallfields =+                           ({-# LINE 655 "src-ag/Order.ag" #-}+                            _lhsIallfields+                            {-# LINE 5254 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOallnts =+                           ({-# LINE 648 "src-ag/Order.ag" #-}+                            _lhsIallnts+                            {-# LINE 5260 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOaltAttrs =+                           ({-# LINE 187 "src-ag/Order.ag" #-}+                            _lhsIaltAttrs+                            {-# LINE 5266 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOattrs =+                           ({-# LINE 655 "src-ag/Order.ag" #-}+                            _lhsIattrs+                            {-# LINE 5272 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOchildInhs =+                           ({-# LINE 200 "src-ag/Order.ag" #-}+                            _lhsIchildInhs+                            {-# LINE 5278 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOchildNts =+                           ({-# LINE 199 "src-ag/Order.ag" #-}+                            _lhsIchildNts+                            {-# LINE 5284 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOcon =+                           ({-# LINE 91 "src-ag/Order.ag" #-}+                            _lhsIcon+                            {-# LINE 5290 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOinh =+                           ({-# LINE 90 "src-ag/Order.ag" #-}+                            _lhsIinh+                            {-# LINE 5296 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOinhsOfChildren =+                           ({-# LINE 338 "src-ag/Order.ag" #-}+                            _lhsIinhsOfChildren+                            {-# LINE 5302 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOmergeMap =+                           ({-# LINE 361 "src-ag/Order.ag" #-}+                            _lhsImergeMap+                            {-# LINE 5308 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOnt =+                           ({-# LINE 90 "src-ag/Order.ag" #-}+                            _lhsInt+                            {-# LINE 5314 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOo_case =+                           ({-# LINE 118 "src-ag/Order.ag" #-}+                            _lhsIo_case+                            {-# LINE 5320 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOo_cata =+                           ({-# LINE 112 "src-ag/Order.ag" #-}+                            _lhsIo_cata+                            {-# LINE 5326 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOo_dovisit =+                           ({-# LINE 117 "src-ag/Order.ag" #-}+                            _lhsIo_dovisit+                            {-# LINE 5332 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOo_newtypes =+                           ({-# LINE 111 "src-ag/Order.ag" #-}+                            _lhsIo_newtypes+                            {-# LINE 5338 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOo_rename =+                           ({-# LINE 115 "src-ag/Order.ag" #-}+                            _lhsIo_rename+                            {-# LINE 5344 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOo_sem =+                           ({-# LINE 114 "src-ag/Order.ag" #-}+                            _lhsIo_sem+                            {-# LINE 5350 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOo_sig =+                           ({-# LINE 113 "src-ag/Order.ag" #-}+                            _lhsIo_sig+                            {-# LINE 5356 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOo_wantvisit =+                           ({-# LINE 116 "src-ag/Order.ag" #-}+                            _lhsIo_wantvisit+                            {-# LINE 5362 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOprefix =+                           ({-# LINE 119 "src-ag/Order.ag" #-}+                            _lhsIprefix+                            {-# LINE 5368 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOsyn =+                           ({-# LINE 90 "src-ag/Order.ag" #-}+                            _lhsIsyn+                            {-# LINE 5374 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _hdOsynsOfChildren =+                           ({-# LINE 338 "src-ag/Order.ag" #-}+                            _lhsIsynsOfChildren+                            {-# LINE 5380 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOallTypeSigs =+                           ({-# LINE 534 "src-ag/Order.ag" #-}+                            _lhsIallTypeSigs+                            {-# LINE 5386 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOallfields =+                           ({-# LINE 655 "src-ag/Order.ag" #-}+                            _lhsIallfields+                            {-# LINE 5392 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOallnts =+                           ({-# LINE 648 "src-ag/Order.ag" #-}+                            _lhsIallnts+                            {-# LINE 5398 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOaltAttrs =+                           ({-# LINE 187 "src-ag/Order.ag" #-}+                            _lhsIaltAttrs+                            {-# LINE 5404 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOattrs =+                           ({-# LINE 655 "src-ag/Order.ag" #-}+                            _lhsIattrs+                            {-# LINE 5410 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOchildInhs =+                           ({-# LINE 200 "src-ag/Order.ag" #-}+                            _lhsIchildInhs+                            {-# LINE 5416 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOchildNts =+                           ({-# LINE 199 "src-ag/Order.ag" #-}+                            _lhsIchildNts+                            {-# LINE 5422 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOcon =+                           ({-# LINE 91 "src-ag/Order.ag" #-}+                            _lhsIcon+                            {-# LINE 5428 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOinh =+                           ({-# LINE 90 "src-ag/Order.ag" #-}+                            _lhsIinh+                            {-# LINE 5434 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOinhsOfChildren =+                           ({-# LINE 338 "src-ag/Order.ag" #-}+                            _lhsIinhsOfChildren+                            {-# LINE 5440 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOmergeMap =+                           ({-# LINE 361 "src-ag/Order.ag" #-}+                            _lhsImergeMap+                            {-# LINE 5446 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOnt =+                           ({-# LINE 90 "src-ag/Order.ag" #-}+                            _lhsInt+                            {-# LINE 5452 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOo_case =+                           ({-# LINE 118 "src-ag/Order.ag" #-}+                            _lhsIo_case+                            {-# LINE 5458 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOo_cata =+                           ({-# LINE 112 "src-ag/Order.ag" #-}+                            _lhsIo_cata+                            {-# LINE 5464 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOo_dovisit =+                           ({-# LINE 117 "src-ag/Order.ag" #-}+                            _lhsIo_dovisit+                            {-# LINE 5470 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOo_newtypes =+                           ({-# LINE 111 "src-ag/Order.ag" #-}+                            _lhsIo_newtypes+                            {-# LINE 5476 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOo_rename =+                           ({-# LINE 115 "src-ag/Order.ag" #-}+                            _lhsIo_rename+                            {-# LINE 5482 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOo_sem =+                           ({-# LINE 114 "src-ag/Order.ag" #-}+                            _lhsIo_sem+                            {-# LINE 5488 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOo_sig =+                           ({-# LINE 113 "src-ag/Order.ag" #-}+                            _lhsIo_sig+                            {-# LINE 5494 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOo_wantvisit =+                           ({-# LINE 116 "src-ag/Order.ag" #-}+                            _lhsIo_wantvisit+                            {-# LINE 5500 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOprefix =+                           ({-# LINE 119 "src-ag/Order.ag" #-}+                            _lhsIprefix+                            {-# LINE 5506 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOsyn =+                           ({-# LINE 90 "src-ag/Order.ag" #-}+                            _lhsIsyn+                            {-# LINE 5512 "dist/build/Order" #-}+                            )+                       -- copy rule (down)+                       _tlOsynsOfChildren =+                           ({-# LINE 338 "src-ag/Order.ag" #-}+                            _lhsIsynsOfChildren+                            {-# LINE 5518 "dist/build/Order" #-}+                            )+                       ( _hdIdirectDep,_hdIerrors,_hdIgathAltAttrs,_hdIgathRules,_hdIinstDep,_hdIinstVars,_hdIlocVars,_hdInAutoRules,_hdInExplicitRules) =+                           hd_ _hdOallTypeSigs _hdOallfields _hdOallnts _hdOaltAttrs _hdOattrs _hdOchildInhs _hdOchildNts _hdOcon _hdOinh _hdOinhsOfChildren _hdOmergeMap _hdOnt _hdOo_case _hdOo_cata _hdOo_dovisit _hdOo_newtypes _hdOo_rename _hdOo_sem _hdOo_sig _hdOo_wantvisit _hdOprefix _hdOsyn _hdOsynsOfChildren+                       ( _tlIdirectDep,_tlIerrors,_tlIgathAltAttrs,_tlIgathRules,_tlIinstDep,_tlIinstVars,_tlIlocVars,_tlInAutoRules,_tlInExplicitRules) =+                           tl_ _tlOallTypeSigs _tlOallfields _tlOallnts _tlOaltAttrs _tlOattrs _tlOchildInhs _tlOchildNts _tlOcon _tlOinh _tlOinhsOfChildren _tlOmergeMap _tlOnt _tlOo_case _tlOo_cata _tlOo_dovisit _tlOo_newtypes _tlOo_rename _tlOo_sem _tlOo_sig _tlOo_wantvisit _tlOprefix _tlOsyn _tlOsynsOfChildren+                       ___node =+                           (Syn_Rules _lhsOdirectDep _lhsOerrors _lhsOgathAltAttrs _lhsOgathRules _lhsOinstDep _lhsOinstVars _lhsOlocVars _lhsOnAutoRules _lhsOnExplicitRules)+                   in  ( _lhsOdirectDep,_lhsOerrors,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinstDep,_lhsOinstVars,_lhsOlocVars,_lhsOnAutoRules,_lhsOnExplicitRules))))+sem_Rules_Nil :: T_Rules+sem_Rules_Nil =+    (T_Rules (\ _lhsIallTypeSigs+                _lhsIallfields+                _lhsIallnts+                _lhsIaltAttrs+                _lhsIattrs+                _lhsIchildInhs+                _lhsIchildNts+                _lhsIcon+                _lhsIinh+                _lhsIinhsOfChildren+                _lhsImergeMap+                _lhsInt+                _lhsIo_case+                _lhsIo_cata+                _lhsIo_dovisit+                _lhsIo_newtypes+                _lhsIo_rename+                _lhsIo_sem+                _lhsIo_sig+                _lhsIo_wantvisit+                _lhsIprefix+                _lhsIsyn+                _lhsIsynsOfChildren ->+                  (let _lhsOdirectDep :: (Seq Edge)+                       _lhsOerrors :: (Seq Error)+                       _lhsOgathAltAttrs :: ([AltAttr])+                       _lhsOgathRules :: (Seq CRule)+                       _lhsOinstDep :: (Seq Edge)+                       _lhsOinstVars :: ([Identifier])+                       _lhsOlocVars :: ([Identifier])+                       _lhsOnAutoRules :: Int+                       _lhsOnExplicitRules :: Int+                       -- use rule "src-ag/Order.ag"(line 268, column 33)+                       _lhsOdirectDep =+                           ({-# LINE 268 "src-ag/Order.ag" #-}+                            Seq.empty+                            {-# LINE 5565 "dist/build/Order" #-}+                            )+                       -- use rule "src-ag/Order.ag"(line 85, column 70)+                       _lhsOerrors =+                           ({-# LINE 85 "src-ag/Order.ag" #-}+                            Seq.empty+                            {-# LINE 5571 "dist/build/Order" #-}+                            )+                       -- use rule "src-ag/Order.ag"(line 171, column 68)+                       _lhsOgathAltAttrs =+                           ({-# LINE 171 "src-ag/Order.ag" #-}+                            []+                            {-# LINE 5577 "dist/build/Order" #-}+                            )+                       -- use rule "src-ag/Order.ag"(line 207, column 23)+                       _lhsOgathRules =+                           ({-# LINE 207 "src-ag/Order.ag" #-}+                            Seq.empty+                            {-# LINE 5583 "dist/build/Order" #-}+                            )+                       -- use rule "src-ag/Order.ag"(line 311, column 31)+                       _lhsOinstDep =+                           ({-# LINE 311 "src-ag/Order.ag" #-}+                            Seq.empty+                            {-# LINE 5589 "dist/build/Order" #-}+                            )+                       -- use rule "src-ag/Order.ag"(line 678, column 86)+                       _lhsOinstVars =+                           ({-# LINE 678 "src-ag/Order.ag" #-}+                            []+                            {-# LINE 5595 "dist/build/Order" #-}+                            )+                       -- use rule "src-ag/Order.ag"(line 678, column 48)+                       _lhsOlocVars =+                           ({-# LINE 678 "src-ag/Order.ag" #-}+                            []+                            {-# LINE 5601 "dist/build/Order" #-}+                            )+                       -- use rule "src-ag/Order.ag"(line 62, column 105)+                       _lhsOnAutoRules =+                           ({-# LINE 62 "src-ag/Order.ag" #-}+                            0+                            {-# LINE 5607 "dist/build/Order" #-}+                            )+                       -- use rule "src-ag/Order.ag"(line 62, column 105)+                       _lhsOnExplicitRules =+                           ({-# LINE 62 "src-ag/Order.ag" #-}+                            0+                            {-# LINE 5613 "dist/build/Order" #-}+                            )+                       ___node =+                           (Syn_Rules _lhsOdirectDep _lhsOerrors _lhsOgathAltAttrs _lhsOgathRules _lhsOinstDep _lhsOinstVars _lhsOlocVars _lhsOnAutoRules _lhsOnExplicitRules)+                   in  ( _lhsOdirectDep,_lhsOerrors,_lhsOgathAltAttrs,_lhsOgathRules,_lhsOinstDep,_lhsOinstVars,_lhsOlocVars,_lhsOnAutoRules,_lhsOnExplicitRules))))+-- TypeSig -----------------------------------------------------+{-+   visit 0:+      chained attribute:+         typeSigs             : Map Identifier Type+   alternatives:+      alternative TypeSig:+         child name           : {Identifier}+         child tp             : {Type}+-}+-- cata+sem_TypeSig :: TypeSig ->+               T_TypeSig+sem_TypeSig (TypeSig _name _tp) =+    (sem_TypeSig_TypeSig _name _tp)+-- semantic domain+newtype T_TypeSig = T_TypeSig ((Map Identifier Type) ->+                               ( (Map Identifier Type)))+data Inh_TypeSig = Inh_TypeSig {typeSigs_Inh_TypeSig :: !((Map Identifier Type))}+data Syn_TypeSig = Syn_TypeSig {typeSigs_Syn_TypeSig :: !((Map Identifier Type))}+wrap_TypeSig :: T_TypeSig ->+                Inh_TypeSig ->+                Syn_TypeSig+wrap_TypeSig (T_TypeSig sem) (Inh_TypeSig _lhsItypeSigs) =+    (let ( _lhsOtypeSigs) = sem _lhsItypeSigs+     in  (Syn_TypeSig _lhsOtypeSigs))+sem_TypeSig_TypeSig :: Identifier ->+                       Type ->+                       T_TypeSig+sem_TypeSig_TypeSig name_ tp_ =+    (T_TypeSig (\ _lhsItypeSigs ->+                    (let _lhsOtypeSigs :: (Map Identifier Type)+                         -- "src-ag/Order.ag"(line 532, column 13)+                         _lhsOtypeSigs =+                             ({-# LINE 532 "src-ag/Order.ag" #-}+                              Map.insert name_ tp_ _lhsItypeSigs+                              {-# LINE 5654 "dist/build/Order" #-}+                              )+                         ___node =+                             (Syn_TypeSig _lhsOtypeSigs)+                     in  ( _lhsOtypeSigs))))+-- TypeSigs ----------------------------------------------------+{-+   visit 0:+      chained attribute:+         typeSigs             : Map Identifier Type+   alternatives:+      alternative Cons:+         child hd             : TypeSig +         child tl             : TypeSigs +      alternative Nil:+-}+-- cata+sem_TypeSigs :: TypeSigs ->+                T_TypeSigs+sem_TypeSigs list =+    (Prelude.foldr sem_TypeSigs_Cons sem_TypeSigs_Nil (Prelude.map sem_TypeSig list))+-- semantic domain+newtype T_TypeSigs = T_TypeSigs ((Map Identifier Type) ->+                                 ( (Map Identifier Type)))+data Inh_TypeSigs = Inh_TypeSigs {typeSigs_Inh_TypeSigs :: !((Map Identifier Type))}+data Syn_TypeSigs = Syn_TypeSigs {typeSigs_Syn_TypeSigs :: !((Map Identifier Type))}+wrap_TypeSigs :: T_TypeSigs ->+                 Inh_TypeSigs ->+                 Syn_TypeSigs+wrap_TypeSigs (T_TypeSigs sem) (Inh_TypeSigs _lhsItypeSigs) =+    (let ( _lhsOtypeSigs) = sem _lhsItypeSigs+     in  (Syn_TypeSigs _lhsOtypeSigs))+sem_TypeSigs_Cons :: T_TypeSig ->+                     T_TypeSigs ->+                     T_TypeSigs+sem_TypeSigs_Cons (T_TypeSig hd_) (T_TypeSigs tl_) =+    (T_TypeSigs (\ _lhsItypeSigs ->+                     (let _lhsOtypeSigs :: (Map Identifier Type)+                          _hdOtypeSigs :: (Map Identifier Type)+                          _tlOtypeSigs :: (Map Identifier Type)+                          _hdItypeSigs :: (Map Identifier Type)+                          _tlItypeSigs :: (Map Identifier Type)+                          -- copy rule (up)+                          _lhsOtypeSigs =+                              ({-# LINE 528 "src-ag/Order.ag" #-}+                               _tlItypeSigs+                               {-# LINE 5700 "dist/build/Order" #-}+                               )+                          -- copy rule (down)+                          _hdOtypeSigs =+                              ({-# LINE 528 "src-ag/Order.ag" #-}+                               _lhsItypeSigs+                               {-# LINE 5706 "dist/build/Order" #-}+                               )+                          -- copy rule (chain)+                          _tlOtypeSigs =+                              ({-# LINE 528 "src-ag/Order.ag" #-}+                               _hdItypeSigs+                               {-# LINE 5712 "dist/build/Order" #-}+                               )+                          ( _hdItypeSigs) =+                              hd_ _hdOtypeSigs+                          ( _tlItypeSigs) =+                              tl_ _tlOtypeSigs+                          ___node =+                              (Syn_TypeSigs _lhsOtypeSigs)+                      in  ( _lhsOtypeSigs))))+sem_TypeSigs_Nil :: T_TypeSigs+sem_TypeSigs_Nil =+    (T_TypeSigs (\ _lhsItypeSigs ->+                     (let _lhsOtypeSigs :: (Map Identifier Type)+                          -- copy rule (chain)+                          _lhsOtypeSigs =+                              ({-# LINE 528 "src-ag/Order.ag" #-}+                               _lhsItypeSigs+                               {-# LINE 5729 "dist/build/Order" #-}+                               )+                          ___node =+                              (Syn_TypeSigs _lhsOtypeSigs)                       in  ( _lhsOtypeSigs))))
src-derived/PrintCode.hs view
@@ -194,3926 +194,4074 @@                                              {-# LINE 195 "dist/build/PrintCode" #-}                                              )) of                                       { !_lhsOpps ->-                                      ( _lhsOpps) }) }) }) }) }) }) }) }) }) })))--- CaseAlts -----------------------------------------------------{--   visit 0:-      inherited attributes:-         nested               : Bool-         options              : Options-         outputfile           : String-      synthesized attribute:-         pps                  : PP_Docs-   alternatives:-      alternative Cons:-         child hd             : CaseAlt -         child tl             : CaseAlts -      alternative Nil:--}--- cata-sem_CaseAlts :: CaseAlts ->-                T_CaseAlts-sem_CaseAlts !list =-    (Prelude.foldr sem_CaseAlts_Cons sem_CaseAlts_Nil (Prelude.map sem_CaseAlt list))--- semantic domain-newtype T_CaseAlts = T_CaseAlts (Bool ->-                                 Options ->-                                 String ->-                                 ( PP_Docs))-data Inh_CaseAlts = Inh_CaseAlts {nested_Inh_CaseAlts :: !(Bool),options_Inh_CaseAlts :: !(Options),outputfile_Inh_CaseAlts :: !(String)}-data Syn_CaseAlts = Syn_CaseAlts {pps_Syn_CaseAlts :: !(PP_Docs)}-wrap_CaseAlts :: T_CaseAlts ->-                 Inh_CaseAlts ->-                 Syn_CaseAlts-wrap_CaseAlts !(T_CaseAlts sem) !(Inh_CaseAlts _lhsInested _lhsIoptions _lhsIoutputfile) =-    (let ( !_lhsOpps) = sem _lhsInested _lhsIoptions _lhsIoutputfile-     in  (Syn_CaseAlts _lhsOpps))-sem_CaseAlts_Cons :: T_CaseAlt ->-                     T_CaseAlts ->-                     T_CaseAlts-sem_CaseAlts_Cons !(T_CaseAlt hd_) !(T_CaseAlts tl_) =-    (T_CaseAlts (\ (!_lhsInested)-                   (!_lhsIoptions)-                   (!_lhsIoutputfile) ->-                     (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                             _lhsIoutputfile-                             {-# LINE 241 "dist/build/PrintCode" #-}-                             )) of-                      { !_tlOoutputfile ->-                      (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                              _lhsIoptions-                              {-# LINE 246 "dist/build/PrintCode" #-}-                              )) of-                       { !_tlOoptions ->-                       (case (({-# LINE 56 "src-ag/PrintCode.ag" #-}-                               _lhsInested-                               {-# LINE 251 "dist/build/PrintCode" #-}-                               )) of-                        { !_tlOnested ->-                        (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                                _lhsIoutputfile-                                {-# LINE 256 "dist/build/PrintCode" #-}-                                )) of-                         { !_hdOoutputfile ->-                         (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                                 _lhsIoptions-                                 {-# LINE 261 "dist/build/PrintCode" #-}-                                 )) of-                          { !_hdOoptions ->-                          (case (({-# LINE 56 "src-ag/PrintCode.ag" #-}-                                  _lhsInested-                                  {-# LINE 266 "dist/build/PrintCode" #-}-                                  )) of-                           { !_hdOnested ->-                           (case (tl_ _tlOnested _tlOoptions _tlOoutputfile) of-                            { ( !_tlIpps) ->-                                (case (hd_ _hdOnested _hdOoptions _hdOoutputfile) of-                                 { ( !_hdIpps) ->-                                     (case (({-# LINE 69 "src-ag/PrintCode.ag" #-}-                                             _hdIpps ++ _tlIpps-                                             {-# LINE 275 "dist/build/PrintCode" #-}-                                             )) of-                                      { !_lhsOpps ->-                                      ( _lhsOpps) }) }) }) }) }) }) }) }) })))-sem_CaseAlts_Nil :: T_CaseAlts-sem_CaseAlts_Nil =-    (T_CaseAlts (\ (!_lhsInested)-                   (!_lhsIoptions)-                   (!_lhsIoutputfile) ->-                     (case (({-# LINE 70 "src-ag/PrintCode.ag" #-}-                             []-                             {-# LINE 286 "dist/build/PrintCode" #-}-                             )) of-                      { !_lhsOpps ->-                      ( _lhsOpps) })))--- Chunk --------------------------------------------------------{--   visit 0:-      inherited attributes:-         importBlocks         : PP_Doc-         isDeclOfLet          : Bool-         mainFile             : String-         mainName             : String-         moduleHeader         : String -> String -> String -> Bool -> String-         nested               : Bool-         options              : Options-         optionsLine          : String-         pragmaBlocks         : String-         textBlockMap         : Map BlockInfo PP_Doc-         textBlocks           : PP_Doc-      synthesized attributes:-         appendCommon         : [[PP_Doc]]-         appendMain           : [[PP_Doc]]-         genSems              : IO ()-         imports              : [String]-         pps                  : PP_Docs-   alternatives:-      alternative Chunk:-         child name           : {String}-         child comment        : Decl -         child info           : Decls -         child dataDef        : Decls -         child cataFun        : Decls -         child semDom         : Decls -         child semWrapper     : Decls -         child semFunctions   : Decls -         child semNames       : {[String]}-         visit 0:-            local outputfile  : _-            local exports     : _--}--- cata-sem_Chunk :: Chunk ->-             T_Chunk-sem_Chunk !(Chunk _name _comment _info _dataDef _cataFun _semDom _semWrapper _semFunctions _semNames) =-    (sem_Chunk_Chunk _name (sem_Decl _comment) (sem_Decls _info) (sem_Decls _dataDef) (sem_Decls _cataFun) (sem_Decls _semDom) (sem_Decls _semWrapper) (sem_Decls _semFunctions) _semNames)--- semantic domain-newtype T_Chunk = T_Chunk (PP_Doc ->-                           Bool ->-                           String ->-                           String ->-                           (String -> String -> String -> Bool -> String) ->-                           Bool ->-                           Options ->-                           String ->-                           String ->-                           (Map BlockInfo PP_Doc) ->-                           PP_Doc ->-                           ( ([[PP_Doc]]),([[PP_Doc]]),(IO ()),([String]),PP_Docs))-data Inh_Chunk = Inh_Chunk {importBlocks_Inh_Chunk :: !(PP_Doc),isDeclOfLet_Inh_Chunk :: !(Bool),mainFile_Inh_Chunk :: !(String),mainName_Inh_Chunk :: !(String),moduleHeader_Inh_Chunk :: !((String -> String -> String -> Bool -> String)),nested_Inh_Chunk :: !(Bool),options_Inh_Chunk :: !(Options),optionsLine_Inh_Chunk :: !(String),pragmaBlocks_Inh_Chunk :: !(String),textBlockMap_Inh_Chunk :: !((Map BlockInfo PP_Doc)),textBlocks_Inh_Chunk :: !(PP_Doc)}-data Syn_Chunk = Syn_Chunk {appendCommon_Syn_Chunk :: !(([[PP_Doc]])),appendMain_Syn_Chunk :: !(([[PP_Doc]])),genSems_Syn_Chunk :: !((IO ())),imports_Syn_Chunk :: !(([String])),pps_Syn_Chunk :: !(PP_Docs)}-wrap_Chunk :: T_Chunk ->-              Inh_Chunk ->-              Syn_Chunk-wrap_Chunk !(T_Chunk sem) !(Inh_Chunk _lhsIimportBlocks _lhsIisDeclOfLet _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInested _lhsIoptions _lhsIoptionsLine _lhsIpragmaBlocks _lhsItextBlockMap _lhsItextBlocks) =-    (let ( !_lhsOappendCommon,!_lhsOappendMain,!_lhsOgenSems,!_lhsOimports,!_lhsOpps) = sem _lhsIimportBlocks _lhsIisDeclOfLet _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInested _lhsIoptions _lhsIoptionsLine _lhsIpragmaBlocks _lhsItextBlockMap _lhsItextBlocks-     in  (Syn_Chunk _lhsOappendCommon _lhsOappendMain _lhsOgenSems _lhsOimports _lhsOpps))-sem_Chunk_Chunk :: String ->-                   T_Decl ->-                   T_Decls ->-                   T_Decls ->-                   T_Decls ->-                   T_Decls ->-                   T_Decls ->-                   T_Decls ->-                   ([String]) ->-                   T_Chunk-sem_Chunk_Chunk !name_ !(T_Decl comment_) !(T_Decls info_) !(T_Decls dataDef_) !(T_Decls cataFun_) !(T_Decls semDom_) !(T_Decls semWrapper_) !(T_Decls semFunctions_) !semNames_ =-    (T_Chunk (\ (!_lhsIimportBlocks)-                (!_lhsIisDeclOfLet)-                (!_lhsImainFile)-                (!_lhsImainName)-                (!_lhsImoduleHeader)-                (!_lhsInested)-                (!_lhsIoptions)-                (!_lhsIoptionsLine)-                (!_lhsIpragmaBlocks)-                (!_lhsItextBlockMap)-                (!_lhsItextBlocks) ->-                  (case (({-# LINE 44 "src-ag/PrintCode.ag" #-}-                          if sepSemMods _lhsIoptions-                          then replaceBaseName _lhsImainFile (takeBaseName _lhsImainFile ++ "_" ++ name_)-                          else _lhsImainFile-                          {-# LINE 378 "dist/build/PrintCode" #-}-                          )) of-                   { !_outputfile ->-                   (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                           _outputfile-                           {-# LINE 383 "dist/build/PrintCode" #-}-                           )) of-                    { !_semWrapperOoutputfile ->-                    (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                            _lhsIoptions-                            {-# LINE 388 "dist/build/PrintCode" #-}-                            )) of-                     { !_semWrapperOoptions ->-                     (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                             _lhsInested-                             {-# LINE 393 "dist/build/PrintCode" #-}-                             )) of-                      { !_semWrapperOnested ->-                      (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                              _lhsIisDeclOfLet-                              {-# LINE 398 "dist/build/PrintCode" #-}-                              )) of-                       { !_semWrapperOisDeclOfLet ->-                       (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                               _outputfile-                               {-# LINE 403 "dist/build/PrintCode" #-}-                               )) of-                        { !_semDomOoutputfile ->-                        (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                                _lhsIoptions-                                {-# LINE 408 "dist/build/PrintCode" #-}-                                )) of-                         { !_semDomOoptions ->-                         (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                                 _lhsInested-                                 {-# LINE 413 "dist/build/PrintCode" #-}-                                 )) of-                          { !_semDomOnested ->-                          (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                                  _lhsIisDeclOfLet-                                  {-# LINE 418 "dist/build/PrintCode" #-}-                                  )) of-                           { !_semDomOisDeclOfLet ->-                           (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                                   _outputfile-                                   {-# LINE 423 "dist/build/PrintCode" #-}-                                   )) of-                            { !_dataDefOoutputfile ->-                            (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                                    _lhsIoptions-                                    {-# LINE 428 "dist/build/PrintCode" #-}-                                    )) of-                             { !_dataDefOoptions ->-                             (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                                     _lhsInested-                                     {-# LINE 433 "dist/build/PrintCode" #-}-                                     )) of-                              { !_dataDefOnested ->-                              (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                                      _lhsIisDeclOfLet-                                      {-# LINE 438 "dist/build/PrintCode" #-}-                                      )) of-                               { !_dataDefOisDeclOfLet ->-                               (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                                       _outputfile-                                       {-# LINE 443 "dist/build/PrintCode" #-}-                                       )) of-                                { !_commentOoutputfile ->-                                (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                                        _lhsIoptions-                                        {-# LINE 448 "dist/build/PrintCode" #-}-                                        )) of-                                 { !_commentOoptions ->-                                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                                         _lhsInested-                                         {-# LINE 453 "dist/build/PrintCode" #-}-                                         )) of-                                  { !_commentOnested ->-                                  (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                                          _lhsIisDeclOfLet-                                          {-# LINE 458 "dist/build/PrintCode" #-}-                                          )) of-                                   { !_commentOisDeclOfLet ->-                                   (case (semWrapper_ _semWrapperOisDeclOfLet _semWrapperOnested _semWrapperOoptions _semWrapperOoutputfile) of-                                    { ( !_semWrapperIpps) ->-                                        (case (semDom_ _semDomOisDeclOfLet _semDomOnested _semDomOoptions _semDomOoutputfile) of-                                         { ( !_semDomIpps) ->-                                             (case (dataDef_ _dataDefOisDeclOfLet _dataDefOnested _dataDefOoptions _dataDefOoutputfile) of-                                              { ( !_dataDefIpps) ->-                                                  (case (comment_ _commentOisDeclOfLet _commentOnested _commentOoptions _commentOoutputfile) of-                                                   { ( !_commentIpp) ->-                                                       (case (({-# LINE 487 "src-ag/PrintCode.ag" #-}-                                                               [ [_commentIpp]-                                                               , _dataDefIpps-                                                               , _semDomIpps-                                                               , if reference _lhsIoptions then _semWrapperIpps else []-                                                               ]-                                                               {-# LINE 475 "dist/build/PrintCode" #-}-                                                               )) of-                                                        { !_lhsOappendCommon ->-                                                        (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                                                                _outputfile-                                                                {-# LINE 480 "dist/build/PrintCode" #-}-                                                                )) of-                                                         { !_cataFunOoutputfile ->-                                                         (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                                                                 _lhsIoptions-                                                                 {-# LINE 485 "dist/build/PrintCode" #-}-                                                                 )) of-                                                          { !_cataFunOoptions ->-                                                          (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                                                                  _lhsInested-                                                                  {-# LINE 490 "dist/build/PrintCode" #-}-                                                                  )) of-                                                           { !_cataFunOnested ->-                                                           (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                                                                   _lhsIisDeclOfLet-                                                                   {-# LINE 495 "dist/build/PrintCode" #-}-                                                                   )) of-                                                            { !_cataFunOisDeclOfLet ->-                                                            (case (cataFun_ _cataFunOisDeclOfLet _cataFunOnested _cataFunOoptions _cataFunOoutputfile) of-                                                             { ( !_cataFunIpps) ->-                                                                 (case (({-# LINE 493 "src-ag/PrintCode.ag" #-}-                                                                         [ [_commentIpp]-                                                                         , _cataFunIpps-                                                                         , if reference _lhsIoptions then [] else _semWrapperIpps-                                                                         ]-                                                                         {-# LINE 505 "dist/build/PrintCode" #-}-                                                                         )) of-                                                                  { !_lhsOappendMain ->-                                                                  (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                                                                          _outputfile-                                                                          {-# LINE 510 "dist/build/PrintCode" #-}-                                                                          )) of-                                                                   { !_semFunctionsOoutputfile ->-                                                                   (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                                                                           _lhsIoptions-                                                                           {-# LINE 515 "dist/build/PrintCode" #-}-                                                                           )) of-                                                                    { !_semFunctionsOoptions ->-                                                                    (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                                                                            _lhsInested-                                                                            {-# LINE 520 "dist/build/PrintCode" #-}-                                                                            )) of-                                                                     { !_semFunctionsOnested ->-                                                                     (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                                                                             _lhsIisDeclOfLet-                                                                             {-# LINE 525 "dist/build/PrintCode" #-}-                                                                             )) of-                                                                      { !_semFunctionsOisDeclOfLet ->-                                                                      (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                                                                              _outputfile-                                                                              {-# LINE 530 "dist/build/PrintCode" #-}-                                                                              )) of-                                                                       { !_infoOoutputfile ->-                                                                       (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                                                                               _lhsIoptions-                                                                               {-# LINE 535 "dist/build/PrintCode" #-}-                                                                               )) of-                                                                        { !_infoOoptions ->-                                                                        (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                                                                                _lhsInested-                                                                                {-# LINE 540 "dist/build/PrintCode" #-}-                                                                                )) of-                                                                         { !_infoOnested ->-                                                                         (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                                                                                 _lhsIisDeclOfLet-                                                                                 {-# LINE 545 "dist/build/PrintCode" #-}-                                                                                 )) of-                                                                          { !_infoOisDeclOfLet ->-                                                                          (case (({-# LINE 519 "src-ag/PrintCode.ag" #-}-                                                                                  concat $ intersperse "," semNames_-                                                                                  {-# LINE 550 "dist/build/PrintCode" #-}-                                                                                  )) of-                                                                           { !_exports ->-                                                                           (case (semFunctions_ _semFunctionsOisDeclOfLet _semFunctionsOnested _semFunctionsOoptions _semFunctionsOoutputfile) of-                                                                            { ( !_semFunctionsIpps) ->-                                                                                (case (info_ _infoOisDeclOfLet _infoOnested _infoOoptions _infoOoutputfile) of-                                                                                 { ( !_infoIpps) ->-                                                                                     (case (({-# LINE 503 "src-ag/PrintCode.ag" #-}-                                                                                             writeModule _outputfile-                                                                                               [ pp $ _lhsIpragmaBlocks-                                                                                               , pp $ Map.findWithDefault empty (BlockPragma, Just $ identifier name_) _lhsItextBlockMap-                                                                                               , pp $ _lhsIoptionsLine-                                                                                               , pp $ _lhsImoduleHeader _lhsImainName ("_" ++ name_) _exports     True-                                                                                               , pp $ ("import " ++ _lhsImainName ++ "_common\n")-                                                                                               , pp $ Map.findWithDefault empty (BlockImport, Just $ identifier name_) _lhsItextBlockMap-                                                                                               , _commentIpp-                                                                                               , vlist_sep "" _infoIpps-                                                                                               , vlist_sep "" _semFunctionsIpps-                                                                                               , Map.findWithDefault empty (BlockOther, Just $ identifier name_) _lhsItextBlockMap-                                                                                               ]-                                                                                             {-# LINE 570 "dist/build/PrintCode" #-}-                                                                                             )) of-                                                                                      { !_lhsOgenSems ->-                                                                                      (case (({-# LINE 481 "src-ag/PrintCode.ag" #-}-                                                                                              ["import " ++ _lhsImainName ++ "_" ++ name_ ++ "\n"]-                                                                                              {-# LINE 575 "dist/build/PrintCode" #-}-                                                                                              )) of-                                                                                       { !_lhsOimports ->-                                                                                       (case (({-# LINE 97 "src-ag/PrintCode.ag" #-}-                                                                                               _commentIpp-                                                                                               :  _infoIpps-                                                                                               ++ _dataDefIpps-                                                                                               ++ _cataFunIpps-                                                                                               ++ _semDomIpps-                                                                                               ++ _semWrapperIpps-                                                                                               ++ _semFunctionsIpps-                                                                                               ++ [Map.findWithDefault empty (BlockOther, Just $ identifier name_) _lhsItextBlockMap]-                                                                                               {-# LINE 587 "dist/build/PrintCode" #-}-                                                                                               )) of-                                                                                        { !_lhsOpps ->-                                                                                        ( _lhsOappendCommon,_lhsOappendMain,_lhsOgenSems,_lhsOimports,_lhsOpps) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))--- Chunks -------------------------------------------------------{--   visit 0:-      inherited attributes:-         importBlocks         : PP_Doc-         isDeclOfLet          : Bool-         mainFile             : String-         mainName             : String-         moduleHeader         : String -> String -> String -> Bool -> String-         nested               : Bool-         options              : Options-         optionsLine          : String-         pragmaBlocks         : String-         textBlockMap         : Map BlockInfo PP_Doc-         textBlocks           : PP_Doc-      synthesized attributes:-         appendCommon         : [[PP_Doc]]-         appendMain           : [[PP_Doc]]-         genSems              : IO ()-         imports              : [String]-         pps                  : PP_Docs-   alternatives:-      alternative Cons:-         child hd             : Chunk -         child tl             : Chunks -      alternative Nil:--}--- cata-sem_Chunks :: Chunks ->-              T_Chunks-sem_Chunks !list =-    (Prelude.foldr sem_Chunks_Cons sem_Chunks_Nil (Prelude.map sem_Chunk list))--- semantic domain-newtype T_Chunks = T_Chunks (PP_Doc ->-                             Bool ->-                             String ->-                             String ->-                             (String -> String -> String -> Bool -> String) ->-                             Bool ->-                             Options ->-                             String ->-                             String ->-                             (Map BlockInfo PP_Doc) ->-                             PP_Doc ->-                             ( ([[PP_Doc]]),([[PP_Doc]]),(IO ()),([String]),PP_Docs))-data Inh_Chunks = Inh_Chunks {importBlocks_Inh_Chunks :: !(PP_Doc),isDeclOfLet_Inh_Chunks :: !(Bool),mainFile_Inh_Chunks :: !(String),mainName_Inh_Chunks :: !(String),moduleHeader_Inh_Chunks :: !((String -> String -> String -> Bool -> String)),nested_Inh_Chunks :: !(Bool),options_Inh_Chunks :: !(Options),optionsLine_Inh_Chunks :: !(String),pragmaBlocks_Inh_Chunks :: !(String),textBlockMap_Inh_Chunks :: !((Map BlockInfo PP_Doc)),textBlocks_Inh_Chunks :: !(PP_Doc)}-data Syn_Chunks = Syn_Chunks {appendCommon_Syn_Chunks :: !(([[PP_Doc]])),appendMain_Syn_Chunks :: !(([[PP_Doc]])),genSems_Syn_Chunks :: !((IO ())),imports_Syn_Chunks :: !(([String])),pps_Syn_Chunks :: !(PP_Docs)}-wrap_Chunks :: T_Chunks ->-               Inh_Chunks ->-               Syn_Chunks-wrap_Chunks !(T_Chunks sem) !(Inh_Chunks _lhsIimportBlocks _lhsIisDeclOfLet _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInested _lhsIoptions _lhsIoptionsLine _lhsIpragmaBlocks _lhsItextBlockMap _lhsItextBlocks) =-    (let ( !_lhsOappendCommon,!_lhsOappendMain,!_lhsOgenSems,!_lhsOimports,!_lhsOpps) = sem _lhsIimportBlocks _lhsIisDeclOfLet _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInested _lhsIoptions _lhsIoptionsLine _lhsIpragmaBlocks _lhsItextBlockMap _lhsItextBlocks-     in  (Syn_Chunks _lhsOappendCommon _lhsOappendMain _lhsOgenSems _lhsOimports _lhsOpps))-sem_Chunks_Cons :: T_Chunk ->-                   T_Chunks ->-                   T_Chunks-sem_Chunks_Cons !(T_Chunk hd_) !(T_Chunks tl_) =-    (T_Chunks (\ (!_lhsIimportBlocks)-                 (!_lhsIisDeclOfLet)-                 (!_lhsImainFile)-                 (!_lhsImainName)-                 (!_lhsImoduleHeader)-                 (!_lhsInested)-                 (!_lhsIoptions)-                 (!_lhsIoptionsLine)-                 (!_lhsIpragmaBlocks)-                 (!_lhsItextBlockMap)-                 (!_lhsItextBlocks) ->-                   (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                           _lhsIoptions-                           {-# LINE 661 "dist/build/PrintCode" #-}-                           )) of-                    { !_tlOoptions ->-                    (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                            _lhsInested-                            {-# LINE 666 "dist/build/PrintCode" #-}-                            )) of-                     { !_tlOnested ->-                     (case (({-# LINE 437 "src-ag/PrintCode.ag" #-}-                             _lhsImainFile-                             {-# LINE 671 "dist/build/PrintCode" #-}-                             )) of-                      { !_tlOmainFile ->-                      (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                              _lhsIisDeclOfLet-                              {-# LINE 676 "dist/build/PrintCode" #-}-                              )) of-                       { !_tlOisDeclOfLet ->-                       (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                               _lhsIoptions-                               {-# LINE 681 "dist/build/PrintCode" #-}-                               )) of-                        { !_hdOoptions ->-                        (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                                _lhsInested-                                {-# LINE 686 "dist/build/PrintCode" #-}-                                )) of-                         { !_hdOnested ->-                         (case (({-# LINE 437 "src-ag/PrintCode.ag" #-}-                                 _lhsImainFile-                                 {-# LINE 691 "dist/build/PrintCode" #-}-                                 )) of-                          { !_hdOmainFile ->-                          (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                                  _lhsIisDeclOfLet-                                  {-# LINE 696 "dist/build/PrintCode" #-}-                                  )) of-                           { !_hdOisDeclOfLet ->-                           (case (({-# LINE 434 "src-ag/PrintCode.ag" #-}-                                   _lhsItextBlocks-                                   {-# LINE 701 "dist/build/PrintCode" #-}-                                   )) of-                            { !_tlOtextBlocks ->-                            (case (({-# LINE 435 "src-ag/PrintCode.ag" #-}-                                    _lhsItextBlockMap-                                    {-# LINE 706 "dist/build/PrintCode" #-}-                                    )) of-                             { !_tlOtextBlockMap ->-                             (case (({-# LINE 433 "src-ag/PrintCode.ag" #-}-                                     _lhsIpragmaBlocks-                                     {-# LINE 711 "dist/build/PrintCode" #-}-                                     )) of-                              { !_tlOpragmaBlocks ->-                              (case (({-# LINE 436 "src-ag/PrintCode.ag" #-}-                                      _lhsIoptionsLine-                                      {-# LINE 716 "dist/build/PrintCode" #-}-                                      )) of-                               { !_tlOoptionsLine ->-                               (case (({-# LINE 439 "src-ag/PrintCode.ag" #-}-                                       _lhsImoduleHeader-                                       {-# LINE 721 "dist/build/PrintCode" #-}-                                       )) of-                                { !_tlOmoduleHeader ->-                                (case (({-# LINE 438 "src-ag/PrintCode.ag" #-}-                                        _lhsImainName-                                        {-# LINE 726 "dist/build/PrintCode" #-}-                                        )) of-                                 { !_tlOmainName ->-                                 (case (({-# LINE 432 "src-ag/PrintCode.ag" #-}-                                         _lhsIimportBlocks-                                         {-# LINE 731 "dist/build/PrintCode" #-}-                                         )) of-                                  { !_tlOimportBlocks ->-                                  (case (tl_ _tlOimportBlocks _tlOisDeclOfLet _tlOmainFile _tlOmainName _tlOmoduleHeader _tlOnested _tlOoptions _tlOoptionsLine _tlOpragmaBlocks _tlOtextBlockMap _tlOtextBlocks) of-                                   { ( !_tlIappendCommon,!_tlIappendMain,!_tlIgenSems,!_tlIimports,!_tlIpps) ->-                                       (case (({-# LINE 434 "src-ag/PrintCode.ag" #-}-                                               _lhsItextBlocks-                                               {-# LINE 738 "dist/build/PrintCode" #-}-                                               )) of-                                        { !_hdOtextBlocks ->-                                        (case (({-# LINE 435 "src-ag/PrintCode.ag" #-}-                                                _lhsItextBlockMap-                                                {-# LINE 743 "dist/build/PrintCode" #-}-                                                )) of-                                         { !_hdOtextBlockMap ->-                                         (case (({-# LINE 433 "src-ag/PrintCode.ag" #-}-                                                 _lhsIpragmaBlocks-                                                 {-# LINE 748 "dist/build/PrintCode" #-}-                                                 )) of-                                          { !_hdOpragmaBlocks ->-                                          (case (({-# LINE 436 "src-ag/PrintCode.ag" #-}-                                                  _lhsIoptionsLine-                                                  {-# LINE 753 "dist/build/PrintCode" #-}-                                                  )) of-                                           { !_hdOoptionsLine ->-                                           (case (({-# LINE 439 "src-ag/PrintCode.ag" #-}-                                                   _lhsImoduleHeader-                                                   {-# LINE 758 "dist/build/PrintCode" #-}-                                                   )) of-                                            { !_hdOmoduleHeader ->-                                            (case (({-# LINE 438 "src-ag/PrintCode.ag" #-}-                                                    _lhsImainName-                                                    {-# LINE 763 "dist/build/PrintCode" #-}-                                                    )) of-                                             { !_hdOmainName ->-                                             (case (({-# LINE 432 "src-ag/PrintCode.ag" #-}-                                                     _lhsIimportBlocks-                                                     {-# LINE 768 "dist/build/PrintCode" #-}-                                                     )) of-                                              { !_hdOimportBlocks ->-                                              (case (hd_ _hdOimportBlocks _hdOisDeclOfLet _hdOmainFile _hdOmainName _hdOmoduleHeader _hdOnested _hdOoptions _hdOoptionsLine _hdOpragmaBlocks _hdOtextBlockMap _hdOtextBlocks) of-                                               { ( !_hdIappendCommon,!_hdIappendMain,!_hdIgenSems,!_hdIimports,!_hdIpps) ->-                                                   (case (({-# LINE 483 "src-ag/PrintCode.ag" #-}-                                                           _hdIappendCommon ++ _tlIappendCommon-                                                           {-# LINE 775 "dist/build/PrintCode" #-}-                                                           )) of-                                                    { !_lhsOappendCommon ->-                                                    (case (({-# LINE 483 "src-ag/PrintCode.ag" #-}-                                                            _hdIappendMain ++ _tlIappendMain-                                                            {-# LINE 780 "dist/build/PrintCode" #-}-                                                            )) of-                                                     { !_lhsOappendMain ->-                                                     (case (({-# LINE 499 "src-ag/PrintCode.ag" #-}-                                                             _hdIgenSems >> _tlIgenSems-                                                             {-# LINE 785 "dist/build/PrintCode" #-}-                                                             )) of-                                                      { !_lhsOgenSems ->-                                                      (case (({-# LINE 478 "src-ag/PrintCode.ag" #-}-                                                              _hdIimports ++ _tlIimports-                                                              {-# LINE 790 "dist/build/PrintCode" #-}-                                                              )) of-                                                       { !_lhsOimports ->-                                                       (case (({-# LINE 89 "src-ag/PrintCode.ag" #-}-                                                               _hdIpps ++ _tlIpps-                                                               {-# LINE 795 "dist/build/PrintCode" #-}-                                                               )) of-                                                        { !_lhsOpps ->-                                                        ( _lhsOappendCommon,_lhsOappendMain,_lhsOgenSems,_lhsOimports,_lhsOpps) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))-sem_Chunks_Nil :: T_Chunks-sem_Chunks_Nil =-    (T_Chunks (\ (!_lhsIimportBlocks)-                 (!_lhsIisDeclOfLet)-                 (!_lhsImainFile)-                 (!_lhsImainName)-                 (!_lhsImoduleHeader)-                 (!_lhsInested)-                 (!_lhsIoptions)-                 (!_lhsIoptionsLine)-                 (!_lhsIpragmaBlocks)-                 (!_lhsItextBlockMap)-                 (!_lhsItextBlocks) ->-                   (case (({-# LINE 483 "src-ag/PrintCode.ag" #-}-                           []-                           {-# LINE 814 "dist/build/PrintCode" #-}-                           )) of-                    { !_lhsOappendCommon ->-                    (case (({-# LINE 483 "src-ag/PrintCode.ag" #-}-                            []-                            {-# LINE 819 "dist/build/PrintCode" #-}-                            )) of-                     { !_lhsOappendMain ->-                     (case (({-# LINE 499 "src-ag/PrintCode.ag" #-}-                             return ()-                             {-# LINE 824 "dist/build/PrintCode" #-}-                             )) of-                      { !_lhsOgenSems ->-                      (case (({-# LINE 478 "src-ag/PrintCode.ag" #-}-                              []-                              {-# LINE 829 "dist/build/PrintCode" #-}-                              )) of-                       { !_lhsOimports ->-                       (case (({-# LINE 90 "src-ag/PrintCode.ag" #-}-                               []-                               {-# LINE 834 "dist/build/PrintCode" #-}-                               )) of-                        { !_lhsOpps ->-                        ( _lhsOappendCommon,_lhsOappendMain,_lhsOgenSems,_lhsOimports,_lhsOpps) }) }) }) }) })))--- DataAlt ------------------------------------------------------{--   visit 0:-      inherited attributes:-         nested               : Bool-         strictPre            : PP_Doc-      synthesized attribute:-         pp                   : PP_Doc-   alternatives:-      alternative DataAlt:-         child name           : {String}-         child args           : Types -      alternative Record:-         child name           : {String}-         child args           : NamedTypes --}--- cata-sem_DataAlt :: DataAlt ->-               T_DataAlt-sem_DataAlt !(DataAlt _name _args) =-    (sem_DataAlt_DataAlt _name (sem_Types _args))-sem_DataAlt !(Record _name _args) =-    (sem_DataAlt_Record _name (sem_NamedTypes _args))--- semantic domain-newtype T_DataAlt = T_DataAlt (Bool ->-                               PP_Doc ->-                               ( PP_Doc))-data Inh_DataAlt = Inh_DataAlt {nested_Inh_DataAlt :: !(Bool),strictPre_Inh_DataAlt :: !(PP_Doc)}-data Syn_DataAlt = Syn_DataAlt {pp_Syn_DataAlt :: !(PP_Doc)}-wrap_DataAlt :: T_DataAlt ->-                Inh_DataAlt ->-                Syn_DataAlt-wrap_DataAlt !(T_DataAlt sem) !(Inh_DataAlt _lhsInested _lhsIstrictPre) =-    (let ( !_lhsOpp) = sem _lhsInested _lhsIstrictPre-     in  (Syn_DataAlt _lhsOpp))-sem_DataAlt_DataAlt :: String ->-                       T_Types ->-                       T_DataAlt-sem_DataAlt_DataAlt !name_ !(T_Types args_) =-    (T_DataAlt (\ (!_lhsInested)-                  (!_lhsIstrictPre) ->-                    (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                            _lhsInested-                            {-# LINE 881 "dist/build/PrintCode" #-}-                            )) of-                     { !_argsOnested ->-                     (case (args_ _argsOnested) of-                      { ( !_argsIpps) ->-                          (case (({-# LINE 222 "src-ag/PrintCode.ag" #-}-                                  name_ >#< hv_sp (map ((_lhsIstrictPre >|<) . pp_parens) _argsIpps)-                                  {-# LINE 888 "dist/build/PrintCode" #-}-                                  )) of-                           { !_lhsOpp ->-                           ( _lhsOpp) }) }) })))-sem_DataAlt_Record :: String ->-                      T_NamedTypes ->-                      T_DataAlt-sem_DataAlt_Record !name_ !(T_NamedTypes args_) =-    (T_DataAlt (\ (!_lhsInested)-                  (!_lhsIstrictPre) ->-                    (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                            _lhsInested-                            {-# LINE 900 "dist/build/PrintCode" #-}-                            )) of-                     { !_argsOnested ->-                     (case (args_ _argsOnested) of-                      { ( !_argsIpps) ->-                          (case (({-# LINE 223 "src-ag/PrintCode.ag" #-}-                                  name_ >#< pp_block "{" "}" "," _argsIpps-                                  {-# LINE 907 "dist/build/PrintCode" #-}-                                  )) of-                           { !_lhsOpp ->-                           ( _lhsOpp) }) }) })))--- DataAlts -----------------------------------------------------{--   visit 0:-      inherited attributes:-         nested               : Bool-         strictPre            : PP_Doc-      synthesized attribute:-         pps                  : PP_Docs-   alternatives:-      alternative Cons:-         child hd             : DataAlt -         child tl             : DataAlts -      alternative Nil:--}--- cata-sem_DataAlts :: DataAlts ->-                T_DataAlts-sem_DataAlts !list =-    (Prelude.foldr sem_DataAlts_Cons sem_DataAlts_Nil (Prelude.map sem_DataAlt list))--- semantic domain-newtype T_DataAlts = T_DataAlts (Bool ->-                                 PP_Doc ->-                                 ( PP_Docs))-data Inh_DataAlts = Inh_DataAlts {nested_Inh_DataAlts :: !(Bool),strictPre_Inh_DataAlts :: !(PP_Doc)}-data Syn_DataAlts = Syn_DataAlts {pps_Syn_DataAlts :: !(PP_Docs)}-wrap_DataAlts :: T_DataAlts ->-                 Inh_DataAlts ->-                 Syn_DataAlts-wrap_DataAlts !(T_DataAlts sem) !(Inh_DataAlts _lhsInested _lhsIstrictPre) =-    (let ( !_lhsOpps) = sem _lhsInested _lhsIstrictPre-     in  (Syn_DataAlts _lhsOpps))-sem_DataAlts_Cons :: T_DataAlt ->-                     T_DataAlts ->-                     T_DataAlts-sem_DataAlts_Cons !(T_DataAlt hd_) !(T_DataAlts tl_) =-    (T_DataAlts (\ (!_lhsInested)-                   (!_lhsIstrictPre) ->-                     (case (({-# LINE 317 "src-ag/PrintCode.ag" #-}-                             _lhsIstrictPre-                             {-# LINE 950 "dist/build/PrintCode" #-}-                             )) of-                      { !_tlOstrictPre ->-                      (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                              _lhsInested-                              {-# LINE 955 "dist/build/PrintCode" #-}-                              )) of-                       { !_tlOnested ->-                       (case (({-# LINE 317 "src-ag/PrintCode.ag" #-}-                               _lhsIstrictPre-                               {-# LINE 960 "dist/build/PrintCode" #-}-                               )) of-                        { !_hdOstrictPre ->-                        (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                                _lhsInested-                                {-# LINE 965 "dist/build/PrintCode" #-}-                                )) of-                         { !_hdOnested ->-                         (case (tl_ _tlOnested _tlOstrictPre) of-                          { ( !_tlIpps) ->-                              (case (hd_ _hdOnested _hdOstrictPre) of-                               { ( !_hdIpp) ->-                                   (case (({-# LINE 73 "src-ag/PrintCode.ag" #-}-                                           _hdIpp : _tlIpps-                                           {-# LINE 974 "dist/build/PrintCode" #-}-                                           )) of-                                    { !_lhsOpps ->-                                    ( _lhsOpps) }) }) }) }) }) }) })))-sem_DataAlts_Nil :: T_DataAlts-sem_DataAlts_Nil =-    (T_DataAlts (\ (!_lhsInested)-                   (!_lhsIstrictPre) ->-                     (case (({-# LINE 74 "src-ag/PrintCode.ag" #-}-                             []-                             {-# LINE 984 "dist/build/PrintCode" #-}-                             )) of-                      { !_lhsOpps ->-                      ( _lhsOpps) })))--- Decl ---------------------------------------------------------{--   visit 0:-      inherited attributes:-         isDeclOfLet          : Bool-         nested               : Bool-         options              : Options-         outputfile           : String-      synthesized attribute:-         pp                   : PP_Doc-   alternatives:-      alternative Bind:-         child left           : Lhs -         child rhs            : Expr -      alternative BindLet:-         child left           : Lhs -         child rhs            : Expr -      alternative Comment:-         child txt            : {String}-      alternative Data:-         child name           : {String}-         child params         : {[String]}-         child alts           : DataAlts -         child strict         : {Bool}-         child derivings      : {[String]}-      alternative Decl:-         child left           : Lhs -         child rhs            : Expr -         child binds          : {Set String}-         child uses           : {Set String}-      alternative EvalDecl:-         child nt             : {String}-         child left           : Lhs -         child rhs            : Expr -         visit 0:-            local strat       : _-      alternative NewType:-         child name           : {String}-         child params         : {[String]}-         child con            : {String}-         child tp             : Type -      alternative PragmaDecl:-         child txt            : {String}-      alternative Resume:-         child monadic        : {Bool}-         child nt             : {String}-         child left           : Lhs -         child rhs            : Expr -      alternative TSig:-         child name           : {String}-         child tp             : Type -      alternative Type:-         child name           : {String}-         child params         : {[String]}-         child tp             : Type --}--- cata-sem_Decl :: Decl ->-            T_Decl-sem_Decl !(Bind _left _rhs) =-    (sem_Decl_Bind (sem_Lhs _left) (sem_Expr _rhs))-sem_Decl !(BindLet _left _rhs) =-    (sem_Decl_BindLet (sem_Lhs _left) (sem_Expr _rhs))-sem_Decl !(Comment _txt) =-    (sem_Decl_Comment _txt)-sem_Decl !(Data _name _params _alts _strict _derivings) =-    (sem_Decl_Data _name _params (sem_DataAlts _alts) _strict _derivings)-sem_Decl !(Decl _left _rhs _binds _uses) =-    (sem_Decl_Decl (sem_Lhs _left) (sem_Expr _rhs) _binds _uses)-sem_Decl !(EvalDecl _nt _left _rhs) =-    (sem_Decl_EvalDecl _nt (sem_Lhs _left) (sem_Expr _rhs))-sem_Decl !(NewType _name _params _con _tp) =-    (sem_Decl_NewType _name _params _con (sem_Type _tp))-sem_Decl !(PragmaDecl _txt) =-    (sem_Decl_PragmaDecl _txt)-sem_Decl !(Resume _monadic _nt _left _rhs) =-    (sem_Decl_Resume _monadic _nt (sem_Lhs _left) (sem_Expr _rhs))-sem_Decl !(TSig _name _tp) =-    (sem_Decl_TSig _name (sem_Type _tp))-sem_Decl !(Type _name _params _tp) =-    (sem_Decl_Type _name _params (sem_Type _tp))--- semantic domain-newtype T_Decl = T_Decl (Bool ->-                         Bool ->-                         Options ->-                         String ->-                         ( PP_Doc))-data Inh_Decl = Inh_Decl {isDeclOfLet_Inh_Decl :: !(Bool),nested_Inh_Decl :: !(Bool),options_Inh_Decl :: !(Options),outputfile_Inh_Decl :: !(String)}-data Syn_Decl = Syn_Decl {pp_Syn_Decl :: !(PP_Doc)}-wrap_Decl :: T_Decl ->-             Inh_Decl ->-             Syn_Decl-wrap_Decl !(T_Decl sem) !(Inh_Decl _lhsIisDeclOfLet _lhsInested _lhsIoptions _lhsIoutputfile) =-    (let ( !_lhsOpp) = sem _lhsIisDeclOfLet _lhsInested _lhsIoptions _lhsIoutputfile-     in  (Syn_Decl _lhsOpp))-sem_Decl_Bind :: T_Lhs ->-                 T_Expr ->-                 T_Decl-sem_Decl_Bind !(T_Lhs left_) !(T_Expr rhs_) =-    (T_Decl (\ (!_lhsIisDeclOfLet)-               (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 1093 "dist/build/PrintCode" #-}-                         )) of-                  { !_rhsOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 1098 "dist/build/PrintCode" #-}-                          )) of-                   { !_rhsOoptions ->-                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 1103 "dist/build/PrintCode" #-}-                           )) of-                    { !_rhsOnested ->-                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                            _lhsIoutputfile-                            {-# LINE 1108 "dist/build/PrintCode" #-}-                            )) of-                     { !_leftOoutputfile ->-                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                             _lhsIoptions-                             {-# LINE 1113 "dist/build/PrintCode" #-}-                             )) of-                      { !_leftOoptions ->-                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                              _lhsInested-                              {-# LINE 1118 "dist/build/PrintCode" #-}-                              )) of-                       { !_leftOnested ->-                       (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                               _lhsIisDeclOfLet-                               {-# LINE 1123 "dist/build/PrintCode" #-}-                               )) of-                        { !_leftOisDeclOfLet ->-                        (case (rhs_ _rhsOnested _rhsOoptions _rhsOoutputfile) of-                         { ( !_rhsIpp) ->-                             (case (left_ _leftOisDeclOfLet _leftOnested _leftOoptions _leftOoutputfile) of-                              { ( !_leftIpp) ->-                                  (case (({-# LINE 109 "src-ag/PrintCode.ag" #-}-                                          _leftIpp >#< "<-" >#< _rhsIpp-                                          {-# LINE 1132 "dist/build/PrintCode" #-}-                                          )) of-                                   { !_lhsOpp ->-                                   ( _lhsOpp) }) }) }) }) }) }) }) }) }) })))-sem_Decl_BindLet :: T_Lhs ->-                    T_Expr ->-                    T_Decl-sem_Decl_BindLet !(T_Lhs left_) !(T_Expr rhs_) =-    (T_Decl (\ (!_lhsIisDeclOfLet)-               (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 1146 "dist/build/PrintCode" #-}-                         )) of-                  { !_rhsOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 1151 "dist/build/PrintCode" #-}-                          )) of-                   { !_rhsOoptions ->-                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 1156 "dist/build/PrintCode" #-}-                           )) of-                    { !_rhsOnested ->-                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                            _lhsIoutputfile-                            {-# LINE 1161 "dist/build/PrintCode" #-}-                            )) of-                     { !_leftOoutputfile ->-                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                             _lhsIoptions-                             {-# LINE 1166 "dist/build/PrintCode" #-}-                             )) of-                      { !_leftOoptions ->-                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                              _lhsInested-                              {-# LINE 1171 "dist/build/PrintCode" #-}-                              )) of-                       { !_leftOnested ->-                       (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                               _lhsIisDeclOfLet-                               {-# LINE 1176 "dist/build/PrintCode" #-}-                               )) of-                        { !_leftOisDeclOfLet ->-                        (case (rhs_ _rhsOnested _rhsOoptions _rhsOoutputfile) of-                         { ( !_rhsIpp) ->-                             (case (left_ _leftOisDeclOfLet _leftOnested _leftOoptions _leftOoutputfile) of-                              { ( !_leftIpp) ->-                                  (case (({-# LINE 110 "src-ag/PrintCode.ag" #-}-                                          "let" >#< _leftIpp >#< "=" >#< _rhsIpp-                                          {-# LINE 1185 "dist/build/PrintCode" #-}-                                          )) of-                                   { !_lhsOpp ->-                                   ( _lhsOpp) }) }) }) }) }) }) }) }) }) })))-sem_Decl_Comment :: String ->-                    T_Decl-sem_Decl_Comment !txt_ =-    (T_Decl (\ (!_lhsIisDeclOfLet)-               (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 123 "src-ag/PrintCode.ag" #-}-                         if '\n' `elem` txt_-                           then "{-" >-< vlist (lines txt_) >-< "-}"-                           else "--" >#< txt_-                         {-# LINE 1200 "dist/build/PrintCode" #-}-                         )) of-                  { !_lhsOpp ->-                  ( _lhsOpp) })))-sem_Decl_Data :: String ->-                 ([String]) ->-                 T_DataAlts ->-                 Bool ->-                 ([String]) ->-                 T_Decl-sem_Decl_Data !name_ !params_ !(T_DataAlts alts_) !strict_ !derivings_ =-    (T_Decl (\ (!_lhsIisDeclOfLet)-               (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                         _lhsInested-                         {-# LINE 1217 "dist/build/PrintCode" #-}-                         )) of-                  { !_altsOnested ->-                  (case (({-# LINE 320 "src-ag/PrintCode.ag" #-}-                          if strict_ then pp "!" else empty-                          {-# LINE 1222 "dist/build/PrintCode" #-}-                          )) of-                   { !_altsOstrictPre ->-                   (case (alts_ _altsOnested _altsOstrictPre) of-                    { ( !_altsIpps) ->-                        (case (({-# LINE 111 "src-ag/PrintCode.ag" #-}-                                "data" >#< hv_sp (name_ : params_)-                                >#<  ( case _altsIpps of-                                             [] -> empty-                                             (x:xs) ->              "=" >#<  x-                                                    >-< vlist (map ("|" >#<) xs)-                                        >-< if null derivings_-                                               then empty-                                               else "deriving" >#< ppTuple False (map text derivings_)-                                     )-                                {-# LINE 1237 "dist/build/PrintCode" #-}-                                )) of-                         { !_lhsOpp ->-                         ( _lhsOpp) }) }) }) })))-sem_Decl_Decl :: T_Lhs ->-                 T_Expr ->-                 (Set String) ->-                 (Set String) ->-                 T_Decl-sem_Decl_Decl !(T_Lhs left_) !(T_Expr rhs_) !binds_ !uses_ =-    (T_Decl (\ (!_lhsIisDeclOfLet)-               (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 1253 "dist/build/PrintCode" #-}-                         )) of-                  { !_rhsOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 1258 "dist/build/PrintCode" #-}-                          )) of-                   { !_rhsOoptions ->-                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 1263 "dist/build/PrintCode" #-}-                           )) of-                    { !_rhsOnested ->-                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                            _lhsIoutputfile-                            {-# LINE 1268 "dist/build/PrintCode" #-}-                            )) of-                     { !_leftOoutputfile ->-                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                             _lhsIoptions-                             {-# LINE 1273 "dist/build/PrintCode" #-}-                             )) of-                      { !_leftOoptions ->-                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                              _lhsInested-                              {-# LINE 1278 "dist/build/PrintCode" #-}-                              )) of-                       { !_leftOnested ->-                       (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                               _lhsIisDeclOfLet-                               {-# LINE 1283 "dist/build/PrintCode" #-}-                               )) of-                        { !_leftOisDeclOfLet ->-                        (case (rhs_ _rhsOnested _rhsOoptions _rhsOoutputfile) of-                         { ( !_rhsIpp) ->-                             (case (left_ _leftOisDeclOfLet _leftOnested _leftOoptions _leftOoutputfile) of-                              { ( !_leftIpp) ->-                                  (case (({-# LINE 107 "src-ag/PrintCode.ag" #-}-                                          _leftIpp >#< "="-                                          >-< indent 4 _rhsIpp-                                          {-# LINE 1293 "dist/build/PrintCode" #-}-                                          )) of-                                   { !_lhsOpp ->-                                   ( _lhsOpp) }) }) }) }) }) }) }) }) }) })))-sem_Decl_EvalDecl :: String ->-                     T_Lhs ->-                     T_Expr ->-                     T_Decl-sem_Decl_EvalDecl !nt_ !(T_Lhs left_) !(T_Expr rhs_) =-    (T_Decl (\ (!_lhsIisDeclOfLet)-               (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 1308 "dist/build/PrintCode" #-}-                         )) of-                  { !_rhsOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 1313 "dist/build/PrintCode" #-}-                          )) of-                   { !_rhsOoptions ->-                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 1318 "dist/build/PrintCode" #-}-                           )) of-                    { !_rhsOnested ->-                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                            _lhsIoutputfile-                            {-# LINE 1323 "dist/build/PrintCode" #-}-                            )) of-                     { !_leftOoutputfile ->-                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                             _lhsIoptions-                             {-# LINE 1328 "dist/build/PrintCode" #-}-                             )) of-                      { !_leftOoptions ->-                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                              _lhsInested-                              {-# LINE 1333 "dist/build/PrintCode" #-}-                              )) of-                       { !_leftOnested ->-                       (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                               _lhsIisDeclOfLet-                               {-# LINE 1338 "dist/build/PrintCode" #-}-                               )) of-                        { !_leftOisDeclOfLet ->-                        (case (({-# LINE 130 "src-ag/PrintCode.ag" #-}-                                if breadthFirstStrict _lhsIoptions-                                then "stepwiseEval"-                                else "lazyEval"-                                {-# LINE 1345 "dist/build/PrintCode" #-}-                                )) of-                         { !_strat ->-                         (case (rhs_ _rhsOnested _rhsOoptions _rhsOoutputfile) of-                          { ( !_rhsIpp) ->-                              (case (left_ _leftOisDeclOfLet _leftOnested _leftOoptions _leftOoutputfile) of-                               { ( !_leftIpp) ->-                                   (case (({-# LINE 133 "src-ag/PrintCode.ag" #-}-                                           if breadthFirst _lhsIoptions-                                           then _leftIpp >#< "=" >#< "case" >#< _strat     >#< pp_parens _rhsIpp >#< "of"-                                                >-< indent 4 (-                                                  pp_parens (nt_ >|< "_Syn" >#< "_val") >#< "-> _val"-                                                )-                                           else _leftIpp >#< "=" >#< _rhsIpp-                                           {-# LINE 1359 "dist/build/PrintCode" #-}-                                           )) of-                                    { !_lhsOpp ->-                                    ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) })))-sem_Decl_NewType :: String ->-                    ([String]) ->-                    String ->-                    T_Type ->-                    T_Decl-sem_Decl_NewType !name_ !params_ !con_ !(T_Type tp_) =-    (T_Decl (\ (!_lhsIisDeclOfLet)-               (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                         _lhsInested-                         {-# LINE 1375 "dist/build/PrintCode" #-}-                         )) of-                  { !_tpOnested ->-                  (case (tp_ _tpOnested) of-                   { ( !_tpIpp,!_tpIprec) ->-                       (case (({-# LINE 120 "src-ag/PrintCode.ag" #-}-                               "newtype" >#< hv_sp (name_ : params_) >#< "=" >#< con_ >#< pp_parens _tpIpp-                               {-# LINE 1382 "dist/build/PrintCode" #-}-                               )) of-                        { !_lhsOpp ->-                        ( _lhsOpp) }) }) })))-sem_Decl_PragmaDecl :: String ->-                       T_Decl-sem_Decl_PragmaDecl !txt_ =-    (T_Decl (\ (!_lhsIisDeclOfLet)-               (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 126 "src-ag/PrintCode.ag" #-}-                         "{-#" >#< text txt_ >#< "#-}"-                         {-# LINE 1395 "dist/build/PrintCode" #-}-                         )) of-                  { !_lhsOpp ->-                  ( _lhsOpp) })))-sem_Decl_Resume :: Bool ->-                   String ->-                   T_Lhs ->-                   T_Expr ->-                   T_Decl-sem_Decl_Resume !monadic_ !nt_ !(T_Lhs left_) !(T_Expr rhs_) =-    (T_Decl (\ (!_lhsIisDeclOfLet)-               (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 1411 "dist/build/PrintCode" #-}-                         )) of-                  { !_rhsOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 1416 "dist/build/PrintCode" #-}-                          )) of-                   { !_rhsOoptions ->-                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 1421 "dist/build/PrintCode" #-}-                           )) of-                    { !_rhsOnested ->-                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                            _lhsIoutputfile-                            {-# LINE 1426 "dist/build/PrintCode" #-}-                            )) of-                     { !_leftOoutputfile ->-                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                             _lhsIoptions-                             {-# LINE 1431 "dist/build/PrintCode" #-}-                             )) of-                      { !_leftOoptions ->-                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                              _lhsInested-                              {-# LINE 1436 "dist/build/PrintCode" #-}-                              )) of-                       { !_leftOnested ->-                       (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                               _lhsIisDeclOfLet-                               {-# LINE 1441 "dist/build/PrintCode" #-}-                               )) of-                        { !_leftOisDeclOfLet ->-                        (case (rhs_ _rhsOnested _rhsOoptions _rhsOoutputfile) of-                         { ( !_rhsIpp) ->-                             (case (left_ _leftOisDeclOfLet _leftOnested _leftOoptions _leftOoutputfile) of-                              { ( !_leftIpp) ->-                                  (case (({-# LINE 127 "src-ag/PrintCode.ag" #-}-                                          if monadic_-                                          then _leftIpp >#< "<-" >#< _rhsIpp-                                          else _leftIpp >#< "=" >-< indent 4 _rhsIpp-                                          {-# LINE 1452 "dist/build/PrintCode" #-}-                                          )) of-                                   { !_lhsOpp ->-                                   ( _lhsOpp) }) }) }) }) }) }) }) }) }) })))-sem_Decl_TSig :: String ->-                 T_Type ->-                 T_Decl-sem_Decl_TSig !name_ !(T_Type tp_) =-    (T_Decl (\ (!_lhsIisDeclOfLet)-               (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                         _lhsInested-                         {-# LINE 1466 "dist/build/PrintCode" #-}-                         )) of-                  { !_tpOnested ->-                  (case (tp_ _tpOnested) of-                   { ( !_tpIpp,!_tpIprec) ->-                       (case (({-# LINE 122 "src-ag/PrintCode.ag" #-}-                               name_ >#< "::" >#< _tpIpp-                               {-# LINE 1473 "dist/build/PrintCode" #-}-                               )) of-                        { !_lhsOpp ->-                        ( _lhsOpp) }) }) })))-sem_Decl_Type :: String ->-                 ([String]) ->-                 T_Type ->-                 T_Decl-sem_Decl_Type !name_ !params_ !(T_Type tp_) =-    (T_Decl (\ (!_lhsIisDeclOfLet)-               (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                         _lhsInested-                         {-# LINE 1488 "dist/build/PrintCode" #-}-                         )) of-                  { !_tpOnested ->-                  (case (tp_ _tpOnested) of-                   { ( !_tpIpp,!_tpIprec) ->-                       (case (({-# LINE 121 "src-ag/PrintCode.ag" #-}-                               "type" >#< hv_sp (name_ : params_) >#< "=" >#<  _tpIpp-                               {-# LINE 1495 "dist/build/PrintCode" #-}-                               )) of-                        { !_lhsOpp ->-                        ( _lhsOpp) }) }) })))--- Decls --------------------------------------------------------{--   visit 0:-      inherited attributes:-         isDeclOfLet          : Bool-         nested               : Bool-         options              : Options-         outputfile           : String-      synthesized attribute:-         pps                  : PP_Docs-   alternatives:-      alternative Cons:-         child hd             : Decl -         child tl             : Decls -      alternative Nil:--}--- cata-sem_Decls :: Decls ->-             T_Decls-sem_Decls !list =-    (Prelude.foldr sem_Decls_Cons sem_Decls_Nil (Prelude.map sem_Decl list))--- semantic domain-newtype T_Decls = T_Decls (Bool ->-                           Bool ->-                           Options ->-                           String ->-                           ( PP_Docs))-data Inh_Decls = Inh_Decls {isDeclOfLet_Inh_Decls :: !(Bool),nested_Inh_Decls :: !(Bool),options_Inh_Decls :: !(Options),outputfile_Inh_Decls :: !(String)}-data Syn_Decls = Syn_Decls {pps_Syn_Decls :: !(PP_Docs)}-wrap_Decls :: T_Decls ->-              Inh_Decls ->-              Syn_Decls-wrap_Decls !(T_Decls sem) !(Inh_Decls _lhsIisDeclOfLet _lhsInested _lhsIoptions _lhsIoutputfile) =-    (let ( !_lhsOpps) = sem _lhsIisDeclOfLet _lhsInested _lhsIoptions _lhsIoutputfile-     in  (Syn_Decls _lhsOpps))-sem_Decls_Cons :: T_Decl ->-                  T_Decls ->-                  T_Decls-sem_Decls_Cons !(T_Decl hd_) !(T_Decls tl_) =-    (T_Decls (\ (!_lhsIisDeclOfLet)-                (!_lhsInested)-                (!_lhsIoptions)-                (!_lhsIoutputfile) ->-                  (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                          _lhsIoutputfile-                          {-# LINE 1544 "dist/build/PrintCode" #-}-                          )) of-                   { !_tlOoutputfile ->-                   (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                           _lhsIoptions-                           {-# LINE 1549 "dist/build/PrintCode" #-}-                           )) of-                    { !_tlOoptions ->-                    (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                            _lhsInested-                            {-# LINE 1554 "dist/build/PrintCode" #-}-                            )) of-                     { !_tlOnested ->-                     (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                             _lhsIisDeclOfLet-                             {-# LINE 1559 "dist/build/PrintCode" #-}-                             )) of-                      { !_tlOisDeclOfLet ->-                      (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                              _lhsIoutputfile-                              {-# LINE 1564 "dist/build/PrintCode" #-}-                              )) of-                       { !_hdOoutputfile ->-                       (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                               _lhsIoptions-                               {-# LINE 1569 "dist/build/PrintCode" #-}-                               )) of-                        { !_hdOoptions ->-                        (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                                _lhsInested-                                {-# LINE 1574 "dist/build/PrintCode" #-}-                                )) of-                         { !_hdOnested ->-                         (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                                 _lhsIisDeclOfLet-                                 {-# LINE 1579 "dist/build/PrintCode" #-}-                                 )) of-                          { !_hdOisDeclOfLet ->-                          (case (tl_ _tlOisDeclOfLet _tlOnested _tlOoptions _tlOoutputfile) of-                           { ( !_tlIpps) ->-                               (case (hd_ _hdOisDeclOfLet _hdOnested _hdOoptions _hdOoutputfile) of-                                { ( !_hdIpp) ->-                                    (case (({-# LINE 85 "src-ag/PrintCode.ag" #-}-                                            _hdIpp : _tlIpps-                                            {-# LINE 1588 "dist/build/PrintCode" #-}-                                            )) of-                                     { !_lhsOpps ->-                                     ( _lhsOpps) }) }) }) }) }) }) }) }) }) }) })))-sem_Decls_Nil :: T_Decls-sem_Decls_Nil =-    (T_Decls (\ (!_lhsIisDeclOfLet)-                (!_lhsInested)-                (!_lhsIoptions)-                (!_lhsIoutputfile) ->-                  (case (({-# LINE 86 "src-ag/PrintCode.ag" #-}-                          []-                          {-# LINE 1600 "dist/build/PrintCode" #-}-                          )) of-                   { !_lhsOpps ->-                   ( _lhsOpps) })))--- Expr ---------------------------------------------------------{--   visit 0:-      inherited attributes:-         nested               : Bool-         options              : Options-         outputfile           : String-      synthesized attribute:-         pp                   : PP_Doc-   alternatives:-      alternative App:-         child name           : {String}-         child args           : Exprs -      alternative Case:-         child expr           : Expr -         child alts           : CaseAlts -      alternative Do:-         child stmts          : Decls -         child body           : Expr -      alternative InvokeExpr:-         child nt             : {String}-         child expr           : Expr -         child args           : Exprs -      alternative Lambda:-         child args           : Exprs -         child body           : Expr -         visit 0:-            local addBang     : _-            local strictParams : _-      alternative Let:-         child decls          : Decls -         child body           : Expr -      alternative LineExpr:-         child expr           : Expr -      alternative PragmaExpr:-         child onLeftSide     : {Bool}-         child onNewLine      : {Bool}-         child txt            : {String}-         child expr           : Expr -      alternative ResultExpr:-         child nt             : {String}-         child expr           : Expr -      alternative ResumeExpr:-         child nt             : {String}-         child expr           : Expr -         child left           : Lhs -         child rhs            : Expr -      alternative SemFun:-         child nt             : {String}-         child args           : Exprs -         child body           : Expr -         visit 0:-            local addBang     : _-            local strictParams : _-      alternative SimpleExpr:-         child txt            : {String}-      alternative TextExpr:-         child lns            : {[String]}-      alternative Trace:-         child txt            : {String}-         child expr           : Expr -      alternative TupleExpr:-         child exprs          : Exprs -      alternative TypedExpr:-         child expr           : Expr -         child tp             : Type -      alternative UnboxedTupleExpr:-         child exprs          : Exprs --}--- cata-sem_Expr :: Expr ->-            T_Expr-sem_Expr !(App _name _args) =-    (sem_Expr_App _name (sem_Exprs _args))-sem_Expr !(Case _expr _alts) =-    (sem_Expr_Case (sem_Expr _expr) (sem_CaseAlts _alts))-sem_Expr !(Do _stmts _body) =-    (sem_Expr_Do (sem_Decls _stmts) (sem_Expr _body))-sem_Expr !(InvokeExpr _nt _expr _args) =-    (sem_Expr_InvokeExpr _nt (sem_Expr _expr) (sem_Exprs _args))-sem_Expr !(Lambda _args _body) =-    (sem_Expr_Lambda (sem_Exprs _args) (sem_Expr _body))-sem_Expr !(Let _decls _body) =-    (sem_Expr_Let (sem_Decls _decls) (sem_Expr _body))-sem_Expr !(LineExpr _expr) =-    (sem_Expr_LineExpr (sem_Expr _expr))-sem_Expr !(PragmaExpr _onLeftSide _onNewLine _txt _expr) =-    (sem_Expr_PragmaExpr _onLeftSide _onNewLine _txt (sem_Expr _expr))-sem_Expr !(ResultExpr _nt _expr) =-    (sem_Expr_ResultExpr _nt (sem_Expr _expr))-sem_Expr !(ResumeExpr _nt _expr _left _rhs) =-    (sem_Expr_ResumeExpr _nt (sem_Expr _expr) (sem_Lhs _left) (sem_Expr _rhs))-sem_Expr !(SemFun _nt _args _body) =-    (sem_Expr_SemFun _nt (sem_Exprs _args) (sem_Expr _body))-sem_Expr !(SimpleExpr _txt) =-    (sem_Expr_SimpleExpr _txt)-sem_Expr !(TextExpr _lns) =-    (sem_Expr_TextExpr _lns)-sem_Expr !(Trace _txt _expr) =-    (sem_Expr_Trace _txt (sem_Expr _expr))-sem_Expr !(TupleExpr _exprs) =-    (sem_Expr_TupleExpr (sem_Exprs _exprs))-sem_Expr !(TypedExpr _expr _tp) =-    (sem_Expr_TypedExpr (sem_Expr _expr) (sem_Type _tp))-sem_Expr !(UnboxedTupleExpr _exprs) =-    (sem_Expr_UnboxedTupleExpr (sem_Exprs _exprs))--- semantic domain-newtype T_Expr = T_Expr (Bool ->-                         Options ->-                         String ->-                         ( PP_Doc))-data Inh_Expr = Inh_Expr {nested_Inh_Expr :: !(Bool),options_Inh_Expr :: !(Options),outputfile_Inh_Expr :: !(String)}-data Syn_Expr = Syn_Expr {pp_Syn_Expr :: !(PP_Doc)}-wrap_Expr :: T_Expr ->-             Inh_Expr ->-             Syn_Expr-wrap_Expr !(T_Expr sem) !(Inh_Expr _lhsInested _lhsIoptions _lhsIoutputfile) =-    (let ( !_lhsOpp) = sem _lhsInested _lhsIoptions _lhsIoutputfile-     in  (Syn_Expr _lhsOpp))-sem_Expr_App :: String ->-                T_Exprs ->-                T_Expr-sem_Expr_App !name_ !(T_Exprs args_) =-    (T_Expr (\ (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 1732 "dist/build/PrintCode" #-}-                         )) of-                  { !_argsOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 1737 "dist/build/PrintCode" #-}-                          )) of-                   { !_argsOoptions ->-                   (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 1742 "dist/build/PrintCode" #-}-                           )) of-                    { !_argsOnested ->-                    (case (args_ _argsOnested _argsOoptions _argsOoutputfile) of-                     { ( !_argsIpps) ->-                         (case (({-# LINE 161 "src-ag/PrintCode.ag" #-}-                                 pp_parens $ name_ >#< hv_sp _argsIpps-                                 {-# LINE 1749 "dist/build/PrintCode" #-}-                                 )) of-                          { !_lhsOpp ->-                          ( _lhsOpp) }) }) }) }) })))-sem_Expr_Case :: T_Expr ->-                 T_CaseAlts ->-                 T_Expr-sem_Expr_Case !(T_Expr expr_) !(T_CaseAlts alts_) =-    (T_Expr (\ (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 1762 "dist/build/PrintCode" #-}-                         )) of-                  { !_altsOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 1767 "dist/build/PrintCode" #-}-                          )) of-                   { !_altsOoptions ->-                   (case (({-# LINE 56 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 1772 "dist/build/PrintCode" #-}-                           )) of-                    { !_altsOnested ->-                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                            _lhsIoutputfile-                            {-# LINE 1777 "dist/build/PrintCode" #-}-                            )) of-                     { !_exprOoutputfile ->-                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                             _lhsIoptions-                             {-# LINE 1782 "dist/build/PrintCode" #-}-                             )) of-                      { !_exprOoptions ->-                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                              _lhsInested-                              {-# LINE 1787 "dist/build/PrintCode" #-}-                              )) of-                       { !_exprOnested ->-                       (case (alts_ _altsOnested _altsOoptions _altsOoutputfile) of-                        { ( !_altsIpps) ->-                            (case (expr_ _exprOnested _exprOoptions _exprOoutputfile) of-                             { ( !_exprIpp) ->-                                 (case (({-# LINE 144 "src-ag/PrintCode.ag" #-}-                                         pp_parens (    "case" >#< pp_parens _exprIpp >#< "of"-                                                   >-< (vlist _altsIpps)-                                                   )-                                         {-# LINE 1798 "dist/build/PrintCode" #-}-                                         )) of-                                  { !_lhsOpp ->-                                  ( _lhsOpp) }) }) }) }) }) }) }) }) })))-sem_Expr_Do :: T_Decls ->-               T_Expr ->-               T_Expr-sem_Expr_Do !(T_Decls stmts_) !(T_Expr body_) =-    (T_Expr (\ (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 1811 "dist/build/PrintCode" #-}-                         )) of-                  { !_bodyOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 1816 "dist/build/PrintCode" #-}-                          )) of-                   { !_bodyOoptions ->-                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 1821 "dist/build/PrintCode" #-}-                           )) of-                    { !_bodyOnested ->-                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                            _lhsIoutputfile-                            {-# LINE 1826 "dist/build/PrintCode" #-}-                            )) of-                     { !_stmtsOoutputfile ->-                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                             _lhsIoptions-                             {-# LINE 1831 "dist/build/PrintCode" #-}-                             )) of-                      { !_stmtsOoptions ->-                      (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                              _lhsInested-                              {-# LINE 1836 "dist/build/PrintCode" #-}-                              )) of-                       { !_stmtsOnested ->-                       (case (({-# LINE 416 "src-ag/PrintCode.ag" #-}-                               False-                               {-# LINE 1841 "dist/build/PrintCode" #-}-                               )) of-                        { !_stmtsOisDeclOfLet ->-                        (case (body_ _bodyOnested _bodyOoptions _bodyOoutputfile) of-                         { ( !_bodyIpp) ->-                             (case (stmts_ _stmtsOisDeclOfLet _stmtsOnested _stmtsOoptions _stmtsOoutputfile) of-                              { ( !_stmtsIpps) ->-                                  (case (({-# LINE 147 "src-ag/PrintCode.ag" #-}-                                          pp_parens ( "do" >#< (   vlist _stmtsIpps-                                                               >-< ("return" >#< _bodyIpp))-                                                    )-                                          {-# LINE 1852 "dist/build/PrintCode" #-}-                                          )) of-                                   { !_lhsOpp ->-                                   ( _lhsOpp) }) }) }) }) }) }) }) }) }) })))-sem_Expr_InvokeExpr :: String ->-                       T_Expr ->-                       T_Exprs ->-                       T_Expr-sem_Expr_InvokeExpr !nt_ !(T_Expr expr_) !(T_Exprs args_) =-    (T_Expr (\ (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 1866 "dist/build/PrintCode" #-}-                         )) of-                  { !_argsOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 1871 "dist/build/PrintCode" #-}-                          )) of-                   { !_argsOoptions ->-                   (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 1876 "dist/build/PrintCode" #-}-                           )) of-                    { !_argsOnested ->-                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                            _lhsIoutputfile-                            {-# LINE 1881 "dist/build/PrintCode" #-}-                            )) of-                     { !_exprOoutputfile ->-                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                             _lhsIoptions-                             {-# LINE 1886 "dist/build/PrintCode" #-}-                             )) of-                      { !_exprOoptions ->-                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                              _lhsInested-                              {-# LINE 1891 "dist/build/PrintCode" #-}-                              )) of-                       { !_exprOnested ->-                       (case (args_ _argsOnested _argsOoptions _argsOoutputfile) of-                        { ( !_argsIpps) ->-                            (case (expr_ _exprOnested _exprOoptions _exprOoutputfile) of-                             { ( !_exprIpp) ->-                                 (case (({-# LINE 185 "src-ag/PrintCode.ag" #-}-                                         if breadthFirst _lhsIoptions-                                         then "invoke" >#< pp_parens _exprIpp >#< pp_parens (-                                               nt_ >|< "_Inh" >#< pp_parens (ppTuple False _argsIpps))-                                         else _exprIpp >#< hv_sp _argsIpps-                                         {-# LINE 1903 "dist/build/PrintCode" #-}-                                         )) of-                                  { !_lhsOpp ->-                                  ( _lhsOpp) }) }) }) }) }) }) }) }) })))-sem_Expr_Lambda :: T_Exprs ->-                   T_Expr ->-                   T_Expr-sem_Expr_Lambda !(T_Exprs args_) !(T_Expr body_) =-    (T_Expr (\ (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 1916 "dist/build/PrintCode" #-}-                         )) of-                  { !_bodyOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 1921 "dist/build/PrintCode" #-}-                          )) of-                   { !_bodyOoptions ->-                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 1926 "dist/build/PrintCode" #-}-                           )) of-                    { !_bodyOnested ->-                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                            _lhsIoutputfile-                            {-# LINE 1931 "dist/build/PrintCode" #-}-                            )) of-                     { !_argsOoutputfile ->-                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                             _lhsIoptions-                             {-# LINE 1936 "dist/build/PrintCode" #-}-                             )) of-                      { !_argsOoptions ->-                      (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                              _lhsInested-                              {-# LINE 1941 "dist/build/PrintCode" #-}-                              )) of-                       { !_argsOnested ->-                       (case (({-# LINE 153 "src-ag/PrintCode.ag" #-}-                               if bangpats _lhsIoptions-                               then \p -> pp_parens ("!" >|< p)-                               else id-                               {-# LINE 1948 "dist/build/PrintCode" #-}-                               )) of-                        { !_addBang ->-                        (case (args_ _argsOnested _argsOoptions _argsOoutputfile) of-                         { ( !_argsIpps) ->-                             (case (({-# LINE 150 "src-ag/PrintCode.ag" #-}-                                     if strictSems _lhsIoptions-                                     then _argsIpps-                                     else []-                                     {-# LINE 1957 "dist/build/PrintCode" #-}-                                     )) of-                              { !_strictParams ->-                              (case (body_ _bodyOnested _bodyOoptions _bodyOoutputfile) of-                               { ( !_bodyIpp) ->-                                   (case (({-# LINE 156 "src-ag/PrintCode.ag" #-}-                                           pp_parens (    "\\" >#< (vlist (map _addBang     _argsIpps)) >#< "->"-                                                     >-< indent 4 (_strictParams     `ppMultiSeqV` _bodyIpp)-                                                     )-                                           {-# LINE 1966 "dist/build/PrintCode" #-}-                                           )) of-                                    { !_lhsOpp ->-                                    ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) })))-sem_Expr_Let :: T_Decls ->-                T_Expr ->-                T_Expr-sem_Expr_Let !(T_Decls decls_) !(T_Expr body_) =-    (T_Expr (\ (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 1979 "dist/build/PrintCode" #-}-                         )) of-                  { !_bodyOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 1984 "dist/build/PrintCode" #-}-                          )) of-                   { !_bodyOoptions ->-                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 1989 "dist/build/PrintCode" #-}-                           )) of-                    { !_bodyOnested ->-                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                            _lhsIoutputfile-                            {-# LINE 1994 "dist/build/PrintCode" #-}-                            )) of-                     { !_declsOoutputfile ->-                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                             _lhsIoptions-                             {-# LINE 1999 "dist/build/PrintCode" #-}-                             )) of-                      { !_declsOoptions ->-                      (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                              _lhsInested-                              {-# LINE 2004 "dist/build/PrintCode" #-}-                              )) of-                       { !_declsOnested ->-                       (case (({-# LINE 414 "src-ag/PrintCode.ag" #-}-                               True-                               {-# LINE 2009 "dist/build/PrintCode" #-}-                               )) of-                        { !_declsOisDeclOfLet ->-                        (case (body_ _bodyOnested _bodyOoptions _bodyOoutputfile) of-                         { ( !_bodyIpp) ->-                             (case (decls_ _declsOisDeclOfLet _declsOnested _declsOoptions _declsOoutputfile) of-                              { ( !_declsIpps) ->-                                  (case (({-# LINE 141 "src-ag/PrintCode.ag" #-}-                                          pp_parens (    "let" >#< (vlist _declsIpps)-                                                    >-< "in " >#< _bodyIpp-                                                    )-                                          {-# LINE 2020 "dist/build/PrintCode" #-}-                                          )) of-                                   { !_lhsOpp ->-                                   ( _lhsOpp) }) }) }) }) }) }) }) }) }) })))-sem_Expr_LineExpr :: T_Expr ->-                     T_Expr-sem_Expr_LineExpr !(T_Expr expr_) =-    (T_Expr (\ (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 2032 "dist/build/PrintCode" #-}-                         )) of-                  { !_exprOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 2037 "dist/build/PrintCode" #-}-                          )) of-                   { !_exprOoptions ->-                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 2042 "dist/build/PrintCode" #-}-                           )) of-                    { !_exprOnested ->-                    (case (expr_ _exprOnested _exprOoptions _exprOoutputfile) of-                     { ( !_exprIpp) ->-                         (case (({-# LINE 178 "src-ag/PrintCode.ag" #-}-                                 _exprIpp >-< "{-# LINE" >#< ppWithLineNr (\n -> pp $ show $ n + 1) >#< show _lhsIoutputfile >#< "#-}"-                                          >-< ""-                                 {-# LINE 2050 "dist/build/PrintCode" #-}-                                 )) of-                          { !_lhsOpp ->-                          ( _lhsOpp) }) }) }) }) })))-sem_Expr_PragmaExpr :: Bool ->-                       Bool ->-                       String ->-                       T_Expr ->-                       T_Expr-sem_Expr_PragmaExpr !onLeftSide_ !onNewLine_ !txt_ !(T_Expr expr_) =-    (T_Expr (\ (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 2065 "dist/build/PrintCode" #-}-                         )) of-                  { !_exprOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 2070 "dist/build/PrintCode" #-}-                          )) of-                   { !_exprOoptions ->-                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 2075 "dist/build/PrintCode" #-}-                           )) of-                    { !_exprOnested ->-                    (case (expr_ _exprOnested _exprOoptions _exprOoutputfile) of-                     { ( !_exprIpp) ->-                         (case (({-# LINE 167 "src-ag/PrintCode.ag" #-}-                                 let pragmaDoc = "{-#" >#< txt_ >#< "#-}"-                                     op = if onNewLine_-                                          then (>-<)-                                          else (>#<)-                                     leftOp x y = if onLeftSide_-                                                  then x `op` y-                                                  else y-                                     rightOp x y = if onLeftSide_-                                                   then x-                                                   else x `op` y-                                 in pp_parens (pragmaDoc `leftOp` _exprIpp `rightOp` pragmaDoc)-                                 {-# LINE 2092 "dist/build/PrintCode" #-}-                                 )) of-                          { !_lhsOpp ->-                          ( _lhsOpp) }) }) }) }) })))-sem_Expr_ResultExpr :: String ->-                       T_Expr ->-                       T_Expr-sem_Expr_ResultExpr !nt_ !(T_Expr expr_) =-    (T_Expr (\ (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 2105 "dist/build/PrintCode" #-}-                         )) of-                  { !_exprOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 2110 "dist/build/PrintCode" #-}-                          )) of-                   { !_exprOoptions ->-                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 2115 "dist/build/PrintCode" #-}-                           )) of-                    { !_exprOnested ->-                    (case (expr_ _exprOnested _exprOoptions _exprOoutputfile) of-                     { ( !_exprIpp) ->-                         (case (({-# LINE 181 "src-ag/PrintCode.ag" #-}-                                 if breadthFirst _lhsIoptions-                                 then "final" >#<-                                      pp_parens (nt_ >|< "_Syn" >#< pp_parens _exprIpp)-                                 else _exprIpp-                                 {-# LINE 2125 "dist/build/PrintCode" #-}-                                 )) of-                          { !_lhsOpp ->-                          ( _lhsOpp) }) }) }) }) })))-sem_Expr_ResumeExpr :: String ->-                       T_Expr ->-                       T_Lhs ->-                       T_Expr ->-                       T_Expr-sem_Expr_ResumeExpr !nt_ !(T_Expr expr_) !(T_Lhs left_) !(T_Expr rhs_) =-    (T_Expr (\ (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 2140 "dist/build/PrintCode" #-}-                         )) of-                  { !_rhsOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 2145 "dist/build/PrintCode" #-}-                          )) of-                   { !_rhsOoptions ->-                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 2150 "dist/build/PrintCode" #-}-                           )) of-                    { !_rhsOnested ->-                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                            _lhsIoutputfile-                            {-# LINE 2155 "dist/build/PrintCode" #-}-                            )) of-                     { !_leftOoutputfile ->-                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                             _lhsIoptions-                             {-# LINE 2160 "dist/build/PrintCode" #-}-                             )) of-                      { !_leftOoptions ->-                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                              _lhsInested-                              {-# LINE 2165 "dist/build/PrintCode" #-}-                              )) of-                       { !_leftOnested ->-                       (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                               _lhsIoutputfile-                               {-# LINE 2170 "dist/build/PrintCode" #-}-                               )) of-                        { !_exprOoutputfile ->-                        (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                                _lhsIoptions-                                {-# LINE 2175 "dist/build/PrintCode" #-}-                                )) of-                         { !_exprOoptions ->-                         (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                                 _lhsInested-                                 {-# LINE 2180 "dist/build/PrintCode" #-}-                                 )) of-                          { !_exprOnested ->-                          (case (({-# LINE 418 "src-ag/PrintCode.ag" #-}-                                  False-                                  {-# LINE 2185 "dist/build/PrintCode" #-}-                                  )) of-                           { !_leftOisDeclOfLet ->-                           (case (rhs_ _rhsOnested _rhsOoptions _rhsOoutputfile) of-                            { ( !_rhsIpp) ->-                                (case (left_ _leftOisDeclOfLet _leftOnested _leftOoptions _leftOoutputfile) of-                                 { ( !_leftIpp) ->-                                     (case (expr_ _exprOnested _exprOoptions _exprOoutputfile) of-                                      { ( !_exprIpp) ->-                                          (case (({-# LINE 189 "src-ag/PrintCode.ag" #-}-                                                  if breadthFirst _lhsIoptions-                                                  then pp_parens ("resume" >#< pp_parens _exprIpp-                                                                 >-< indent 2 (pp_parens ( "\\" >|<-                                                                       pp_parens ("~" >|< pp_parens (nt_ >|< "_Syn" >#< "_inh_arg"))-                                                                         >#< "->"-                                                                 >-< indent 2 ( "let" >#< _leftIpp >#< "= _inh_arg"-                                                                 >-< indent 2 ("in" >#< _rhsIpp)-                                                                 ))))-                                                  else pp_parens ( "case" >#< pp_parens _exprIpp >#< "of"-                                                                 >-< ("{" >#< _leftIpp >#< "->")-                                                                 >-< indent 4 (_rhsIpp >#< "}")-                                                                 )-                                                  {-# LINE 2207 "dist/build/PrintCode" #-}-                                                  )) of-                                           { !_lhsOpp ->-                                           ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) }) }) }) })))-sem_Expr_SemFun :: String ->-                   T_Exprs ->-                   T_Expr ->-                   T_Expr-sem_Expr_SemFun !nt_ !(T_Exprs args_) !(T_Expr body_) =-    (T_Expr (\ (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 2221 "dist/build/PrintCode" #-}-                         )) of-                  { !_bodyOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 2226 "dist/build/PrintCode" #-}-                          )) of-                   { !_bodyOoptions ->-                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 2231 "dist/build/PrintCode" #-}-                           )) of-                    { !_bodyOnested ->-                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                            _lhsIoutputfile-                            {-# LINE 2236 "dist/build/PrintCode" #-}-                            )) of-                     { !_argsOoutputfile ->-                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                             _lhsIoptions-                             {-# LINE 2241 "dist/build/PrintCode" #-}-                             )) of-                      { !_argsOoptions ->-                      (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                              _lhsInested-                              {-# LINE 2246 "dist/build/PrintCode" #-}-                              )) of-                       { !_argsOnested ->-                       (case (({-# LINE 204 "src-ag/PrintCode.ag" #-}-                               if bangpats _lhsIoptions-                               then \p -> pp_parens ("!" >|< p)-                               else id-                               {-# LINE 2253 "dist/build/PrintCode" #-}-                               )) of-                        { !_addBang ->-                        (case (args_ _argsOnested _argsOoptions _argsOoutputfile) of-                         { ( !_argsIpps) ->-                             (case (({-# LINE 201 "src-ag/PrintCode.ag" #-}-                                     if strictSems _lhsIoptions-                                     then _argsIpps-                                     else []-                                     {-# LINE 2262 "dist/build/PrintCode" #-}-                                     )) of-                              { !_strictParams ->-                              (case (body_ _bodyOnested _bodyOoptions _bodyOoutputfile) of-                               { ( !_bodyIpp) ->-                                   (case (({-# LINE 207 "src-ag/PrintCode.ag" #-}-                                           if breadthFirst _lhsIoptions-                                           then "Child" >#< pp_parens ( "\\" >|<-                                                    pp_parens (nt_ >|< "_Inh" >#<-                                                      ppTuple False (map _addBang     _argsIpps)) >#< "->"-                                                >-< indent 2 (_strictParams     `ppMultiSeqV` _bodyIpp))-                                           else if null _argsIpps-                                                then _bodyIpp-                                                else pp_parens (    "\\" >#< (vlist (map _addBang     _argsIpps)) >#< "->"-                                                               >-< indent 4 (_strictParams     `ppMultiSeqV` _bodyIpp)-                                                               )-                                           {-# LINE 2278 "dist/build/PrintCode" #-}-                                           )) of-                                    { !_lhsOpp ->-                                    ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) })))-sem_Expr_SimpleExpr :: String ->-                       T_Expr-sem_Expr_SimpleExpr !txt_ =-    (T_Expr (\ (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 162 "src-ag/PrintCode.ag" #-}-                         text txt_-                         {-# LINE 2290 "dist/build/PrintCode" #-}-                         )) of-                  { !_lhsOpp ->-                  ( _lhsOpp) })))-sem_Expr_TextExpr :: ([String]) ->-                     T_Expr-sem_Expr_TextExpr !lns_ =-    (T_Expr (\ (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 163 "src-ag/PrintCode.ag" #-}-                         vlist (map text lns_)-                         {-# LINE 2302 "dist/build/PrintCode" #-}-                         )) of-                  { !_lhsOpp ->-                  ( _lhsOpp) })))-sem_Expr_Trace :: String ->-                  T_Expr ->-                  T_Expr-sem_Expr_Trace !txt_ !(T_Expr expr_) =-    (T_Expr (\ (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 2315 "dist/build/PrintCode" #-}-                         )) of-                  { !_exprOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 2320 "dist/build/PrintCode" #-}-                          )) of-                   { !_exprOoptions ->-                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 2325 "dist/build/PrintCode" #-}-                           )) of-                    { !_exprOnested ->-                    (case (expr_ _exprOnested _exprOoptions _exprOoutputfile) of-                     { ( !_exprIpp) ->-                         (case (({-# LINE 164 "src-ag/PrintCode.ag" #-}-                                 "trace" >#< (   pp_parens ("\"" >|< text txt_ >|< "\"")-                                             >-< pp_parens _exprIpp-                                             )-                                 {-# LINE 2334 "dist/build/PrintCode" #-}-                                 )) of-                          { !_lhsOpp ->-                          ( _lhsOpp) }) }) }) }) })))-sem_Expr_TupleExpr :: T_Exprs ->-                      T_Expr-sem_Expr_TupleExpr !(T_Exprs exprs_) =-    (T_Expr (\ (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 2346 "dist/build/PrintCode" #-}-                         )) of-                  { !_exprsOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 2351 "dist/build/PrintCode" #-}-                          )) of-                   { !_exprsOoptions ->-                   (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 2356 "dist/build/PrintCode" #-}-                           )) of-                    { !_exprsOnested ->-                    (case (exprs_ _exprsOnested _exprsOoptions _exprsOoutputfile) of-                     { ( !_exprsIpps) ->-                         (case (({-# LINE 159 "src-ag/PrintCode.ag" #-}-                                 ppTuple _lhsInested _exprsIpps-                                 {-# LINE 2363 "dist/build/PrintCode" #-}-                                 )) of-                          { !_lhsOpp ->-                          ( _lhsOpp) }) }) }) }) })))-sem_Expr_TypedExpr :: T_Expr ->-                      T_Type ->-                      T_Expr-sem_Expr_TypedExpr !(T_Expr expr_) !(T_Type tp_) =-    (T_Expr (\ (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                         _lhsInested-                         {-# LINE 2376 "dist/build/PrintCode" #-}-                         )) of-                  { !_tpOnested ->-                  (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                          _lhsIoutputfile-                          {-# LINE 2381 "dist/build/PrintCode" #-}-                          )) of-                   { !_exprOoutputfile ->-                   (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                           _lhsIoptions-                           {-# LINE 2386 "dist/build/PrintCode" #-}-                           )) of-                    { !_exprOoptions ->-                    (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                            _lhsInested-                            {-# LINE 2391 "dist/build/PrintCode" #-}-                            )) of-                     { !_exprOnested ->-                     (case (tp_ _tpOnested) of-                      { ( !_tpIpp,!_tpIprec) ->-                          (case (expr_ _exprOnested _exprOoptions _exprOoutputfile) of-                           { ( !_exprIpp) ->-                               (case (({-# LINE 180 "src-ag/PrintCode.ag" #-}-                                       pp_parens (_exprIpp >#< "::" >#< _tpIpp)-                                       {-# LINE 2400 "dist/build/PrintCode" #-}-                                       )) of-                                { !_lhsOpp ->-                                ( _lhsOpp) }) }) }) }) }) }) })))-sem_Expr_UnboxedTupleExpr :: T_Exprs ->-                             T_Expr-sem_Expr_UnboxedTupleExpr !(T_Exprs exprs_) =-    (T_Expr (\ (!_lhsInested)-               (!_lhsIoptions)-               (!_lhsIoutputfile) ->-                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                         _lhsIoutputfile-                         {-# LINE 2412 "dist/build/PrintCode" #-}-                         )) of-                  { !_exprsOoutputfile ->-                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                          _lhsIoptions-                          {-# LINE 2417 "dist/build/PrintCode" #-}-                          )) of-                   { !_exprsOoptions ->-                   (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 2422 "dist/build/PrintCode" #-}-                           )) of-                    { !_exprsOnested ->-                    (case (exprs_ _exprsOnested _exprsOoptions _exprsOoutputfile) of-                     { ( !_exprsIpps) ->-                         (case (({-# LINE 160 "src-ag/PrintCode.ag" #-}-                                 ppUnboxedTuple _lhsInested _exprsIpps-                                 {-# LINE 2429 "dist/build/PrintCode" #-}-                                 )) of-                          { !_lhsOpp ->-                          ( _lhsOpp) }) }) }) }) })))--- Exprs --------------------------------------------------------{--   visit 0:-      inherited attributes:-         nested               : Bool-         options              : Options-         outputfile           : String-      synthesized attribute:-         pps                  : PP_Docs-   alternatives:-      alternative Cons:-         child hd             : Expr -         child tl             : Exprs -      alternative Nil:--}--- cata-sem_Exprs :: Exprs ->-             T_Exprs-sem_Exprs !list =-    (Prelude.foldr sem_Exprs_Cons sem_Exprs_Nil (Prelude.map sem_Expr list))--- semantic domain-newtype T_Exprs = T_Exprs (Bool ->-                           Options ->-                           String ->-                           ( PP_Docs))-data Inh_Exprs = Inh_Exprs {nested_Inh_Exprs :: !(Bool),options_Inh_Exprs :: !(Options),outputfile_Inh_Exprs :: !(String)}-data Syn_Exprs = Syn_Exprs {pps_Syn_Exprs :: !(PP_Docs)}-wrap_Exprs :: T_Exprs ->-              Inh_Exprs ->-              Syn_Exprs-wrap_Exprs !(T_Exprs sem) !(Inh_Exprs _lhsInested _lhsIoptions _lhsIoutputfile) =-    (let ( !_lhsOpps) = sem _lhsInested _lhsIoptions _lhsIoutputfile-     in  (Syn_Exprs _lhsOpps))-sem_Exprs_Cons :: T_Expr ->-                  T_Exprs ->-                  T_Exprs-sem_Exprs_Cons !(T_Expr hd_) !(T_Exprs tl_) =-    (T_Exprs (\ (!_lhsInested)-                (!_lhsIoptions)-                (!_lhsIoutputfile) ->-                  (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                          _lhsIoutputfile-                          {-# LINE 2475 "dist/build/PrintCode" #-}-                          )) of-                   { !_tlOoutputfile ->-                   (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                           _lhsIoptions-                           {-# LINE 2480 "dist/build/PrintCode" #-}-                           )) of-                    { !_tlOoptions ->-                    (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                            _lhsInested-                            {-# LINE 2485 "dist/build/PrintCode" #-}-                            )) of-                     { !_tlOnested ->-                     (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                             _lhsIoutputfile-                             {-# LINE 2490 "dist/build/PrintCode" #-}-                             )) of-                      { !_hdOoutputfile ->-                      (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                              _lhsIoptions-                              {-# LINE 2495 "dist/build/PrintCode" #-}-                              )) of-                       { !_hdOoptions ->-                       (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                               _lhsInested-                               {-# LINE 2500 "dist/build/PrintCode" #-}-                               )) of-                        { !_hdOnested ->-                        (case (tl_ _tlOnested _tlOoptions _tlOoutputfile) of-                         { ( !_tlIpps) ->-                             (case (hd_ _hdOnested _hdOoptions _hdOoutputfile) of-                              { ( !_hdIpp) ->-                                  (case (({-# LINE 65 "src-ag/PrintCode.ag" #-}-                                          _hdIpp : _tlIpps-                                          {-# LINE 2509 "dist/build/PrintCode" #-}-                                          )) of-                                   { !_lhsOpps ->-                                   ( _lhsOpps) }) }) }) }) }) }) }) }) })))-sem_Exprs_Nil :: T_Exprs-sem_Exprs_Nil =-    (T_Exprs (\ (!_lhsInested)-                (!_lhsIoptions)-                (!_lhsIoutputfile) ->-                  (case (({-# LINE 66 "src-ag/PrintCode.ag" #-}-                          []-                          {-# LINE 2520 "dist/build/PrintCode" #-}-                          )) of-                   { !_lhsOpps ->-                   ( _lhsOpps) })))--- Lhs ----------------------------------------------------------{--   visit 0:-      inherited attributes:-         isDeclOfLet          : Bool-         nested               : Bool-         options              : Options-         outputfile           : String-      synthesized attribute:-         pp                   : PP_Doc-   alternatives:-      alternative Fun:-         child name           : {String}-         child args           : Exprs -         visit 0:-            local addBang     : _-            local strictGuard : _-            local hasStrictVars : _-            local addStrictGuard : _-      alternative Pattern3:-         child pat3           : Pattern -         visit 0:-            local hasStrictVars : _-            local strictGuard : _-            local addStrictGuard : _-      alternative Pattern3SM:-         child pat3           : Pattern -      alternative TupleLhs:-         child comps          : {[String]}-         visit 0:-            local addBang     : _-            local hasStrictVars : _-            local strictGuard : _-            local addStrictGuard : _-      alternative UnboxedTupleLhs:-         child comps          : {[String]}-         visit 0:-            local addBang     : _-            local hasStrictVars : _-            local strictGuard : _-            local addStrictGuard : _-      alternative Unwrap:-         child name           : {String}-         child sub            : Lhs --}--- cata-sem_Lhs :: Lhs ->-           T_Lhs-sem_Lhs !(Fun _name _args) =-    (sem_Lhs_Fun _name (sem_Exprs _args))-sem_Lhs !(Pattern3 _pat3) =-    (sem_Lhs_Pattern3 (sem_Pattern _pat3))-sem_Lhs !(Pattern3SM _pat3) =-    (sem_Lhs_Pattern3SM (sem_Pattern _pat3))-sem_Lhs !(TupleLhs _comps) =-    (sem_Lhs_TupleLhs _comps)-sem_Lhs !(UnboxedTupleLhs _comps) =-    (sem_Lhs_UnboxedTupleLhs _comps)-sem_Lhs !(Unwrap _name _sub) =-    (sem_Lhs_Unwrap _name (sem_Lhs _sub))--- semantic domain-newtype T_Lhs = T_Lhs (Bool ->-                       Bool ->-                       Options ->-                       String ->-                       ( PP_Doc))-data Inh_Lhs = Inh_Lhs {isDeclOfLet_Inh_Lhs :: !(Bool),nested_Inh_Lhs :: !(Bool),options_Inh_Lhs :: !(Options),outputfile_Inh_Lhs :: !(String)}-data Syn_Lhs = Syn_Lhs {pp_Syn_Lhs :: !(PP_Doc)}-wrap_Lhs :: T_Lhs ->-            Inh_Lhs ->-            Syn_Lhs-wrap_Lhs !(T_Lhs sem) !(Inh_Lhs _lhsIisDeclOfLet _lhsInested _lhsIoptions _lhsIoutputfile) =-    (let ( !_lhsOpp) = sem _lhsIisDeclOfLet _lhsInested _lhsIoptions _lhsIoutputfile-     in  (Syn_Lhs _lhsOpp))-sem_Lhs_Fun :: String ->-               T_Exprs ->-               T_Lhs-sem_Lhs_Fun !name_ !(T_Exprs args_) =-    (T_Lhs (\ (!_lhsIisDeclOfLet)-              (!_lhsInested)-              (!_lhsIoptions)-              (!_lhsIoutputfile) ->-                (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                        _lhsIoutputfile-                        {-# LINE 2608 "dist/build/PrintCode" #-}-                        )) of-                 { !_argsOoutputfile ->-                 (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                         _lhsIoptions-                         {-# LINE 2613 "dist/build/PrintCode" #-}-                         )) of-                  { !_argsOoptions ->-                  (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                          _lhsInested-                          {-# LINE 2618 "dist/build/PrintCode" #-}-                          )) of-                   { !_argsOnested ->-                   (case (({-# LINE 248 "src-ag/PrintCode.ag" #-}-                           if bangpats _lhsIoptions-                                    then \p -> "!" >|< p-                                    else id-                           {-# LINE 2625 "dist/build/PrintCode" #-}-                           )) of-                    { !_addBang ->-                    (case (args_ _argsOnested _argsOoptions _argsOoutputfile) of-                     { ( !_argsIpps) ->-                         (case (({-# LINE 245 "src-ag/PrintCode.ag" #-}-                                 _argsIpps `ppMultiSeqH` (pp "True")-                                 {-# LINE 2632 "dist/build/PrintCode" #-}-                                 )) of-                          { !_strictGuard ->-                          (case (({-# LINE 244 "src-ag/PrintCode.ag" #-}-                                  not (null _argsIpps)-                                  {-# LINE 2637 "dist/build/PrintCode" #-}-                                  )) of-                           { !_hasStrictVars ->-                           (case (({-# LINE 243 "src-ag/PrintCode.ag" #-}-                                   if strictSems _lhsIoptions && _hasStrictVars     then \v -> v >#< "|" >#< _strictGuard     else id-                                   {-# LINE 2642 "dist/build/PrintCode" #-}-                                   )) of-                            { !_addStrictGuard ->-                            (case (({-# LINE 256 "src-ag/PrintCode.ag" #-}-                                    _addStrictGuard     (name_ >#< hv_sp (map _addBang     _argsIpps))-                                    {-# LINE 2647 "dist/build/PrintCode" #-}-                                    )) of-                             { !_lhsOpp ->-                             ( _lhsOpp) }) }) }) }) }) }) }) }) })))-sem_Lhs_Pattern3 :: T_Pattern ->-                    T_Lhs-sem_Lhs_Pattern3 !(T_Pattern pat3_) =-    (T_Lhs (\ (!_lhsIisDeclOfLet)-              (!_lhsInested)-              (!_lhsIoptions)-              (!_lhsIoutputfile) ->-                (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                        _lhsIoptions-                        {-# LINE 2660 "dist/build/PrintCode" #-}-                        )) of-                 { !_pat3Ooptions ->-                 (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                         _lhsIisDeclOfLet-                         {-# LINE 2665 "dist/build/PrintCode" #-}-                         )) of-                  { !_pat3OisDeclOfLet ->-                  (case (({-# LINE 380 "src-ag/PrintCode.ag" #-}-                          False-                          {-# LINE 2670 "dist/build/PrintCode" #-}-                          )) of-                   { !_pat3ObelowIrrefutable ->-                   (case (pat3_ _pat3ObelowIrrefutable _pat3OisDeclOfLet _pat3Ooptions) of-                    { ( !_pat3Icopy,!_pat3IisUnderscore,!_pat3Ipp,!_pat3Ipp',!_pat3IstrictVars) ->-                        (case (({-# LINE 235 "src-ag/PrintCode.ag" #-}-                                not (null _pat3IstrictVars)-                                {-# LINE 2677 "dist/build/PrintCode" #-}-                                )) of-                         { !_hasStrictVars ->-                         (case (({-# LINE 234 "src-ag/PrintCode.ag" #-}-                                 _pat3IstrictVars `ppMultiSeqH` (pp "True")-                                 {-# LINE 2682 "dist/build/PrintCode" #-}-                                 )) of-                          { !_strictGuard ->-                          (case (({-# LINE 232 "src-ag/PrintCode.ag" #-}-                                  if strictCases _lhsIoptions && _hasStrictVars     then \v -> v >#< "|" >#< _strictGuard     else id-                                  {-# LINE 2687 "dist/build/PrintCode" #-}-                                  )) of-                           { !_addStrictGuard ->-                           (case (({-# LINE 252 "src-ag/PrintCode.ag" #-}-                                   _addStrictGuard     _pat3Ipp-                                   {-# LINE 2692 "dist/build/PrintCode" #-}-                                   )) of-                            { !_lhsOpp ->-                            ( _lhsOpp) }) }) }) }) }) }) }) })))-sem_Lhs_Pattern3SM :: T_Pattern ->-                      T_Lhs-sem_Lhs_Pattern3SM !(T_Pattern pat3_) =-    (T_Lhs (\ (!_lhsIisDeclOfLet)-              (!_lhsInested)-              (!_lhsIoptions)-              (!_lhsIoutputfile) ->-                (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                        _lhsIoptions-                        {-# LINE 2705 "dist/build/PrintCode" #-}-                        )) of-                 { !_pat3Ooptions ->-                 (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                         _lhsIisDeclOfLet-                         {-# LINE 2710 "dist/build/PrintCode" #-}-                         )) of-                  { !_pat3OisDeclOfLet ->-                  (case (({-# LINE 380 "src-ag/PrintCode.ag" #-}-                          False-                          {-# LINE 2715 "dist/build/PrintCode" #-}-                          )) of-                   { !_pat3ObelowIrrefutable ->-                   (case (pat3_ _pat3ObelowIrrefutable _pat3OisDeclOfLet _pat3Ooptions) of-                    { ( !_pat3Icopy,!_pat3IisUnderscore,!_pat3Ipp,!_pat3Ipp',!_pat3IstrictVars) ->-                        (case (({-# LINE 253 "src-ag/PrintCode.ag" #-}-                                _pat3Ipp'-                                {-# LINE 2722 "dist/build/PrintCode" #-}-                                )) of-                         { !_lhsOpp ->-                         ( _lhsOpp) }) }) }) }) })))-sem_Lhs_TupleLhs :: ([String]) ->-                    T_Lhs-sem_Lhs_TupleLhs !comps_ =-    (T_Lhs (\ (!_lhsIisDeclOfLet)-              (!_lhsInested)-              (!_lhsIoptions)-              (!_lhsIoutputfile) ->-                (case (({-# LINE 248 "src-ag/PrintCode.ag" #-}-                        if bangpats _lhsIoptions-                                 then \p -> "!" >|< p-                                 else id-                        {-# LINE 2737 "dist/build/PrintCode" #-}-                        )) of-                 { !_addBang ->-                 (case (({-# LINE 240 "src-ag/PrintCode.ag" #-}-                         not (null comps_)-                         {-# LINE 2742 "dist/build/PrintCode" #-}-                         )) of-                  { !_hasStrictVars ->-                  (case (({-# LINE 237 "src-ag/PrintCode.ag" #-}-                          if stricterCases _lhsIoptions && not _lhsIisDeclOfLet-                          then map text comps_ `ppMultiSeqH` (pp "True")-                          else pp "True"-                          {-# LINE 2749 "dist/build/PrintCode" #-}-                          )) of-                   { !_strictGuard ->-                   (case (({-# LINE 232 "src-ag/PrintCode.ag" #-}-                           if strictCases _lhsIoptions && _hasStrictVars     then \v -> v >#< "|" >#< _strictGuard     else id-                           {-# LINE 2754 "dist/build/PrintCode" #-}-                           )) of-                    { !_addStrictGuard ->-                    (case (({-# LINE 254 "src-ag/PrintCode.ag" #-}-                            _addStrictGuard     $ ppTuple _lhsInested (map (_addBang     . text) comps_)-                            {-# LINE 2759 "dist/build/PrintCode" #-}-                            )) of-                     { !_lhsOpp ->-                     ( _lhsOpp) }) }) }) }) })))-sem_Lhs_UnboxedTupleLhs :: ([String]) ->-                           T_Lhs-sem_Lhs_UnboxedTupleLhs !comps_ =-    (T_Lhs (\ (!_lhsIisDeclOfLet)-              (!_lhsInested)-              (!_lhsIoptions)-              (!_lhsIoutputfile) ->-                (case (({-# LINE 248 "src-ag/PrintCode.ag" #-}-                        if bangpats _lhsIoptions-                                 then \p -> "!" >|< p-                                 else id-                        {-# LINE 2774 "dist/build/PrintCode" #-}-                        )) of-                 { !_addBang ->-                 (case (({-# LINE 240 "src-ag/PrintCode.ag" #-}-                         not (null comps_)-                         {-# LINE 2779 "dist/build/PrintCode" #-}-                         )) of-                  { !_hasStrictVars ->-                  (case (({-# LINE 237 "src-ag/PrintCode.ag" #-}-                          if stricterCases _lhsIoptions && not _lhsIisDeclOfLet-                          then map text comps_ `ppMultiSeqH` (pp "True")-                          else pp "True"-                          {-# LINE 2786 "dist/build/PrintCode" #-}-                          )) of-                   { !_strictGuard ->-                   (case (({-# LINE 232 "src-ag/PrintCode.ag" #-}-                           if strictCases _lhsIoptions && _hasStrictVars     then \v -> v >#< "|" >#< _strictGuard     else id-                           {-# LINE 2791 "dist/build/PrintCode" #-}-                           )) of-                    { !_addStrictGuard ->-                    (case (({-# LINE 255 "src-ag/PrintCode.ag" #-}-                            _addStrictGuard     $ ppUnboxedTuple _lhsInested (map (_addBang     . text) comps_)-                            {-# LINE 2796 "dist/build/PrintCode" #-}-                            )) of-                     { !_lhsOpp ->-                     ( _lhsOpp) }) }) }) }) })))-sem_Lhs_Unwrap :: String ->-                  T_Lhs ->-                  T_Lhs-sem_Lhs_Unwrap !name_ !(T_Lhs sub_) =-    (T_Lhs (\ (!_lhsIisDeclOfLet)-              (!_lhsInested)-              (!_lhsIoptions)-              (!_lhsIoutputfile) ->-                (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}-                        _lhsIoutputfile-                        {-# LINE 2810 "dist/build/PrintCode" #-}-                        )) of-                 { !_subOoutputfile ->-                 (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                         _lhsIoptions-                         {-# LINE 2815 "dist/build/PrintCode" #-}-                         )) of-                  { !_subOoptions ->-                  (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                          _lhsInested-                          {-# LINE 2820 "dist/build/PrintCode" #-}-                          )) of-                   { !_subOnested ->-                   (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                           _lhsIisDeclOfLet-                           {-# LINE 2825 "dist/build/PrintCode" #-}-                           )) of-                    { !_subOisDeclOfLet ->-                    (case (sub_ _subOisDeclOfLet _subOnested _subOoptions _subOoutputfile) of-                     { ( !_subIpp) ->-                         (case (({-# LINE 257 "src-ag/PrintCode.ag" #-}-                                 pp_parens (name_ >#< _subIpp)-                                 {-# LINE 2832 "dist/build/PrintCode" #-}-                                 )) of-                          { !_lhsOpp ->-                          ( _lhsOpp) }) }) }) }) }) })))--- NamedType ----------------------------------------------------{--   visit 0:-      inherited attribute:-         nested               : Bool-      synthesized attribute:-         pp                   : PP_Doc-   alternatives:-      alternative Named:-         child strict         : {Bool}-         child name           : {String}-         child tp             : Type --}--- cata-sem_NamedType :: NamedType ->-                 T_NamedType-sem_NamedType !(Named _strict _name _tp) =-    (sem_NamedType_Named _strict _name (sem_Type _tp))--- semantic domain-newtype T_NamedType = T_NamedType (Bool ->-                                   ( PP_Doc))-data Inh_NamedType = Inh_NamedType {nested_Inh_NamedType :: !(Bool)}-data Syn_NamedType = Syn_NamedType {pp_Syn_NamedType :: !(PP_Doc)}-wrap_NamedType :: T_NamedType ->-                  Inh_NamedType ->-                  Syn_NamedType-wrap_NamedType !(T_NamedType sem) !(Inh_NamedType _lhsInested) =-    (let ( !_lhsOpp) = sem _lhsInested-     in  (Syn_NamedType _lhsOpp))-sem_NamedType_Named :: Bool ->-                       String ->-                       T_Type ->-                       T_NamedType-sem_NamedType_Named !strict_ !name_ !(T_Type tp_) =-    (T_NamedType (\ (!_lhsInested) ->-                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                              _lhsInested-                              {-# LINE 2873 "dist/build/PrintCode" #-}-                              )) of-                       { !_tpOnested ->-                       (case (tp_ _tpOnested) of-                        { ( !_tpIpp,!_tpIprec) ->-                            (case (({-# LINE 226 "src-ag/PrintCode.ag" #-}-                                    if strict_-                                    then name_ >#< "::" >#< "!" >|< pp_parens _tpIpp-                                    else name_ >#< "::" >#< _tpIpp-                                    {-# LINE 2882 "dist/build/PrintCode" #-}-                                    )) of-                             { !_lhsOpp ->-                             ( _lhsOpp) }) }) })))--- NamedTypes ---------------------------------------------------{--   visit 0:-      inherited attribute:-         nested               : Bool-      synthesized attribute:-         pps                  : PP_Docs-   alternatives:-      alternative Cons:-         child hd             : NamedType -         child tl             : NamedTypes -      alternative Nil:--}--- cata-sem_NamedTypes :: NamedTypes ->-                  T_NamedTypes-sem_NamedTypes !list =-    (Prelude.foldr sem_NamedTypes_Cons sem_NamedTypes_Nil (Prelude.map sem_NamedType list))--- semantic domain-newtype T_NamedTypes = T_NamedTypes (Bool ->-                                     ( PP_Docs))-data Inh_NamedTypes = Inh_NamedTypes {nested_Inh_NamedTypes :: !(Bool)}-data Syn_NamedTypes = Syn_NamedTypes {pps_Syn_NamedTypes :: !(PP_Docs)}-wrap_NamedTypes :: T_NamedTypes ->-                   Inh_NamedTypes ->-                   Syn_NamedTypes-wrap_NamedTypes !(T_NamedTypes sem) !(Inh_NamedTypes _lhsInested) =-    (let ( !_lhsOpps) = sem _lhsInested-     in  (Syn_NamedTypes _lhsOpps))-sem_NamedTypes_Cons :: T_NamedType ->-                       T_NamedTypes ->-                       T_NamedTypes-sem_NamedTypes_Cons !(T_NamedType hd_) !(T_NamedTypes tl_) =-    (T_NamedTypes (\ (!_lhsInested) ->-                       (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                               _lhsInested-                               {-# LINE 2922 "dist/build/PrintCode" #-}-                               )) of-                        { !_tlOnested ->-                        (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                                _lhsInested-                                {-# LINE 2927 "dist/build/PrintCode" #-}-                                )) of-                         { !_hdOnested ->-                         (case (tl_ _tlOnested) of-                          { ( !_tlIpps) ->-                              (case (hd_ _hdOnested) of-                               { ( !_hdIpp) ->-                                   (case (({-# LINE 81 "src-ag/PrintCode.ag" #-}-                                           _hdIpp : _tlIpps-                                           {-# LINE 2936 "dist/build/PrintCode" #-}-                                           )) of-                                    { !_lhsOpps ->-                                    ( _lhsOpps) }) }) }) }) })))-sem_NamedTypes_Nil :: T_NamedTypes-sem_NamedTypes_Nil =-    (T_NamedTypes (\ (!_lhsInested) ->-                       (case (({-# LINE 82 "src-ag/PrintCode.ag" #-}-                               []-                               {-# LINE 2945 "dist/build/PrintCode" #-}-                               )) of-                        { !_lhsOpps ->-                        ( _lhsOpps) })))--- Pattern ------------------------------------------------------{--   visit 0:-      inherited attributes:-         belowIrrefutable     : Bool-         isDeclOfLet          : Bool-         options              : Options-      synthesized attributes:-         copy                 : Pattern -         isUnderscore         : Bool-         pp                   : PP_Doc-         pp'                  : PP_Doc-         strictVars           : [PP_Doc]-   alternatives:-      alternative Alias:-         child field          : {Identifier}-         child attr           : {Identifier}-         child pat            : Pattern -         visit 0:-            local copy        : _-            local ppVar       : _-            local addBang     : _-            local ppVarBang   : _-            local strictPatVars : _-            local strictVar   : _-      alternative Constr:-         child name           : {ConstructorIdent}-         child pats           : Patterns -         visit 0:-            local copy        : _-            local addBang     : _-      alternative Irrefutable:-         child pat            : Pattern -         visit 0:-            local copy        : _-      alternative Product:-         child pos            : {Pos}-         child pats           : Patterns -         visit 0:-            local copy        : _-            local addBang     : _-      alternative Underscore:-         child pos            : {Pos}-         visit 0:-            local copy        : _--}--- cata-sem_Pattern :: Pattern ->-               T_Pattern-sem_Pattern !(Alias _field _attr _pat) =-    (sem_Pattern_Alias _field _attr (sem_Pattern _pat))-sem_Pattern !(Constr _name _pats) =-    (sem_Pattern_Constr _name (sem_Patterns _pats))-sem_Pattern !(Irrefutable _pat) =-    (sem_Pattern_Irrefutable (sem_Pattern _pat))-sem_Pattern !(Product _pos _pats) =-    (sem_Pattern_Product _pos (sem_Patterns _pats))-sem_Pattern !(Underscore _pos) =-    (sem_Pattern_Underscore _pos)--- semantic domain-newtype T_Pattern = T_Pattern (Bool ->-                               Bool ->-                               Options ->-                               ( Pattern,Bool,PP_Doc,PP_Doc,([PP_Doc])))-data Inh_Pattern = Inh_Pattern {belowIrrefutable_Inh_Pattern :: !(Bool),isDeclOfLet_Inh_Pattern :: !(Bool),options_Inh_Pattern :: !(Options)}-data Syn_Pattern = Syn_Pattern {copy_Syn_Pattern :: !(Pattern),isUnderscore_Syn_Pattern :: !(Bool),pp_Syn_Pattern :: !(PP_Doc),pp'_Syn_Pattern :: !(PP_Doc),strictVars_Syn_Pattern :: !(([PP_Doc]))}-wrap_Pattern :: T_Pattern ->-                Inh_Pattern ->-                Syn_Pattern-wrap_Pattern !(T_Pattern sem) !(Inh_Pattern _lhsIbelowIrrefutable _lhsIisDeclOfLet _lhsIoptions) =-    (let ( !_lhsOcopy,!_lhsOisUnderscore,!_lhsOpp,!_lhsOpp',!_lhsOstrictVars) = sem _lhsIbelowIrrefutable _lhsIisDeclOfLet _lhsIoptions-     in  (Syn_Pattern _lhsOcopy _lhsOisUnderscore _lhsOpp _lhsOpp' _lhsOstrictVars))-sem_Pattern_Alias :: Identifier ->-                     Identifier ->-                     T_Pattern ->-                     T_Pattern-sem_Pattern_Alias !field_ !attr_ !(T_Pattern pat_) =-    (T_Pattern (\ (!_lhsIbelowIrrefutable)-                  (!_lhsIisDeclOfLet)-                  (!_lhsIoptions) ->-                    (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                            _lhsIoptions-                            {-# LINE 3031 "dist/build/PrintCode" #-}-                            )) of-                     { !_patOoptions ->-                     (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                             _lhsIisDeclOfLet-                             {-# LINE 3036 "dist/build/PrintCode" #-}-                             )) of-                      { !_patOisDeclOfLet ->-                      (case (({-# LINE 373 "src-ag/PrintCode.ag" #-}-                              _lhsIbelowIrrefutable-                              {-# LINE 3041 "dist/build/PrintCode" #-}-                              )) of-                       { !_patObelowIrrefutable ->-                       (case (pat_ _patObelowIrrefutable _patOisDeclOfLet _patOoptions) of-                        { ( !_patIcopy,!_patIisUnderscore,!_patIpp,!_patIpp',!_patIstrictVars) ->-                            (case (({-# LINE 22 "src-ag/Patterns.ag" #-}-                                    Alias field_ attr_ _patIcopy-                                    {-# LINE 3048 "dist/build/PrintCode" #-}-                                    )) of-                             { !_copy ->-                             (case (({-# LINE 22 "src-ag/Patterns.ag" #-}-                                     _copy-                                     {-# LINE 3053 "dist/build/PrintCode" #-}-                                     )) of-                              { !_lhsOcopy ->-                              (case (({-# LINE 370 "src-ag/PrintCode.ag" #-}-                                      False-                                      {-# LINE 3058 "dist/build/PrintCode" #-}-                                      )) of-                               { !_lhsOisUnderscore ->-                               (case (({-# LINE 359 "src-ag/PrintCode.ag" #-}-                                       pp (attrname False field_ attr_)-                                       {-# LINE 3063 "dist/build/PrintCode" #-}-                                       )) of-                                { !_ppVar ->-                                (case (({-# LINE 352 "src-ag/PrintCode.ag" #-}-                                        if bangpats _lhsIoptions && not _lhsIisDeclOfLet && not _lhsIbelowIrrefutable-                                        then \p -> "!" >|< p-                                        else id-                                        {-# LINE 3070 "dist/build/PrintCode" #-}-                                        )) of-                                 { !_addBang ->-                                 (case (({-# LINE 360 "src-ag/PrintCode.ag" #-}-                                         _addBang     $ _ppVar-                                         {-# LINE 3075 "dist/build/PrintCode" #-}-                                         )) of-                                  { !_ppVarBang ->-                                  (case (({-# LINE 361 "src-ag/PrintCode.ag" #-}-                                          if _patIisUnderscore-                                           then _ppVarBang-                                           else _ppVarBang     >|< "@" >|< _patIpp-                                          {-# LINE 3082 "dist/build/PrintCode" #-}-                                          )) of-                                   { !_lhsOpp ->-                                   (case (({-# LINE 393 "src-ag/PrintCode.ag" #-}-                                           let attribute | field_ == _LOC || field_ == nullIdent = locname' attr_-                                                         | otherwise                             = attrname False field_ attr_-                                           in attribute >|< "@" >|< _patIpp'-                                           {-# LINE 3089 "dist/build/PrintCode" #-}-                                           )) of-                                    { !_lhsOpp' ->-                                    (case (({-# LINE 333 "src-ag/PrintCode.ag" #-}-                                            if stricterCases _lhsIoptions && not _lhsIisDeclOfLet-                                            then _patIstrictVars-                                            else []-                                            {-# LINE 3096 "dist/build/PrintCode" #-}-                                            )) of-                                     { !_strictPatVars ->-                                     (case (({-# LINE 329 "src-ag/PrintCode.ag" #-}-                                             if strictCases _lhsIoptions && not _lhsIisDeclOfLet-                                             then [_ppVar    ]-                                             else []-                                             {-# LINE 3103 "dist/build/PrintCode" #-}-                                             )) of-                                      { !_strictVar ->-                                      (case (({-# LINE 337 "src-ag/PrintCode.ag" #-}-                                              _strictVar     ++ _strictPatVars-                                              {-# LINE 3108 "dist/build/PrintCode" #-}-                                              )) of-                                       { !_lhsOstrictVars ->-                                       ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp,_lhsOpp',_lhsOstrictVars) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))-sem_Pattern_Constr :: ConstructorIdent ->-                      T_Patterns ->-                      T_Pattern-sem_Pattern_Constr !name_ !(T_Patterns pats_) =-    (T_Pattern (\ (!_lhsIbelowIrrefutable)-                  (!_lhsIisDeclOfLet)-                  (!_lhsIoptions) ->-                    (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                            _lhsIoptions-                            {-# LINE 3121 "dist/build/PrintCode" #-}-                            )) of-                     { !_patsOoptions ->-                     (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                             _lhsIisDeclOfLet-                             {-# LINE 3126 "dist/build/PrintCode" #-}-                             )) of-                      { !_patsOisDeclOfLet ->-                      (case (({-# LINE 373 "src-ag/PrintCode.ag" #-}-                              _lhsIbelowIrrefutable-                              {-# LINE 3131 "dist/build/PrintCode" #-}-                              )) of-                       { !_patsObelowIrrefutable ->-                       (case (pats_ _patsObelowIrrefutable _patsOisDeclOfLet _patsOoptions) of-                        { ( !_patsIcopy,!_patsIpps,!_patsIpps',!_patsIstrictVars) ->-                            (case (({-# LINE 22 "src-ag/Patterns.ag" #-}-                                    Constr name_ _patsIcopy-                                    {-# LINE 3138 "dist/build/PrintCode" #-}-                                    )) of-                             { !_copy ->-                             (case (({-# LINE 22 "src-ag/Patterns.ag" #-}-                                     _copy-                                     {-# LINE 3143 "dist/build/PrintCode" #-}-                                     )) of-                              { !_lhsOcopy ->-                              (case (({-# LINE 368 "src-ag/PrintCode.ag" #-}-                                      False-                                      {-# LINE 3148 "dist/build/PrintCode" #-}-                                      )) of-                               { !_lhsOisUnderscore ->-                               (case (({-# LINE 352 "src-ag/PrintCode.ag" #-}-                                       if bangpats _lhsIoptions && not _lhsIisDeclOfLet && not _lhsIbelowIrrefutable-                                       then \p -> "!" >|< p-                                       else id-                                       {-# LINE 3155 "dist/build/PrintCode" #-}-                                       )) of-                                { !_addBang ->-                                (case (({-# LINE 357 "src-ag/PrintCode.ag" #-}-                                        _addBang     $ pp_parens $ name_ >#< hv_sp _patsIpps-                                        {-# LINE 3160 "dist/build/PrintCode" #-}-                                        )) of-                                 { !_lhsOpp ->-                                 (case (({-# LINE 391 "src-ag/PrintCode.ag" #-}-                                         pp_parens $ name_ >#< hv_sp (map pp_parens _patsIpps')-                                         {-# LINE 3165 "dist/build/PrintCode" #-}-                                         )) of-                                  { !_lhsOpp' ->-                                  (case (({-# LINE 326 "src-ag/PrintCode.ag" #-}-                                          _patsIstrictVars-                                          {-# LINE 3170 "dist/build/PrintCode" #-}-                                          )) of-                                   { !_lhsOstrictVars ->-                                   ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp,_lhsOpp',_lhsOstrictVars) }) }) }) }) }) }) }) }) }) }) })))-sem_Pattern_Irrefutable :: T_Pattern ->-                           T_Pattern-sem_Pattern_Irrefutable !(T_Pattern pat_) =-    (T_Pattern (\ (!_lhsIbelowIrrefutable)-                  (!_lhsIisDeclOfLet)-                  (!_lhsIoptions) ->-                    (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                            _lhsIoptions-                            {-# LINE 3182 "dist/build/PrintCode" #-}-                            )) of-                     { !_patOoptions ->-                     (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                             _lhsIisDeclOfLet-                             {-# LINE 3187 "dist/build/PrintCode" #-}-                             )) of-                      { !_patOisDeclOfLet ->-                      (case (({-# LINE 376 "src-ag/PrintCode.ag" #-}-                              True-                              {-# LINE 3192 "dist/build/PrintCode" #-}-                              )) of-                       { !_patObelowIrrefutable ->-                       (case (pat_ _patObelowIrrefutable _patOisDeclOfLet _patOoptions) of-                        { ( !_patIcopy,!_patIisUnderscore,!_patIpp,!_patIpp',!_patIstrictVars) ->-                            (case (({-# LINE 22 "src-ag/Patterns.ag" #-}-                                    Irrefutable _patIcopy-                                    {-# LINE 3199 "dist/build/PrintCode" #-}-                                    )) of-                             { !_copy ->-                             (case (({-# LINE 22 "src-ag/Patterns.ag" #-}-                                     _copy-                                     {-# LINE 3204 "dist/build/PrintCode" #-}-                                     )) of-                              { !_lhsOcopy ->-                              (case (({-# LINE 367 "src-ag/PrintCode.ag" #-}-                                      _patIisUnderscore-                                      {-# LINE 3209 "dist/build/PrintCode" #-}-                                      )) of-                               { !_lhsOisUnderscore ->-                               (case (({-# LINE 364 "src-ag/PrintCode.ag" #-}-                                       text "~" >|< pp_parens _patIpp-                                       {-# LINE 3214 "dist/build/PrintCode" #-}-                                       )) of-                                { !_lhsOpp ->-                                (case (({-# LINE 396 "src-ag/PrintCode.ag" #-}-                                        text "~" >|< pp_parens _patIpp-                                        {-# LINE 3219 "dist/build/PrintCode" #-}-                                        )) of-                                 { !_lhsOpp' ->-                                 (case (({-# LINE 340 "src-ag/PrintCode.ag" #-}-                                         []-                                         {-# LINE 3224 "dist/build/PrintCode" #-}-                                         )) of-                                  { !_lhsOstrictVars ->-                                  ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp,_lhsOpp',_lhsOstrictVars) }) }) }) }) }) }) }) }) }) })))-sem_Pattern_Product :: Pos ->-                       T_Patterns ->-                       T_Pattern-sem_Pattern_Product !pos_ !(T_Patterns pats_) =-    (T_Pattern (\ (!_lhsIbelowIrrefutable)-                  (!_lhsIisDeclOfLet)-                  (!_lhsIoptions) ->-                    (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                            _lhsIoptions-                            {-# LINE 3237 "dist/build/PrintCode" #-}-                            )) of-                     { !_patsOoptions ->-                     (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                             _lhsIisDeclOfLet-                             {-# LINE 3242 "dist/build/PrintCode" #-}-                             )) of-                      { !_patsOisDeclOfLet ->-                      (case (({-# LINE 373 "src-ag/PrintCode.ag" #-}-                              _lhsIbelowIrrefutable-                              {-# LINE 3247 "dist/build/PrintCode" #-}-                              )) of-                       { !_patsObelowIrrefutable ->-                       (case (pats_ _patsObelowIrrefutable _patsOisDeclOfLet _patsOoptions) of-                        { ( !_patsIcopy,!_patsIpps,!_patsIpps',!_patsIstrictVars) ->-                            (case (({-# LINE 22 "src-ag/Patterns.ag" #-}-                                    Product pos_ _patsIcopy-                                    {-# LINE 3254 "dist/build/PrintCode" #-}-                                    )) of-                             { !_copy ->-                             (case (({-# LINE 22 "src-ag/Patterns.ag" #-}-                                     _copy-                                     {-# LINE 3259 "dist/build/PrintCode" #-}-                                     )) of-                              { !_lhsOcopy ->-                              (case (({-# LINE 369 "src-ag/PrintCode.ag" #-}-                                      False-                                      {-# LINE 3264 "dist/build/PrintCode" #-}-                                      )) of-                               { !_lhsOisUnderscore ->-                               (case (({-# LINE 352 "src-ag/PrintCode.ag" #-}-                                       if bangpats _lhsIoptions && not _lhsIisDeclOfLet && not _lhsIbelowIrrefutable-                                       then \p -> "!" >|< p-                                       else id-                                       {-# LINE 3271 "dist/build/PrintCode" #-}-                                       )) of-                                { !_addBang ->-                                (case (({-# LINE 358 "src-ag/PrintCode.ag" #-}-                                        _addBang     $ pp_block "(" ")" "," _patsIpps-                                        {-# LINE 3276 "dist/build/PrintCode" #-}-                                        )) of-                                 { !_lhsOpp ->-                                 (case (({-# LINE 392 "src-ag/PrintCode.ag" #-}-                                         pp_block "(" ")" "," _patsIpps'-                                         {-# LINE 3281 "dist/build/PrintCode" #-}-                                         )) of-                                  { !_lhsOpp' ->-                                  (case (({-# LINE 326 "src-ag/PrintCode.ag" #-}-                                          _patsIstrictVars-                                          {-# LINE 3286 "dist/build/PrintCode" #-}-                                          )) of-                                   { !_lhsOstrictVars ->-                                   ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp,_lhsOpp',_lhsOstrictVars) }) }) }) }) }) }) }) }) }) }) })))-sem_Pattern_Underscore :: Pos ->-                          T_Pattern-sem_Pattern_Underscore !pos_ =-    (T_Pattern (\ (!_lhsIbelowIrrefutable)-                  (!_lhsIisDeclOfLet)-                  (!_lhsIoptions) ->-                    (case (({-# LINE 22 "src-ag/Patterns.ag" #-}-                            Underscore pos_-                            {-# LINE 3298 "dist/build/PrintCode" #-}-                            )) of-                     { !_copy ->-                     (case (({-# LINE 22 "src-ag/Patterns.ag" #-}-                             _copy-                             {-# LINE 3303 "dist/build/PrintCode" #-}-                             )) of-                      { !_lhsOcopy ->-                      (case (({-# LINE 371 "src-ag/PrintCode.ag" #-}-                              True-                              {-# LINE 3308 "dist/build/PrintCode" #-}-                              )) of-                       { !_lhsOisUnderscore ->-                       (case (({-# LINE 365 "src-ag/PrintCode.ag" #-}-                               text "_"-                               {-# LINE 3313 "dist/build/PrintCode" #-}-                               )) of-                        { !_lhsOpp ->-                        (case (({-# LINE 397 "src-ag/PrintCode.ag" #-}-                                text "_"-                                {-# LINE 3318 "dist/build/PrintCode" #-}-                                )) of-                         { !_lhsOpp' ->-                         (case (({-# LINE 326 "src-ag/PrintCode.ag" #-}-                                 []-                                 {-# LINE 3323 "dist/build/PrintCode" #-}-                                 )) of-                          { !_lhsOstrictVars ->-                          ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp,_lhsOpp',_lhsOstrictVars) }) }) }) }) }) })))--- Patterns -----------------------------------------------------{--   visit 0:-      inherited attributes:-         belowIrrefutable     : Bool-         isDeclOfLet          : Bool-         options              : Options-      synthesized attributes:-         copy                 : Patterns -         pps                  : [PP_Doc]-         pps'                 : [PP_Doc]-         strictVars           : [PP_Doc]-   alternatives:-      alternative Cons:-         child hd             : Pattern -         child tl             : Patterns -         visit 0:-            local copy        : _-      alternative Nil:-         visit 0:-            local copy        : _--}--- cata-sem_Patterns :: Patterns ->-                T_Patterns-sem_Patterns !list =-    (Prelude.foldr sem_Patterns_Cons sem_Patterns_Nil (Prelude.map sem_Pattern list))--- semantic domain-newtype T_Patterns = T_Patterns (Bool ->-                                 Bool ->-                                 Options ->-                                 ( Patterns,([PP_Doc]),([PP_Doc]),([PP_Doc])))-data Inh_Patterns = Inh_Patterns {belowIrrefutable_Inh_Patterns :: !(Bool),isDeclOfLet_Inh_Patterns :: !(Bool),options_Inh_Patterns :: !(Options)}-data Syn_Patterns = Syn_Patterns {copy_Syn_Patterns :: !(Patterns),pps_Syn_Patterns :: !(([PP_Doc])),pps'_Syn_Patterns :: !(([PP_Doc])),strictVars_Syn_Patterns :: !(([PP_Doc]))}-wrap_Patterns :: T_Patterns ->-                 Inh_Patterns ->-                 Syn_Patterns-wrap_Patterns !(T_Patterns sem) !(Inh_Patterns _lhsIbelowIrrefutable _lhsIisDeclOfLet _lhsIoptions) =-    (let ( !_lhsOcopy,!_lhsOpps,!_lhsOpps',!_lhsOstrictVars) = sem _lhsIbelowIrrefutable _lhsIisDeclOfLet _lhsIoptions-     in  (Syn_Patterns _lhsOcopy _lhsOpps _lhsOpps' _lhsOstrictVars))-sem_Patterns_Cons :: T_Pattern ->-                     T_Patterns ->-                     T_Patterns-sem_Patterns_Cons !(T_Pattern hd_) !(T_Patterns tl_) =-    (T_Patterns (\ (!_lhsIbelowIrrefutable)-                   (!_lhsIisDeclOfLet)-                   (!_lhsIoptions) ->-                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                             _lhsIoptions-                             {-# LINE 3376 "dist/build/PrintCode" #-}-                             )) of-                      { !_tlOoptions ->-                      (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                              _lhsIisDeclOfLet-                              {-# LINE 3381 "dist/build/PrintCode" #-}-                              )) of-                       { !_tlOisDeclOfLet ->-                       (case (({-# LINE 373 "src-ag/PrintCode.ag" #-}-                               _lhsIbelowIrrefutable-                               {-# LINE 3386 "dist/build/PrintCode" #-}-                               )) of-                        { !_tlObelowIrrefutable ->-                        (case (tl_ _tlObelowIrrefutable _tlOisDeclOfLet _tlOoptions) of-                         { ( !_tlIcopy,!_tlIpps,!_tlIpps',!_tlIstrictVars) ->-                             (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                                     _lhsIoptions-                                     {-# LINE 3393 "dist/build/PrintCode" #-}-                                     )) of-                              { !_hdOoptions ->-                              (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}-                                      _lhsIisDeclOfLet-                                      {-# LINE 3398 "dist/build/PrintCode" #-}-                                      )) of-                               { !_hdOisDeclOfLet ->-                               (case (({-# LINE 373 "src-ag/PrintCode.ag" #-}-                                       _lhsIbelowIrrefutable-                                       {-# LINE 3403 "dist/build/PrintCode" #-}-                                       )) of-                                { !_hdObelowIrrefutable ->-                                (case (hd_ _hdObelowIrrefutable _hdOisDeclOfLet _hdOoptions) of-                                 { ( !_hdIcopy,!_hdIisUnderscore,!_hdIpp,!_hdIpp',!_hdIstrictVars) ->-                                     (case (({-# LINE 22 "src-ag/Patterns.ag" #-}-                                             (:) _hdIcopy _tlIcopy-                                             {-# LINE 3410 "dist/build/PrintCode" #-}-                                             )) of-                                      { !_copy ->-                                      (case (({-# LINE 22 "src-ag/Patterns.ag" #-}-                                              _copy-                                              {-# LINE 3415 "dist/build/PrintCode" #-}-                                              )) of-                                       { !_lhsOcopy ->-                                       (case (({-# LINE 347 "src-ag/PrintCode.ag" #-}-                                               _hdIpp : _tlIpps-                                               {-# LINE 3420 "dist/build/PrintCode" #-}-                                               )) of-                                        { !_lhsOpps ->-                                        (case (({-# LINE 387 "src-ag/PrintCode.ag" #-}-                                                _hdIpp' : _tlIpps'-                                                {-# LINE 3425 "dist/build/PrintCode" #-}-                                                )) of-                                         { !_lhsOpps' ->-                                         (case (({-# LINE 326 "src-ag/PrintCode.ag" #-}-                                                 _hdIstrictVars ++ _tlIstrictVars-                                                 {-# LINE 3430 "dist/build/PrintCode" #-}-                                                 )) of-                                          { !_lhsOstrictVars ->-                                          ( _lhsOcopy,_lhsOpps,_lhsOpps',_lhsOstrictVars) }) }) }) }) }) }) }) }) }) }) }) }) })))-sem_Patterns_Nil :: T_Patterns-sem_Patterns_Nil =-    (T_Patterns (\ (!_lhsIbelowIrrefutable)-                   (!_lhsIisDeclOfLet)-                   (!_lhsIoptions) ->-                     (case (({-# LINE 22 "src-ag/Patterns.ag" #-}-                             []-                             {-# LINE 3441 "dist/build/PrintCode" #-}-                             )) of-                      { !_copy ->-                      (case (({-# LINE 22 "src-ag/Patterns.ag" #-}-                              _copy-                              {-# LINE 3446 "dist/build/PrintCode" #-}-                              )) of-                       { !_lhsOcopy ->-                       (case (({-# LINE 348 "src-ag/PrintCode.ag" #-}-                               []-                               {-# LINE 3451 "dist/build/PrintCode" #-}-                               )) of-                        { !_lhsOpps ->-                        (case (({-# LINE 388 "src-ag/PrintCode.ag" #-}-                                []-                                {-# LINE 3456 "dist/build/PrintCode" #-}-                                )) of-                         { !_lhsOpps' ->-                         (case (({-# LINE 326 "src-ag/PrintCode.ag" #-}-                                 []-                                 {-# LINE 3461 "dist/build/PrintCode" #-}-                                 )) of-                          { !_lhsOstrictVars ->-                          ( _lhsOcopy,_lhsOpps,_lhsOpps',_lhsOstrictVars) }) }) }) }) })))--- Program ------------------------------------------------------{--   visit 0:-      inherited attributes:-         importBlocks         : PP_Doc-         mainBlocksDoc        : PP_Doc-         mainFile             : String-         mainName             : String-         moduleHeader         : String -> String -> String -> Bool -> String-         options              : Options-         optionsLine          : String-         pragmaBlocks         : String-         textBlockMap         : Map BlockInfo PP_Doc-         textBlocks           : PP_Doc-      synthesized attributes:-         genIO                : IO ()-         output               : PP_Docs-   alternatives:-      alternative Program:-         child chunks         : Chunks -         child ordered        : {Bool}-         visit 0:-            local options     : _-            local commonFile  : _-            local genCommonModule : _-            local mainModuleFile : _-            local genMainModule : _--}--- cata-sem_Program :: Program ->-               T_Program-sem_Program !(Program _chunks _ordered) =-    (sem_Program_Program (sem_Chunks _chunks) _ordered)--- semantic domain-newtype T_Program = T_Program (PP_Doc ->-                               PP_Doc ->-                               String ->-                               String ->-                               (String -> String -> String -> Bool -> String) ->-                               Options ->-                               String ->-                               String ->-                               (Map BlockInfo PP_Doc) ->-                               PP_Doc ->-                               ( (IO ()),PP_Docs))-data Inh_Program = Inh_Program {importBlocks_Inh_Program :: !(PP_Doc),mainBlocksDoc_Inh_Program :: !(PP_Doc),mainFile_Inh_Program :: !(String),mainName_Inh_Program :: !(String),moduleHeader_Inh_Program :: !((String -> String -> String -> Bool -> String)),options_Inh_Program :: !(Options),optionsLine_Inh_Program :: !(String),pragmaBlocks_Inh_Program :: !(String),textBlockMap_Inh_Program :: !((Map BlockInfo PP_Doc)),textBlocks_Inh_Program :: !(PP_Doc)}-data Syn_Program = Syn_Program {genIO_Syn_Program :: !((IO ())),output_Syn_Program :: !(PP_Docs)}-wrap_Program :: T_Program ->-                Inh_Program ->-                Syn_Program-wrap_Program !(T_Program sem) !(Inh_Program _lhsIimportBlocks _lhsImainBlocksDoc _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIoptionsLine _lhsIpragmaBlocks _lhsItextBlockMap _lhsItextBlocks) =-    (let ( !_lhsOgenIO,!_lhsOoutput) = sem _lhsIimportBlocks _lhsImainBlocksDoc _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIoptionsLine _lhsIpragmaBlocks _lhsItextBlockMap _lhsItextBlocks-     in  (Syn_Program _lhsOgenIO _lhsOoutput))-sem_Program_Program :: T_Chunks ->-                       Bool ->-                       T_Program-sem_Program_Program !(T_Chunks chunks_) !ordered_ =-    (T_Program (\ (!_lhsIimportBlocks)-                  (!_lhsImainBlocksDoc)-                  (!_lhsImainFile)-                  (!_lhsImainName)-                  (!_lhsImoduleHeader)-                  (!_lhsIoptions)-                  (!_lhsIoptionsLine)-                  (!_lhsIpragmaBlocks)-                  (!_lhsItextBlockMap)-                  (!_lhsItextBlocks) ->-                    (case (({-# LINE 435 "src-ag/PrintCode.ag" #-}-                            _lhsItextBlockMap-                            {-# LINE 3534 "dist/build/PrintCode" #-}-                            )) of-                     { !_chunksOtextBlockMap ->-                     (case (({-# LINE 433 "src-ag/PrintCode.ag" #-}-                             _lhsIpragmaBlocks-                             {-# LINE 3539 "dist/build/PrintCode" #-}-                             )) of-                      { !_chunksOpragmaBlocks ->-                      (case (({-# LINE 436 "src-ag/PrintCode.ag" #-}-                              _lhsIoptionsLine-                              {-# LINE 3544 "dist/build/PrintCode" #-}-                              )) of-                       { !_chunksOoptionsLine ->-                       (case (({-# LINE 59 "src-ag/PrintCode.ag" #-}-                               _lhsIoptions { breadthFirst = breadthFirst _lhsIoptions && visit _lhsIoptions && cases _lhsIoptions && ordered_ }-                               {-# LINE 3549 "dist/build/PrintCode" #-}-                               )) of-                        { !_options ->-                        (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}-                                _options-                                {-# LINE 3554 "dist/build/PrintCode" #-}-                                )) of-                         { !_chunksOoptions ->-                         (case (({-# LINE 439 "src-ag/PrintCode.ag" #-}-                                 _lhsImoduleHeader-                                 {-# LINE 3559 "dist/build/PrintCode" #-}-                                 )) of-                          { !_chunksOmoduleHeader ->-                          (case (({-# LINE 438 "src-ag/PrintCode.ag" #-}-                                  _lhsImainName-                                  {-# LINE 3564 "dist/build/PrintCode" #-}-                                  )) of-                           { !_chunksOmainName ->-                           (case (({-# LINE 437 "src-ag/PrintCode.ag" #-}-                                   _lhsImainFile-                                   {-# LINE 3569 "dist/build/PrintCode" #-}-                                   )) of-                            { !_chunksOmainFile ->-                            (case (({-# LINE 457 "src-ag/PrintCode.ag" #-}-                                    replaceBaseName _lhsImainFile (takeBaseName _lhsImainFile ++ "_common")-                                    {-# LINE 3574 "dist/build/PrintCode" #-}-                                    )) of-                             { !_commonFile ->-                             (case (({-# LINE 410 "src-ag/PrintCode.ag" #-}-                                     False-                                     {-# LINE 3579 "dist/build/PrintCode" #-}-                                     )) of-                              { !_chunksOisDeclOfLet ->-                              (case (({-# LINE 62 "src-ag/PrintCode.ag" #-}-                                      nest _lhsIoptions-                                      {-# LINE 3584 "dist/build/PrintCode" #-}-                                      )) of-                               { !_chunksOnested ->-                               (case (({-# LINE 434 "src-ag/PrintCode.ag" #-}-                                       _lhsItextBlocks-                                       {-# LINE 3589 "dist/build/PrintCode" #-}-                                       )) of-                                { !_chunksOtextBlocks ->-                                (case (({-# LINE 432 "src-ag/PrintCode.ag" #-}-                                        _lhsIimportBlocks-                                        {-# LINE 3594 "dist/build/PrintCode" #-}-                                        )) of-                                 { !_chunksOimportBlocks ->-                                 (case (chunks_ _chunksOimportBlocks _chunksOisDeclOfLet _chunksOmainFile _chunksOmainName _chunksOmoduleHeader _chunksOnested _chunksOoptions _chunksOoptionsLine _chunksOpragmaBlocks _chunksOtextBlockMap _chunksOtextBlocks) of-                                  { ( !_chunksIappendCommon,!_chunksIappendMain,!_chunksIgenSems,!_chunksIimports,!_chunksIpps) ->-                                      (case (({-# LINE 458 "src-ag/PrintCode.ag" #-}-                                              writeModule _commonFile-                                                  ( [ pp $ _lhsIpragmaBlocks-                                                    , pp $ _lhsIoptionsLine-                                                    , pp $ _lhsImoduleHeader _lhsImainName "_common" "" True-                                                    , _lhsIimportBlocks-                                                    , _lhsItextBlocks-                                                    ]-                                                    ++ map vlist _chunksIappendCommon-                                                  )-                                              {-# LINE 3609 "dist/build/PrintCode" #-}-                                              )) of-                                       { !_genCommonModule ->-                                       (case (({-# LINE 444 "src-ag/PrintCode.ag" #-}-                                               _lhsImainFile-                                               {-# LINE 3614 "dist/build/PrintCode" #-}-                                               )) of-                                        { !_mainModuleFile ->-                                        (case (({-# LINE 445 "src-ag/PrintCode.ag" #-}-                                                writeModule _mainModuleFile-                                                  ( [ pp $ _lhsIpragmaBlocks-                                                    , pp $ _lhsIoptionsLine-                                                    , pp $ _lhsImoduleHeader _lhsImainName "" "" False-                                                    , pp $ ("import " ++ _lhsImainName ++ "_common\n")-                                                    ]-                                                    ++ map pp _chunksIimports-                                                    ++ map vlist _chunksIappendMain-                                                    ++ [_lhsImainBlocksDoc]-                                                  )-                                                {-# LINE 3628 "dist/build/PrintCode" #-}-                                                )) of-                                         { !_genMainModule ->-                                         (case (({-# LINE 469 "src-ag/PrintCode.ag" #-}-                                                 do _genMainModule-                                                    _genCommonModule-                                                    _chunksIgenSems-                                                 {-# LINE 3635 "dist/build/PrintCode" #-}-                                                 )) of-                                          { !_lhsOgenIO ->-                                          (case (({-# LINE 94 "src-ag/PrintCode.ag" #-}-                                                  _chunksIpps-                                                  {-# LINE 3640 "dist/build/PrintCode" #-}-                                                  )) of-                                           { !_lhsOoutput ->-                                           ( _lhsOgenIO,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))--- Type ---------------------------------------------------------{--   visit 0:-      inherited attribute:-         nested               : Bool-      synthesized attributes:-         pp                   : PP_Doc-         prec                 : Int-   alternatives:-      alternative Arr:-         child left           : Type -         child right          : Type -         visit 0:-            local r           : _-            local l           : _-      alternative CtxApp:-         child left           : {[(String, [String])]}-         child right          : Type -      alternative List:-         child tp             : Type -      alternative NontermType:-         child name           : {String}-         child params         : {[String]}-         child deforested     : {Bool}-         visit 0:-            local prefix      : _-      alternative QuantApp:-         child left           : {String}-         child right          : Type -      alternative SimpleType:-         child txt            : {String}-      alternative TEither:-         child left           : Type -         child right          : Type -      alternative TIntMap:-         child value          : Type -      alternative TMap:-         child key            : Type -         child value          : Type -      alternative TMaybe:-         child tp             : Type -      alternative TupleType:-         child tps            : Types -      alternative TypeApp:-         child func           : Type -         child args           : Types -      alternative UnboxedTupleType:-         child tps            : Types --}--- cata-sem_Type :: Type ->-            T_Type-sem_Type !(Arr _left _right) =-    (sem_Type_Arr (sem_Type _left) (sem_Type _right))-sem_Type !(CtxApp _left _right) =-    (sem_Type_CtxApp _left (sem_Type _right))-sem_Type !(List _tp) =-    (sem_Type_List (sem_Type _tp))-sem_Type !(NontermType _name _params _deforested) =-    (sem_Type_NontermType _name _params _deforested)-sem_Type !(QuantApp _left _right) =-    (sem_Type_QuantApp _left (sem_Type _right))-sem_Type !(SimpleType _txt) =-    (sem_Type_SimpleType _txt)-sem_Type !(TEither _left _right) =-    (sem_Type_TEither (sem_Type _left) (sem_Type _right))-sem_Type !(TIntMap _value) =-    (sem_Type_TIntMap (sem_Type _value))-sem_Type !(TMap _key _value) =-    (sem_Type_TMap (sem_Type _key) (sem_Type _value))-sem_Type !(TMaybe _tp) =-    (sem_Type_TMaybe (sem_Type _tp))-sem_Type !(TupleType _tps) =-    (sem_Type_TupleType (sem_Types _tps))-sem_Type !(TypeApp _func _args) =-    (sem_Type_TypeApp (sem_Type _func) (sem_Types _args))-sem_Type !(UnboxedTupleType _tps) =-    (sem_Type_UnboxedTupleType (sem_Types _tps))--- semantic domain-newtype T_Type = T_Type (Bool ->-                         ( PP_Doc,Int))-data Inh_Type = Inh_Type {nested_Inh_Type :: !(Bool)}-data Syn_Type = Syn_Type {pp_Syn_Type :: !(PP_Doc),prec_Syn_Type :: !(Int)}-wrap_Type :: T_Type ->-             Inh_Type ->-             Syn_Type-wrap_Type !(T_Type sem) !(Inh_Type _lhsInested) =-    (let ( !_lhsOpp,!_lhsOprec) = sem _lhsInested-     in  (Syn_Type _lhsOpp _lhsOprec))-sem_Type_Arr :: T_Type ->-                T_Type ->-                T_Type-sem_Type_Arr !(T_Type left_) !(T_Type right_) =-    (T_Type (\ (!_lhsInested) ->-                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                         _lhsInested-                         {-# LINE 3740 "dist/build/PrintCode" #-}-                         )) of-                  { !_rightOnested ->-                  (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                          _lhsInested-                          {-# LINE 3745 "dist/build/PrintCode" #-}-                          )) of-                   { !_leftOnested ->-                   (case (right_ _rightOnested) of-                    { ( !_rightIpp,!_rightIprec) ->-                        (case (({-# LINE 263 "src-ag/PrintCode.ag" #-}-                                if _rightIprec <  2 then pp_parens _rightIpp else _rightIpp-                                {-# LINE 3752 "dist/build/PrintCode" #-}-                                )) of-                         { !_r ->-                         (case (left_ _leftOnested) of-                          { ( !_leftIpp,!_leftIprec) ->-                              (case (({-# LINE 262 "src-ag/PrintCode.ag" #-}-                                      if _leftIprec  <= 2 then pp_parens _leftIpp  else _leftIpp-                                      {-# LINE 3759 "dist/build/PrintCode" #-}-                                      )) of-                               { !_l ->-                               (case (({-# LINE 261 "src-ag/PrintCode.ag" #-}-                                       _l     >#< "->" >-< _r-                                       {-# LINE 3764 "dist/build/PrintCode" #-}-                                       )) of-                                { !_lhsOpp ->-                                (case (({-# LINE 260 "src-ag/PrintCode.ag" #-}-                                        2-                                        {-# LINE 3769 "dist/build/PrintCode" #-}-                                        )) of-                                 { !_lhsOprec ->-                                 ( _lhsOpp,_lhsOprec) }) }) }) }) }) }) }) })))-sem_Type_CtxApp :: ([(String, [String])]) ->-                   T_Type ->-                   T_Type-sem_Type_CtxApp !left_ !(T_Type right_) =-    (T_Type (\ (!_lhsInested) ->-                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                         _lhsInested-                         {-# LINE 3780 "dist/build/PrintCode" #-}-                         )) of-                  { !_rightOnested ->-                  (case (right_ _rightOnested) of-                   { ( !_rightIpp,!_rightIprec) ->-                       (case (({-# LINE 269 "src-ag/PrintCode.ag" #-}-                               (pp_block "(" ")" "," $ map (\(n,ns) -> hv_sp $ map pp (n:ns)) left_) >#< "=>" >#< _rightIpp-                               {-# LINE 3787 "dist/build/PrintCode" #-}-                               )) of-                        { !_lhsOpp ->-                        (case (({-# LINE 259 "src-ag/PrintCode.ag" #-}-                                _rightIprec-                                {-# LINE 3792 "dist/build/PrintCode" #-}-                                )) of-                         { !_lhsOprec ->-                         ( _lhsOpp,_lhsOprec) }) }) }) })))-sem_Type_List :: T_Type ->-                 T_Type-sem_Type_List !(T_Type tp_) =-    (T_Type (\ (!_lhsInested) ->-                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                         _lhsInested-                         {-# LINE 3802 "dist/build/PrintCode" #-}-                         )) of-                  { !_tpOnested ->-                  (case (tp_ _tpOnested) of-                   { ( !_tpIpp,!_tpIprec) ->-                       (case (({-# LINE 280 "src-ag/PrintCode.ag" #-}-                               "[" >|< _tpIpp >|< "]"-                               {-# LINE 3809 "dist/build/PrintCode" #-}-                               )) of-                        { !_lhsOpp ->-                        (case (({-# LINE 279 "src-ag/PrintCode.ag" #-}-                                5-                                {-# LINE 3814 "dist/build/PrintCode" #-}-                                )) of-                         { !_lhsOprec ->-                         ( _lhsOpp,_lhsOprec) }) }) }) })))-sem_Type_NontermType :: String ->-                        ([String]) ->-                        Bool ->-                        T_Type-sem_Type_NontermType !name_ !params_ !deforested_ =-    (T_Type (\ (!_lhsInested) ->-                 (case (({-# LINE 287 "src-ag/PrintCode.ag" #-}-                         if deforested_-                         then text "T_"-                         else empty-                         {-# LINE 3828 "dist/build/PrintCode" #-}-                         )) of-                  { !_prefix ->-                  (case (({-# LINE 286 "src-ag/PrintCode.ag" #-}-                          _prefix     >|< text name_ >#< hv_sp params_-                          {-# LINE 3833 "dist/build/PrintCode" #-}-                          )) of-                   { !_lhsOpp ->-                   (case (({-# LINE 285 "src-ag/PrintCode.ag" #-}-                           5-                           {-# LINE 3838 "dist/build/PrintCode" #-}-                           )) of-                    { !_lhsOprec ->-                    ( _lhsOpp,_lhsOprec) }) }) })))-sem_Type_QuantApp :: String ->-                     T_Type ->-                     T_Type-sem_Type_QuantApp !left_ !(T_Type right_) =-    (T_Type (\ (!_lhsInested) ->-                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                         _lhsInested-                         {-# LINE 3849 "dist/build/PrintCode" #-}-                         )) of-                  { !_rightOnested ->-                  (case (right_ _rightOnested) of-                   { ( !_rightIpp,!_rightIprec) ->-                       (case (({-# LINE 271 "src-ag/PrintCode.ag" #-}-                               left_ >#< _rightIpp-                               {-# LINE 3856 "dist/build/PrintCode" #-}-                               )) of-                        { !_lhsOpp ->-                        (case (({-# LINE 259 "src-ag/PrintCode.ag" #-}-                                _rightIprec-                                {-# LINE 3861 "dist/build/PrintCode" #-}-                                )) of-                         { !_lhsOprec ->-                         ( _lhsOpp,_lhsOprec) }) }) }) })))-sem_Type_SimpleType :: String ->-                       T_Type-sem_Type_SimpleType !txt_ =-    (T_Type (\ (!_lhsInested) ->-                 (case (({-# LINE 283 "src-ag/PrintCode.ag" #-}-                         if reallySimple txt_ then text txt_ else pp_parens (text txt_)-                         {-# LINE 3871 "dist/build/PrintCode" #-}-                         )) of-                  { !_lhsOpp ->-                  (case (({-# LINE 282 "src-ag/PrintCode.ag" #-}-                          5-                          {-# LINE 3876 "dist/build/PrintCode" #-}-                          )) of-                   { !_lhsOprec ->-                   ( _lhsOpp,_lhsOprec) }) })))-sem_Type_TEither :: T_Type ->-                    T_Type ->-                    T_Type-sem_Type_TEither !(T_Type left_) !(T_Type right_) =-    (T_Type (\ (!_lhsInested) ->-                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                         _lhsInested-                         {-# LINE 3887 "dist/build/PrintCode" #-}-                         )) of-                  { !_rightOnested ->-                  (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                          _lhsInested-                          {-# LINE 3892 "dist/build/PrintCode" #-}-                          )) of-                   { !_leftOnested ->-                   (case (right_ _rightOnested) of-                    { ( !_rightIpp,!_rightIprec) ->-                        (case (left_ _leftOnested) of-                         { ( !_leftIpp,!_leftIprec) ->-                             (case (({-# LINE 293 "src-ag/PrintCode.ag" #-}-                                     text "Either" >#< pp_parens _leftIpp >#< pp_parens _rightIpp-                                     {-# LINE 3901 "dist/build/PrintCode" #-}-                                     )) of-                              { !_lhsOpp ->-                              (case (({-# LINE 292 "src-ag/PrintCode.ag" #-}-                                      5-                                      {-# LINE 3906 "dist/build/PrintCode" #-}-                                      )) of-                               { !_lhsOprec ->-                               ( _lhsOpp,_lhsOprec) }) }) }) }) }) })))-sem_Type_TIntMap :: T_Type ->-                    T_Type-sem_Type_TIntMap !(T_Type value_) =-    (T_Type (\ (!_lhsInested) ->-                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                         _lhsInested-                         {-# LINE 3916 "dist/build/PrintCode" #-}-                         )) of-                  { !_valueOnested ->-                  (case (value_ _valueOnested) of-                   { ( !_valueIpp,!_valueIprec) ->-                       (case (({-# LINE 297 "src-ag/PrintCode.ag" #-}-                               text "Data.IntMap.IntMap" >#< pp_parens _valueIpp-                               {-# LINE 3923 "dist/build/PrintCode" #-}-                               )) of-                        { !_lhsOpp ->-                        (case (({-# LINE 296 "src-ag/PrintCode.ag" #-}-                                5-                                {-# LINE 3928 "dist/build/PrintCode" #-}-                                )) of-                         { !_lhsOprec ->-                         ( _lhsOpp,_lhsOprec) }) }) }) })))-sem_Type_TMap :: T_Type ->-                 T_Type ->-                 T_Type-sem_Type_TMap !(T_Type key_) !(T_Type value_) =-    (T_Type (\ (!_lhsInested) ->-                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                         _lhsInested-                         {-# LINE 3939 "dist/build/PrintCode" #-}-                         )) of-                  { !_valueOnested ->-                  (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                          _lhsInested-                          {-# LINE 3944 "dist/build/PrintCode" #-}-                          )) of-                   { !_keyOnested ->-                   (case (value_ _valueOnested) of-                    { ( !_valueIpp,!_valueIprec) ->-                        (case (key_ _keyOnested) of-                         { ( !_keyIpp,!_keyIprec) ->-                             (case (({-# LINE 295 "src-ag/PrintCode.ag" #-}-                                     text "Data.Map.Map" >#< pp_parens _keyIpp >#< pp_parens _valueIpp-                                     {-# LINE 3953 "dist/build/PrintCode" #-}-                                     )) of-                              { !_lhsOpp ->-                              (case (({-# LINE 294 "src-ag/PrintCode.ag" #-}-                                      5-                                      {-# LINE 3958 "dist/build/PrintCode" #-}-                                      )) of-                               { !_lhsOprec ->-                               ( _lhsOpp,_lhsOprec) }) }) }) }) }) })))-sem_Type_TMaybe :: T_Type ->-                   T_Type-sem_Type_TMaybe !(T_Type tp_) =-    (T_Type (\ (!_lhsInested) ->-                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                         _lhsInested-                         {-# LINE 3968 "dist/build/PrintCode" #-}-                         )) of-                  { !_tpOnested ->-                  (case (tp_ _tpOnested) of-                   { ( !_tpIpp,!_tpIprec) ->-                       (case (({-# LINE 291 "src-ag/PrintCode.ag" #-}-                               text "Maybe" >#< _tpIpp-                               {-# LINE 3975 "dist/build/PrintCode" #-}-                               )) of-                        { !_lhsOpp ->-                        (case (({-# LINE 290 "src-ag/PrintCode.ag" #-}-                                5-                                {-# LINE 3980 "dist/build/PrintCode" #-}-                                )) of-                         { !_lhsOprec ->-                         ( _lhsOpp,_lhsOprec) }) }) }) })))-sem_Type_TupleType :: T_Types ->-                      T_Type-sem_Type_TupleType !(T_Types tps_) =-    (T_Type (\ (!_lhsInested) ->-                 (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                         _lhsInested-                         {-# LINE 3990 "dist/build/PrintCode" #-}-                         )) of-                  { !_tpsOnested ->-                  (case (tps_ _tpsOnested) of-                   { ( !_tpsIpps) ->-                       (case (({-# LINE 274 "src-ag/PrintCode.ag" #-}-                               ppTuple _lhsInested _tpsIpps-                               {-# LINE 3997 "dist/build/PrintCode" #-}-                               )) of-                        { !_lhsOpp ->-                        (case (({-# LINE 273 "src-ag/PrintCode.ag" #-}-                                5-                                {-# LINE 4002 "dist/build/PrintCode" #-}-                                )) of-                         { !_lhsOprec ->-                         ( _lhsOpp,_lhsOprec) }) }) }) })))-sem_Type_TypeApp :: T_Type ->-                    T_Types ->-                    T_Type-sem_Type_TypeApp !(T_Type func_) !(T_Types args_) =-    (T_Type (\ (!_lhsInested) ->-                 (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                         _lhsInested-                         {-# LINE 4013 "dist/build/PrintCode" #-}-                         )) of-                  { !_argsOnested ->-                  (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                          _lhsInested-                          {-# LINE 4018 "dist/build/PrintCode" #-}-                          )) of-                   { !_funcOnested ->-                   (case (args_ _argsOnested) of-                    { ( !_argsIpps) ->-                        (case (func_ _funcOnested) of-                         { ( !_funcIpp,!_funcIprec) ->-                             (case (({-# LINE 266 "src-ag/PrintCode.ag" #-}-                                     hv_sp (_funcIpp : _argsIpps)-                                     {-# LINE 4027 "dist/build/PrintCode" #-}-                                     )) of-                              { !_lhsOpp ->-                              (case (({-# LINE 259 "src-ag/PrintCode.ag" #-}-                                      _funcIprec-                                      {-# LINE 4032 "dist/build/PrintCode" #-}-                                      )) of-                               { !_lhsOprec ->-                               ( _lhsOpp,_lhsOprec) }) }) }) }) }) })))-sem_Type_UnboxedTupleType :: T_Types ->-                             T_Type-sem_Type_UnboxedTupleType !(T_Types tps_) =-    (T_Type (\ (!_lhsInested) ->-                 (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                         _lhsInested-                         {-# LINE 4042 "dist/build/PrintCode" #-}-                         )) of-                  { !_tpsOnested ->-                  (case (tps_ _tpsOnested) of-                   { ( !_tpsIpps) ->-                       (case (({-# LINE 277 "src-ag/PrintCode.ag" #-}-                               ppUnboxedTuple _lhsInested _tpsIpps-                               {-# LINE 4049 "dist/build/PrintCode" #-}-                               )) of-                        { !_lhsOpp ->-                        (case (({-# LINE 276 "src-ag/PrintCode.ag" #-}-                                5-                                {-# LINE 4054 "dist/build/PrintCode" #-}-                                )) of-                         { !_lhsOprec ->-                         ( _lhsOpp,_lhsOprec) }) }) }) })))--- Types --------------------------------------------------------{--   visit 0:-      inherited attribute:-         nested               : Bool-      synthesized attribute:-         pps                  : PP_Docs-   alternatives:-      alternative Cons:-         child hd             : Type -         child tl             : Types -      alternative Nil:--}--- cata-sem_Types :: Types ->-             T_Types-sem_Types !list =-    (Prelude.foldr sem_Types_Cons sem_Types_Nil (Prelude.map sem_Type list))--- semantic domain-newtype T_Types = T_Types (Bool ->-                           ( PP_Docs))-data Inh_Types = Inh_Types {nested_Inh_Types :: !(Bool)}-data Syn_Types = Syn_Types {pps_Syn_Types :: !(PP_Docs)}-wrap_Types :: T_Types ->-              Inh_Types ->-              Syn_Types-wrap_Types !(T_Types sem) !(Inh_Types _lhsInested) =-    (let ( !_lhsOpps) = sem _lhsInested-     in  (Syn_Types _lhsOpps))-sem_Types_Cons :: T_Type ->-                  T_Types ->-                  T_Types-sem_Types_Cons !(T_Type hd_) !(T_Types tl_) =-    (T_Types (\ (!_lhsInested) ->-                  (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}-                          _lhsInested-                          {-# LINE 4094 "dist/build/PrintCode" #-}-                          )) of-                   { !_tlOnested ->-                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}-                           _lhsInested-                           {-# LINE 4099 "dist/build/PrintCode" #-}-                           )) of-                    { !_hdOnested ->-                    (case (tl_ _tlOnested) of-                     { ( !_tlIpps) ->-                         (case (hd_ _hdOnested) of-                          { ( !_hdIpp,!_hdIprec) ->-                              (case (({-# LINE 77 "src-ag/PrintCode.ag" #-}-                                      _hdIpp : _tlIpps-                                      {-# LINE 4108 "dist/build/PrintCode" #-}-                                      )) of-                               { !_lhsOpps ->-                               ( _lhsOpps) }) }) }) }) })))-sem_Types_Nil :: T_Types-sem_Types_Nil =-    (T_Types (\ (!_lhsInested) ->-                  (case (({-# LINE 78 "src-ag/PrintCode.ag" #-}-                          []-                          {-# LINE 4117 "dist/build/PrintCode" #-}-                          )) of-                   { !_lhsOpps ->-                   ( _lhsOpps) })))+                                      (case ((Syn_CaseAlt _lhsOpps)) of+                                       { ___node ->+                                       ( _lhsOpps) }) }) }) }) }) }) }) }) }) }) })))+-- CaseAlts ----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         nested               : Bool+         options              : Options+         outputfile           : String+      synthesized attribute:+         pps                  : PP_Docs+   alternatives:+      alternative Cons:+         child hd             : CaseAlt +         child tl             : CaseAlts +      alternative Nil:+-}+-- cata+sem_CaseAlts :: CaseAlts ->+                T_CaseAlts+sem_CaseAlts !list =+    (Prelude.foldr sem_CaseAlts_Cons sem_CaseAlts_Nil (Prelude.map sem_CaseAlt list))+-- semantic domain+newtype T_CaseAlts = T_CaseAlts (Bool ->+                                 Options ->+                                 String ->+                                 ( PP_Docs))+data Inh_CaseAlts = Inh_CaseAlts {nested_Inh_CaseAlts :: !(Bool),options_Inh_CaseAlts :: !(Options),outputfile_Inh_CaseAlts :: !(String)}+data Syn_CaseAlts = Syn_CaseAlts {pps_Syn_CaseAlts :: !(PP_Docs)}+wrap_CaseAlts :: T_CaseAlts ->+                 Inh_CaseAlts ->+                 Syn_CaseAlts+wrap_CaseAlts !(T_CaseAlts sem) !(Inh_CaseAlts _lhsInested _lhsIoptions _lhsIoutputfile) =+    (let ( !_lhsOpps) = sem _lhsInested _lhsIoptions _lhsIoutputfile+     in  (Syn_CaseAlts _lhsOpps))+sem_CaseAlts_Cons :: T_CaseAlt ->+                     T_CaseAlts ->+                     T_CaseAlts+sem_CaseAlts_Cons !(T_CaseAlt hd_) !(T_CaseAlts tl_) =+    (T_CaseAlts (\ (!_lhsInested)+                   (!_lhsIoptions)+                   (!_lhsIoutputfile) ->+                     (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                             _lhsIoutputfile+                             {-# LINE 243 "dist/build/PrintCode" #-}+                             )) of+                      { !_tlOoutputfile ->+                      (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                              _lhsIoptions+                              {-# LINE 248 "dist/build/PrintCode" #-}+                              )) of+                       { !_tlOoptions ->+                       (case (({-# LINE 56 "src-ag/PrintCode.ag" #-}+                               _lhsInested+                               {-# LINE 253 "dist/build/PrintCode" #-}+                               )) of+                        { !_tlOnested ->+                        (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                                _lhsIoutputfile+                                {-# LINE 258 "dist/build/PrintCode" #-}+                                )) of+                         { !_hdOoutputfile ->+                         (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                                 _lhsIoptions+                                 {-# LINE 263 "dist/build/PrintCode" #-}+                                 )) of+                          { !_hdOoptions ->+                          (case (({-# LINE 56 "src-ag/PrintCode.ag" #-}+                                  _lhsInested+                                  {-# LINE 268 "dist/build/PrintCode" #-}+                                  )) of+                           { !_hdOnested ->+                           (case (tl_ _tlOnested _tlOoptions _tlOoutputfile) of+                            { ( !_tlIpps) ->+                                (case (hd_ _hdOnested _hdOoptions _hdOoutputfile) of+                                 { ( !_hdIpps) ->+                                     (case (({-# LINE 69 "src-ag/PrintCode.ag" #-}+                                             _hdIpps ++ _tlIpps+                                             {-# LINE 277 "dist/build/PrintCode" #-}+                                             )) of+                                      { !_lhsOpps ->+                                      (case ((Syn_CaseAlts _lhsOpps)) of+                                       { ___node ->+                                       ( _lhsOpps) }) }) }) }) }) }) }) }) }) })))+sem_CaseAlts_Nil :: T_CaseAlts+sem_CaseAlts_Nil =+    (T_CaseAlts (\ (!_lhsInested)+                   (!_lhsIoptions)+                   (!_lhsIoutputfile) ->+                     (case (({-# LINE 70 "src-ag/PrintCode.ag" #-}+                             []+                             {-# LINE 290 "dist/build/PrintCode" #-}+                             )) of+                      { !_lhsOpps ->+                      (case ((Syn_CaseAlts _lhsOpps)) of+                       { ___node ->+                       ( _lhsOpps) }) })))+-- Chunk -------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         importBlocks         : PP_Doc+         isDeclOfLet          : Bool+         mainFile             : String+         mainName             : String+         moduleHeader         : String -> String -> String -> Bool -> String+         nested               : Bool+         options              : Options+         optionsLine          : String+         pragmaBlocks         : String+         textBlockMap         : Map BlockInfo PP_Doc+         textBlocks           : PP_Doc+      synthesized attributes:+         appendCommon         : [[PP_Doc]]+         appendMain           : [[PP_Doc]]+         genSems              : IO ()+         imports              : [String]+         pps                  : PP_Docs+   alternatives:+      alternative Chunk:+         child name           : {String}+         child comment        : Decl +         child info           : Decls +         child dataDef        : Decls +         child cataFun        : Decls +         child semDom         : Decls +         child semWrapper     : Decls +         child semFunctions   : Decls +         child semNames       : {[String]}+         visit 0:+            local outputfile  : _+            local exports     : _+-}+-- cata+sem_Chunk :: Chunk ->+             T_Chunk+sem_Chunk !(Chunk _name _comment _info _dataDef _cataFun _semDom _semWrapper _semFunctions _semNames) =+    (sem_Chunk_Chunk _name (sem_Decl _comment) (sem_Decls _info) (sem_Decls _dataDef) (sem_Decls _cataFun) (sem_Decls _semDom) (sem_Decls _semWrapper) (sem_Decls _semFunctions) _semNames)+-- semantic domain+newtype T_Chunk = T_Chunk (PP_Doc ->+                           Bool ->+                           String ->+                           String ->+                           (String -> String -> String -> Bool -> String) ->+                           Bool ->+                           Options ->+                           String ->+                           String ->+                           (Map BlockInfo PP_Doc) ->+                           PP_Doc ->+                           ( ([[PP_Doc]]),([[PP_Doc]]),(IO ()),([String]),PP_Docs))+data Inh_Chunk = Inh_Chunk {importBlocks_Inh_Chunk :: !(PP_Doc),isDeclOfLet_Inh_Chunk :: !(Bool),mainFile_Inh_Chunk :: !(String),mainName_Inh_Chunk :: !(String),moduleHeader_Inh_Chunk :: !((String -> String -> String -> Bool -> String)),nested_Inh_Chunk :: !(Bool),options_Inh_Chunk :: !(Options),optionsLine_Inh_Chunk :: !(String),pragmaBlocks_Inh_Chunk :: !(String),textBlockMap_Inh_Chunk :: !((Map BlockInfo PP_Doc)),textBlocks_Inh_Chunk :: !(PP_Doc)}+data Syn_Chunk = Syn_Chunk {appendCommon_Syn_Chunk :: !(([[PP_Doc]])),appendMain_Syn_Chunk :: !(([[PP_Doc]])),genSems_Syn_Chunk :: !((IO ())),imports_Syn_Chunk :: !(([String])),pps_Syn_Chunk :: !(PP_Docs)}+wrap_Chunk :: T_Chunk ->+              Inh_Chunk ->+              Syn_Chunk+wrap_Chunk !(T_Chunk sem) !(Inh_Chunk _lhsIimportBlocks _lhsIisDeclOfLet _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInested _lhsIoptions _lhsIoptionsLine _lhsIpragmaBlocks _lhsItextBlockMap _lhsItextBlocks) =+    (let ( !_lhsOappendCommon,!_lhsOappendMain,!_lhsOgenSems,!_lhsOimports,!_lhsOpps) = sem _lhsIimportBlocks _lhsIisDeclOfLet _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInested _lhsIoptions _lhsIoptionsLine _lhsIpragmaBlocks _lhsItextBlockMap _lhsItextBlocks+     in  (Syn_Chunk _lhsOappendCommon _lhsOappendMain _lhsOgenSems _lhsOimports _lhsOpps))+sem_Chunk_Chunk :: String ->+                   T_Decl ->+                   T_Decls ->+                   T_Decls ->+                   T_Decls ->+                   T_Decls ->+                   T_Decls ->+                   T_Decls ->+                   ([String]) ->+                   T_Chunk+sem_Chunk_Chunk !name_ !(T_Decl comment_) !(T_Decls info_) !(T_Decls dataDef_) !(T_Decls cataFun_) !(T_Decls semDom_) !(T_Decls semWrapper_) !(T_Decls semFunctions_) !semNames_ =+    (T_Chunk (\ (!_lhsIimportBlocks)+                (!_lhsIisDeclOfLet)+                (!_lhsImainFile)+                (!_lhsImainName)+                (!_lhsImoduleHeader)+                (!_lhsInested)+                (!_lhsIoptions)+                (!_lhsIoptionsLine)+                (!_lhsIpragmaBlocks)+                (!_lhsItextBlockMap)+                (!_lhsItextBlocks) ->+                  (case (({-# LINE 44 "src-ag/PrintCode.ag" #-}+                          if sepSemMods _lhsIoptions+                          then replaceBaseName _lhsImainFile (takeBaseName _lhsImainFile ++ "_" ++ name_)+                          else _lhsImainFile+                          {-# LINE 384 "dist/build/PrintCode" #-}+                          )) of+                   { !_outputfile ->+                   (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                           _outputfile+                           {-# LINE 389 "dist/build/PrintCode" #-}+                           )) of+                    { !_semWrapperOoutputfile ->+                    (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                            _lhsIoptions+                            {-# LINE 394 "dist/build/PrintCode" #-}+                            )) of+                     { !_semWrapperOoptions ->+                     (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                             _lhsInested+                             {-# LINE 399 "dist/build/PrintCode" #-}+                             )) of+                      { !_semWrapperOnested ->+                      (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                              _lhsIisDeclOfLet+                              {-# LINE 404 "dist/build/PrintCode" #-}+                              )) of+                       { !_semWrapperOisDeclOfLet ->+                       (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                               _outputfile+                               {-# LINE 409 "dist/build/PrintCode" #-}+                               )) of+                        { !_semDomOoutputfile ->+                        (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                                _lhsIoptions+                                {-# LINE 414 "dist/build/PrintCode" #-}+                                )) of+                         { !_semDomOoptions ->+                         (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                                 _lhsInested+                                 {-# LINE 419 "dist/build/PrintCode" #-}+                                 )) of+                          { !_semDomOnested ->+                          (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                                  _lhsIisDeclOfLet+                                  {-# LINE 424 "dist/build/PrintCode" #-}+                                  )) of+                           { !_semDomOisDeclOfLet ->+                           (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                                   _outputfile+                                   {-# LINE 429 "dist/build/PrintCode" #-}+                                   )) of+                            { !_dataDefOoutputfile ->+                            (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                                    _lhsIoptions+                                    {-# LINE 434 "dist/build/PrintCode" #-}+                                    )) of+                             { !_dataDefOoptions ->+                             (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                                     _lhsInested+                                     {-# LINE 439 "dist/build/PrintCode" #-}+                                     )) of+                              { !_dataDefOnested ->+                              (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                                      _lhsIisDeclOfLet+                                      {-# LINE 444 "dist/build/PrintCode" #-}+                                      )) of+                               { !_dataDefOisDeclOfLet ->+                               (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                                       _outputfile+                                       {-# LINE 449 "dist/build/PrintCode" #-}+                                       )) of+                                { !_commentOoutputfile ->+                                (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                                        _lhsIoptions+                                        {-# LINE 454 "dist/build/PrintCode" #-}+                                        )) of+                                 { !_commentOoptions ->+                                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                                         _lhsInested+                                         {-# LINE 459 "dist/build/PrintCode" #-}+                                         )) of+                                  { !_commentOnested ->+                                  (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                                          _lhsIisDeclOfLet+                                          {-# LINE 464 "dist/build/PrintCode" #-}+                                          )) of+                                   { !_commentOisDeclOfLet ->+                                   (case (semWrapper_ _semWrapperOisDeclOfLet _semWrapperOnested _semWrapperOoptions _semWrapperOoutputfile) of+                                    { ( !_semWrapperIpps) ->+                                        (case (semDom_ _semDomOisDeclOfLet _semDomOnested _semDomOoptions _semDomOoutputfile) of+                                         { ( !_semDomIpps) ->+                                             (case (dataDef_ _dataDefOisDeclOfLet _dataDefOnested _dataDefOoptions _dataDefOoutputfile) of+                                              { ( !_dataDefIpps) ->+                                                  (case (comment_ _commentOisDeclOfLet _commentOnested _commentOoptions _commentOoutputfile) of+                                                   { ( !_commentIpp) ->+                                                       (case (({-# LINE 487 "src-ag/PrintCode.ag" #-}+                                                               [ [_commentIpp]+                                                               , _dataDefIpps+                                                               , _semDomIpps+                                                               , if reference _lhsIoptions then _semWrapperIpps else []+                                                               ]+                                                               {-# LINE 481 "dist/build/PrintCode" #-}+                                                               )) of+                                                        { !_lhsOappendCommon ->+                                                        (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                                                                _outputfile+                                                                {-# LINE 486 "dist/build/PrintCode" #-}+                                                                )) of+                                                         { !_cataFunOoutputfile ->+                                                         (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                                                                 _lhsIoptions+                                                                 {-# LINE 491 "dist/build/PrintCode" #-}+                                                                 )) of+                                                          { !_cataFunOoptions ->+                                                          (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                                                                  _lhsInested+                                                                  {-# LINE 496 "dist/build/PrintCode" #-}+                                                                  )) of+                                                           { !_cataFunOnested ->+                                                           (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                                                                   _lhsIisDeclOfLet+                                                                   {-# LINE 501 "dist/build/PrintCode" #-}+                                                                   )) of+                                                            { !_cataFunOisDeclOfLet ->+                                                            (case (cataFun_ _cataFunOisDeclOfLet _cataFunOnested _cataFunOoptions _cataFunOoutputfile) of+                                                             { ( !_cataFunIpps) ->+                                                                 (case (({-# LINE 493 "src-ag/PrintCode.ag" #-}+                                                                         [ [_commentIpp]+                                                                         , _cataFunIpps+                                                                         , if reference _lhsIoptions then [] else _semWrapperIpps+                                                                         ]+                                                                         {-# LINE 511 "dist/build/PrintCode" #-}+                                                                         )) of+                                                                  { !_lhsOappendMain ->+                                                                  (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                                                                          _outputfile+                                                                          {-# LINE 516 "dist/build/PrintCode" #-}+                                                                          )) of+                                                                   { !_semFunctionsOoutputfile ->+                                                                   (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                                                                           _lhsIoptions+                                                                           {-# LINE 521 "dist/build/PrintCode" #-}+                                                                           )) of+                                                                    { !_semFunctionsOoptions ->+                                                                    (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                                                                            _lhsInested+                                                                            {-# LINE 526 "dist/build/PrintCode" #-}+                                                                            )) of+                                                                     { !_semFunctionsOnested ->+                                                                     (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                                                                             _lhsIisDeclOfLet+                                                                             {-# LINE 531 "dist/build/PrintCode" #-}+                                                                             )) of+                                                                      { !_semFunctionsOisDeclOfLet ->+                                                                      (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                                                                              _outputfile+                                                                              {-# LINE 536 "dist/build/PrintCode" #-}+                                                                              )) of+                                                                       { !_infoOoutputfile ->+                                                                       (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                                                                               _lhsIoptions+                                                                               {-# LINE 541 "dist/build/PrintCode" #-}+                                                                               )) of+                                                                        { !_infoOoptions ->+                                                                        (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                                                                                _lhsInested+                                                                                {-# LINE 546 "dist/build/PrintCode" #-}+                                                                                )) of+                                                                         { !_infoOnested ->+                                                                         (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                                                                                 _lhsIisDeclOfLet+                                                                                 {-# LINE 551 "dist/build/PrintCode" #-}+                                                                                 )) of+                                                                          { !_infoOisDeclOfLet ->+                                                                          (case (({-# LINE 519 "src-ag/PrintCode.ag" #-}+                                                                                  concat $ intersperse "," semNames_+                                                                                  {-# LINE 556 "dist/build/PrintCode" #-}+                                                                                  )) of+                                                                           { !_exports ->+                                                                           (case (semFunctions_ _semFunctionsOisDeclOfLet _semFunctionsOnested _semFunctionsOoptions _semFunctionsOoutputfile) of+                                                                            { ( !_semFunctionsIpps) ->+                                                                                (case (info_ _infoOisDeclOfLet _infoOnested _infoOoptions _infoOoutputfile) of+                                                                                 { ( !_infoIpps) ->+                                                                                     (case (({-# LINE 503 "src-ag/PrintCode.ag" #-}+                                                                                             writeModule _outputfile+                                                                                               [ pp $ _lhsIpragmaBlocks+                                                                                               , pp $ Map.findWithDefault empty (BlockPragma, Just $ identifier name_) _lhsItextBlockMap+                                                                                               , pp $ _lhsIoptionsLine+                                                                                               , pp $ _lhsImoduleHeader _lhsImainName ("_" ++ name_) _exports     True+                                                                                               , pp $ ("import " ++ _lhsImainName ++ "_common\n")+                                                                                               , pp $ Map.findWithDefault empty (BlockImport, Just $ identifier name_) _lhsItextBlockMap+                                                                                               , _commentIpp+                                                                                               , vlist_sep "" _infoIpps+                                                                                               , vlist_sep "" _semFunctionsIpps+                                                                                               , Map.findWithDefault empty (BlockOther, Just $ identifier name_) _lhsItextBlockMap+                                                                                               ]+                                                                                             {-# LINE 576 "dist/build/PrintCode" #-}+                                                                                             )) of+                                                                                      { !_lhsOgenSems ->+                                                                                      (case (({-# LINE 481 "src-ag/PrintCode.ag" #-}+                                                                                              ["import " ++ _lhsImainName ++ "_" ++ name_ ++ "\n"]+                                                                                              {-# LINE 581 "dist/build/PrintCode" #-}+                                                                                              )) of+                                                                                       { !_lhsOimports ->+                                                                                       (case (({-# LINE 97 "src-ag/PrintCode.ag" #-}+                                                                                               _commentIpp+                                                                                               :  _infoIpps+                                                                                               ++ _dataDefIpps+                                                                                               ++ _cataFunIpps+                                                                                               ++ _semDomIpps+                                                                                               ++ _semWrapperIpps+                                                                                               ++ _semFunctionsIpps+                                                                                               ++ [Map.findWithDefault empty (BlockOther, Just $ identifier name_) _lhsItextBlockMap]+                                                                                               {-# LINE 593 "dist/build/PrintCode" #-}+                                                                                               )) of+                                                                                        { !_lhsOpps ->+                                                                                        (case ((Syn_Chunk _lhsOappendCommon _lhsOappendMain _lhsOgenSems _lhsOimports _lhsOpps)) of+                                                                                         { ___node ->+                                                                                         ( _lhsOappendCommon,_lhsOappendMain,_lhsOgenSems,_lhsOimports,_lhsOpps) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+-- Chunks ------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         importBlocks         : PP_Doc+         isDeclOfLet          : Bool+         mainFile             : String+         mainName             : String+         moduleHeader         : String -> String -> String -> Bool -> String+         nested               : Bool+         options              : Options+         optionsLine          : String+         pragmaBlocks         : String+         textBlockMap         : Map BlockInfo PP_Doc+         textBlocks           : PP_Doc+      synthesized attributes:+         appendCommon         : [[PP_Doc]]+         appendMain           : [[PP_Doc]]+         genSems              : IO ()+         imports              : [String]+         pps                  : PP_Docs+   alternatives:+      alternative Cons:+         child hd             : Chunk +         child tl             : Chunks +      alternative Nil:+-}+-- cata+sem_Chunks :: Chunks ->+              T_Chunks+sem_Chunks !list =+    (Prelude.foldr sem_Chunks_Cons sem_Chunks_Nil (Prelude.map sem_Chunk list))+-- semantic domain+newtype T_Chunks = T_Chunks (PP_Doc ->+                             Bool ->+                             String ->+                             String ->+                             (String -> String -> String -> Bool -> String) ->+                             Bool ->+                             Options ->+                             String ->+                             String ->+                             (Map BlockInfo PP_Doc) ->+                             PP_Doc ->+                             ( ([[PP_Doc]]),([[PP_Doc]]),(IO ()),([String]),PP_Docs))+data Inh_Chunks = Inh_Chunks {importBlocks_Inh_Chunks :: !(PP_Doc),isDeclOfLet_Inh_Chunks :: !(Bool),mainFile_Inh_Chunks :: !(String),mainName_Inh_Chunks :: !(String),moduleHeader_Inh_Chunks :: !((String -> String -> String -> Bool -> String)),nested_Inh_Chunks :: !(Bool),options_Inh_Chunks :: !(Options),optionsLine_Inh_Chunks :: !(String),pragmaBlocks_Inh_Chunks :: !(String),textBlockMap_Inh_Chunks :: !((Map BlockInfo PP_Doc)),textBlocks_Inh_Chunks :: !(PP_Doc)}+data Syn_Chunks = Syn_Chunks {appendCommon_Syn_Chunks :: !(([[PP_Doc]])),appendMain_Syn_Chunks :: !(([[PP_Doc]])),genSems_Syn_Chunks :: !((IO ())),imports_Syn_Chunks :: !(([String])),pps_Syn_Chunks :: !(PP_Docs)}+wrap_Chunks :: T_Chunks ->+               Inh_Chunks ->+               Syn_Chunks+wrap_Chunks !(T_Chunks sem) !(Inh_Chunks _lhsIimportBlocks _lhsIisDeclOfLet _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInested _lhsIoptions _lhsIoptionsLine _lhsIpragmaBlocks _lhsItextBlockMap _lhsItextBlocks) =+    (let ( !_lhsOappendCommon,!_lhsOappendMain,!_lhsOgenSems,!_lhsOimports,!_lhsOpps) = sem _lhsIimportBlocks _lhsIisDeclOfLet _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsInested _lhsIoptions _lhsIoptionsLine _lhsIpragmaBlocks _lhsItextBlockMap _lhsItextBlocks+     in  (Syn_Chunks _lhsOappendCommon _lhsOappendMain _lhsOgenSems _lhsOimports _lhsOpps))+sem_Chunks_Cons :: T_Chunk ->+                   T_Chunks ->+                   T_Chunks+sem_Chunks_Cons !(T_Chunk hd_) !(T_Chunks tl_) =+    (T_Chunks (\ (!_lhsIimportBlocks)+                 (!_lhsIisDeclOfLet)+                 (!_lhsImainFile)+                 (!_lhsImainName)+                 (!_lhsImoduleHeader)+                 (!_lhsInested)+                 (!_lhsIoptions)+                 (!_lhsIoptionsLine)+                 (!_lhsIpragmaBlocks)+                 (!_lhsItextBlockMap)+                 (!_lhsItextBlocks) ->+                   (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                           _lhsIoptions+                           {-# LINE 669 "dist/build/PrintCode" #-}+                           )) of+                    { !_tlOoptions ->+                    (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                            _lhsInested+                            {-# LINE 674 "dist/build/PrintCode" #-}+                            )) of+                     { !_tlOnested ->+                     (case (({-# LINE 437 "src-ag/PrintCode.ag" #-}+                             _lhsImainFile+                             {-# LINE 679 "dist/build/PrintCode" #-}+                             )) of+                      { !_tlOmainFile ->+                      (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                              _lhsIisDeclOfLet+                              {-# LINE 684 "dist/build/PrintCode" #-}+                              )) of+                       { !_tlOisDeclOfLet ->+                       (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                               _lhsIoptions+                               {-# LINE 689 "dist/build/PrintCode" #-}+                               )) of+                        { !_hdOoptions ->+                        (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                                _lhsInested+                                {-# LINE 694 "dist/build/PrintCode" #-}+                                )) of+                         { !_hdOnested ->+                         (case (({-# LINE 437 "src-ag/PrintCode.ag" #-}+                                 _lhsImainFile+                                 {-# LINE 699 "dist/build/PrintCode" #-}+                                 )) of+                          { !_hdOmainFile ->+                          (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                                  _lhsIisDeclOfLet+                                  {-# LINE 704 "dist/build/PrintCode" #-}+                                  )) of+                           { !_hdOisDeclOfLet ->+                           (case (({-# LINE 434 "src-ag/PrintCode.ag" #-}+                                   _lhsItextBlocks+                                   {-# LINE 709 "dist/build/PrintCode" #-}+                                   )) of+                            { !_tlOtextBlocks ->+                            (case (({-# LINE 435 "src-ag/PrintCode.ag" #-}+                                    _lhsItextBlockMap+                                    {-# LINE 714 "dist/build/PrintCode" #-}+                                    )) of+                             { !_tlOtextBlockMap ->+                             (case (({-# LINE 433 "src-ag/PrintCode.ag" #-}+                                     _lhsIpragmaBlocks+                                     {-# LINE 719 "dist/build/PrintCode" #-}+                                     )) of+                              { !_tlOpragmaBlocks ->+                              (case (({-# LINE 436 "src-ag/PrintCode.ag" #-}+                                      _lhsIoptionsLine+                                      {-# LINE 724 "dist/build/PrintCode" #-}+                                      )) of+                               { !_tlOoptionsLine ->+                               (case (({-# LINE 439 "src-ag/PrintCode.ag" #-}+                                       _lhsImoduleHeader+                                       {-# LINE 729 "dist/build/PrintCode" #-}+                                       )) of+                                { !_tlOmoduleHeader ->+                                (case (({-# LINE 438 "src-ag/PrintCode.ag" #-}+                                        _lhsImainName+                                        {-# LINE 734 "dist/build/PrintCode" #-}+                                        )) of+                                 { !_tlOmainName ->+                                 (case (({-# LINE 432 "src-ag/PrintCode.ag" #-}+                                         _lhsIimportBlocks+                                         {-# LINE 739 "dist/build/PrintCode" #-}+                                         )) of+                                  { !_tlOimportBlocks ->+                                  (case (tl_ _tlOimportBlocks _tlOisDeclOfLet _tlOmainFile _tlOmainName _tlOmoduleHeader _tlOnested _tlOoptions _tlOoptionsLine _tlOpragmaBlocks _tlOtextBlockMap _tlOtextBlocks) of+                                   { ( !_tlIappendCommon,!_tlIappendMain,!_tlIgenSems,!_tlIimports,!_tlIpps) ->+                                       (case (({-# LINE 434 "src-ag/PrintCode.ag" #-}+                                               _lhsItextBlocks+                                               {-# LINE 746 "dist/build/PrintCode" #-}+                                               )) of+                                        { !_hdOtextBlocks ->+                                        (case (({-# LINE 435 "src-ag/PrintCode.ag" #-}+                                                _lhsItextBlockMap+                                                {-# LINE 751 "dist/build/PrintCode" #-}+                                                )) of+                                         { !_hdOtextBlockMap ->+                                         (case (({-# LINE 433 "src-ag/PrintCode.ag" #-}+                                                 _lhsIpragmaBlocks+                                                 {-# LINE 756 "dist/build/PrintCode" #-}+                                                 )) of+                                          { !_hdOpragmaBlocks ->+                                          (case (({-# LINE 436 "src-ag/PrintCode.ag" #-}+                                                  _lhsIoptionsLine+                                                  {-# LINE 761 "dist/build/PrintCode" #-}+                                                  )) of+                                           { !_hdOoptionsLine ->+                                           (case (({-# LINE 439 "src-ag/PrintCode.ag" #-}+                                                   _lhsImoduleHeader+                                                   {-# LINE 766 "dist/build/PrintCode" #-}+                                                   )) of+                                            { !_hdOmoduleHeader ->+                                            (case (({-# LINE 438 "src-ag/PrintCode.ag" #-}+                                                    _lhsImainName+                                                    {-# LINE 771 "dist/build/PrintCode" #-}+                                                    )) of+                                             { !_hdOmainName ->+                                             (case (({-# LINE 432 "src-ag/PrintCode.ag" #-}+                                                     _lhsIimportBlocks+                                                     {-# LINE 776 "dist/build/PrintCode" #-}+                                                     )) of+                                              { !_hdOimportBlocks ->+                                              (case (hd_ _hdOimportBlocks _hdOisDeclOfLet _hdOmainFile _hdOmainName _hdOmoduleHeader _hdOnested _hdOoptions _hdOoptionsLine _hdOpragmaBlocks _hdOtextBlockMap _hdOtextBlocks) of+                                               { ( !_hdIappendCommon,!_hdIappendMain,!_hdIgenSems,!_hdIimports,!_hdIpps) ->+                                                   (case (({-# LINE 483 "src-ag/PrintCode.ag" #-}+                                                           _hdIappendCommon ++ _tlIappendCommon+                                                           {-# LINE 783 "dist/build/PrintCode" #-}+                                                           )) of+                                                    { !_lhsOappendCommon ->+                                                    (case (({-# LINE 483 "src-ag/PrintCode.ag" #-}+                                                            _hdIappendMain ++ _tlIappendMain+                                                            {-# LINE 788 "dist/build/PrintCode" #-}+                                                            )) of+                                                     { !_lhsOappendMain ->+                                                     (case (({-# LINE 499 "src-ag/PrintCode.ag" #-}+                                                             _hdIgenSems >> _tlIgenSems+                                                             {-# LINE 793 "dist/build/PrintCode" #-}+                                                             )) of+                                                      { !_lhsOgenSems ->+                                                      (case (({-# LINE 478 "src-ag/PrintCode.ag" #-}+                                                              _hdIimports ++ _tlIimports+                                                              {-# LINE 798 "dist/build/PrintCode" #-}+                                                              )) of+                                                       { !_lhsOimports ->+                                                       (case (({-# LINE 89 "src-ag/PrintCode.ag" #-}+                                                               _hdIpps ++ _tlIpps+                                                               {-# LINE 803 "dist/build/PrintCode" #-}+                                                               )) of+                                                        { !_lhsOpps ->+                                                        (case ((Syn_Chunks _lhsOappendCommon _lhsOappendMain _lhsOgenSems _lhsOimports _lhsOpps)) of+                                                         { ___node ->+                                                         ( _lhsOappendCommon,_lhsOappendMain,_lhsOgenSems,_lhsOimports,_lhsOpps) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+sem_Chunks_Nil :: T_Chunks+sem_Chunks_Nil =+    (T_Chunks (\ (!_lhsIimportBlocks)+                 (!_lhsIisDeclOfLet)+                 (!_lhsImainFile)+                 (!_lhsImainName)+                 (!_lhsImoduleHeader)+                 (!_lhsInested)+                 (!_lhsIoptions)+                 (!_lhsIoptionsLine)+                 (!_lhsIpragmaBlocks)+                 (!_lhsItextBlockMap)+                 (!_lhsItextBlocks) ->+                   (case (({-# LINE 483 "src-ag/PrintCode.ag" #-}+                           []+                           {-# LINE 824 "dist/build/PrintCode" #-}+                           )) of+                    { !_lhsOappendCommon ->+                    (case (({-# LINE 483 "src-ag/PrintCode.ag" #-}+                            []+                            {-# LINE 829 "dist/build/PrintCode" #-}+                            )) of+                     { !_lhsOappendMain ->+                     (case (({-# LINE 499 "src-ag/PrintCode.ag" #-}+                             return ()+                             {-# LINE 834 "dist/build/PrintCode" #-}+                             )) of+                      { !_lhsOgenSems ->+                      (case (({-# LINE 478 "src-ag/PrintCode.ag" #-}+                              []+                              {-# LINE 839 "dist/build/PrintCode" #-}+                              )) of+                       { !_lhsOimports ->+                       (case (({-# LINE 90 "src-ag/PrintCode.ag" #-}+                               []+                               {-# LINE 844 "dist/build/PrintCode" #-}+                               )) of+                        { !_lhsOpps ->+                        (case ((Syn_Chunks _lhsOappendCommon _lhsOappendMain _lhsOgenSems _lhsOimports _lhsOpps)) of+                         { ___node ->+                         ( _lhsOappendCommon,_lhsOappendMain,_lhsOgenSems,_lhsOimports,_lhsOpps) }) }) }) }) }) })))+-- DataAlt -----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         nested               : Bool+         strictPre            : PP_Doc+      synthesized attribute:+         pp                   : PP_Doc+   alternatives:+      alternative DataAlt:+         child name           : {String}+         child args           : Types +      alternative Record:+         child name           : {String}+         child args           : NamedTypes +-}+-- cata+sem_DataAlt :: DataAlt ->+               T_DataAlt+sem_DataAlt !(DataAlt _name _args) =+    (sem_DataAlt_DataAlt _name (sem_Types _args))+sem_DataAlt !(Record _name _args) =+    (sem_DataAlt_Record _name (sem_NamedTypes _args))+-- semantic domain+newtype T_DataAlt = T_DataAlt (Bool ->+                               PP_Doc ->+                               ( PP_Doc))+data Inh_DataAlt = Inh_DataAlt {nested_Inh_DataAlt :: !(Bool),strictPre_Inh_DataAlt :: !(PP_Doc)}+data Syn_DataAlt = Syn_DataAlt {pp_Syn_DataAlt :: !(PP_Doc)}+wrap_DataAlt :: T_DataAlt ->+                Inh_DataAlt ->+                Syn_DataAlt+wrap_DataAlt !(T_DataAlt sem) !(Inh_DataAlt _lhsInested _lhsIstrictPre) =+    (let ( !_lhsOpp) = sem _lhsInested _lhsIstrictPre+     in  (Syn_DataAlt _lhsOpp))+sem_DataAlt_DataAlt :: String ->+                       T_Types ->+                       T_DataAlt+sem_DataAlt_DataAlt !name_ !(T_Types args_) =+    (T_DataAlt (\ (!_lhsInested)+                  (!_lhsIstrictPre) ->+                    (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                            _lhsInested+                            {-# LINE 893 "dist/build/PrintCode" #-}+                            )) of+                     { !_argsOnested ->+                     (case (args_ _argsOnested) of+                      { ( !_argsIpps) ->+                          (case (({-# LINE 222 "src-ag/PrintCode.ag" #-}+                                  name_ >#< hv_sp (map ((_lhsIstrictPre >|<) . pp_parens) _argsIpps)+                                  {-# LINE 900 "dist/build/PrintCode" #-}+                                  )) of+                           { !_lhsOpp ->+                           (case ((Syn_DataAlt _lhsOpp)) of+                            { ___node ->+                            ( _lhsOpp) }) }) }) })))+sem_DataAlt_Record :: String ->+                      T_NamedTypes ->+                      T_DataAlt+sem_DataAlt_Record !name_ !(T_NamedTypes args_) =+    (T_DataAlt (\ (!_lhsInested)+                  (!_lhsIstrictPre) ->+                    (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                            _lhsInested+                            {-# LINE 914 "dist/build/PrintCode" #-}+                            )) of+                     { !_argsOnested ->+                     (case (args_ _argsOnested) of+                      { ( !_argsIpps) ->+                          (case (({-# LINE 223 "src-ag/PrintCode.ag" #-}+                                  name_ >#< pp_block "{" "}" "," _argsIpps+                                  {-# LINE 921 "dist/build/PrintCode" #-}+                                  )) of+                           { !_lhsOpp ->+                           (case ((Syn_DataAlt _lhsOpp)) of+                            { ___node ->+                            ( _lhsOpp) }) }) }) })))+-- DataAlts ----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         nested               : Bool+         strictPre            : PP_Doc+      synthesized attribute:+         pps                  : PP_Docs+   alternatives:+      alternative Cons:+         child hd             : DataAlt +         child tl             : DataAlts +      alternative Nil:+-}+-- cata+sem_DataAlts :: DataAlts ->+                T_DataAlts+sem_DataAlts !list =+    (Prelude.foldr sem_DataAlts_Cons sem_DataAlts_Nil (Prelude.map sem_DataAlt list))+-- semantic domain+newtype T_DataAlts = T_DataAlts (Bool ->+                                 PP_Doc ->+                                 ( PP_Docs))+data Inh_DataAlts = Inh_DataAlts {nested_Inh_DataAlts :: !(Bool),strictPre_Inh_DataAlts :: !(PP_Doc)}+data Syn_DataAlts = Syn_DataAlts {pps_Syn_DataAlts :: !(PP_Docs)}+wrap_DataAlts :: T_DataAlts ->+                 Inh_DataAlts ->+                 Syn_DataAlts+wrap_DataAlts !(T_DataAlts sem) !(Inh_DataAlts _lhsInested _lhsIstrictPre) =+    (let ( !_lhsOpps) = sem _lhsInested _lhsIstrictPre+     in  (Syn_DataAlts _lhsOpps))+sem_DataAlts_Cons :: T_DataAlt ->+                     T_DataAlts ->+                     T_DataAlts+sem_DataAlts_Cons !(T_DataAlt hd_) !(T_DataAlts tl_) =+    (T_DataAlts (\ (!_lhsInested)+                   (!_lhsIstrictPre) ->+                     (case (({-# LINE 317 "src-ag/PrintCode.ag" #-}+                             _lhsIstrictPre+                             {-# LINE 966 "dist/build/PrintCode" #-}+                             )) of+                      { !_tlOstrictPre ->+                      (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                              _lhsInested+                              {-# LINE 971 "dist/build/PrintCode" #-}+                              )) of+                       { !_tlOnested ->+                       (case (({-# LINE 317 "src-ag/PrintCode.ag" #-}+                               _lhsIstrictPre+                               {-# LINE 976 "dist/build/PrintCode" #-}+                               )) of+                        { !_hdOstrictPre ->+                        (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                                _lhsInested+                                {-# LINE 981 "dist/build/PrintCode" #-}+                                )) of+                         { !_hdOnested ->+                         (case (tl_ _tlOnested _tlOstrictPre) of+                          { ( !_tlIpps) ->+                              (case (hd_ _hdOnested _hdOstrictPre) of+                               { ( !_hdIpp) ->+                                   (case (({-# LINE 73 "src-ag/PrintCode.ag" #-}+                                           _hdIpp : _tlIpps+                                           {-# LINE 990 "dist/build/PrintCode" #-}+                                           )) of+                                    { !_lhsOpps ->+                                    (case ((Syn_DataAlts _lhsOpps)) of+                                     { ___node ->+                                     ( _lhsOpps) }) }) }) }) }) }) }) })))+sem_DataAlts_Nil :: T_DataAlts+sem_DataAlts_Nil =+    (T_DataAlts (\ (!_lhsInested)+                   (!_lhsIstrictPre) ->+                     (case (({-# LINE 74 "src-ag/PrintCode.ag" #-}+                             []+                             {-# LINE 1002 "dist/build/PrintCode" #-}+                             )) of+                      { !_lhsOpps ->+                      (case ((Syn_DataAlts _lhsOpps)) of+                       { ___node ->+                       ( _lhsOpps) }) })))+-- Decl --------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         isDeclOfLet          : Bool+         nested               : Bool+         options              : Options+         outputfile           : String+      synthesized attribute:+         pp                   : PP_Doc+   alternatives:+      alternative Bind:+         child left           : Lhs +         child rhs            : Expr +      alternative BindLet:+         child left           : Lhs +         child rhs            : Expr +      alternative Comment:+         child txt            : {String}+      alternative Data:+         child name           : {String}+         child params         : {[String]}+         child alts           : DataAlts +         child strict         : {Bool}+         child derivings      : {[String]}+      alternative Decl:+         child left           : Lhs +         child rhs            : Expr +         child binds          : {Set String}+         child uses           : {Set String}+      alternative EvalDecl:+         child nt             : {String}+         child left           : Lhs +         child rhs            : Expr +         visit 0:+            local strat       : _+      alternative NewType:+         child name           : {String}+         child params         : {[String]}+         child con            : {String}+         child tp             : Type +      alternative PragmaDecl:+         child txt            : {String}+      alternative Resume:+         child monadic        : {Bool}+         child nt             : {String}+         child left           : Lhs +         child rhs            : Expr +      alternative TSig:+         child name           : {String}+         child tp             : Type +      alternative Type:+         child name           : {String}+         child params         : {[String]}+         child tp             : Type +-}+-- cata+sem_Decl :: Decl ->+            T_Decl+sem_Decl !(Bind _left _rhs) =+    (sem_Decl_Bind (sem_Lhs _left) (sem_Expr _rhs))+sem_Decl !(BindLet _left _rhs) =+    (sem_Decl_BindLet (sem_Lhs _left) (sem_Expr _rhs))+sem_Decl !(Comment _txt) =+    (sem_Decl_Comment _txt)+sem_Decl !(Data _name _params _alts _strict _derivings) =+    (sem_Decl_Data _name _params (sem_DataAlts _alts) _strict _derivings)+sem_Decl !(Decl _left _rhs _binds _uses) =+    (sem_Decl_Decl (sem_Lhs _left) (sem_Expr _rhs) _binds _uses)+sem_Decl !(EvalDecl _nt _left _rhs) =+    (sem_Decl_EvalDecl _nt (sem_Lhs _left) (sem_Expr _rhs))+sem_Decl !(NewType _name _params _con _tp) =+    (sem_Decl_NewType _name _params _con (sem_Type _tp))+sem_Decl !(PragmaDecl _txt) =+    (sem_Decl_PragmaDecl _txt)+sem_Decl !(Resume _monadic _nt _left _rhs) =+    (sem_Decl_Resume _monadic _nt (sem_Lhs _left) (sem_Expr _rhs))+sem_Decl !(TSig _name _tp) =+    (sem_Decl_TSig _name (sem_Type _tp))+sem_Decl !(Type _name _params _tp) =+    (sem_Decl_Type _name _params (sem_Type _tp))+-- semantic domain+newtype T_Decl = T_Decl (Bool ->+                         Bool ->+                         Options ->+                         String ->+                         ( PP_Doc))+data Inh_Decl = Inh_Decl {isDeclOfLet_Inh_Decl :: !(Bool),nested_Inh_Decl :: !(Bool),options_Inh_Decl :: !(Options),outputfile_Inh_Decl :: !(String)}+data Syn_Decl = Syn_Decl {pp_Syn_Decl :: !(PP_Doc)}+wrap_Decl :: T_Decl ->+             Inh_Decl ->+             Syn_Decl+wrap_Decl !(T_Decl sem) !(Inh_Decl _lhsIisDeclOfLet _lhsInested _lhsIoptions _lhsIoutputfile) =+    (let ( !_lhsOpp) = sem _lhsIisDeclOfLet _lhsInested _lhsIoptions _lhsIoutputfile+     in  (Syn_Decl _lhsOpp))+sem_Decl_Bind :: T_Lhs ->+                 T_Expr ->+                 T_Decl+sem_Decl_Bind !(T_Lhs left_) !(T_Expr rhs_) =+    (T_Decl (\ (!_lhsIisDeclOfLet)+               (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 1113 "dist/build/PrintCode" #-}+                         )) of+                  { !_rhsOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 1118 "dist/build/PrintCode" #-}+                          )) of+                   { !_rhsOoptions ->+                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 1123 "dist/build/PrintCode" #-}+                           )) of+                    { !_rhsOnested ->+                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                            _lhsIoutputfile+                            {-# LINE 1128 "dist/build/PrintCode" #-}+                            )) of+                     { !_leftOoutputfile ->+                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                             _lhsIoptions+                             {-# LINE 1133 "dist/build/PrintCode" #-}+                             )) of+                      { !_leftOoptions ->+                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                              _lhsInested+                              {-# LINE 1138 "dist/build/PrintCode" #-}+                              )) of+                       { !_leftOnested ->+                       (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                               _lhsIisDeclOfLet+                               {-# LINE 1143 "dist/build/PrintCode" #-}+                               )) of+                        { !_leftOisDeclOfLet ->+                        (case (rhs_ _rhsOnested _rhsOoptions _rhsOoutputfile) of+                         { ( !_rhsIpp) ->+                             (case (left_ _leftOisDeclOfLet _leftOnested _leftOoptions _leftOoutputfile) of+                              { ( !_leftIpp) ->+                                  (case (({-# LINE 109 "src-ag/PrintCode.ag" #-}+                                          _leftIpp >#< "<-" >#< _rhsIpp+                                          {-# LINE 1152 "dist/build/PrintCode" #-}+                                          )) of+                                   { !_lhsOpp ->+                                   (case ((Syn_Decl _lhsOpp)) of+                                    { ___node ->+                                    ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) })))+sem_Decl_BindLet :: T_Lhs ->+                    T_Expr ->+                    T_Decl+sem_Decl_BindLet !(T_Lhs left_) !(T_Expr rhs_) =+    (T_Decl (\ (!_lhsIisDeclOfLet)+               (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 1168 "dist/build/PrintCode" #-}+                         )) of+                  { !_rhsOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 1173 "dist/build/PrintCode" #-}+                          )) of+                   { !_rhsOoptions ->+                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 1178 "dist/build/PrintCode" #-}+                           )) of+                    { !_rhsOnested ->+                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                            _lhsIoutputfile+                            {-# LINE 1183 "dist/build/PrintCode" #-}+                            )) of+                     { !_leftOoutputfile ->+                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                             _lhsIoptions+                             {-# LINE 1188 "dist/build/PrintCode" #-}+                             )) of+                      { !_leftOoptions ->+                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                              _lhsInested+                              {-# LINE 1193 "dist/build/PrintCode" #-}+                              )) of+                       { !_leftOnested ->+                       (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                               _lhsIisDeclOfLet+                               {-# LINE 1198 "dist/build/PrintCode" #-}+                               )) of+                        { !_leftOisDeclOfLet ->+                        (case (rhs_ _rhsOnested _rhsOoptions _rhsOoutputfile) of+                         { ( !_rhsIpp) ->+                             (case (left_ _leftOisDeclOfLet _leftOnested _leftOoptions _leftOoutputfile) of+                              { ( !_leftIpp) ->+                                  (case (({-# LINE 110 "src-ag/PrintCode.ag" #-}+                                          "let" >#< _leftIpp >#< "=" >#< _rhsIpp+                                          {-# LINE 1207 "dist/build/PrintCode" #-}+                                          )) of+                                   { !_lhsOpp ->+                                   (case ((Syn_Decl _lhsOpp)) of+                                    { ___node ->+                                    ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) })))+sem_Decl_Comment :: String ->+                    T_Decl+sem_Decl_Comment !txt_ =+    (T_Decl (\ (!_lhsIisDeclOfLet)+               (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 123 "src-ag/PrintCode.ag" #-}+                         if '\n' `elem` txt_+                           then "{-" >-< vlist (lines txt_) >-< "-}"+                           else "--" >#< txt_+                         {-# LINE 1224 "dist/build/PrintCode" #-}+                         )) of+                  { !_lhsOpp ->+                  (case ((Syn_Decl _lhsOpp)) of+                   { ___node ->+                   ( _lhsOpp) }) })))+sem_Decl_Data :: String ->+                 ([String]) ->+                 T_DataAlts ->+                 Bool ->+                 ([String]) ->+                 T_Decl+sem_Decl_Data !name_ !params_ !(T_DataAlts alts_) !strict_ !derivings_ =+    (T_Decl (\ (!_lhsIisDeclOfLet)+               (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                         _lhsInested+                         {-# LINE 1243 "dist/build/PrintCode" #-}+                         )) of+                  { !_altsOnested ->+                  (case (({-# LINE 320 "src-ag/PrintCode.ag" #-}+                          if strict_ then pp "!" else empty+                          {-# LINE 1248 "dist/build/PrintCode" #-}+                          )) of+                   { !_altsOstrictPre ->+                   (case (alts_ _altsOnested _altsOstrictPre) of+                    { ( !_altsIpps) ->+                        (case (({-# LINE 111 "src-ag/PrintCode.ag" #-}+                                "data" >#< hv_sp (name_ : params_)+                                >#<  ( case _altsIpps of+                                             [] -> empty+                                             (x:xs) ->              "=" >#<  x+                                                    >-< vlist (map ("|" >#<) xs)+                                        >-< if null derivings_+                                               then empty+                                               else "deriving" >#< ppTuple False (map text derivings_)+                                     )+                                {-# LINE 1263 "dist/build/PrintCode" #-}+                                )) of+                         { !_lhsOpp ->+                         (case ((Syn_Decl _lhsOpp)) of+                          { ___node ->+                          ( _lhsOpp) }) }) }) }) })))+sem_Decl_Decl :: T_Lhs ->+                 T_Expr ->+                 (Set String) ->+                 (Set String) ->+                 T_Decl+sem_Decl_Decl !(T_Lhs left_) !(T_Expr rhs_) !binds_ !uses_ =+    (T_Decl (\ (!_lhsIisDeclOfLet)+               (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 1281 "dist/build/PrintCode" #-}+                         )) of+                  { !_rhsOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 1286 "dist/build/PrintCode" #-}+                          )) of+                   { !_rhsOoptions ->+                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 1291 "dist/build/PrintCode" #-}+                           )) of+                    { !_rhsOnested ->+                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                            _lhsIoutputfile+                            {-# LINE 1296 "dist/build/PrintCode" #-}+                            )) of+                     { !_leftOoutputfile ->+                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                             _lhsIoptions+                             {-# LINE 1301 "dist/build/PrintCode" #-}+                             )) of+                      { !_leftOoptions ->+                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                              _lhsInested+                              {-# LINE 1306 "dist/build/PrintCode" #-}+                              )) of+                       { !_leftOnested ->+                       (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                               _lhsIisDeclOfLet+                               {-# LINE 1311 "dist/build/PrintCode" #-}+                               )) of+                        { !_leftOisDeclOfLet ->+                        (case (rhs_ _rhsOnested _rhsOoptions _rhsOoutputfile) of+                         { ( !_rhsIpp) ->+                             (case (left_ _leftOisDeclOfLet _leftOnested _leftOoptions _leftOoutputfile) of+                              { ( !_leftIpp) ->+                                  (case (({-# LINE 107 "src-ag/PrintCode.ag" #-}+                                          _leftIpp >#< "="+                                          >-< indent 4 _rhsIpp+                                          {-# LINE 1321 "dist/build/PrintCode" #-}+                                          )) of+                                   { !_lhsOpp ->+                                   (case ((Syn_Decl _lhsOpp)) of+                                    { ___node ->+                                    ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) })))+sem_Decl_EvalDecl :: String ->+                     T_Lhs ->+                     T_Expr ->+                     T_Decl+sem_Decl_EvalDecl !nt_ !(T_Lhs left_) !(T_Expr rhs_) =+    (T_Decl (\ (!_lhsIisDeclOfLet)+               (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 1338 "dist/build/PrintCode" #-}+                         )) of+                  { !_rhsOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 1343 "dist/build/PrintCode" #-}+                          )) of+                   { !_rhsOoptions ->+                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 1348 "dist/build/PrintCode" #-}+                           )) of+                    { !_rhsOnested ->+                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                            _lhsIoutputfile+                            {-# LINE 1353 "dist/build/PrintCode" #-}+                            )) of+                     { !_leftOoutputfile ->+                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                             _lhsIoptions+                             {-# LINE 1358 "dist/build/PrintCode" #-}+                             )) of+                      { !_leftOoptions ->+                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                              _lhsInested+                              {-# LINE 1363 "dist/build/PrintCode" #-}+                              )) of+                       { !_leftOnested ->+                       (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                               _lhsIisDeclOfLet+                               {-# LINE 1368 "dist/build/PrintCode" #-}+                               )) of+                        { !_leftOisDeclOfLet ->+                        (case (({-# LINE 130 "src-ag/PrintCode.ag" #-}+                                if breadthFirstStrict _lhsIoptions+                                then "stepwiseEval"+                                else "lazyEval"+                                {-# LINE 1375 "dist/build/PrintCode" #-}+                                )) of+                         { !_strat ->+                         (case (rhs_ _rhsOnested _rhsOoptions _rhsOoutputfile) of+                          { ( !_rhsIpp) ->+                              (case (left_ _leftOisDeclOfLet _leftOnested _leftOoptions _leftOoutputfile) of+                               { ( !_leftIpp) ->+                                   (case (({-# LINE 133 "src-ag/PrintCode.ag" #-}+                                           if breadthFirst _lhsIoptions+                                           then _leftIpp >#< "=" >#< "case" >#< _strat     >#< pp_parens _rhsIpp >#< "of"+                                                >-< indent 4 (+                                                  pp_parens (nt_ >|< "_Syn" >#< "_val") >#< "-> _val"+                                                )+                                           else _leftIpp >#< "=" >#< _rhsIpp+                                           {-# LINE 1389 "dist/build/PrintCode" #-}+                                           )) of+                                    { !_lhsOpp ->+                                    (case ((Syn_Decl _lhsOpp)) of+                                     { ___node ->+                                     ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) }) })))+sem_Decl_NewType :: String ->+                    ([String]) ->+                    String ->+                    T_Type ->+                    T_Decl+sem_Decl_NewType !name_ !params_ !con_ !(T_Type tp_) =+    (T_Decl (\ (!_lhsIisDeclOfLet)+               (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                         _lhsInested+                         {-# LINE 1407 "dist/build/PrintCode" #-}+                         )) of+                  { !_tpOnested ->+                  (case (tp_ _tpOnested) of+                   { ( !_tpIpp,!_tpIprec) ->+                       (case (({-# LINE 120 "src-ag/PrintCode.ag" #-}+                               "newtype" >#< hv_sp (name_ : params_) >#< "=" >#< con_ >#< pp_parens _tpIpp+                               {-# LINE 1414 "dist/build/PrintCode" #-}+                               )) of+                        { !_lhsOpp ->+                        (case ((Syn_Decl _lhsOpp)) of+                         { ___node ->+                         ( _lhsOpp) }) }) }) })))+sem_Decl_PragmaDecl :: String ->+                       T_Decl+sem_Decl_PragmaDecl !txt_ =+    (T_Decl (\ (!_lhsIisDeclOfLet)+               (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 126 "src-ag/PrintCode.ag" #-}+                         "{-#" >#< text txt_ >#< "#-}"+                         {-# LINE 1429 "dist/build/PrintCode" #-}+                         )) of+                  { !_lhsOpp ->+                  (case ((Syn_Decl _lhsOpp)) of+                   { ___node ->+                   ( _lhsOpp) }) })))+sem_Decl_Resume :: Bool ->+                   String ->+                   T_Lhs ->+                   T_Expr ->+                   T_Decl+sem_Decl_Resume !monadic_ !nt_ !(T_Lhs left_) !(T_Expr rhs_) =+    (T_Decl (\ (!_lhsIisDeclOfLet)+               (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 1447 "dist/build/PrintCode" #-}+                         )) of+                  { !_rhsOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 1452 "dist/build/PrintCode" #-}+                          )) of+                   { !_rhsOoptions ->+                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 1457 "dist/build/PrintCode" #-}+                           )) of+                    { !_rhsOnested ->+                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                            _lhsIoutputfile+                            {-# LINE 1462 "dist/build/PrintCode" #-}+                            )) of+                     { !_leftOoutputfile ->+                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                             _lhsIoptions+                             {-# LINE 1467 "dist/build/PrintCode" #-}+                             )) of+                      { !_leftOoptions ->+                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                              _lhsInested+                              {-# LINE 1472 "dist/build/PrintCode" #-}+                              )) of+                       { !_leftOnested ->+                       (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                               _lhsIisDeclOfLet+                               {-# LINE 1477 "dist/build/PrintCode" #-}+                               )) of+                        { !_leftOisDeclOfLet ->+                        (case (rhs_ _rhsOnested _rhsOoptions _rhsOoutputfile) of+                         { ( !_rhsIpp) ->+                             (case (left_ _leftOisDeclOfLet _leftOnested _leftOoptions _leftOoutputfile) of+                              { ( !_leftIpp) ->+                                  (case (({-# LINE 127 "src-ag/PrintCode.ag" #-}+                                          if monadic_+                                          then _leftIpp >#< "<-" >#< _rhsIpp+                                          else _leftIpp >#< "=" >-< indent 4 _rhsIpp+                                          {-# LINE 1488 "dist/build/PrintCode" #-}+                                          )) of+                                   { !_lhsOpp ->+                                   (case ((Syn_Decl _lhsOpp)) of+                                    { ___node ->+                                    ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) })))+sem_Decl_TSig :: String ->+                 T_Type ->+                 T_Decl+sem_Decl_TSig !name_ !(T_Type tp_) =+    (T_Decl (\ (!_lhsIisDeclOfLet)+               (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                         _lhsInested+                         {-# LINE 1504 "dist/build/PrintCode" #-}+                         )) of+                  { !_tpOnested ->+                  (case (tp_ _tpOnested) of+                   { ( !_tpIpp,!_tpIprec) ->+                       (case (({-# LINE 122 "src-ag/PrintCode.ag" #-}+                               name_ >#< "::" >#< _tpIpp+                               {-# LINE 1511 "dist/build/PrintCode" #-}+                               )) of+                        { !_lhsOpp ->+                        (case ((Syn_Decl _lhsOpp)) of+                         { ___node ->+                         ( _lhsOpp) }) }) }) })))+sem_Decl_Type :: String ->+                 ([String]) ->+                 T_Type ->+                 T_Decl+sem_Decl_Type !name_ !params_ !(T_Type tp_) =+    (T_Decl (\ (!_lhsIisDeclOfLet)+               (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                         _lhsInested+                         {-# LINE 1528 "dist/build/PrintCode" #-}+                         )) of+                  { !_tpOnested ->+                  (case (tp_ _tpOnested) of+                   { ( !_tpIpp,!_tpIprec) ->+                       (case (({-# LINE 121 "src-ag/PrintCode.ag" #-}+                               "type" >#< hv_sp (name_ : params_) >#< "=" >#<  _tpIpp+                               {-# LINE 1535 "dist/build/PrintCode" #-}+                               )) of+                        { !_lhsOpp ->+                        (case ((Syn_Decl _lhsOpp)) of+                         { ___node ->+                         ( _lhsOpp) }) }) }) })))+-- Decls -------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         isDeclOfLet          : Bool+         nested               : Bool+         options              : Options+         outputfile           : String+      synthesized attribute:+         pps                  : PP_Docs+   alternatives:+      alternative Cons:+         child hd             : Decl +         child tl             : Decls +      alternative Nil:+-}+-- cata+sem_Decls :: Decls ->+             T_Decls+sem_Decls !list =+    (Prelude.foldr sem_Decls_Cons sem_Decls_Nil (Prelude.map sem_Decl list))+-- semantic domain+newtype T_Decls = T_Decls (Bool ->+                           Bool ->+                           Options ->+                           String ->+                           ( PP_Docs))+data Inh_Decls = Inh_Decls {isDeclOfLet_Inh_Decls :: !(Bool),nested_Inh_Decls :: !(Bool),options_Inh_Decls :: !(Options),outputfile_Inh_Decls :: !(String)}+data Syn_Decls = Syn_Decls {pps_Syn_Decls :: !(PP_Docs)}+wrap_Decls :: T_Decls ->+              Inh_Decls ->+              Syn_Decls+wrap_Decls !(T_Decls sem) !(Inh_Decls _lhsIisDeclOfLet _lhsInested _lhsIoptions _lhsIoutputfile) =+    (let ( !_lhsOpps) = sem _lhsIisDeclOfLet _lhsInested _lhsIoptions _lhsIoutputfile+     in  (Syn_Decls _lhsOpps))+sem_Decls_Cons :: T_Decl ->+                  T_Decls ->+                  T_Decls+sem_Decls_Cons !(T_Decl hd_) !(T_Decls tl_) =+    (T_Decls (\ (!_lhsIisDeclOfLet)+                (!_lhsInested)+                (!_lhsIoptions)+                (!_lhsIoutputfile) ->+                  (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                          _lhsIoutputfile+                          {-# LINE 1586 "dist/build/PrintCode" #-}+                          )) of+                   { !_tlOoutputfile ->+                   (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                           _lhsIoptions+                           {-# LINE 1591 "dist/build/PrintCode" #-}+                           )) of+                    { !_tlOoptions ->+                    (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                            _lhsInested+                            {-# LINE 1596 "dist/build/PrintCode" #-}+                            )) of+                     { !_tlOnested ->+                     (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                             _lhsIisDeclOfLet+                             {-# LINE 1601 "dist/build/PrintCode" #-}+                             )) of+                      { !_tlOisDeclOfLet ->+                      (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                              _lhsIoutputfile+                              {-# LINE 1606 "dist/build/PrintCode" #-}+                              )) of+                       { !_hdOoutputfile ->+                       (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                               _lhsIoptions+                               {-# LINE 1611 "dist/build/PrintCode" #-}+                               )) of+                        { !_hdOoptions ->+                        (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                                _lhsInested+                                {-# LINE 1616 "dist/build/PrintCode" #-}+                                )) of+                         { !_hdOnested ->+                         (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                                 _lhsIisDeclOfLet+                                 {-# LINE 1621 "dist/build/PrintCode" #-}+                                 )) of+                          { !_hdOisDeclOfLet ->+                          (case (tl_ _tlOisDeclOfLet _tlOnested _tlOoptions _tlOoutputfile) of+                           { ( !_tlIpps) ->+                               (case (hd_ _hdOisDeclOfLet _hdOnested _hdOoptions _hdOoutputfile) of+                                { ( !_hdIpp) ->+                                    (case (({-# LINE 85 "src-ag/PrintCode.ag" #-}+                                            _hdIpp : _tlIpps+                                            {-# LINE 1630 "dist/build/PrintCode" #-}+                                            )) of+                                     { !_lhsOpps ->+                                     (case ((Syn_Decls _lhsOpps)) of+                                      { ___node ->+                                      ( _lhsOpps) }) }) }) }) }) }) }) }) }) }) }) })))+sem_Decls_Nil :: T_Decls+sem_Decls_Nil =+    (T_Decls (\ (!_lhsIisDeclOfLet)+                (!_lhsInested)+                (!_lhsIoptions)+                (!_lhsIoutputfile) ->+                  (case (({-# LINE 86 "src-ag/PrintCode.ag" #-}+                          []+                          {-# LINE 1644 "dist/build/PrintCode" #-}+                          )) of+                   { !_lhsOpps ->+                   (case ((Syn_Decls _lhsOpps)) of+                    { ___node ->+                    ( _lhsOpps) }) })))+-- Expr --------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         nested               : Bool+         options              : Options+         outputfile           : String+      synthesized attribute:+         pp                   : PP_Doc+   alternatives:+      alternative App:+         child name           : {String}+         child args           : Exprs +      alternative Case:+         child expr           : Expr +         child alts           : CaseAlts +      alternative Do:+         child stmts          : Decls +         child body           : Expr +      alternative InvokeExpr:+         child nt             : {String}+         child expr           : Expr +         child args           : Exprs +      alternative Lambda:+         child args           : Exprs +         child body           : Expr +         visit 0:+            local addBang     : _+            local strictParams : _+      alternative Let:+         child decls          : Decls +         child body           : Expr +      alternative LineExpr:+         child expr           : Expr +      alternative PragmaExpr:+         child onLeftSide     : {Bool}+         child onNewLine      : {Bool}+         child txt            : {String}+         child expr           : Expr +      alternative ResultExpr:+         child nt             : {String}+         child expr           : Expr +      alternative ResumeExpr:+         child nt             : {String}+         child expr           : Expr +         child left           : Lhs +         child rhs            : Expr +      alternative SemFun:+         child nt             : {String}+         child args           : Exprs +         child body           : Expr +         visit 0:+            local addBang     : _+            local strictParams : _+      alternative SimpleExpr:+         child txt            : {String}+      alternative TextExpr:+         child lns            : {[String]}+      alternative Trace:+         child txt            : {String}+         child expr           : Expr +      alternative TupleExpr:+         child exprs          : Exprs +      alternative TypedExpr:+         child expr           : Expr +         child tp             : Type +      alternative UnboxedTupleExpr:+         child exprs          : Exprs +-}+-- cata+sem_Expr :: Expr ->+            T_Expr+sem_Expr !(App _name _args) =+    (sem_Expr_App _name (sem_Exprs _args))+sem_Expr !(Case _expr _alts) =+    (sem_Expr_Case (sem_Expr _expr) (sem_CaseAlts _alts))+sem_Expr !(Do _stmts _body) =+    (sem_Expr_Do (sem_Decls _stmts) (sem_Expr _body))+sem_Expr !(InvokeExpr _nt _expr _args) =+    (sem_Expr_InvokeExpr _nt (sem_Expr _expr) (sem_Exprs _args))+sem_Expr !(Lambda _args _body) =+    (sem_Expr_Lambda (sem_Exprs _args) (sem_Expr _body))+sem_Expr !(Let _decls _body) =+    (sem_Expr_Let (sem_Decls _decls) (sem_Expr _body))+sem_Expr !(LineExpr _expr) =+    (sem_Expr_LineExpr (sem_Expr _expr))+sem_Expr !(PragmaExpr _onLeftSide _onNewLine _txt _expr) =+    (sem_Expr_PragmaExpr _onLeftSide _onNewLine _txt (sem_Expr _expr))+sem_Expr !(ResultExpr _nt _expr) =+    (sem_Expr_ResultExpr _nt (sem_Expr _expr))+sem_Expr !(ResumeExpr _nt _expr _left _rhs) =+    (sem_Expr_ResumeExpr _nt (sem_Expr _expr) (sem_Lhs _left) (sem_Expr _rhs))+sem_Expr !(SemFun _nt _args _body) =+    (sem_Expr_SemFun _nt (sem_Exprs _args) (sem_Expr _body))+sem_Expr !(SimpleExpr _txt) =+    (sem_Expr_SimpleExpr _txt)+sem_Expr !(TextExpr _lns) =+    (sem_Expr_TextExpr _lns)+sem_Expr !(Trace _txt _expr) =+    (sem_Expr_Trace _txt (sem_Expr _expr))+sem_Expr !(TupleExpr _exprs) =+    (sem_Expr_TupleExpr (sem_Exprs _exprs))+sem_Expr !(TypedExpr _expr _tp) =+    (sem_Expr_TypedExpr (sem_Expr _expr) (sem_Type _tp))+sem_Expr !(UnboxedTupleExpr _exprs) =+    (sem_Expr_UnboxedTupleExpr (sem_Exprs _exprs))+-- semantic domain+newtype T_Expr = T_Expr (Bool ->+                         Options ->+                         String ->+                         ( PP_Doc))+data Inh_Expr = Inh_Expr {nested_Inh_Expr :: !(Bool),options_Inh_Expr :: !(Options),outputfile_Inh_Expr :: !(String)}+data Syn_Expr = Syn_Expr {pp_Syn_Expr :: !(PP_Doc)}+wrap_Expr :: T_Expr ->+             Inh_Expr ->+             Syn_Expr+wrap_Expr !(T_Expr sem) !(Inh_Expr _lhsInested _lhsIoptions _lhsIoutputfile) =+    (let ( !_lhsOpp) = sem _lhsInested _lhsIoptions _lhsIoutputfile+     in  (Syn_Expr _lhsOpp))+sem_Expr_App :: String ->+                T_Exprs ->+                T_Expr+sem_Expr_App !name_ !(T_Exprs args_) =+    (T_Expr (\ (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 1778 "dist/build/PrintCode" #-}+                         )) of+                  { !_argsOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 1783 "dist/build/PrintCode" #-}+                          )) of+                   { !_argsOoptions ->+                   (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 1788 "dist/build/PrintCode" #-}+                           )) of+                    { !_argsOnested ->+                    (case (args_ _argsOnested _argsOoptions _argsOoutputfile) of+                     { ( !_argsIpps) ->+                         (case (({-# LINE 161 "src-ag/PrintCode.ag" #-}+                                 pp_parens $ name_ >#< hv_sp _argsIpps+                                 {-# LINE 1795 "dist/build/PrintCode" #-}+                                 )) of+                          { !_lhsOpp ->+                          (case ((Syn_Expr _lhsOpp)) of+                           { ___node ->+                           ( _lhsOpp) }) }) }) }) }) })))+sem_Expr_Case :: T_Expr ->+                 T_CaseAlts ->+                 T_Expr+sem_Expr_Case !(T_Expr expr_) !(T_CaseAlts alts_) =+    (T_Expr (\ (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 1810 "dist/build/PrintCode" #-}+                         )) of+                  { !_altsOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 1815 "dist/build/PrintCode" #-}+                          )) of+                   { !_altsOoptions ->+                   (case (({-# LINE 56 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 1820 "dist/build/PrintCode" #-}+                           )) of+                    { !_altsOnested ->+                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                            _lhsIoutputfile+                            {-# LINE 1825 "dist/build/PrintCode" #-}+                            )) of+                     { !_exprOoutputfile ->+                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                             _lhsIoptions+                             {-# LINE 1830 "dist/build/PrintCode" #-}+                             )) of+                      { !_exprOoptions ->+                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                              _lhsInested+                              {-# LINE 1835 "dist/build/PrintCode" #-}+                              )) of+                       { !_exprOnested ->+                       (case (alts_ _altsOnested _altsOoptions _altsOoutputfile) of+                        { ( !_altsIpps) ->+                            (case (expr_ _exprOnested _exprOoptions _exprOoutputfile) of+                             { ( !_exprIpp) ->+                                 (case (({-# LINE 144 "src-ag/PrintCode.ag" #-}+                                         pp_parens (    "case" >#< pp_parens _exprIpp >#< "of"+                                                   >-< (vlist _altsIpps)+                                                   )+                                         {-# LINE 1846 "dist/build/PrintCode" #-}+                                         )) of+                                  { !_lhsOpp ->+                                  (case ((Syn_Expr _lhsOpp)) of+                                   { ___node ->+                                   ( _lhsOpp) }) }) }) }) }) }) }) }) }) })))+sem_Expr_Do :: T_Decls ->+               T_Expr ->+               T_Expr+sem_Expr_Do !(T_Decls stmts_) !(T_Expr body_) =+    (T_Expr (\ (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 1861 "dist/build/PrintCode" #-}+                         )) of+                  { !_bodyOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 1866 "dist/build/PrintCode" #-}+                          )) of+                   { !_bodyOoptions ->+                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 1871 "dist/build/PrintCode" #-}+                           )) of+                    { !_bodyOnested ->+                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                            _lhsIoutputfile+                            {-# LINE 1876 "dist/build/PrintCode" #-}+                            )) of+                     { !_stmtsOoutputfile ->+                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                             _lhsIoptions+                             {-# LINE 1881 "dist/build/PrintCode" #-}+                             )) of+                      { !_stmtsOoptions ->+                      (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                              _lhsInested+                              {-# LINE 1886 "dist/build/PrintCode" #-}+                              )) of+                       { !_stmtsOnested ->+                       (case (({-# LINE 416 "src-ag/PrintCode.ag" #-}+                               False+                               {-# LINE 1891 "dist/build/PrintCode" #-}+                               )) of+                        { !_stmtsOisDeclOfLet ->+                        (case (body_ _bodyOnested _bodyOoptions _bodyOoutputfile) of+                         { ( !_bodyIpp) ->+                             (case (stmts_ _stmtsOisDeclOfLet _stmtsOnested _stmtsOoptions _stmtsOoutputfile) of+                              { ( !_stmtsIpps) ->+                                  (case (({-# LINE 147 "src-ag/PrintCode.ag" #-}+                                          pp_parens ( "do" >#< (   vlist _stmtsIpps+                                                               >-< ("return" >#< _bodyIpp))+                                                    )+                                          {-# LINE 1902 "dist/build/PrintCode" #-}+                                          )) of+                                   { !_lhsOpp ->+                                   (case ((Syn_Expr _lhsOpp)) of+                                    { ___node ->+                                    ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) })))+sem_Expr_InvokeExpr :: String ->+                       T_Expr ->+                       T_Exprs ->+                       T_Expr+sem_Expr_InvokeExpr !nt_ !(T_Expr expr_) !(T_Exprs args_) =+    (T_Expr (\ (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 1918 "dist/build/PrintCode" #-}+                         )) of+                  { !_argsOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 1923 "dist/build/PrintCode" #-}+                          )) of+                   { !_argsOoptions ->+                   (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 1928 "dist/build/PrintCode" #-}+                           )) of+                    { !_argsOnested ->+                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                            _lhsIoutputfile+                            {-# LINE 1933 "dist/build/PrintCode" #-}+                            )) of+                     { !_exprOoutputfile ->+                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                             _lhsIoptions+                             {-# LINE 1938 "dist/build/PrintCode" #-}+                             )) of+                      { !_exprOoptions ->+                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                              _lhsInested+                              {-# LINE 1943 "dist/build/PrintCode" #-}+                              )) of+                       { !_exprOnested ->+                       (case (args_ _argsOnested _argsOoptions _argsOoutputfile) of+                        { ( !_argsIpps) ->+                            (case (expr_ _exprOnested _exprOoptions _exprOoutputfile) of+                             { ( !_exprIpp) ->+                                 (case (({-# LINE 185 "src-ag/PrintCode.ag" #-}+                                         if breadthFirst _lhsIoptions+                                         then "invoke" >#< pp_parens _exprIpp >#< pp_parens (+                                               nt_ >|< "_Inh" >#< pp_parens (ppTuple False _argsIpps))+                                         else _exprIpp >#< hv_sp _argsIpps+                                         {-# LINE 1955 "dist/build/PrintCode" #-}+                                         )) of+                                  { !_lhsOpp ->+                                  (case ((Syn_Expr _lhsOpp)) of+                                   { ___node ->+                                   ( _lhsOpp) }) }) }) }) }) }) }) }) }) })))+sem_Expr_Lambda :: T_Exprs ->+                   T_Expr ->+                   T_Expr+sem_Expr_Lambda !(T_Exprs args_) !(T_Expr body_) =+    (T_Expr (\ (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 1970 "dist/build/PrintCode" #-}+                         )) of+                  { !_bodyOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 1975 "dist/build/PrintCode" #-}+                          )) of+                   { !_bodyOoptions ->+                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 1980 "dist/build/PrintCode" #-}+                           )) of+                    { !_bodyOnested ->+                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                            _lhsIoutputfile+                            {-# LINE 1985 "dist/build/PrintCode" #-}+                            )) of+                     { !_argsOoutputfile ->+                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                             _lhsIoptions+                             {-# LINE 1990 "dist/build/PrintCode" #-}+                             )) of+                      { !_argsOoptions ->+                      (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                              _lhsInested+                              {-# LINE 1995 "dist/build/PrintCode" #-}+                              )) of+                       { !_argsOnested ->+                       (case (({-# LINE 153 "src-ag/PrintCode.ag" #-}+                               if bangpats _lhsIoptions+                               then \p -> pp_parens ("!" >|< p)+                               else id+                               {-# LINE 2002 "dist/build/PrintCode" #-}+                               )) of+                        { !_addBang ->+                        (case (args_ _argsOnested _argsOoptions _argsOoutputfile) of+                         { ( !_argsIpps) ->+                             (case (({-# LINE 150 "src-ag/PrintCode.ag" #-}+                                     if strictSems _lhsIoptions+                                     then _argsIpps+                                     else []+                                     {-# LINE 2011 "dist/build/PrintCode" #-}+                                     )) of+                              { !_strictParams ->+                              (case (body_ _bodyOnested _bodyOoptions _bodyOoutputfile) of+                               { ( !_bodyIpp) ->+                                   (case (({-# LINE 156 "src-ag/PrintCode.ag" #-}+                                           pp_parens (    "\\" >#< (vlist (map _addBang     _argsIpps)) >#< "->"+                                                     >-< indent 4 (_strictParams     `ppMultiSeqV` _bodyIpp)+                                                     )+                                           {-# LINE 2020 "dist/build/PrintCode" #-}+                                           )) of+                                    { !_lhsOpp ->+                                    (case ((Syn_Expr _lhsOpp)) of+                                     { ___node ->+                                     ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) }) })))+sem_Expr_Let :: T_Decls ->+                T_Expr ->+                T_Expr+sem_Expr_Let !(T_Decls decls_) !(T_Expr body_) =+    (T_Expr (\ (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 2035 "dist/build/PrintCode" #-}+                         )) of+                  { !_bodyOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 2040 "dist/build/PrintCode" #-}+                          )) of+                   { !_bodyOoptions ->+                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 2045 "dist/build/PrintCode" #-}+                           )) of+                    { !_bodyOnested ->+                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                            _lhsIoutputfile+                            {-# LINE 2050 "dist/build/PrintCode" #-}+                            )) of+                     { !_declsOoutputfile ->+                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                             _lhsIoptions+                             {-# LINE 2055 "dist/build/PrintCode" #-}+                             )) of+                      { !_declsOoptions ->+                      (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                              _lhsInested+                              {-# LINE 2060 "dist/build/PrintCode" #-}+                              )) of+                       { !_declsOnested ->+                       (case (({-# LINE 414 "src-ag/PrintCode.ag" #-}+                               True+                               {-# LINE 2065 "dist/build/PrintCode" #-}+                               )) of+                        { !_declsOisDeclOfLet ->+                        (case (body_ _bodyOnested _bodyOoptions _bodyOoutputfile) of+                         { ( !_bodyIpp) ->+                             (case (decls_ _declsOisDeclOfLet _declsOnested _declsOoptions _declsOoutputfile) of+                              { ( !_declsIpps) ->+                                  (case (({-# LINE 141 "src-ag/PrintCode.ag" #-}+                                          pp_parens (    "let" >#< (vlist _declsIpps)+                                                    >-< "in " >#< _bodyIpp+                                                    )+                                          {-# LINE 2076 "dist/build/PrintCode" #-}+                                          )) of+                                   { !_lhsOpp ->+                                   (case ((Syn_Expr _lhsOpp)) of+                                    { ___node ->+                                    ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) })))+sem_Expr_LineExpr :: T_Expr ->+                     T_Expr+sem_Expr_LineExpr !(T_Expr expr_) =+    (T_Expr (\ (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 2090 "dist/build/PrintCode" #-}+                         )) of+                  { !_exprOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 2095 "dist/build/PrintCode" #-}+                          )) of+                   { !_exprOoptions ->+                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 2100 "dist/build/PrintCode" #-}+                           )) of+                    { !_exprOnested ->+                    (case (expr_ _exprOnested _exprOoptions _exprOoutputfile) of+                     { ( !_exprIpp) ->+                         (case (({-# LINE 178 "src-ag/PrintCode.ag" #-}+                                 _exprIpp >-< "{-# LINE" >#< ppWithLineNr (\n -> pp $ show $ n + 1) >#< show _lhsIoutputfile >#< "#-}"+                                          >-< ""+                                 {-# LINE 2108 "dist/build/PrintCode" #-}+                                 )) of+                          { !_lhsOpp ->+                          (case ((Syn_Expr _lhsOpp)) of+                           { ___node ->+                           ( _lhsOpp) }) }) }) }) }) })))+sem_Expr_PragmaExpr :: Bool ->+                       Bool ->+                       String ->+                       T_Expr ->+                       T_Expr+sem_Expr_PragmaExpr !onLeftSide_ !onNewLine_ !txt_ !(T_Expr expr_) =+    (T_Expr (\ (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 2125 "dist/build/PrintCode" #-}+                         )) of+                  { !_exprOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 2130 "dist/build/PrintCode" #-}+                          )) of+                   { !_exprOoptions ->+                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 2135 "dist/build/PrintCode" #-}+                           )) of+                    { !_exprOnested ->+                    (case (expr_ _exprOnested _exprOoptions _exprOoutputfile) of+                     { ( !_exprIpp) ->+                         (case (({-# LINE 167 "src-ag/PrintCode.ag" #-}+                                 let pragmaDoc = "{-#" >#< txt_ >#< "#-}"+                                     op = if onNewLine_+                                          then (>-<)+                                          else (>#<)+                                     leftOp x y = if onLeftSide_+                                                  then x `op` y+                                                  else y+                                     rightOp x y = if onLeftSide_+                                                   then x+                                                   else x `op` y+                                 in pp_parens (pragmaDoc `leftOp` _exprIpp `rightOp` pragmaDoc)+                                 {-# LINE 2152 "dist/build/PrintCode" #-}+                                 )) of+                          { !_lhsOpp ->+                          (case ((Syn_Expr _lhsOpp)) of+                           { ___node ->+                           ( _lhsOpp) }) }) }) }) }) })))+sem_Expr_ResultExpr :: String ->+                       T_Expr ->+                       T_Expr+sem_Expr_ResultExpr !nt_ !(T_Expr expr_) =+    (T_Expr (\ (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 2167 "dist/build/PrintCode" #-}+                         )) of+                  { !_exprOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 2172 "dist/build/PrintCode" #-}+                          )) of+                   { !_exprOoptions ->+                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 2177 "dist/build/PrintCode" #-}+                           )) of+                    { !_exprOnested ->+                    (case (expr_ _exprOnested _exprOoptions _exprOoutputfile) of+                     { ( !_exprIpp) ->+                         (case (({-# LINE 181 "src-ag/PrintCode.ag" #-}+                                 if breadthFirst _lhsIoptions+                                 then "final" >#<+                                      pp_parens (nt_ >|< "_Syn" >#< pp_parens _exprIpp)+                                 else _exprIpp+                                 {-# LINE 2187 "dist/build/PrintCode" #-}+                                 )) of+                          { !_lhsOpp ->+                          (case ((Syn_Expr _lhsOpp)) of+                           { ___node ->+                           ( _lhsOpp) }) }) }) }) }) })))+sem_Expr_ResumeExpr :: String ->+                       T_Expr ->+                       T_Lhs ->+                       T_Expr ->+                       T_Expr+sem_Expr_ResumeExpr !nt_ !(T_Expr expr_) !(T_Lhs left_) !(T_Expr rhs_) =+    (T_Expr (\ (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 2204 "dist/build/PrintCode" #-}+                         )) of+                  { !_rhsOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 2209 "dist/build/PrintCode" #-}+                          )) of+                   { !_rhsOoptions ->+                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 2214 "dist/build/PrintCode" #-}+                           )) of+                    { !_rhsOnested ->+                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                            _lhsIoutputfile+                            {-# LINE 2219 "dist/build/PrintCode" #-}+                            )) of+                     { !_leftOoutputfile ->+                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                             _lhsIoptions+                             {-# LINE 2224 "dist/build/PrintCode" #-}+                             )) of+                      { !_leftOoptions ->+                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                              _lhsInested+                              {-# LINE 2229 "dist/build/PrintCode" #-}+                              )) of+                       { !_leftOnested ->+                       (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                               _lhsIoutputfile+                               {-# LINE 2234 "dist/build/PrintCode" #-}+                               )) of+                        { !_exprOoutputfile ->+                        (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                                _lhsIoptions+                                {-# LINE 2239 "dist/build/PrintCode" #-}+                                )) of+                         { !_exprOoptions ->+                         (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                                 _lhsInested+                                 {-# LINE 2244 "dist/build/PrintCode" #-}+                                 )) of+                          { !_exprOnested ->+                          (case (({-# LINE 418 "src-ag/PrintCode.ag" #-}+                                  False+                                  {-# LINE 2249 "dist/build/PrintCode" #-}+                                  )) of+                           { !_leftOisDeclOfLet ->+                           (case (rhs_ _rhsOnested _rhsOoptions _rhsOoutputfile) of+                            { ( !_rhsIpp) ->+                                (case (left_ _leftOisDeclOfLet _leftOnested _leftOoptions _leftOoutputfile) of+                                 { ( !_leftIpp) ->+                                     (case (expr_ _exprOnested _exprOoptions _exprOoutputfile) of+                                      { ( !_exprIpp) ->+                                          (case (({-# LINE 189 "src-ag/PrintCode.ag" #-}+                                                  if breadthFirst _lhsIoptions+                                                  then pp_parens ("resume" >#< pp_parens _exprIpp+                                                                 >-< indent 2 (pp_parens ( "\\" >|<+                                                                       pp_parens ("~" >|< pp_parens (nt_ >|< "_Syn" >#< "_inh_arg"))+                                                                         >#< "->"+                                                                 >-< indent 2 ( "let" >#< _leftIpp >#< "= _inh_arg"+                                                                 >-< indent 2 ("in" >#< _rhsIpp)+                                                                 ))))+                                                  else pp_parens ( "case" >#< pp_parens _exprIpp >#< "of"+                                                                 >-< ("{" >#< _leftIpp >#< "->")+                                                                 >-< indent 4 (_rhsIpp >#< "}")+                                                                 )+                                                  {-# LINE 2271 "dist/build/PrintCode" #-}+                                                  )) of+                                           { !_lhsOpp ->+                                           (case ((Syn_Expr _lhsOpp)) of+                                            { ___node ->+                                            ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+sem_Expr_SemFun :: String ->+                   T_Exprs ->+                   T_Expr ->+                   T_Expr+sem_Expr_SemFun !nt_ !(T_Exprs args_) !(T_Expr body_) =+    (T_Expr (\ (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 2287 "dist/build/PrintCode" #-}+                         )) of+                  { !_bodyOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 2292 "dist/build/PrintCode" #-}+                          )) of+                   { !_bodyOoptions ->+                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 2297 "dist/build/PrintCode" #-}+                           )) of+                    { !_bodyOnested ->+                    (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                            _lhsIoutputfile+                            {-# LINE 2302 "dist/build/PrintCode" #-}+                            )) of+                     { !_argsOoutputfile ->+                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                             _lhsIoptions+                             {-# LINE 2307 "dist/build/PrintCode" #-}+                             )) of+                      { !_argsOoptions ->+                      (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                              _lhsInested+                              {-# LINE 2312 "dist/build/PrintCode" #-}+                              )) of+                       { !_argsOnested ->+                       (case (({-# LINE 204 "src-ag/PrintCode.ag" #-}+                               if bangpats _lhsIoptions+                               then \p -> pp_parens ("!" >|< p)+                               else id+                               {-# LINE 2319 "dist/build/PrintCode" #-}+                               )) of+                        { !_addBang ->+                        (case (args_ _argsOnested _argsOoptions _argsOoutputfile) of+                         { ( !_argsIpps) ->+                             (case (({-# LINE 201 "src-ag/PrintCode.ag" #-}+                                     if strictSems _lhsIoptions+                                     then _argsIpps+                                     else []+                                     {-# LINE 2328 "dist/build/PrintCode" #-}+                                     )) of+                              { !_strictParams ->+                              (case (body_ _bodyOnested _bodyOoptions _bodyOoutputfile) of+                               { ( !_bodyIpp) ->+                                   (case (({-# LINE 207 "src-ag/PrintCode.ag" #-}+                                           if breadthFirst _lhsIoptions+                                           then "Child" >#< pp_parens ( "\\" >|<+                                                    pp_parens (nt_ >|< "_Inh" >#<+                                                      ppTuple False (map _addBang     _argsIpps)) >#< "->"+                                                >-< indent 2 (_strictParams     `ppMultiSeqV` _bodyIpp))+                                           else if null _argsIpps+                                                then _bodyIpp+                                                else pp_parens (    "\\" >#< (vlist (map _addBang     _argsIpps)) >#< "->"+                                                               >-< indent 4 (_strictParams     `ppMultiSeqV` _bodyIpp)+                                                               )+                                           {-# LINE 2344 "dist/build/PrintCode" #-}+                                           )) of+                                    { !_lhsOpp ->+                                    (case ((Syn_Expr _lhsOpp)) of+                                     { ___node ->+                                     ( _lhsOpp) }) }) }) }) }) }) }) }) }) }) }) })))+sem_Expr_SimpleExpr :: String ->+                       T_Expr+sem_Expr_SimpleExpr !txt_ =+    (T_Expr (\ (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 162 "src-ag/PrintCode.ag" #-}+                         text txt_+                         {-# LINE 2358 "dist/build/PrintCode" #-}+                         )) of+                  { !_lhsOpp ->+                  (case ((Syn_Expr _lhsOpp)) of+                   { ___node ->+                   ( _lhsOpp) }) })))+sem_Expr_TextExpr :: ([String]) ->+                     T_Expr+sem_Expr_TextExpr !lns_ =+    (T_Expr (\ (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 163 "src-ag/PrintCode.ag" #-}+                         vlist (map text lns_)+                         {-# LINE 2372 "dist/build/PrintCode" #-}+                         )) of+                  { !_lhsOpp ->+                  (case ((Syn_Expr _lhsOpp)) of+                   { ___node ->+                   ( _lhsOpp) }) })))+sem_Expr_Trace :: String ->+                  T_Expr ->+                  T_Expr+sem_Expr_Trace !txt_ !(T_Expr expr_) =+    (T_Expr (\ (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 2387 "dist/build/PrintCode" #-}+                         )) of+                  { !_exprOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 2392 "dist/build/PrintCode" #-}+                          )) of+                   { !_exprOoptions ->+                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 2397 "dist/build/PrintCode" #-}+                           )) of+                    { !_exprOnested ->+                    (case (expr_ _exprOnested _exprOoptions _exprOoutputfile) of+                     { ( !_exprIpp) ->+                         (case (({-# LINE 164 "src-ag/PrintCode.ag" #-}+                                 "trace" >#< (   pp_parens ("\"" >|< text txt_ >|< "\"")+                                             >-< pp_parens _exprIpp+                                             )+                                 {-# LINE 2406 "dist/build/PrintCode" #-}+                                 )) of+                          { !_lhsOpp ->+                          (case ((Syn_Expr _lhsOpp)) of+                           { ___node ->+                           ( _lhsOpp) }) }) }) }) }) })))+sem_Expr_TupleExpr :: T_Exprs ->+                      T_Expr+sem_Expr_TupleExpr !(T_Exprs exprs_) =+    (T_Expr (\ (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 2420 "dist/build/PrintCode" #-}+                         )) of+                  { !_exprsOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 2425 "dist/build/PrintCode" #-}+                          )) of+                   { !_exprsOoptions ->+                   (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 2430 "dist/build/PrintCode" #-}+                           )) of+                    { !_exprsOnested ->+                    (case (exprs_ _exprsOnested _exprsOoptions _exprsOoutputfile) of+                     { ( !_exprsIpps) ->+                         (case (({-# LINE 159 "src-ag/PrintCode.ag" #-}+                                 ppTuple _lhsInested _exprsIpps+                                 {-# LINE 2437 "dist/build/PrintCode" #-}+                                 )) of+                          { !_lhsOpp ->+                          (case ((Syn_Expr _lhsOpp)) of+                           { ___node ->+                           ( _lhsOpp) }) }) }) }) }) })))+sem_Expr_TypedExpr :: T_Expr ->+                      T_Type ->+                      T_Expr+sem_Expr_TypedExpr !(T_Expr expr_) !(T_Type tp_) =+    (T_Expr (\ (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                         _lhsInested+                         {-# LINE 2452 "dist/build/PrintCode" #-}+                         )) of+                  { !_tpOnested ->+                  (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                          _lhsIoutputfile+                          {-# LINE 2457 "dist/build/PrintCode" #-}+                          )) of+                   { !_exprOoutputfile ->+                   (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                           _lhsIoptions+                           {-# LINE 2462 "dist/build/PrintCode" #-}+                           )) of+                    { !_exprOoptions ->+                    (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                            _lhsInested+                            {-# LINE 2467 "dist/build/PrintCode" #-}+                            )) of+                     { !_exprOnested ->+                     (case (tp_ _tpOnested) of+                      { ( !_tpIpp,!_tpIprec) ->+                          (case (expr_ _exprOnested _exprOoptions _exprOoutputfile) of+                           { ( !_exprIpp) ->+                               (case (({-# LINE 180 "src-ag/PrintCode.ag" #-}+                                       pp_parens (_exprIpp >#< "::" >#< _tpIpp)+                                       {-# LINE 2476 "dist/build/PrintCode" #-}+                                       )) of+                                { !_lhsOpp ->+                                (case ((Syn_Expr _lhsOpp)) of+                                 { ___node ->+                                 ( _lhsOpp) }) }) }) }) }) }) }) })))+sem_Expr_UnboxedTupleExpr :: T_Exprs ->+                             T_Expr+sem_Expr_UnboxedTupleExpr !(T_Exprs exprs_) =+    (T_Expr (\ (!_lhsInested)+               (!_lhsIoptions)+               (!_lhsIoutputfile) ->+                 (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                         _lhsIoutputfile+                         {-# LINE 2490 "dist/build/PrintCode" #-}+                         )) of+                  { !_exprsOoutputfile ->+                  (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                          _lhsIoptions+                          {-# LINE 2495 "dist/build/PrintCode" #-}+                          )) of+                   { !_exprsOoptions ->+                   (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 2500 "dist/build/PrintCode" #-}+                           )) of+                    { !_exprsOnested ->+                    (case (exprs_ _exprsOnested _exprsOoptions _exprsOoutputfile) of+                     { ( !_exprsIpps) ->+                         (case (({-# LINE 160 "src-ag/PrintCode.ag" #-}+                                 ppUnboxedTuple _lhsInested _exprsIpps+                                 {-# LINE 2507 "dist/build/PrintCode" #-}+                                 )) of+                          { !_lhsOpp ->+                          (case ((Syn_Expr _lhsOpp)) of+                           { ___node ->+                           ( _lhsOpp) }) }) }) }) }) })))+-- Exprs -------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         nested               : Bool+         options              : Options+         outputfile           : String+      synthesized attribute:+         pps                  : PP_Docs+   alternatives:+      alternative Cons:+         child hd             : Expr +         child tl             : Exprs +      alternative Nil:+-}+-- cata+sem_Exprs :: Exprs ->+             T_Exprs+sem_Exprs !list =+    (Prelude.foldr sem_Exprs_Cons sem_Exprs_Nil (Prelude.map sem_Expr list))+-- semantic domain+newtype T_Exprs = T_Exprs (Bool ->+                           Options ->+                           String ->+                           ( PP_Docs))+data Inh_Exprs = Inh_Exprs {nested_Inh_Exprs :: !(Bool),options_Inh_Exprs :: !(Options),outputfile_Inh_Exprs :: !(String)}+data Syn_Exprs = Syn_Exprs {pps_Syn_Exprs :: !(PP_Docs)}+wrap_Exprs :: T_Exprs ->+              Inh_Exprs ->+              Syn_Exprs+wrap_Exprs !(T_Exprs sem) !(Inh_Exprs _lhsInested _lhsIoptions _lhsIoutputfile) =+    (let ( !_lhsOpps) = sem _lhsInested _lhsIoptions _lhsIoutputfile+     in  (Syn_Exprs _lhsOpps))+sem_Exprs_Cons :: T_Expr ->+                  T_Exprs ->+                  T_Exprs+sem_Exprs_Cons !(T_Expr hd_) !(T_Exprs tl_) =+    (T_Exprs (\ (!_lhsInested)+                (!_lhsIoptions)+                (!_lhsIoutputfile) ->+                  (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                          _lhsIoutputfile+                          {-# LINE 2555 "dist/build/PrintCode" #-}+                          )) of+                   { !_tlOoutputfile ->+                   (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                           _lhsIoptions+                           {-# LINE 2560 "dist/build/PrintCode" #-}+                           )) of+                    { !_tlOoptions ->+                    (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                            _lhsInested+                            {-# LINE 2565 "dist/build/PrintCode" #-}+                            )) of+                     { !_tlOnested ->+                     (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                             _lhsIoutputfile+                             {-# LINE 2570 "dist/build/PrintCode" #-}+                             )) of+                      { !_hdOoutputfile ->+                      (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                              _lhsIoptions+                              {-# LINE 2575 "dist/build/PrintCode" #-}+                              )) of+                       { !_hdOoptions ->+                       (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                               _lhsInested+                               {-# LINE 2580 "dist/build/PrintCode" #-}+                               )) of+                        { !_hdOnested ->+                        (case (tl_ _tlOnested _tlOoptions _tlOoutputfile) of+                         { ( !_tlIpps) ->+                             (case (hd_ _hdOnested _hdOoptions _hdOoutputfile) of+                              { ( !_hdIpp) ->+                                  (case (({-# LINE 65 "src-ag/PrintCode.ag" #-}+                                          _hdIpp : _tlIpps+                                          {-# LINE 2589 "dist/build/PrintCode" #-}+                                          )) of+                                   { !_lhsOpps ->+                                   (case ((Syn_Exprs _lhsOpps)) of+                                    { ___node ->+                                    ( _lhsOpps) }) }) }) }) }) }) }) }) }) })))+sem_Exprs_Nil :: T_Exprs+sem_Exprs_Nil =+    (T_Exprs (\ (!_lhsInested)+                (!_lhsIoptions)+                (!_lhsIoutputfile) ->+                  (case (({-# LINE 66 "src-ag/PrintCode.ag" #-}+                          []+                          {-# LINE 2602 "dist/build/PrintCode" #-}+                          )) of+                   { !_lhsOpps ->+                   (case ((Syn_Exprs _lhsOpps)) of+                    { ___node ->+                    ( _lhsOpps) }) })))+-- Lhs ---------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         isDeclOfLet          : Bool+         nested               : Bool+         options              : Options+         outputfile           : String+      synthesized attribute:+         pp                   : PP_Doc+   alternatives:+      alternative Fun:+         child name           : {String}+         child args           : Exprs +         visit 0:+            local addBang     : _+            local strictGuard : _+            local hasStrictVars : _+            local addStrictGuard : _+      alternative Pattern3:+         child pat3           : Pattern +         visit 0:+            local hasStrictVars : _+            local strictGuard : _+            local addStrictGuard : _+      alternative Pattern3SM:+         child pat3           : Pattern +      alternative TupleLhs:+         child comps          : {[String]}+         visit 0:+            local addBang     : _+            local hasStrictVars : _+            local strictGuard : _+            local addStrictGuard : _+      alternative UnboxedTupleLhs:+         child comps          : {[String]}+         visit 0:+            local addBang     : _+            local hasStrictVars : _+            local strictGuard : _+            local addStrictGuard : _+      alternative Unwrap:+         child name           : {String}+         child sub            : Lhs +-}+-- cata+sem_Lhs :: Lhs ->+           T_Lhs+sem_Lhs !(Fun _name _args) =+    (sem_Lhs_Fun _name (sem_Exprs _args))+sem_Lhs !(Pattern3 _pat3) =+    (sem_Lhs_Pattern3 (sem_Pattern _pat3))+sem_Lhs !(Pattern3SM _pat3) =+    (sem_Lhs_Pattern3SM (sem_Pattern _pat3))+sem_Lhs !(TupleLhs _comps) =+    (sem_Lhs_TupleLhs _comps)+sem_Lhs !(UnboxedTupleLhs _comps) =+    (sem_Lhs_UnboxedTupleLhs _comps)+sem_Lhs !(Unwrap _name _sub) =+    (sem_Lhs_Unwrap _name (sem_Lhs _sub))+-- semantic domain+newtype T_Lhs = T_Lhs (Bool ->+                       Bool ->+                       Options ->+                       String ->+                       ( PP_Doc))+data Inh_Lhs = Inh_Lhs {isDeclOfLet_Inh_Lhs :: !(Bool),nested_Inh_Lhs :: !(Bool),options_Inh_Lhs :: !(Options),outputfile_Inh_Lhs :: !(String)}+data Syn_Lhs = Syn_Lhs {pp_Syn_Lhs :: !(PP_Doc)}+wrap_Lhs :: T_Lhs ->+            Inh_Lhs ->+            Syn_Lhs+wrap_Lhs !(T_Lhs sem) !(Inh_Lhs _lhsIisDeclOfLet _lhsInested _lhsIoptions _lhsIoutputfile) =+    (let ( !_lhsOpp) = sem _lhsIisDeclOfLet _lhsInested _lhsIoptions _lhsIoutputfile+     in  (Syn_Lhs _lhsOpp))+sem_Lhs_Fun :: String ->+               T_Exprs ->+               T_Lhs+sem_Lhs_Fun !name_ !(T_Exprs args_) =+    (T_Lhs (\ (!_lhsIisDeclOfLet)+              (!_lhsInested)+              (!_lhsIoptions)+              (!_lhsIoutputfile) ->+                (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                        _lhsIoutputfile+                        {-# LINE 2692 "dist/build/PrintCode" #-}+                        )) of+                 { !_argsOoutputfile ->+                 (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                         _lhsIoptions+                         {-# LINE 2697 "dist/build/PrintCode" #-}+                         )) of+                  { !_argsOoptions ->+                  (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                          _lhsInested+                          {-# LINE 2702 "dist/build/PrintCode" #-}+                          )) of+                   { !_argsOnested ->+                   (case (({-# LINE 248 "src-ag/PrintCode.ag" #-}+                           if bangpats _lhsIoptions+                                    then \p -> "!" >|< p+                                    else id+                           {-# LINE 2709 "dist/build/PrintCode" #-}+                           )) of+                    { !_addBang ->+                    (case (args_ _argsOnested _argsOoptions _argsOoutputfile) of+                     { ( !_argsIpps) ->+                         (case (({-# LINE 245 "src-ag/PrintCode.ag" #-}+                                 _argsIpps `ppMultiSeqH` (pp "True")+                                 {-# LINE 2716 "dist/build/PrintCode" #-}+                                 )) of+                          { !_strictGuard ->+                          (case (({-# LINE 244 "src-ag/PrintCode.ag" #-}+                                  not (null _argsIpps)+                                  {-# LINE 2721 "dist/build/PrintCode" #-}+                                  )) of+                           { !_hasStrictVars ->+                           (case (({-# LINE 243 "src-ag/PrintCode.ag" #-}+                                   if strictSems _lhsIoptions && _hasStrictVars     then \v -> v >#< "|" >#< _strictGuard     else id+                                   {-# LINE 2726 "dist/build/PrintCode" #-}+                                   )) of+                            { !_addStrictGuard ->+                            (case (({-# LINE 256 "src-ag/PrintCode.ag" #-}+                                    _addStrictGuard     (name_ >#< hv_sp (map _addBang     _argsIpps))+                                    {-# LINE 2731 "dist/build/PrintCode" #-}+                                    )) of+                             { !_lhsOpp ->+                             (case ((Syn_Lhs _lhsOpp)) of+                              { ___node ->+                              ( _lhsOpp) }) }) }) }) }) }) }) }) }) })))+sem_Lhs_Pattern3 :: T_Pattern ->+                    T_Lhs+sem_Lhs_Pattern3 !(T_Pattern pat3_) =+    (T_Lhs (\ (!_lhsIisDeclOfLet)+              (!_lhsInested)+              (!_lhsIoptions)+              (!_lhsIoutputfile) ->+                (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                        _lhsIoptions+                        {-# LINE 2746 "dist/build/PrintCode" #-}+                        )) of+                 { !_pat3Ooptions ->+                 (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                         _lhsIisDeclOfLet+                         {-# LINE 2751 "dist/build/PrintCode" #-}+                         )) of+                  { !_pat3OisDeclOfLet ->+                  (case (({-# LINE 380 "src-ag/PrintCode.ag" #-}+                          False+                          {-# LINE 2756 "dist/build/PrintCode" #-}+                          )) of+                   { !_pat3ObelowIrrefutable ->+                   (case (pat3_ _pat3ObelowIrrefutable _pat3OisDeclOfLet _pat3Ooptions) of+                    { ( !_pat3Icopy,!_pat3IisUnderscore,!_pat3Ipp,!_pat3Ipp',!_pat3IstrictVars) ->+                        (case (({-# LINE 235 "src-ag/PrintCode.ag" #-}+                                not (null _pat3IstrictVars)+                                {-# LINE 2763 "dist/build/PrintCode" #-}+                                )) of+                         { !_hasStrictVars ->+                         (case (({-# LINE 234 "src-ag/PrintCode.ag" #-}+                                 _pat3IstrictVars `ppMultiSeqH` (pp "True")+                                 {-# LINE 2768 "dist/build/PrintCode" #-}+                                 )) of+                          { !_strictGuard ->+                          (case (({-# LINE 232 "src-ag/PrintCode.ag" #-}+                                  if strictCases _lhsIoptions && _hasStrictVars     then \v -> v >#< "|" >#< _strictGuard     else id+                                  {-# LINE 2773 "dist/build/PrintCode" #-}+                                  )) of+                           { !_addStrictGuard ->+                           (case (({-# LINE 252 "src-ag/PrintCode.ag" #-}+                                   _addStrictGuard     _pat3Ipp+                                   {-# LINE 2778 "dist/build/PrintCode" #-}+                                   )) of+                            { !_lhsOpp ->+                            (case ((Syn_Lhs _lhsOpp)) of+                             { ___node ->+                             ( _lhsOpp) }) }) }) }) }) }) }) }) })))+sem_Lhs_Pattern3SM :: T_Pattern ->+                      T_Lhs+sem_Lhs_Pattern3SM !(T_Pattern pat3_) =+    (T_Lhs (\ (!_lhsIisDeclOfLet)+              (!_lhsInested)+              (!_lhsIoptions)+              (!_lhsIoutputfile) ->+                (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                        _lhsIoptions+                        {-# LINE 2793 "dist/build/PrintCode" #-}+                        )) of+                 { !_pat3Ooptions ->+                 (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                         _lhsIisDeclOfLet+                         {-# LINE 2798 "dist/build/PrintCode" #-}+                         )) of+                  { !_pat3OisDeclOfLet ->+                  (case (({-# LINE 380 "src-ag/PrintCode.ag" #-}+                          False+                          {-# LINE 2803 "dist/build/PrintCode" #-}+                          )) of+                   { !_pat3ObelowIrrefutable ->+                   (case (pat3_ _pat3ObelowIrrefutable _pat3OisDeclOfLet _pat3Ooptions) of+                    { ( !_pat3Icopy,!_pat3IisUnderscore,!_pat3Ipp,!_pat3Ipp',!_pat3IstrictVars) ->+                        (case (({-# LINE 253 "src-ag/PrintCode.ag" #-}+                                _pat3Ipp'+                                {-# LINE 2810 "dist/build/PrintCode" #-}+                                )) of+                         { !_lhsOpp ->+                         (case ((Syn_Lhs _lhsOpp)) of+                          { ___node ->+                          ( _lhsOpp) }) }) }) }) }) })))+sem_Lhs_TupleLhs :: ([String]) ->+                    T_Lhs+sem_Lhs_TupleLhs !comps_ =+    (T_Lhs (\ (!_lhsIisDeclOfLet)+              (!_lhsInested)+              (!_lhsIoptions)+              (!_lhsIoutputfile) ->+                (case (({-# LINE 248 "src-ag/PrintCode.ag" #-}+                        if bangpats _lhsIoptions+                                 then \p -> "!" >|< p+                                 else id+                        {-# LINE 2827 "dist/build/PrintCode" #-}+                        )) of+                 { !_addBang ->+                 (case (({-# LINE 240 "src-ag/PrintCode.ag" #-}+                         not (null comps_)+                         {-# LINE 2832 "dist/build/PrintCode" #-}+                         )) of+                  { !_hasStrictVars ->+                  (case (({-# LINE 237 "src-ag/PrintCode.ag" #-}+                          if stricterCases _lhsIoptions && not _lhsIisDeclOfLet+                          then map text comps_ `ppMultiSeqH` (pp "True")+                          else pp "True"+                          {-# LINE 2839 "dist/build/PrintCode" #-}+                          )) of+                   { !_strictGuard ->+                   (case (({-# LINE 232 "src-ag/PrintCode.ag" #-}+                           if strictCases _lhsIoptions && _hasStrictVars     then \v -> v >#< "|" >#< _strictGuard     else id+                           {-# LINE 2844 "dist/build/PrintCode" #-}+                           )) of+                    { !_addStrictGuard ->+                    (case (({-# LINE 254 "src-ag/PrintCode.ag" #-}+                            _addStrictGuard     $ ppTuple _lhsInested (map (_addBang     . text) comps_)+                            {-# LINE 2849 "dist/build/PrintCode" #-}+                            )) of+                     { !_lhsOpp ->+                     (case ((Syn_Lhs _lhsOpp)) of+                      { ___node ->+                      ( _lhsOpp) }) }) }) }) }) })))+sem_Lhs_UnboxedTupleLhs :: ([String]) ->+                           T_Lhs+sem_Lhs_UnboxedTupleLhs !comps_ =+    (T_Lhs (\ (!_lhsIisDeclOfLet)+              (!_lhsInested)+              (!_lhsIoptions)+              (!_lhsIoutputfile) ->+                (case (({-# LINE 248 "src-ag/PrintCode.ag" #-}+                        if bangpats _lhsIoptions+                                 then \p -> "!" >|< p+                                 else id+                        {-# LINE 2866 "dist/build/PrintCode" #-}+                        )) of+                 { !_addBang ->+                 (case (({-# LINE 240 "src-ag/PrintCode.ag" #-}+                         not (null comps_)+                         {-# LINE 2871 "dist/build/PrintCode" #-}+                         )) of+                  { !_hasStrictVars ->+                  (case (({-# LINE 237 "src-ag/PrintCode.ag" #-}+                          if stricterCases _lhsIoptions && not _lhsIisDeclOfLet+                          then map text comps_ `ppMultiSeqH` (pp "True")+                          else pp "True"+                          {-# LINE 2878 "dist/build/PrintCode" #-}+                          )) of+                   { !_strictGuard ->+                   (case (({-# LINE 232 "src-ag/PrintCode.ag" #-}+                           if strictCases _lhsIoptions && _hasStrictVars     then \v -> v >#< "|" >#< _strictGuard     else id+                           {-# LINE 2883 "dist/build/PrintCode" #-}+                           )) of+                    { !_addStrictGuard ->+                    (case (({-# LINE 255 "src-ag/PrintCode.ag" #-}+                            _addStrictGuard     $ ppUnboxedTuple _lhsInested (map (_addBang     . text) comps_)+                            {-# LINE 2888 "dist/build/PrintCode" #-}+                            )) of+                     { !_lhsOpp ->+                     (case ((Syn_Lhs _lhsOpp)) of+                      { ___node ->+                      ( _lhsOpp) }) }) }) }) }) })))+sem_Lhs_Unwrap :: String ->+                  T_Lhs ->+                  T_Lhs+sem_Lhs_Unwrap !name_ !(T_Lhs sub_) =+    (T_Lhs (\ (!_lhsIisDeclOfLet)+              (!_lhsInested)+              (!_lhsIoptions)+              (!_lhsIoutputfile) ->+                (case (({-# LINE 40 "src-ag/PrintCode.ag" #-}+                        _lhsIoutputfile+                        {-# LINE 2904 "dist/build/PrintCode" #-}+                        )) of+                 { !_subOoutputfile ->+                 (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                         _lhsIoptions+                         {-# LINE 2909 "dist/build/PrintCode" #-}+                         )) of+                  { !_subOoptions ->+                  (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                          _lhsInested+                          {-# LINE 2914 "dist/build/PrintCode" #-}+                          )) of+                   { !_subOnested ->+                   (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                           _lhsIisDeclOfLet+                           {-# LINE 2919 "dist/build/PrintCode" #-}+                           )) of+                    { !_subOisDeclOfLet ->+                    (case (sub_ _subOisDeclOfLet _subOnested _subOoptions _subOoutputfile) of+                     { ( !_subIpp) ->+                         (case (({-# LINE 257 "src-ag/PrintCode.ag" #-}+                                 pp_parens (name_ >#< _subIpp)+                                 {-# LINE 2926 "dist/build/PrintCode" #-}+                                 )) of+                          { !_lhsOpp ->+                          (case ((Syn_Lhs _lhsOpp)) of+                           { ___node ->+                           ( _lhsOpp) }) }) }) }) }) }) })))+-- NamedType ---------------------------------------------------+{-+   visit 0:+      inherited attribute:+         nested               : Bool+      synthesized attribute:+         pp                   : PP_Doc+   alternatives:+      alternative Named:+         child strict         : {Bool}+         child name           : {String}+         child tp             : Type +-}+-- cata+sem_NamedType :: NamedType ->+                 T_NamedType+sem_NamedType !(Named _strict _name _tp) =+    (sem_NamedType_Named _strict _name (sem_Type _tp))+-- semantic domain+newtype T_NamedType = T_NamedType (Bool ->+                                   ( PP_Doc))+data Inh_NamedType = Inh_NamedType {nested_Inh_NamedType :: !(Bool)}+data Syn_NamedType = Syn_NamedType {pp_Syn_NamedType :: !(PP_Doc)}+wrap_NamedType :: T_NamedType ->+                  Inh_NamedType ->+                  Syn_NamedType+wrap_NamedType !(T_NamedType sem) !(Inh_NamedType _lhsInested) =+    (let ( !_lhsOpp) = sem _lhsInested+     in  (Syn_NamedType _lhsOpp))+sem_NamedType_Named :: Bool ->+                       String ->+                       T_Type ->+                       T_NamedType+sem_NamedType_Named !strict_ !name_ !(T_Type tp_) =+    (T_NamedType (\ (!_lhsInested) ->+                      (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                              _lhsInested+                              {-# LINE 2969 "dist/build/PrintCode" #-}+                              )) of+                       { !_tpOnested ->+                       (case (tp_ _tpOnested) of+                        { ( !_tpIpp,!_tpIprec) ->+                            (case (({-# LINE 226 "src-ag/PrintCode.ag" #-}+                                    if strict_+                                    then name_ >#< "::" >#< "!" >|< pp_parens _tpIpp+                                    else name_ >#< "::" >#< _tpIpp+                                    {-# LINE 2978 "dist/build/PrintCode" #-}+                                    )) of+                             { !_lhsOpp ->+                             (case ((Syn_NamedType _lhsOpp)) of+                              { ___node ->+                              ( _lhsOpp) }) }) }) })))+-- NamedTypes --------------------------------------------------+{-+   visit 0:+      inherited attribute:+         nested               : Bool+      synthesized attribute:+         pps                  : PP_Docs+   alternatives:+      alternative Cons:+         child hd             : NamedType +         child tl             : NamedTypes +      alternative Nil:+-}+-- cata+sem_NamedTypes :: NamedTypes ->+                  T_NamedTypes+sem_NamedTypes !list =+    (Prelude.foldr sem_NamedTypes_Cons sem_NamedTypes_Nil (Prelude.map sem_NamedType list))+-- semantic domain+newtype T_NamedTypes = T_NamedTypes (Bool ->+                                     ( PP_Docs))+data Inh_NamedTypes = Inh_NamedTypes {nested_Inh_NamedTypes :: !(Bool)}+data Syn_NamedTypes = Syn_NamedTypes {pps_Syn_NamedTypes :: !(PP_Docs)}+wrap_NamedTypes :: T_NamedTypes ->+                   Inh_NamedTypes ->+                   Syn_NamedTypes+wrap_NamedTypes !(T_NamedTypes sem) !(Inh_NamedTypes _lhsInested) =+    (let ( !_lhsOpps) = sem _lhsInested+     in  (Syn_NamedTypes _lhsOpps))+sem_NamedTypes_Cons :: T_NamedType ->+                       T_NamedTypes ->+                       T_NamedTypes+sem_NamedTypes_Cons !(T_NamedType hd_) !(T_NamedTypes tl_) =+    (T_NamedTypes (\ (!_lhsInested) ->+                       (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                               _lhsInested+                               {-# LINE 3020 "dist/build/PrintCode" #-}+                               )) of+                        { !_tlOnested ->+                        (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                                _lhsInested+                                {-# LINE 3025 "dist/build/PrintCode" #-}+                                )) of+                         { !_hdOnested ->+                         (case (tl_ _tlOnested) of+                          { ( !_tlIpps) ->+                              (case (hd_ _hdOnested) of+                               { ( !_hdIpp) ->+                                   (case (({-# LINE 81 "src-ag/PrintCode.ag" #-}+                                           _hdIpp : _tlIpps+                                           {-# LINE 3034 "dist/build/PrintCode" #-}+                                           )) of+                                    { !_lhsOpps ->+                                    (case ((Syn_NamedTypes _lhsOpps)) of+                                     { ___node ->+                                     ( _lhsOpps) }) }) }) }) }) })))+sem_NamedTypes_Nil :: T_NamedTypes+sem_NamedTypes_Nil =+    (T_NamedTypes (\ (!_lhsInested) ->+                       (case (({-# LINE 82 "src-ag/PrintCode.ag" #-}+                               []+                               {-# LINE 3045 "dist/build/PrintCode" #-}+                               )) of+                        { !_lhsOpps ->+                        (case ((Syn_NamedTypes _lhsOpps)) of+                         { ___node ->+                         ( _lhsOpps) }) })))+-- Pattern -----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         belowIrrefutable     : Bool+         isDeclOfLet          : Bool+         options              : Options+      synthesized attributes:+         copy                 : Pattern +         isUnderscore         : Bool+         pp                   : PP_Doc+         pp'                  : PP_Doc+         strictVars           : [PP_Doc]+   alternatives:+      alternative Alias:+         child field          : {Identifier}+         child attr           : {Identifier}+         child pat            : Pattern +         visit 0:+            local copy        : _+            local ppVar       : _+            local addBang     : _+            local ppVarBang   : _+            local strictPatVars : _+            local strictVar   : _+      alternative Constr:+         child name           : {ConstructorIdent}+         child pats           : Patterns +         visit 0:+            local copy        : _+            local addBang     : _+      alternative Irrefutable:+         child pat            : Pattern +         visit 0:+            local copy        : _+      alternative Product:+         child pos            : {Pos}+         child pats           : Patterns +         visit 0:+            local copy        : _+            local addBang     : _+      alternative Underscore:+         child pos            : {Pos}+         visit 0:+            local copy        : _+-}+-- cata+sem_Pattern :: Pattern ->+               T_Pattern+sem_Pattern !(Alias _field _attr _pat) =+    (sem_Pattern_Alias _field _attr (sem_Pattern _pat))+sem_Pattern !(Constr _name _pats) =+    (sem_Pattern_Constr _name (sem_Patterns _pats))+sem_Pattern !(Irrefutable _pat) =+    (sem_Pattern_Irrefutable (sem_Pattern _pat))+sem_Pattern !(Product _pos _pats) =+    (sem_Pattern_Product _pos (sem_Patterns _pats))+sem_Pattern !(Underscore _pos) =+    (sem_Pattern_Underscore _pos)+-- semantic domain+newtype T_Pattern = T_Pattern (Bool ->+                               Bool ->+                               Options ->+                               ( Pattern,Bool,PP_Doc,PP_Doc,([PP_Doc])))+data Inh_Pattern = Inh_Pattern {belowIrrefutable_Inh_Pattern :: !(Bool),isDeclOfLet_Inh_Pattern :: !(Bool),options_Inh_Pattern :: !(Options)}+data Syn_Pattern = Syn_Pattern {copy_Syn_Pattern :: !(Pattern),isUnderscore_Syn_Pattern :: !(Bool),pp_Syn_Pattern :: !(PP_Doc),pp'_Syn_Pattern :: !(PP_Doc),strictVars_Syn_Pattern :: !(([PP_Doc]))}+wrap_Pattern :: T_Pattern ->+                Inh_Pattern ->+                Syn_Pattern+wrap_Pattern !(T_Pattern sem) !(Inh_Pattern _lhsIbelowIrrefutable _lhsIisDeclOfLet _lhsIoptions) =+    (let ( !_lhsOcopy,!_lhsOisUnderscore,!_lhsOpp,!_lhsOpp',!_lhsOstrictVars) = sem _lhsIbelowIrrefutable _lhsIisDeclOfLet _lhsIoptions+     in  (Syn_Pattern _lhsOcopy _lhsOisUnderscore _lhsOpp _lhsOpp' _lhsOstrictVars))+sem_Pattern_Alias :: Identifier ->+                     Identifier ->+                     T_Pattern ->+                     T_Pattern+sem_Pattern_Alias !field_ !attr_ !(T_Pattern pat_) =+    (T_Pattern (\ (!_lhsIbelowIrrefutable)+                  (!_lhsIisDeclOfLet)+                  (!_lhsIoptions) ->+                    (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                            _lhsIoptions+                            {-# LINE 3133 "dist/build/PrintCode" #-}+                            )) of+                     { !_patOoptions ->+                     (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                             _lhsIisDeclOfLet+                             {-# LINE 3138 "dist/build/PrintCode" #-}+                             )) of+                      { !_patOisDeclOfLet ->+                      (case (({-# LINE 373 "src-ag/PrintCode.ag" #-}+                              _lhsIbelowIrrefutable+                              {-# LINE 3143 "dist/build/PrintCode" #-}+                              )) of+                       { !_patObelowIrrefutable ->+                       (case (pat_ _patObelowIrrefutable _patOisDeclOfLet _patOoptions) of+                        { ( !_patIcopy,!_patIisUnderscore,!_patIpp,!_patIpp',!_patIstrictVars) ->+                            (case (({-# LINE 22 "src-ag/Patterns.ag" #-}+                                    Alias field_ attr_ _patIcopy+                                    {-# LINE 3150 "dist/build/PrintCode" #-}+                                    )) of+                             { !_copy ->+                             (case (({-# LINE 22 "src-ag/Patterns.ag" #-}+                                     _copy+                                     {-# LINE 3155 "dist/build/PrintCode" #-}+                                     )) of+                              { !_lhsOcopy ->+                              (case (({-# LINE 370 "src-ag/PrintCode.ag" #-}+                                      False+                                      {-# LINE 3160 "dist/build/PrintCode" #-}+                                      )) of+                               { !_lhsOisUnderscore ->+                               (case (({-# LINE 359 "src-ag/PrintCode.ag" #-}+                                       pp (attrname False field_ attr_)+                                       {-# LINE 3165 "dist/build/PrintCode" #-}+                                       )) of+                                { !_ppVar ->+                                (case (({-# LINE 352 "src-ag/PrintCode.ag" #-}+                                        if bangpats _lhsIoptions && not _lhsIisDeclOfLet && not _lhsIbelowIrrefutable+                                        then \p -> "!" >|< p+                                        else id+                                        {-# LINE 3172 "dist/build/PrintCode" #-}+                                        )) of+                                 { !_addBang ->+                                 (case (({-# LINE 360 "src-ag/PrintCode.ag" #-}+                                         _addBang     $ _ppVar+                                         {-# LINE 3177 "dist/build/PrintCode" #-}+                                         )) of+                                  { !_ppVarBang ->+                                  (case (({-# LINE 361 "src-ag/PrintCode.ag" #-}+                                          if _patIisUnderscore+                                           then _ppVarBang+                                           else _ppVarBang     >|< "@" >|< _patIpp+                                          {-# LINE 3184 "dist/build/PrintCode" #-}+                                          )) of+                                   { !_lhsOpp ->+                                   (case (({-# LINE 393 "src-ag/PrintCode.ag" #-}+                                           let attribute | field_ == _LOC || field_ == nullIdent = locname' attr_+                                                         | otherwise                             = attrname False field_ attr_+                                           in attribute >|< "@" >|< _patIpp'+                                           {-# LINE 3191 "dist/build/PrintCode" #-}+                                           )) of+                                    { !_lhsOpp' ->+                                    (case (({-# LINE 333 "src-ag/PrintCode.ag" #-}+                                            if stricterCases _lhsIoptions && not _lhsIisDeclOfLet+                                            then _patIstrictVars+                                            else []+                                            {-# LINE 3198 "dist/build/PrintCode" #-}+                                            )) of+                                     { !_strictPatVars ->+                                     (case (({-# LINE 329 "src-ag/PrintCode.ag" #-}+                                             if strictCases _lhsIoptions && not _lhsIisDeclOfLet+                                             then [_ppVar    ]+                                             else []+                                             {-# LINE 3205 "dist/build/PrintCode" #-}+                                             )) of+                                      { !_strictVar ->+                                      (case (({-# LINE 337 "src-ag/PrintCode.ag" #-}+                                              _strictVar     ++ _strictPatVars+                                              {-# LINE 3210 "dist/build/PrintCode" #-}+                                              )) of+                                       { !_lhsOstrictVars ->+                                       (case ((Syn_Pattern _lhsOcopy _lhsOisUnderscore _lhsOpp _lhsOpp' _lhsOstrictVars)) of+                                        { ___node ->+                                        ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp,_lhsOpp',_lhsOstrictVars) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+sem_Pattern_Constr :: ConstructorIdent ->+                      T_Patterns ->+                      T_Pattern+sem_Pattern_Constr !name_ !(T_Patterns pats_) =+    (T_Pattern (\ (!_lhsIbelowIrrefutable)+                  (!_lhsIisDeclOfLet)+                  (!_lhsIoptions) ->+                    (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                            _lhsIoptions+                            {-# LINE 3225 "dist/build/PrintCode" #-}+                            )) of+                     { !_patsOoptions ->+                     (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                             _lhsIisDeclOfLet+                             {-# LINE 3230 "dist/build/PrintCode" #-}+                             )) of+                      { !_patsOisDeclOfLet ->+                      (case (({-# LINE 373 "src-ag/PrintCode.ag" #-}+                              _lhsIbelowIrrefutable+                              {-# LINE 3235 "dist/build/PrintCode" #-}+                              )) of+                       { !_patsObelowIrrefutable ->+                       (case (pats_ _patsObelowIrrefutable _patsOisDeclOfLet _patsOoptions) of+                        { ( !_patsIcopy,!_patsIpps,!_patsIpps',!_patsIstrictVars) ->+                            (case (({-# LINE 22 "src-ag/Patterns.ag" #-}+                                    Constr name_ _patsIcopy+                                    {-# LINE 3242 "dist/build/PrintCode" #-}+                                    )) of+                             { !_copy ->+                             (case (({-# LINE 22 "src-ag/Patterns.ag" #-}+                                     _copy+                                     {-# LINE 3247 "dist/build/PrintCode" #-}+                                     )) of+                              { !_lhsOcopy ->+                              (case (({-# LINE 368 "src-ag/PrintCode.ag" #-}+                                      False+                                      {-# LINE 3252 "dist/build/PrintCode" #-}+                                      )) of+                               { !_lhsOisUnderscore ->+                               (case (({-# LINE 352 "src-ag/PrintCode.ag" #-}+                                       if bangpats _lhsIoptions && not _lhsIisDeclOfLet && not _lhsIbelowIrrefutable+                                       then \p -> "!" >|< p+                                       else id+                                       {-# LINE 3259 "dist/build/PrintCode" #-}+                                       )) of+                                { !_addBang ->+                                (case (({-# LINE 357 "src-ag/PrintCode.ag" #-}+                                        _addBang     $ pp_parens $ name_ >#< hv_sp _patsIpps+                                        {-# LINE 3264 "dist/build/PrintCode" #-}+                                        )) of+                                 { !_lhsOpp ->+                                 (case (({-# LINE 391 "src-ag/PrintCode.ag" #-}+                                         pp_parens $ name_ >#< hv_sp (map pp_parens _patsIpps')+                                         {-# LINE 3269 "dist/build/PrintCode" #-}+                                         )) of+                                  { !_lhsOpp' ->+                                  (case (({-# LINE 326 "src-ag/PrintCode.ag" #-}+                                          _patsIstrictVars+                                          {-# LINE 3274 "dist/build/PrintCode" #-}+                                          )) of+                                   { !_lhsOstrictVars ->+                                   (case ((Syn_Pattern _lhsOcopy _lhsOisUnderscore _lhsOpp _lhsOpp' _lhsOstrictVars)) of+                                    { ___node ->+                                    ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp,_lhsOpp',_lhsOstrictVars) }) }) }) }) }) }) }) }) }) }) }) })))+sem_Pattern_Irrefutable :: T_Pattern ->+                           T_Pattern+sem_Pattern_Irrefutable !(T_Pattern pat_) =+    (T_Pattern (\ (!_lhsIbelowIrrefutable)+                  (!_lhsIisDeclOfLet)+                  (!_lhsIoptions) ->+                    (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                            _lhsIoptions+                            {-# LINE 3288 "dist/build/PrintCode" #-}+                            )) of+                     { !_patOoptions ->+                     (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                             _lhsIisDeclOfLet+                             {-# LINE 3293 "dist/build/PrintCode" #-}+                             )) of+                      { !_patOisDeclOfLet ->+                      (case (({-# LINE 376 "src-ag/PrintCode.ag" #-}+                              True+                              {-# LINE 3298 "dist/build/PrintCode" #-}+                              )) of+                       { !_patObelowIrrefutable ->+                       (case (pat_ _patObelowIrrefutable _patOisDeclOfLet _patOoptions) of+                        { ( !_patIcopy,!_patIisUnderscore,!_patIpp,!_patIpp',!_patIstrictVars) ->+                            (case (({-# LINE 22 "src-ag/Patterns.ag" #-}+                                    Irrefutable _patIcopy+                                    {-# LINE 3305 "dist/build/PrintCode" #-}+                                    )) of+                             { !_copy ->+                             (case (({-# LINE 22 "src-ag/Patterns.ag" #-}+                                     _copy+                                     {-# LINE 3310 "dist/build/PrintCode" #-}+                                     )) of+                              { !_lhsOcopy ->+                              (case (({-# LINE 367 "src-ag/PrintCode.ag" #-}+                                      _patIisUnderscore+                                      {-# LINE 3315 "dist/build/PrintCode" #-}+                                      )) of+                               { !_lhsOisUnderscore ->+                               (case (({-# LINE 364 "src-ag/PrintCode.ag" #-}+                                       text "~" >|< pp_parens _patIpp+                                       {-# LINE 3320 "dist/build/PrintCode" #-}+                                       )) of+                                { !_lhsOpp ->+                                (case (({-# LINE 396 "src-ag/PrintCode.ag" #-}+                                        text "~" >|< pp_parens _patIpp+                                        {-# LINE 3325 "dist/build/PrintCode" #-}+                                        )) of+                                 { !_lhsOpp' ->+                                 (case (({-# LINE 340 "src-ag/PrintCode.ag" #-}+                                         []+                                         {-# LINE 3330 "dist/build/PrintCode" #-}+                                         )) of+                                  { !_lhsOstrictVars ->+                                  (case ((Syn_Pattern _lhsOcopy _lhsOisUnderscore _lhsOpp _lhsOpp' _lhsOstrictVars)) of+                                   { ___node ->+                                   ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp,_lhsOpp',_lhsOstrictVars) }) }) }) }) }) }) }) }) }) }) })))+sem_Pattern_Product :: Pos ->+                       T_Patterns ->+                       T_Pattern+sem_Pattern_Product !pos_ !(T_Patterns pats_) =+    (T_Pattern (\ (!_lhsIbelowIrrefutable)+                  (!_lhsIisDeclOfLet)+                  (!_lhsIoptions) ->+                    (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                            _lhsIoptions+                            {-# LINE 3345 "dist/build/PrintCode" #-}+                            )) of+                     { !_patsOoptions ->+                     (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                             _lhsIisDeclOfLet+                             {-# LINE 3350 "dist/build/PrintCode" #-}+                             )) of+                      { !_patsOisDeclOfLet ->+                      (case (({-# LINE 373 "src-ag/PrintCode.ag" #-}+                              _lhsIbelowIrrefutable+                              {-# LINE 3355 "dist/build/PrintCode" #-}+                              )) of+                       { !_patsObelowIrrefutable ->+                       (case (pats_ _patsObelowIrrefutable _patsOisDeclOfLet _patsOoptions) of+                        { ( !_patsIcopy,!_patsIpps,!_patsIpps',!_patsIstrictVars) ->+                            (case (({-# LINE 22 "src-ag/Patterns.ag" #-}+                                    Product pos_ _patsIcopy+                                    {-# LINE 3362 "dist/build/PrintCode" #-}+                                    )) of+                             { !_copy ->+                             (case (({-# LINE 22 "src-ag/Patterns.ag" #-}+                                     _copy+                                     {-# LINE 3367 "dist/build/PrintCode" #-}+                                     )) of+                              { !_lhsOcopy ->+                              (case (({-# LINE 369 "src-ag/PrintCode.ag" #-}+                                      False+                                      {-# LINE 3372 "dist/build/PrintCode" #-}+                                      )) of+                               { !_lhsOisUnderscore ->+                               (case (({-# LINE 352 "src-ag/PrintCode.ag" #-}+                                       if bangpats _lhsIoptions && not _lhsIisDeclOfLet && not _lhsIbelowIrrefutable+                                       then \p -> "!" >|< p+                                       else id+                                       {-# LINE 3379 "dist/build/PrintCode" #-}+                                       )) of+                                { !_addBang ->+                                (case (({-# LINE 358 "src-ag/PrintCode.ag" #-}+                                        _addBang     $ pp_block "(" ")" "," _patsIpps+                                        {-# LINE 3384 "dist/build/PrintCode" #-}+                                        )) of+                                 { !_lhsOpp ->+                                 (case (({-# LINE 392 "src-ag/PrintCode.ag" #-}+                                         pp_block "(" ")" "," _patsIpps'+                                         {-# LINE 3389 "dist/build/PrintCode" #-}+                                         )) of+                                  { !_lhsOpp' ->+                                  (case (({-# LINE 326 "src-ag/PrintCode.ag" #-}+                                          _patsIstrictVars+                                          {-# LINE 3394 "dist/build/PrintCode" #-}+                                          )) of+                                   { !_lhsOstrictVars ->+                                   (case ((Syn_Pattern _lhsOcopy _lhsOisUnderscore _lhsOpp _lhsOpp' _lhsOstrictVars)) of+                                    { ___node ->+                                    ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp,_lhsOpp',_lhsOstrictVars) }) }) }) }) }) }) }) }) }) }) }) })))+sem_Pattern_Underscore :: Pos ->+                          T_Pattern+sem_Pattern_Underscore !pos_ =+    (T_Pattern (\ (!_lhsIbelowIrrefutable)+                  (!_lhsIisDeclOfLet)+                  (!_lhsIoptions) ->+                    (case (({-# LINE 22 "src-ag/Patterns.ag" #-}+                            Underscore pos_+                            {-# LINE 3408 "dist/build/PrintCode" #-}+                            )) of+                     { !_copy ->+                     (case (({-# LINE 22 "src-ag/Patterns.ag" #-}+                             _copy+                             {-# LINE 3413 "dist/build/PrintCode" #-}+                             )) of+                      { !_lhsOcopy ->+                      (case (({-# LINE 371 "src-ag/PrintCode.ag" #-}+                              True+                              {-# LINE 3418 "dist/build/PrintCode" #-}+                              )) of+                       { !_lhsOisUnderscore ->+                       (case (({-# LINE 365 "src-ag/PrintCode.ag" #-}+                               text "_"+                               {-# LINE 3423 "dist/build/PrintCode" #-}+                               )) of+                        { !_lhsOpp ->+                        (case (({-# LINE 397 "src-ag/PrintCode.ag" #-}+                                text "_"+                                {-# LINE 3428 "dist/build/PrintCode" #-}+                                )) of+                         { !_lhsOpp' ->+                         (case (({-# LINE 326 "src-ag/PrintCode.ag" #-}+                                 []+                                 {-# LINE 3433 "dist/build/PrintCode" #-}+                                 )) of+                          { !_lhsOstrictVars ->+                          (case ((Syn_Pattern _lhsOcopy _lhsOisUnderscore _lhsOpp _lhsOpp' _lhsOstrictVars)) of+                           { ___node ->+                           ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp,_lhsOpp',_lhsOstrictVars) }) }) }) }) }) }) })))+-- Patterns ----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         belowIrrefutable     : Bool+         isDeclOfLet          : Bool+         options              : Options+      synthesized attributes:+         copy                 : Patterns +         pps                  : [PP_Doc]+         pps'                 : [PP_Doc]+         strictVars           : [PP_Doc]+   alternatives:+      alternative Cons:+         child hd             : Pattern +         child tl             : Patterns +         visit 0:+            local copy        : _+      alternative Nil:+         visit 0:+            local copy        : _+-}+-- cata+sem_Patterns :: Patterns ->+                T_Patterns+sem_Patterns !list =+    (Prelude.foldr sem_Patterns_Cons sem_Patterns_Nil (Prelude.map sem_Pattern list))+-- semantic domain+newtype T_Patterns = T_Patterns (Bool ->+                                 Bool ->+                                 Options ->+                                 ( Patterns,([PP_Doc]),([PP_Doc]),([PP_Doc])))+data Inh_Patterns = Inh_Patterns {belowIrrefutable_Inh_Patterns :: !(Bool),isDeclOfLet_Inh_Patterns :: !(Bool),options_Inh_Patterns :: !(Options)}+data Syn_Patterns = Syn_Patterns {copy_Syn_Patterns :: !(Patterns),pps_Syn_Patterns :: !(([PP_Doc])),pps'_Syn_Patterns :: !(([PP_Doc])),strictVars_Syn_Patterns :: !(([PP_Doc]))}+wrap_Patterns :: T_Patterns ->+                 Inh_Patterns ->+                 Syn_Patterns+wrap_Patterns !(T_Patterns sem) !(Inh_Patterns _lhsIbelowIrrefutable _lhsIisDeclOfLet _lhsIoptions) =+    (let ( !_lhsOcopy,!_lhsOpps,!_lhsOpps',!_lhsOstrictVars) = sem _lhsIbelowIrrefutable _lhsIisDeclOfLet _lhsIoptions+     in  (Syn_Patterns _lhsOcopy _lhsOpps _lhsOpps' _lhsOstrictVars))+sem_Patterns_Cons :: T_Pattern ->+                     T_Patterns ->+                     T_Patterns+sem_Patterns_Cons !(T_Pattern hd_) !(T_Patterns tl_) =+    (T_Patterns (\ (!_lhsIbelowIrrefutable)+                   (!_lhsIisDeclOfLet)+                   (!_lhsIoptions) ->+                     (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                             _lhsIoptions+                             {-# LINE 3488 "dist/build/PrintCode" #-}+                             )) of+                      { !_tlOoptions ->+                      (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                              _lhsIisDeclOfLet+                              {-# LINE 3493 "dist/build/PrintCode" #-}+                              )) of+                       { !_tlOisDeclOfLet ->+                       (case (({-# LINE 373 "src-ag/PrintCode.ag" #-}+                               _lhsIbelowIrrefutable+                               {-# LINE 3498 "dist/build/PrintCode" #-}+                               )) of+                        { !_tlObelowIrrefutable ->+                        (case (tl_ _tlObelowIrrefutable _tlOisDeclOfLet _tlOoptions) of+                         { ( !_tlIcopy,!_tlIpps,!_tlIpps',!_tlIstrictVars) ->+                             (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                                     _lhsIoptions+                                     {-# LINE 3505 "dist/build/PrintCode" #-}+                                     )) of+                              { !_hdOoptions ->+                              (case (({-# LINE 407 "src-ag/PrintCode.ag" #-}+                                      _lhsIisDeclOfLet+                                      {-# LINE 3510 "dist/build/PrintCode" #-}+                                      )) of+                               { !_hdOisDeclOfLet ->+                               (case (({-# LINE 373 "src-ag/PrintCode.ag" #-}+                                       _lhsIbelowIrrefutable+                                       {-# LINE 3515 "dist/build/PrintCode" #-}+                                       )) of+                                { !_hdObelowIrrefutable ->+                                (case (hd_ _hdObelowIrrefutable _hdOisDeclOfLet _hdOoptions) of+                                 { ( !_hdIcopy,!_hdIisUnderscore,!_hdIpp,!_hdIpp',!_hdIstrictVars) ->+                                     (case (({-# LINE 22 "src-ag/Patterns.ag" #-}+                                             (:) _hdIcopy _tlIcopy+                                             {-# LINE 3522 "dist/build/PrintCode" #-}+                                             )) of+                                      { !_copy ->+                                      (case (({-# LINE 22 "src-ag/Patterns.ag" #-}+                                              _copy+                                              {-# LINE 3527 "dist/build/PrintCode" #-}+                                              )) of+                                       { !_lhsOcopy ->+                                       (case (({-# LINE 347 "src-ag/PrintCode.ag" #-}+                                               _hdIpp : _tlIpps+                                               {-# LINE 3532 "dist/build/PrintCode" #-}+                                               )) of+                                        { !_lhsOpps ->+                                        (case (({-# LINE 387 "src-ag/PrintCode.ag" #-}+                                                _hdIpp' : _tlIpps'+                                                {-# LINE 3537 "dist/build/PrintCode" #-}+                                                )) of+                                         { !_lhsOpps' ->+                                         (case (({-# LINE 326 "src-ag/PrintCode.ag" #-}+                                                 _hdIstrictVars ++ _tlIstrictVars+                                                 {-# LINE 3542 "dist/build/PrintCode" #-}+                                                 )) of+                                          { !_lhsOstrictVars ->+                                          (case ((Syn_Patterns _lhsOcopy _lhsOpps _lhsOpps' _lhsOstrictVars)) of+                                           { ___node ->+                                           ( _lhsOcopy,_lhsOpps,_lhsOpps',_lhsOstrictVars) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+sem_Patterns_Nil :: T_Patterns+sem_Patterns_Nil =+    (T_Patterns (\ (!_lhsIbelowIrrefutable)+                   (!_lhsIisDeclOfLet)+                   (!_lhsIoptions) ->+                     (case (({-# LINE 22 "src-ag/Patterns.ag" #-}+                             []+                             {-# LINE 3555 "dist/build/PrintCode" #-}+                             )) of+                      { !_copy ->+                      (case (({-# LINE 22 "src-ag/Patterns.ag" #-}+                              _copy+                              {-# LINE 3560 "dist/build/PrintCode" #-}+                              )) of+                       { !_lhsOcopy ->+                       (case (({-# LINE 348 "src-ag/PrintCode.ag" #-}+                               []+                               {-# LINE 3565 "dist/build/PrintCode" #-}+                               )) of+                        { !_lhsOpps ->+                        (case (({-# LINE 388 "src-ag/PrintCode.ag" #-}+                                []+                                {-# LINE 3570 "dist/build/PrintCode" #-}+                                )) of+                         { !_lhsOpps' ->+                         (case (({-# LINE 326 "src-ag/PrintCode.ag" #-}+                                 []+                                 {-# LINE 3575 "dist/build/PrintCode" #-}+                                 )) of+                          { !_lhsOstrictVars ->+                          (case ((Syn_Patterns _lhsOcopy _lhsOpps _lhsOpps' _lhsOstrictVars)) of+                           { ___node ->+                           ( _lhsOcopy,_lhsOpps,_lhsOpps',_lhsOstrictVars) }) }) }) }) }) })))+-- Program -----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         importBlocks         : PP_Doc+         mainBlocksDoc        : PP_Doc+         mainFile             : String+         mainName             : String+         moduleHeader         : String -> String -> String -> Bool -> String+         options              : Options+         optionsLine          : String+         pragmaBlocks         : String+         textBlockMap         : Map BlockInfo PP_Doc+         textBlocks           : PP_Doc+      synthesized attributes:+         genIO                : IO ()+         output               : PP_Docs+   alternatives:+      alternative Program:+         child chunks         : Chunks +         child ordered        : {Bool}+         visit 0:+            local options     : _+            local commonFile  : _+            local genCommonModule : _+            local mainModuleFile : _+            local genMainModule : _+-}+-- cata+sem_Program :: Program ->+               T_Program+sem_Program !(Program _chunks _ordered) =+    (sem_Program_Program (sem_Chunks _chunks) _ordered)+-- semantic domain+newtype T_Program = T_Program (PP_Doc ->+                               PP_Doc ->+                               String ->+                               String ->+                               (String -> String -> String -> Bool -> String) ->+                               Options ->+                               String ->+                               String ->+                               (Map BlockInfo PP_Doc) ->+                               PP_Doc ->+                               ( (IO ()),PP_Docs))+data Inh_Program = Inh_Program {importBlocks_Inh_Program :: !(PP_Doc),mainBlocksDoc_Inh_Program :: !(PP_Doc),mainFile_Inh_Program :: !(String),mainName_Inh_Program :: !(String),moduleHeader_Inh_Program :: !((String -> String -> String -> Bool -> String)),options_Inh_Program :: !(Options),optionsLine_Inh_Program :: !(String),pragmaBlocks_Inh_Program :: !(String),textBlockMap_Inh_Program :: !((Map BlockInfo PP_Doc)),textBlocks_Inh_Program :: !(PP_Doc)}+data Syn_Program = Syn_Program {genIO_Syn_Program :: !((IO ())),output_Syn_Program :: !(PP_Docs)}+wrap_Program :: T_Program ->+                Inh_Program ->+                Syn_Program+wrap_Program !(T_Program sem) !(Inh_Program _lhsIimportBlocks _lhsImainBlocksDoc _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIoptionsLine _lhsIpragmaBlocks _lhsItextBlockMap _lhsItextBlocks) =+    (let ( !_lhsOgenIO,!_lhsOoutput) = sem _lhsIimportBlocks _lhsImainBlocksDoc _lhsImainFile _lhsImainName _lhsImoduleHeader _lhsIoptions _lhsIoptionsLine _lhsIpragmaBlocks _lhsItextBlockMap _lhsItextBlocks+     in  (Syn_Program _lhsOgenIO _lhsOoutput))+sem_Program_Program :: T_Chunks ->+                       Bool ->+                       T_Program+sem_Program_Program !(T_Chunks chunks_) !ordered_ =+    (T_Program (\ (!_lhsIimportBlocks)+                  (!_lhsImainBlocksDoc)+                  (!_lhsImainFile)+                  (!_lhsImainName)+                  (!_lhsImoduleHeader)+                  (!_lhsIoptions)+                  (!_lhsIoptionsLine)+                  (!_lhsIpragmaBlocks)+                  (!_lhsItextBlockMap)+                  (!_lhsItextBlocks) ->+                    (case (({-# LINE 435 "src-ag/PrintCode.ag" #-}+                            _lhsItextBlockMap+                            {-# LINE 3650 "dist/build/PrintCode" #-}+                            )) of+                     { !_chunksOtextBlockMap ->+                     (case (({-# LINE 433 "src-ag/PrintCode.ag" #-}+                             _lhsIpragmaBlocks+                             {-# LINE 3655 "dist/build/PrintCode" #-}+                             )) of+                      { !_chunksOpragmaBlocks ->+                      (case (({-# LINE 436 "src-ag/PrintCode.ag" #-}+                              _lhsIoptionsLine+                              {-# LINE 3660 "dist/build/PrintCode" #-}+                              )) of+                       { !_chunksOoptionsLine ->+                       (case (({-# LINE 59 "src-ag/PrintCode.ag" #-}+                               _lhsIoptions { breadthFirst = breadthFirst _lhsIoptions && visit _lhsIoptions && cases _lhsIoptions && ordered_ }+                               {-# LINE 3665 "dist/build/PrintCode" #-}+                               )) of+                        { !_options ->+                        (case (({-# LINE 50 "src-ag/PrintCode.ag" #-}+                                _options+                                {-# LINE 3670 "dist/build/PrintCode" #-}+                                )) of+                         { !_chunksOoptions ->+                         (case (({-# LINE 439 "src-ag/PrintCode.ag" #-}+                                 _lhsImoduleHeader+                                 {-# LINE 3675 "dist/build/PrintCode" #-}+                                 )) of+                          { !_chunksOmoduleHeader ->+                          (case (({-# LINE 438 "src-ag/PrintCode.ag" #-}+                                  _lhsImainName+                                  {-# LINE 3680 "dist/build/PrintCode" #-}+                                  )) of+                           { !_chunksOmainName ->+                           (case (({-# LINE 437 "src-ag/PrintCode.ag" #-}+                                   _lhsImainFile+                                   {-# LINE 3685 "dist/build/PrintCode" #-}+                                   )) of+                            { !_chunksOmainFile ->+                            (case (({-# LINE 457 "src-ag/PrintCode.ag" #-}+                                    replaceBaseName _lhsImainFile (takeBaseName _lhsImainFile ++ "_common")+                                    {-# LINE 3690 "dist/build/PrintCode" #-}+                                    )) of+                             { !_commonFile ->+                             (case (({-# LINE 410 "src-ag/PrintCode.ag" #-}+                                     False+                                     {-# LINE 3695 "dist/build/PrintCode" #-}+                                     )) of+                              { !_chunksOisDeclOfLet ->+                              (case (({-# LINE 62 "src-ag/PrintCode.ag" #-}+                                      nest _lhsIoptions+                                      {-# LINE 3700 "dist/build/PrintCode" #-}+                                      )) of+                               { !_chunksOnested ->+                               (case (({-# LINE 434 "src-ag/PrintCode.ag" #-}+                                       _lhsItextBlocks+                                       {-# LINE 3705 "dist/build/PrintCode" #-}+                                       )) of+                                { !_chunksOtextBlocks ->+                                (case (({-# LINE 432 "src-ag/PrintCode.ag" #-}+                                        _lhsIimportBlocks+                                        {-# LINE 3710 "dist/build/PrintCode" #-}+                                        )) of+                                 { !_chunksOimportBlocks ->+                                 (case (chunks_ _chunksOimportBlocks _chunksOisDeclOfLet _chunksOmainFile _chunksOmainName _chunksOmoduleHeader _chunksOnested _chunksOoptions _chunksOoptionsLine _chunksOpragmaBlocks _chunksOtextBlockMap _chunksOtextBlocks) of+                                  { ( !_chunksIappendCommon,!_chunksIappendMain,!_chunksIgenSems,!_chunksIimports,!_chunksIpps) ->+                                      (case (({-# LINE 458 "src-ag/PrintCode.ag" #-}+                                              writeModule _commonFile+                                                  ( [ pp $ _lhsIpragmaBlocks+                                                    , pp $ _lhsIoptionsLine+                                                    , pp $ _lhsImoduleHeader _lhsImainName "_common" "" True+                                                    , _lhsIimportBlocks+                                                    , _lhsItextBlocks+                                                    ]+                                                    ++ map vlist _chunksIappendCommon+                                                  )+                                              {-# LINE 3725 "dist/build/PrintCode" #-}+                                              )) of+                                       { !_genCommonModule ->+                                       (case (({-# LINE 444 "src-ag/PrintCode.ag" #-}+                                               _lhsImainFile+                                               {-# LINE 3730 "dist/build/PrintCode" #-}+                                               )) of+                                        { !_mainModuleFile ->+                                        (case (({-# LINE 445 "src-ag/PrintCode.ag" #-}+                                                writeModule _mainModuleFile+                                                  ( [ pp $ _lhsIpragmaBlocks+                                                    , pp $ _lhsIoptionsLine+                                                    , pp $ _lhsImoduleHeader _lhsImainName "" "" False+                                                    , pp $ ("import " ++ _lhsImainName ++ "_common\n")+                                                    ]+                                                    ++ map pp _chunksIimports+                                                    ++ map vlist _chunksIappendMain+                                                    ++ [_lhsImainBlocksDoc]+                                                  )+                                                {-# LINE 3744 "dist/build/PrintCode" #-}+                                                )) of+                                         { !_genMainModule ->+                                         (case (({-# LINE 469 "src-ag/PrintCode.ag" #-}+                                                 do _genMainModule+                                                    _genCommonModule+                                                    _chunksIgenSems+                                                 {-# LINE 3751 "dist/build/PrintCode" #-}+                                                 )) of+                                          { !_lhsOgenIO ->+                                          (case (({-# LINE 94 "src-ag/PrintCode.ag" #-}+                                                  _chunksIpps+                                                  {-# LINE 3756 "dist/build/PrintCode" #-}+                                                  )) of+                                           { !_lhsOoutput ->+                                           (case ((Syn_Program _lhsOgenIO _lhsOoutput)) of+                                            { ___node ->+                                            ( _lhsOgenIO,_lhsOoutput) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+-- Type --------------------------------------------------------+{-+   visit 0:+      inherited attribute:+         nested               : Bool+      synthesized attributes:+         pp                   : PP_Doc+         prec                 : Int+   alternatives:+      alternative Arr:+         child left           : Type +         child right          : Type +         visit 0:+            local r           : _+            local l           : _+      alternative CtxApp:+         child left           : {[(String, [String])]}+         child right          : Type +      alternative List:+         child tp             : Type +      alternative NontermType:+         child name           : {String}+         child params         : {[String]}+         child deforested     : {Bool}+         visit 0:+            local prefix      : _+      alternative QuantApp:+         child left           : {String}+         child right          : Type +      alternative SimpleType:+         child txt            : {String}+      alternative TEither:+         child left           : Type +         child right          : Type +      alternative TIntMap:+         child value          : Type +      alternative TMap:+         child key            : Type +         child value          : Type +      alternative TMaybe:+         child tp             : Type +      alternative TupleType:+         child tps            : Types +      alternative TypeApp:+         child func           : Type +         child args           : Types +      alternative UnboxedTupleType:+         child tps            : Types +-}+-- cata+sem_Type :: Type ->+            T_Type+sem_Type !(Arr _left _right) =+    (sem_Type_Arr (sem_Type _left) (sem_Type _right))+sem_Type !(CtxApp _left _right) =+    (sem_Type_CtxApp _left (sem_Type _right))+sem_Type !(List _tp) =+    (sem_Type_List (sem_Type _tp))+sem_Type !(NontermType _name _params _deforested) =+    (sem_Type_NontermType _name _params _deforested)+sem_Type !(QuantApp _left _right) =+    (sem_Type_QuantApp _left (sem_Type _right))+sem_Type !(SimpleType _txt) =+    (sem_Type_SimpleType _txt)+sem_Type !(TEither _left _right) =+    (sem_Type_TEither (sem_Type _left) (sem_Type _right))+sem_Type !(TIntMap _value) =+    (sem_Type_TIntMap (sem_Type _value))+sem_Type !(TMap _key _value) =+    (sem_Type_TMap (sem_Type _key) (sem_Type _value))+sem_Type !(TMaybe _tp) =+    (sem_Type_TMaybe (sem_Type _tp))+sem_Type !(TupleType _tps) =+    (sem_Type_TupleType (sem_Types _tps))+sem_Type !(TypeApp _func _args) =+    (sem_Type_TypeApp (sem_Type _func) (sem_Types _args))+sem_Type !(UnboxedTupleType _tps) =+    (sem_Type_UnboxedTupleType (sem_Types _tps))+-- semantic domain+newtype T_Type = T_Type (Bool ->+                         ( PP_Doc,Int))+data Inh_Type = Inh_Type {nested_Inh_Type :: !(Bool)}+data Syn_Type = Syn_Type {pp_Syn_Type :: !(PP_Doc),prec_Syn_Type :: !(Int)}+wrap_Type :: T_Type ->+             Inh_Type ->+             Syn_Type+wrap_Type !(T_Type sem) !(Inh_Type _lhsInested) =+    (let ( !_lhsOpp,!_lhsOprec) = sem _lhsInested+     in  (Syn_Type _lhsOpp _lhsOprec))+sem_Type_Arr :: T_Type ->+                T_Type ->+                T_Type+sem_Type_Arr !(T_Type left_) !(T_Type right_) =+    (T_Type (\ (!_lhsInested) ->+                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                         _lhsInested+                         {-# LINE 3858 "dist/build/PrintCode" #-}+                         )) of+                  { !_rightOnested ->+                  (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                          _lhsInested+                          {-# LINE 3863 "dist/build/PrintCode" #-}+                          )) of+                   { !_leftOnested ->+                   (case (right_ _rightOnested) of+                    { ( !_rightIpp,!_rightIprec) ->+                        (case (({-# LINE 263 "src-ag/PrintCode.ag" #-}+                                if _rightIprec <  2 then pp_parens _rightIpp else _rightIpp+                                {-# LINE 3870 "dist/build/PrintCode" #-}+                                )) of+                         { !_r ->+                         (case (left_ _leftOnested) of+                          { ( !_leftIpp,!_leftIprec) ->+                              (case (({-# LINE 262 "src-ag/PrintCode.ag" #-}+                                      if _leftIprec  <= 2 then pp_parens _leftIpp  else _leftIpp+                                      {-# LINE 3877 "dist/build/PrintCode" #-}+                                      )) of+                               { !_l ->+                               (case (({-# LINE 261 "src-ag/PrintCode.ag" #-}+                                       _l     >#< "->" >-< _r+                                       {-# LINE 3882 "dist/build/PrintCode" #-}+                                       )) of+                                { !_lhsOpp ->+                                (case (({-# LINE 260 "src-ag/PrintCode.ag" #-}+                                        2+                                        {-# LINE 3887 "dist/build/PrintCode" #-}+                                        )) of+                                 { !_lhsOprec ->+                                 (case ((Syn_Type _lhsOpp _lhsOprec)) of+                                  { ___node ->+                                  ( _lhsOpp,_lhsOprec) }) }) }) }) }) }) }) }) })))+sem_Type_CtxApp :: ([(String, [String])]) ->+                   T_Type ->+                   T_Type+sem_Type_CtxApp !left_ !(T_Type right_) =+    (T_Type (\ (!_lhsInested) ->+                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                         _lhsInested+                         {-# LINE 3900 "dist/build/PrintCode" #-}+                         )) of+                  { !_rightOnested ->+                  (case (right_ _rightOnested) of+                   { ( !_rightIpp,!_rightIprec) ->+                       (case (({-# LINE 269 "src-ag/PrintCode.ag" #-}+                               (pp_block "(" ")" "," $ map (\(n,ns) -> hv_sp $ map pp (n:ns)) left_) >#< "=>" >#< _rightIpp+                               {-# LINE 3907 "dist/build/PrintCode" #-}+                               )) of+                        { !_lhsOpp ->+                        (case (({-# LINE 259 "src-ag/PrintCode.ag" #-}+                                _rightIprec+                                {-# LINE 3912 "dist/build/PrintCode" #-}+                                )) of+                         { !_lhsOprec ->+                         (case ((Syn_Type _lhsOpp _lhsOprec)) of+                          { ___node ->+                          ( _lhsOpp,_lhsOprec) }) }) }) }) })))+sem_Type_List :: T_Type ->+                 T_Type+sem_Type_List !(T_Type tp_) =+    (T_Type (\ (!_lhsInested) ->+                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                         _lhsInested+                         {-# LINE 3924 "dist/build/PrintCode" #-}+                         )) of+                  { !_tpOnested ->+                  (case (tp_ _tpOnested) of+                   { ( !_tpIpp,!_tpIprec) ->+                       (case (({-# LINE 280 "src-ag/PrintCode.ag" #-}+                               "[" >|< _tpIpp >|< "]"+                               {-# LINE 3931 "dist/build/PrintCode" #-}+                               )) of+                        { !_lhsOpp ->+                        (case (({-# LINE 279 "src-ag/PrintCode.ag" #-}+                                5+                                {-# LINE 3936 "dist/build/PrintCode" #-}+                                )) of+                         { !_lhsOprec ->+                         (case ((Syn_Type _lhsOpp _lhsOprec)) of+                          { ___node ->+                          ( _lhsOpp,_lhsOprec) }) }) }) }) })))+sem_Type_NontermType :: String ->+                        ([String]) ->+                        Bool ->+                        T_Type+sem_Type_NontermType !name_ !params_ !deforested_ =+    (T_Type (\ (!_lhsInested) ->+                 (case (({-# LINE 287 "src-ag/PrintCode.ag" #-}+                         if deforested_+                         then text "T_"+                         else empty+                         {-# LINE 3952 "dist/build/PrintCode" #-}+                         )) of+                  { !_prefix ->+                  (case (({-# LINE 286 "src-ag/PrintCode.ag" #-}+                          _prefix     >|< text name_ >#< hv_sp params_+                          {-# LINE 3957 "dist/build/PrintCode" #-}+                          )) of+                   { !_lhsOpp ->+                   (case (({-# LINE 285 "src-ag/PrintCode.ag" #-}+                           5+                           {-# LINE 3962 "dist/build/PrintCode" #-}+                           )) of+                    { !_lhsOprec ->+                    (case ((Syn_Type _lhsOpp _lhsOprec)) of+                     { ___node ->+                     ( _lhsOpp,_lhsOprec) }) }) }) })))+sem_Type_QuantApp :: String ->+                     T_Type ->+                     T_Type+sem_Type_QuantApp !left_ !(T_Type right_) =+    (T_Type (\ (!_lhsInested) ->+                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                         _lhsInested+                         {-# LINE 3975 "dist/build/PrintCode" #-}+                         )) of+                  { !_rightOnested ->+                  (case (right_ _rightOnested) of+                   { ( !_rightIpp,!_rightIprec) ->+                       (case (({-# LINE 271 "src-ag/PrintCode.ag" #-}+                               left_ >#< _rightIpp+                               {-# LINE 3982 "dist/build/PrintCode" #-}+                               )) of+                        { !_lhsOpp ->+                        (case (({-# LINE 259 "src-ag/PrintCode.ag" #-}+                                _rightIprec+                                {-# LINE 3987 "dist/build/PrintCode" #-}+                                )) of+                         { !_lhsOprec ->+                         (case ((Syn_Type _lhsOpp _lhsOprec)) of+                          { ___node ->+                          ( _lhsOpp,_lhsOprec) }) }) }) }) })))+sem_Type_SimpleType :: String ->+                       T_Type+sem_Type_SimpleType !txt_ =+    (T_Type (\ (!_lhsInested) ->+                 (case (({-# LINE 283 "src-ag/PrintCode.ag" #-}+                         if reallySimple txt_ then text txt_ else pp_parens (text txt_)+                         {-# LINE 3999 "dist/build/PrintCode" #-}+                         )) of+                  { !_lhsOpp ->+                  (case (({-# LINE 282 "src-ag/PrintCode.ag" #-}+                          5+                          {-# LINE 4004 "dist/build/PrintCode" #-}+                          )) of+                   { !_lhsOprec ->+                   (case ((Syn_Type _lhsOpp _lhsOprec)) of+                    { ___node ->+                    ( _lhsOpp,_lhsOprec) }) }) })))+sem_Type_TEither :: T_Type ->+                    T_Type ->+                    T_Type+sem_Type_TEither !(T_Type left_) !(T_Type right_) =+    (T_Type (\ (!_lhsInested) ->+                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                         _lhsInested+                         {-# LINE 4017 "dist/build/PrintCode" #-}+                         )) of+                  { !_rightOnested ->+                  (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                          _lhsInested+                          {-# LINE 4022 "dist/build/PrintCode" #-}+                          )) of+                   { !_leftOnested ->+                   (case (right_ _rightOnested) of+                    { ( !_rightIpp,!_rightIprec) ->+                        (case (left_ _leftOnested) of+                         { ( !_leftIpp,!_leftIprec) ->+                             (case (({-# LINE 293 "src-ag/PrintCode.ag" #-}+                                     text "Either" >#< pp_parens _leftIpp >#< pp_parens _rightIpp+                                     {-# LINE 4031 "dist/build/PrintCode" #-}+                                     )) of+                              { !_lhsOpp ->+                              (case (({-# LINE 292 "src-ag/PrintCode.ag" #-}+                                      5+                                      {-# LINE 4036 "dist/build/PrintCode" #-}+                                      )) of+                               { !_lhsOprec ->+                               (case ((Syn_Type _lhsOpp _lhsOprec)) of+                                { ___node ->+                                ( _lhsOpp,_lhsOprec) }) }) }) }) }) }) })))+sem_Type_TIntMap :: T_Type ->+                    T_Type+sem_Type_TIntMap !(T_Type value_) =+    (T_Type (\ (!_lhsInested) ->+                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                         _lhsInested+                         {-# LINE 4048 "dist/build/PrintCode" #-}+                         )) of+                  { !_valueOnested ->+                  (case (value_ _valueOnested) of+                   { ( !_valueIpp,!_valueIprec) ->+                       (case (({-# LINE 297 "src-ag/PrintCode.ag" #-}+                               text "Data.IntMap.IntMap" >#< pp_parens _valueIpp+                               {-# LINE 4055 "dist/build/PrintCode" #-}+                               )) of+                        { !_lhsOpp ->+                        (case (({-# LINE 296 "src-ag/PrintCode.ag" #-}+                                5+                                {-# LINE 4060 "dist/build/PrintCode" #-}+                                )) of+                         { !_lhsOprec ->+                         (case ((Syn_Type _lhsOpp _lhsOprec)) of+                          { ___node ->+                          ( _lhsOpp,_lhsOprec) }) }) }) }) })))+sem_Type_TMap :: T_Type ->+                 T_Type ->+                 T_Type+sem_Type_TMap !(T_Type key_) !(T_Type value_) =+    (T_Type (\ (!_lhsInested) ->+                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                         _lhsInested+                         {-# LINE 4073 "dist/build/PrintCode" #-}+                         )) of+                  { !_valueOnested ->+                  (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                          _lhsInested+                          {-# LINE 4078 "dist/build/PrintCode" #-}+                          )) of+                   { !_keyOnested ->+                   (case (value_ _valueOnested) of+                    { ( !_valueIpp,!_valueIprec) ->+                        (case (key_ _keyOnested) of+                         { ( !_keyIpp,!_keyIprec) ->+                             (case (({-# LINE 295 "src-ag/PrintCode.ag" #-}+                                     text "Data.Map.Map" >#< pp_parens _keyIpp >#< pp_parens _valueIpp+                                     {-# LINE 4087 "dist/build/PrintCode" #-}+                                     )) of+                              { !_lhsOpp ->+                              (case (({-# LINE 294 "src-ag/PrintCode.ag" #-}+                                      5+                                      {-# LINE 4092 "dist/build/PrintCode" #-}+                                      )) of+                               { !_lhsOprec ->+                               (case ((Syn_Type _lhsOpp _lhsOprec)) of+                                { ___node ->+                                ( _lhsOpp,_lhsOprec) }) }) }) }) }) }) })))+sem_Type_TMaybe :: T_Type ->+                   T_Type+sem_Type_TMaybe !(T_Type tp_) =+    (T_Type (\ (!_lhsInested) ->+                 (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                         _lhsInested+                         {-# LINE 4104 "dist/build/PrintCode" #-}+                         )) of+                  { !_tpOnested ->+                  (case (tp_ _tpOnested) of+                   { ( !_tpIpp,!_tpIprec) ->+                       (case (({-# LINE 291 "src-ag/PrintCode.ag" #-}+                               text "Maybe" >#< _tpIpp+                               {-# LINE 4111 "dist/build/PrintCode" #-}+                               )) of+                        { !_lhsOpp ->+                        (case (({-# LINE 290 "src-ag/PrintCode.ag" #-}+                                5+                                {-# LINE 4116 "dist/build/PrintCode" #-}+                                )) of+                         { !_lhsOprec ->+                         (case ((Syn_Type _lhsOpp _lhsOprec)) of+                          { ___node ->+                          ( _lhsOpp,_lhsOprec) }) }) }) }) })))+sem_Type_TupleType :: T_Types ->+                      T_Type+sem_Type_TupleType !(T_Types tps_) =+    (T_Type (\ (!_lhsInested) ->+                 (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                         _lhsInested+                         {-# LINE 4128 "dist/build/PrintCode" #-}+                         )) of+                  { !_tpsOnested ->+                  (case (tps_ _tpsOnested) of+                   { ( !_tpsIpps) ->+                       (case (({-# LINE 274 "src-ag/PrintCode.ag" #-}+                               ppTuple _lhsInested _tpsIpps+                               {-# LINE 4135 "dist/build/PrintCode" #-}+                               )) of+                        { !_lhsOpp ->+                        (case (({-# LINE 273 "src-ag/PrintCode.ag" #-}+                                5+                                {-# LINE 4140 "dist/build/PrintCode" #-}+                                )) of+                         { !_lhsOprec ->+                         (case ((Syn_Type _lhsOpp _lhsOprec)) of+                          { ___node ->+                          ( _lhsOpp,_lhsOprec) }) }) }) }) })))+sem_Type_TypeApp :: T_Type ->+                    T_Types ->+                    T_Type+sem_Type_TypeApp !(T_Type func_) !(T_Types args_) =+    (T_Type (\ (!_lhsInested) ->+                 (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                         _lhsInested+                         {-# LINE 4153 "dist/build/PrintCode" #-}+                         )) of+                  { !_argsOnested ->+                  (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                          _lhsInested+                          {-# LINE 4158 "dist/build/PrintCode" #-}+                          )) of+                   { !_funcOnested ->+                   (case (args_ _argsOnested) of+                    { ( !_argsIpps) ->+                        (case (func_ _funcOnested) of+                         { ( !_funcIpp,!_funcIprec) ->+                             (case (({-# LINE 266 "src-ag/PrintCode.ag" #-}+                                     hv_sp (_funcIpp : _argsIpps)+                                     {-# LINE 4167 "dist/build/PrintCode" #-}+                                     )) of+                              { !_lhsOpp ->+                              (case (({-# LINE 259 "src-ag/PrintCode.ag" #-}+                                      _funcIprec+                                      {-# LINE 4172 "dist/build/PrintCode" #-}+                                      )) of+                               { !_lhsOprec ->+                               (case ((Syn_Type _lhsOpp _lhsOprec)) of+                                { ___node ->+                                ( _lhsOpp,_lhsOprec) }) }) }) }) }) }) })))+sem_Type_UnboxedTupleType :: T_Types ->+                             T_Type+sem_Type_UnboxedTupleType !(T_Types tps_) =+    (T_Type (\ (!_lhsInested) ->+                 (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                         _lhsInested+                         {-# LINE 4184 "dist/build/PrintCode" #-}+                         )) of+                  { !_tpsOnested ->+                  (case (tps_ _tpsOnested) of+                   { ( !_tpsIpps) ->+                       (case (({-# LINE 277 "src-ag/PrintCode.ag" #-}+                               ppUnboxedTuple _lhsInested _tpsIpps+                               {-# LINE 4191 "dist/build/PrintCode" #-}+                               )) of+                        { !_lhsOpp ->+                        (case (({-# LINE 276 "src-ag/PrintCode.ag" #-}+                                5+                                {-# LINE 4196 "dist/build/PrintCode" #-}+                                )) of+                         { !_lhsOprec ->+                         (case ((Syn_Type _lhsOpp _lhsOprec)) of+                          { ___node ->+                          ( _lhsOpp,_lhsOprec) }) }) }) }) })))+-- Types -------------------------------------------------------+{-+   visit 0:+      inherited attribute:+         nested               : Bool+      synthesized attribute:+         pps                  : PP_Docs+   alternatives:+      alternative Cons:+         child hd             : Type +         child tl             : Types +      alternative Nil:+-}+-- cata+sem_Types :: Types ->+             T_Types+sem_Types !list =+    (Prelude.foldr sem_Types_Cons sem_Types_Nil (Prelude.map sem_Type list))+-- semantic domain+newtype T_Types = T_Types (Bool ->+                           ( PP_Docs))+data Inh_Types = Inh_Types {nested_Inh_Types :: !(Bool)}+data Syn_Types = Syn_Types {pps_Syn_Types :: !(PP_Docs)}+wrap_Types :: T_Types ->+              Inh_Types ->+              Syn_Types+wrap_Types !(T_Types sem) !(Inh_Types _lhsInested) =+    (let ( !_lhsOpps) = sem _lhsInested+     in  (Syn_Types _lhsOpps))+sem_Types_Cons :: T_Type ->+                  T_Types ->+                  T_Types+sem_Types_Cons !(T_Type hd_) !(T_Types tl_) =+    (T_Types (\ (!_lhsInested) ->+                  (case (({-# LINE 54 "src-ag/PrintCode.ag" #-}+                          _lhsInested+                          {-# LINE 4238 "dist/build/PrintCode" #-}+                          )) of+                   { !_tlOnested ->+                   (case (({-# LINE 52 "src-ag/PrintCode.ag" #-}+                           _lhsInested+                           {-# LINE 4243 "dist/build/PrintCode" #-}+                           )) of+                    { !_hdOnested ->+                    (case (tl_ _tlOnested) of+                     { ( !_tlIpps) ->+                         (case (hd_ _hdOnested) of+                          { ( !_hdIpp,!_hdIprec) ->+                              (case (({-# LINE 77 "src-ag/PrintCode.ag" #-}+                                      _hdIpp : _tlIpps+                                      {-# LINE 4252 "dist/build/PrintCode" #-}+                                      )) of+                               { !_lhsOpps ->+                               (case ((Syn_Types _lhsOpps)) of+                                { ___node ->+                                ( _lhsOpps) }) }) }) }) }) })))+sem_Types_Nil :: T_Types+sem_Types_Nil =+    (T_Types (\ (!_lhsInested) ->+                  (case (({-# LINE 78 "src-ag/PrintCode.ag" #-}+                          []+                          {-# LINE 4263 "dist/build/PrintCode" #-}+                          )) of+                   { !_lhsOpps ->+                   (case ((Syn_Types _lhsOpps)) of+                    { ___node ->+                    ( _lhsOpps) }) })))
src-derived/PrintErrorMessages.hs view
@@ -513,6 +513,8 @@                             _me                             {-# LINE 515 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_CustomError :: Bool ->                          Pos ->@@ -530,20 +532,22 @@                                 help = wfill ["not available."]                                 act  = wfill ["unknown"]                             in ppError (isError _lhsIoptions _me) pos_ mesg_ pat help act False-                            {-# LINE 534 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 536 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             CustomError isWarning_ pos_ mesg_-                            {-# LINE 540 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 542 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 546 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 548 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_Cyclic :: NontermIdent ->                     (Maybe ConstructorIdent) ->@@ -571,20 +575,22 @@                                 help = hlist (text "The following attributes are all cyclic: " : map text verts_)                                 act  = wfill ["code cannot be generated until the cycle is removed."]                             in ppError (isError _lhsIoptions _me) pos mesg pat help act False-                            {-# LINE 575 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 579 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             Cyclic nt_ mbCon_ verts_-                            {-# LINE 581 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 585 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 587 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 591 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_CyclicSet :: Identifier ->                        T_Error@@ -604,20 +610,22 @@                                               ]                                 act  = wfill ["The nonterminal set", getName name_, "is considered to be empty."]                             in ppError (isError _lhsIoptions _me) (getPos name_) mesg pat help act _lhsIverbose-                            {-# LINE 608 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 614 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             CyclicSet name_-                            {-# LINE 614 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 620 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 620 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 626 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_DirectCirc :: NontermIdent ->                         Bool ->@@ -638,20 +646,22 @@                                 act   | o_visit_ = text "An unoptimized version was generated. It might hang when run."                                       | otherwise = text "The generated program might hang when run."                             in ppError (isError _lhsIoptions _me) noPos mesg pat help act _lhsIverbose-                            {-# LINE 642 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 650 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             DirectCirc nt_ o_visit_ cyclic_-                            {-# LINE 648 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 656 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 654 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 662 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_DupAlt :: NontermIdent ->                     ConstructorIdent ->@@ -683,20 +693,22 @@                                              ,"is considered valid. All other alternatives have been discarded."                                              ]                             in ppError (isError _lhsIoptions _me) (getPos con_) mesg pat help act _lhsIverbose-                            {-# LINE 687 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 697 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             DupAlt nt_ con_ occ1_-                            {-# LINE 693 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 703 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 699 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 709 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_DupChild :: NontermIdent ->                       ConstructorIdent ->@@ -728,20 +740,22 @@                                              ,"All others have been discarded."                                              ]                             in ppError (isError _lhsIoptions _me) (getPos name_) mesg pat help act _lhsIverbose-                            {-# LINE 732 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 744 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             DupChild nt_ con_ name_ occ1_-                            {-# LINE 738 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 750 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 744 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 756 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_DupInhAttr :: NontermIdent ->                         Identifier ->@@ -771,20 +785,22 @@                                              ,"All others have been discarded. The generated program will probably not run."                                              ]                             in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose-                            {-# LINE 775 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 789 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             DupInhAttr nt_ attr_ occ1_-                            {-# LINE 781 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 795 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 787 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 801 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_DupRule :: NontermIdent ->                      ConstructorIdent ->@@ -815,20 +831,22 @@                                                       ]                                 act  = wfill ["The last rule given is considered valid. All others have been discarded."]                             in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose-                            {-# LINE 819 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 835 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             DupRule nt_ con_ field_ attr_ occ1_-                            {-# LINE 825 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 841 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 831 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 847 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_DupRuleName :: NontermIdent ->                          ConstructorIdent ->@@ -854,20 +872,22 @@                                                       ]                                 act  = wfill ["Compilation cannot continue."]                             in ppError (isError _lhsIoptions _me) (getPos nm_) mesg pat help act _lhsIverbose-                            {-# LINE 858 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 876 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             DupRuleName nt_ con_ nm_-                            {-# LINE 864 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 882 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 870 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 888 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_DupSet :: NontermIdent ->                     NontermIdent ->@@ -895,20 +915,22 @@                                 act  = wfill [ "The clashing nonterminal set will be ignored."                                              ]                             in ppError (isError _lhsIoptions _me)  (getPos name_) mesg pat help act _lhsIverbose-                            {-# LINE 899 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 919 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             DupSet name_ occ1_-                            {-# LINE 905 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 925 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 911 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 931 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_DupSig :: NontermIdent ->                     ConstructorIdent ->@@ -936,20 +958,22 @@                                                       ]                                 act  = wfill ["The last typesignature given is considered valid. All others have been discarded."]                             in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose-                            {-# LINE 940 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 962 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             DupSig nt_ con_ attr_-                            {-# LINE 946 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 968 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 952 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 974 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_DupSynAttr :: NontermIdent ->                         Identifier ->@@ -979,20 +1003,22 @@                                              ,"All others have been discarded. The generated program will probably not run."                                              ]                             in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose-                            {-# LINE 983 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1007 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             DupSynAttr nt_ attr_ occ1_-                            {-# LINE 989 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1013 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 995 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1019 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_DupSynonym :: NontermIdent ->                         NontermIdent ->@@ -1021,20 +1047,22 @@                                 act  = wfill [ "The clashing type synonym will be ignored."                                              ]                             in ppError (isError _lhsIoptions _me)  (getPos nt_) mesg pat help act _lhsIverbose-                            {-# LINE 1025 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1051 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             DupSynonym nt_ occ1_-                            {-# LINE 1031 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1057 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1037 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1063 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_DupUnique :: NontermIdent ->                        ConstructorIdent ->@@ -1062,20 +1090,22 @@                                                       ]                                 act  = wfill ["Unpredicatable sharing of unique numbers may occur."]                             in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose-                            {-# LINE 1066 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1094 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             DupUnique nt_ con_ attr_-                            {-# LINE 1072 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1100 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1078 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1106 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_HsParseError :: Pos ->                           String ->@@ -1089,20 +1119,22 @@                        _lhsOpp =                            ({-# LINE 95 "src-ag/PrintErrorMessages.ag" #-}                             ppError True pos_ (text msg_) (text "") (text "") (text "Correct the syntax of the Haskell code.") _lhsIverbose-                            {-# LINE 1093 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1123 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             HsParseError pos_ msg_-                            {-# LINE 1099 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1129 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1105 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1135 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_IncompatibleAttachKind :: Identifier ->                                     VisitKind ->@@ -1120,20 +1152,22 @@                                 help  = empty                                 act   = text "It is not possible to proceed without fixing this kind error."                             in ppError (isError _lhsIoptions _me) (getPos child_) mesg pat help act _lhsIverbose-                            {-# LINE 1124 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1156 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             IncompatibleAttachKind child_ kind_-                            {-# LINE 1130 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1162 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1136 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1168 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_IncompatibleRuleKind :: Identifier ->                                   VisitKind ->@@ -1151,20 +1185,22 @@                                 help  = empty                                 act   = text "It is not possible to proceed without fixing this kind error."                             in ppError (isError _lhsIoptions _me) (getPos rule_) mesg pat help act _lhsIverbose-                            {-# LINE 1155 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1189 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             IncompatibleRuleKind rule_ kind_-                            {-# LINE 1161 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1195 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1167 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1201 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_IncompatibleVisitKind :: Identifier ->                                    VisitIdentifier ->@@ -1184,20 +1220,22 @@                                 help  = empty                                 act   = text "It is not possible to proceed without fixing this kind error."                             in ppError (isError _lhsIoptions _me) (getPos child_) mesg pat help act _lhsIverbose-                            {-# LINE 1188 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1224 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             IncompatibleVisitKind child_ vis_ from_ to_-                            {-# LINE 1194 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1230 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1200 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1236 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_InducedCirc :: NontermIdent ->                          CInterface ->@@ -1219,20 +1257,22 @@                                         >-< vlist (map showEdgeLong cyclic_)                                 act   = text "An unoptimized version was generated. It might hang when run."                             in ppError (isError _lhsIoptions _me) noPos mesg pat help act _lhsIverbose-                            {-# LINE 1223 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1261 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             InducedCirc nt_ cinter_ cyclic_-                            {-# LINE 1229 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1267 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1235 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1273 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_InstCirc :: NontermIdent ->                       ConstructorIdent ->@@ -1259,20 +1299,22 @@                                 act   | o_visit_ = text "An unoptimized version was generated. It might hang when run."                                       | otherwise = text "The generated program might hang when run."                             in ppError (isError _lhsIoptions _me) (getPos (attr_)) mesg pat help act _lhsIverbose-                            {-# LINE 1263 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1303 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             InstCirc nt_ con_ attr_ o_visit_ path_-                            {-# LINE 1269 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1309 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1275 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1315 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_LocalCirc :: NontermIdent ->                        ConstructorIdent ->@@ -1299,20 +1341,22 @@                                 act   | o_visit_ = text "An unoptimized version was generated. It might hang when run."                                       | otherwise = text "The generated program might hang when run."                             in ppError (isError _lhsIoptions _me) (getPos (attr_)) mesg pat help act _lhsIverbose-                            {-# LINE 1303 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1345 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             LocalCirc nt_ con_ attr_ o_visit_ path_-                            {-# LINE 1309 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1351 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1315 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1357 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_MissingInstSig :: NontermIdent ->                             ConstructorIdent ->@@ -1339,20 +1383,22 @@                                               ]                                 act  = wfill ["It is not possible to proceed without this signature."]                             in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose-                            {-# LINE 1343 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1387 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             MissingInstSig nt_ con_ attr_-                            {-# LINE 1349 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1393 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1355 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1399 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_MissingNamedRule :: NontermIdent ->                               Identifier ->@@ -1376,20 +1422,22 @@                                               ]                                 act  = wfill ["Compilation cannot continue."]                             in ppError (isError _lhsIoptions _me) (getPos name_) mesg pat help act _lhsIverbose-                            {-# LINE 1380 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1426 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             MissingNamedRule nt_ con_ name_-                            {-# LINE 1386 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1432 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1392 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1438 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_MissingRule :: NontermIdent ->                          ConstructorIdent ->@@ -1415,20 +1463,22 @@                                               ]                                 act  = wfill ["The value of the attribute has been set to undefined."]                             in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose-                            {-# LINE 1419 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1467 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             MissingRule nt_ con_ field_ attr_-                            {-# LINE 1425 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1473 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1431 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1479 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_MissingSyn :: NontermIdent ->                         Identifier ->@@ -1455,20 +1505,22 @@                                               ]                                 act  = wfill ["It is not possible to proceed without this declaration."]                             in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose-                            {-# LINE 1459 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1509 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             MissingSyn nt_ attr_-                            {-# LINE 1465 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1515 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1471 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1521 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_MissingTypeSig :: NontermIdent ->                             ConstructorIdent ->@@ -1495,20 +1547,22 @@                                               ]                                 act  = wfill ["The type signatures of semantic functions are not generated."]                             in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose-                            {-# LINE 1499 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1551 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             MissingTypeSig nt_ con_ attr_-                            {-# LINE 1505 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1557 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1511 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1563 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_MissingUnique :: NontermIdent ->                            Identifier ->@@ -1535,20 +1589,22 @@                                               ]                                 act  = wfill ["It is not possible to proceed without this declaration."]                             in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose-                            {-# LINE 1539 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1593 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             MissingUnique nt_ attr_-                            {-# LINE 1545 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1599 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1551 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1605 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_ParserError :: Pos ->                          String ->@@ -1567,20 +1623,22 @@                                 help = text ""                                 act  = text action_                              in ppError (isError _lhsIoptions _me) pos_ mesg pat help act _lhsIverbose-                            {-# LINE 1571 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1627 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             ParserError pos_ problem_ action_-                            {-# LINE 1577 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1633 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1583 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1639 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_SuperfluousRule :: NontermIdent ->                              ConstructorIdent ->@@ -1606,20 +1664,22 @@                                               ]                                 act  = wfill ["The rule has been ignored."]                             in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose-                            {-# LINE 1610 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1668 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             SuperfluousRule nt_ con_ field_ attr_-                            {-# LINE 1616 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1674 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1622 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1680 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_UndefAlt :: NontermIdent ->                       ConstructorIdent ->@@ -1642,20 +1702,22 @@                                                       ]                                 act  = wfill ["All rules for the unknown alternative have been ignored."]                             in ppError (isError _lhsIoptions _me) (getPos con_) mesg pat help act _lhsIverbose-                            {-# LINE 1646 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1706 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             UndefAlt nt_ con_-                            {-# LINE 1652 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1712 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1658 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1718 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_UndefAttr :: NontermIdent ->                        ConstructorIdent ->@@ -1688,20 +1750,22 @@                                               ]                                 act  = wfill ["The generated program will not run."]                             in ppError (isError _lhsIoptions _me) (getPos attr_) mesg pat help act _lhsIverbose-                            {-# LINE 1692 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1754 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             UndefAttr nt_ con_ field_ attr_ isOut_-                            {-# LINE 1698 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1760 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1704 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1766 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_UndefChild :: NontermIdent ->                         ConstructorIdent ->@@ -1728,20 +1792,22 @@                                                       ]                                 act  = wfill ["All rules for the unknown field have been ignored."]                             in ppError (isError _lhsIoptions _me) (getPos name_) mesg pat help act _lhsIverbose-                            {-# LINE 1732 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1796 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             UndefChild nt_ con_ name_-                            {-# LINE 1738 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1802 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1744 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1808 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_UndefLocal :: NontermIdent ->                         ConstructorIdent ->@@ -1768,20 +1834,22 @@                                               ]                                 act  = wfill ["The generated program will not run."]                             in ppError (isError _lhsIoptions _me) (getPos var_) mesg pat help act _lhsIverbose-                            {-# LINE 1772 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1838 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             UndefLocal nt_ con_ var_-                            {-# LINE 1778 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1844 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1784 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1850 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) sem_Error_UndefNont :: NontermIdent ->                        T_Error@@ -1801,20 +1869,22 @@                                                       ]                                 act  = wfill ["Everything regarding the unknown nonterminal has been ignored."]                             in ppError (isError _lhsIoptions _me) (getPos nt_) mesg pat help act _lhsIverbose-                            {-# LINE 1805 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1873 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _me =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             UndefNont nt_-                            {-# LINE 1811 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1879 "dist/build/PrintErrorMessages" #-}                             )                        -- self rule                        _lhsOme =                            ({-# LINE 71 "src-ag/PrintErrorMessages.ag" #-}                             _me-                            {-# LINE 1817 "dist/build/PrintErrorMessages" #-}+                            {-# LINE 1885 "dist/build/PrintErrorMessages" #-}                             )+                       ___node =+                           (Syn_Error _lhsOme _lhsOpp)                    in  ( _lhsOme,_lhsOpp)))) -- Errors ------------------------------------------------------ {-@@ -1870,13 +1940,13 @@                         _verbose =                             ({-# LINE 78 "src-ag/PrintErrorMessages.ag" #-}                              verbose _lhsIoptions-                             {-# LINE 1874 "dist/build/PrintErrorMessages" #-}+                             {-# LINE 1944 "dist/build/PrintErrorMessages" #-}                              )                         -- "src-ag/PrintErrorMessages.ag"(line 79, column 11)                         _str =                             ({-# LINE 79 "src-ag/PrintErrorMessages.ag" #-}                              disp _hdIpp 5000 ""-                             {-# LINE 1880 "dist/build/PrintErrorMessages" #-}+                             {-# LINE 1950 "dist/build/PrintErrorMessages" #-}                              )                         -- "src-ag/PrintErrorMessages.ag"(line 81, column 11)                         _lhsOpp =@@ -1884,36 +1954,38 @@                              if _str     `elem` _lhsIdups                              then _tlIpp                              else _hdIpp >-< _tlIpp-                             {-# LINE 1888 "dist/build/PrintErrorMessages" #-}+                             {-# LINE 1958 "dist/build/PrintErrorMessages" #-}                              )                         -- "src-ag/PrintErrorMessages.ag"(line 84, column 11)                         _tlOdups =                             ({-# LINE 84 "src-ag/PrintErrorMessages.ag" #-}                              _str     : _lhsIdups-                             {-# LINE 1894 "dist/build/PrintErrorMessages" #-}+                             {-# LINE 1964 "dist/build/PrintErrorMessages" #-}                              )                         -- copy rule (down)                         _hdOoptions =                             ({-# LINE 70 "src-ag/PrintErrorMessages.ag" #-}                              _lhsIoptions-                             {-# LINE 1900 "dist/build/PrintErrorMessages" #-}+                             {-# LINE 1970 "dist/build/PrintErrorMessages" #-}                              )                         -- copy rule (from local)                         _hdOverbose =                             ({-# LINE 70 "src-ag/PrintErrorMessages.ag" #-}                              _verbose-                             {-# LINE 1906 "dist/build/PrintErrorMessages" #-}+                             {-# LINE 1976 "dist/build/PrintErrorMessages" #-}                              )                         -- copy rule (down)                         _tlOoptions =                             ({-# LINE 74 "src-ag/PrintErrorMessages.ag" #-}                              _lhsIoptions-                             {-# LINE 1912 "dist/build/PrintErrorMessages" #-}+                             {-# LINE 1982 "dist/build/PrintErrorMessages" #-}                              )                         ( _hdIme,_hdIpp) =                             hd_ _hdOoptions _hdOverbose                         ( _tlIpp) =                             tl_ _tlOdups _tlOoptions+                        ___node =+                            (Syn_Errors _lhsOpp)                     in  ( _lhsOpp)))) sem_Errors_Nil :: T_Errors sem_Errors_Nil =@@ -1924,12 +1996,14 @@                         _verbose =                             ({-# LINE 78 "src-ag/PrintErrorMessages.ag" #-}                              verbose _lhsIoptions-                             {-# LINE 1928 "dist/build/PrintErrorMessages" #-}+                             {-# LINE 2000 "dist/build/PrintErrorMessages" #-}                              )                         -- "src-ag/PrintErrorMessages.ag"(line 85, column 11)                         _lhsOpp =                             ({-# LINE 85 "src-ag/PrintErrorMessages.ag" #-}                              text ""-                             {-# LINE 1934 "dist/build/PrintErrorMessages" #-}+                             {-# LINE 2006 "dist/build/PrintErrorMessages" #-}                              )+                        ___node =+                            (Syn_Errors _lhsOpp)                     in  ( _lhsOpp))))
src-derived/PrintOcamlCode.hs view
@@ -124,7 +124,9 @@                                         {-# LINE 125 "dist/build/PrintOcamlCode" #-}                                         )) of                                  { !_lhsOpp ->-                                 ( _lhsOpp) }) }) }) }) })))+                                 (case ((Syn_CaseAlt _lhsOpp)) of+                                  { ___node ->+                                  ( _lhsOpp) }) }) }) }) }) }))) -- CaseAlts ---------------------------------------------------- {-    visit 0:@@ -161,33 +163,37 @@     (T_CaseAlts (\ (!_lhsIoptions) ->                      (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                              _lhsIoptions-                             {-# LINE 165 "dist/build/PrintOcamlCode" #-}+                             {-# LINE 167 "dist/build/PrintOcamlCode" #-}                              )) of                       { !_tlOoptions ->                       (case (tl_ _tlOoptions) of                        { ( !_tlIpps) ->                            (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                                    _lhsIoptions-                                   {-# LINE 172 "dist/build/PrintOcamlCode" #-}+                                   {-# LINE 174 "dist/build/PrintOcamlCode" #-}                                    )) of                             { !_hdOoptions ->                             (case (hd_ _hdOoptions) of                              { ( !_hdIpp) ->                                  (case (({-# LINE 64 "src-ag/PrintOcamlCode.ag" #-}                                          _hdIpp : _tlIpps-                                         {-# LINE 179 "dist/build/PrintOcamlCode" #-}+                                         {-# LINE 181 "dist/build/PrintOcamlCode" #-}                                          )) of                                   { !_lhsOpps ->-                                  ( _lhsOpps) }) }) }) }) })))+                                  (case ((Syn_CaseAlts _lhsOpps)) of+                                   { ___node ->+                                   ( _lhsOpps) }) }) }) }) }) }))) sem_CaseAlts_Nil :: T_CaseAlts sem_CaseAlts_Nil =     (T_CaseAlts (\ (!_lhsIoptions) ->                      (case (({-# LINE 65 "src-ag/PrintOcamlCode.ag" #-}                              []-                             {-# LINE 188 "dist/build/PrintOcamlCode" #-}+                             {-# LINE 192 "dist/build/PrintOcamlCode" #-}                              )) of                       { !_lhsOpps ->-                      ( _lhsOpps) })))+                      (case ((Syn_CaseAlts _lhsOpps)) of+                       { ___node ->+                       ( _lhsOpps) }) }))) -- Chunk ------------------------------------------------------- {-    visit 0:@@ -243,84 +249,84 @@                 (!_lhsItextBlockMap) ->                   (case (({-# LINE 209 "src-ag/PrintOcamlCode.ag" #-}                           _lhsIisToplevel-                          {-# LINE 247 "dist/build/PrintOcamlCode" #-}+                          {-# LINE 253 "dist/build/PrintOcamlCode" #-}                           )) of                    { !_semFunctionsOisToplevel ->                    (case (({-# LINE 209 "src-ag/PrintOcamlCode.ag" #-}                            _lhsIisToplevel-                           {-# LINE 252 "dist/build/PrintOcamlCode" #-}+                           {-# LINE 258 "dist/build/PrintOcamlCode" #-}                            )) of                     { !_semWrapperOisToplevel ->                     (case (({-# LINE 209 "src-ag/PrintOcamlCode.ag" #-}                             _lhsIisToplevel-                            {-# LINE 257 "dist/build/PrintOcamlCode" #-}+                            {-# LINE 263 "dist/build/PrintOcamlCode" #-}                             )) of                      { !_semDomOisToplevel ->                      (case (({-# LINE 209 "src-ag/PrintOcamlCode.ag" #-}                              _lhsIisToplevel-                             {-# LINE 262 "dist/build/PrintOcamlCode" #-}+                             {-# LINE 268 "dist/build/PrintOcamlCode" #-}                              )) of                       { !_cataFunOisToplevel ->                       (case (({-# LINE 209 "src-ag/PrintOcamlCode.ag" #-}                               _lhsIisToplevel-                              {-# LINE 267 "dist/build/PrintOcamlCode" #-}+                              {-# LINE 273 "dist/build/PrintOcamlCode" #-}                               )) of                        { !_dataDefOisToplevel ->                        (case (({-# LINE 209 "src-ag/PrintOcamlCode.ag" #-}                                _lhsIisToplevel-                               {-# LINE 272 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 278 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_infoOisToplevel ->                         (case (({-# LINE 209 "src-ag/PrintOcamlCode.ag" #-}                                 _lhsIisToplevel-                                {-# LINE 277 "dist/build/PrintOcamlCode" #-}+                                {-# LINE 283 "dist/build/PrintOcamlCode" #-}                                 )) of                          { !_commentOisToplevel ->                          (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                                  _lhsIoptions-                                 {-# LINE 282 "dist/build/PrintOcamlCode" #-}+                                 {-# LINE 288 "dist/build/PrintOcamlCode" #-}                                  )) of                           { !_semFunctionsOoptions ->                           (case (semFunctions_ _semFunctionsOisToplevel _semFunctionsOoptions) of                            { ( !_semFunctionsIpps) ->                                (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                                        _lhsIoptions-                                       {-# LINE 289 "dist/build/PrintOcamlCode" #-}+                                       {-# LINE 295 "dist/build/PrintOcamlCode" #-}                                        )) of                                 { !_semWrapperOoptions ->                                 (case (semWrapper_ _semWrapperOisToplevel _semWrapperOoptions) of                                  { ( !_semWrapperIpps) ->                                      (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                                              _lhsIoptions-                                             {-# LINE 296 "dist/build/PrintOcamlCode" #-}+                                             {-# LINE 302 "dist/build/PrintOcamlCode" #-}                                              )) of                                       { !_semDomOoptions ->                                       (case (semDom_ _semDomOisToplevel _semDomOoptions) of                                        { ( !_semDomIpps) ->                                            (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                                                    _lhsIoptions-                                                   {-# LINE 303 "dist/build/PrintOcamlCode" #-}+                                                   {-# LINE 309 "dist/build/PrintOcamlCode" #-}                                                    )) of                                             { !_cataFunOoptions ->                                             (case (cataFun_ _cataFunOisToplevel _cataFunOoptions) of                                              { ( !_cataFunIpps) ->                                                  (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                                                          _lhsIoptions-                                                         {-# LINE 310 "dist/build/PrintOcamlCode" #-}+                                                         {-# LINE 316 "dist/build/PrintOcamlCode" #-}                                                          )) of                                                   { !_dataDefOoptions ->                                                   (case (dataDef_ _dataDefOisToplevel _dataDefOoptions) of                                                    { ( !_dataDefIpps) ->                                                        (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                                                                _lhsIoptions-                                                               {-# LINE 317 "dist/build/PrintOcamlCode" #-}+                                                               {-# LINE 323 "dist/build/PrintOcamlCode" #-}                                                                )) of                                                         { !_infoOoptions ->                                                         (case (info_ _infoOisToplevel _infoOoptions) of                                                          { ( !_infoIpps) ->                                                              (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                                                                      _lhsIoptions-                                                                     {-# LINE 324 "dist/build/PrintOcamlCode" #-}+                                                                     {-# LINE 330 "dist/build/PrintOcamlCode" #-}                                                                      )) of                                                               { !_commentOoptions ->                                                               (case (comment_ _commentOisToplevel _commentOoptions) of@@ -334,10 +340,12 @@                                                                            ++ _semWrapperIpps                                                                            ++ _cataFunIpps                                                                            ++ [Map.findWithDefault empty (BlockOther, Just $ identifier name_) _lhsItextBlockMap]-                                                                           {-# LINE 338 "dist/build/PrintOcamlCode" #-}+                                                                           {-# LINE 344 "dist/build/PrintOcamlCode" #-}                                                                            )) of                                                                     { !_lhsOpps ->-                                                                    ( _lhsOpps) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))+                                                                    (case ((Syn_Chunk _lhsOpps)) of+                                                                     { ___node ->+                                                                     ( _lhsOpps) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))) -- Chunks ------------------------------------------------------ {-    visit 0:@@ -380,44 +388,46 @@                  (!_lhsItextBlockMap) ->                    (case (({-# LINE 45 "src-ag/PrintOcamlCode.ag" #-}                            _lhsItextBlockMap-                           {-# LINE 384 "dist/build/PrintOcamlCode" #-}+                           {-# LINE 392 "dist/build/PrintOcamlCode" #-}                            )) of                     { !_tlOtextBlockMap ->                     (case (({-# LINE 209 "src-ag/PrintOcamlCode.ag" #-}                             _lhsIisToplevel-                            {-# LINE 389 "dist/build/PrintOcamlCode" #-}+                            {-# LINE 397 "dist/build/PrintOcamlCode" #-}                             )) of                      { !_tlOisToplevel ->                      (case (({-# LINE 45 "src-ag/PrintOcamlCode.ag" #-}                              _lhsItextBlockMap-                             {-# LINE 394 "dist/build/PrintOcamlCode" #-}+                             {-# LINE 402 "dist/build/PrintOcamlCode" #-}                              )) of                       { !_hdOtextBlockMap ->                       (case (({-# LINE 209 "src-ag/PrintOcamlCode.ag" #-}                               _lhsIisToplevel-                              {-# LINE 399 "dist/build/PrintOcamlCode" #-}+                              {-# LINE 407 "dist/build/PrintOcamlCode" #-}                               )) of                        { !_hdOisToplevel ->                        (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                                _lhsIoptions-                               {-# LINE 404 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 412 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_tlOoptions ->                         (case (tl_ _tlOisToplevel _tlOoptions _tlOtextBlockMap) of                          { ( !_tlIpps) ->                              (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                                      _lhsIoptions-                                     {-# LINE 411 "dist/build/PrintOcamlCode" #-}+                                     {-# LINE 419 "dist/build/PrintOcamlCode" #-}                                      )) of                               { !_hdOoptions ->                               (case (hd_ _hdOisToplevel _hdOoptions _hdOtextBlockMap) of                                { ( !_hdIpps) ->                                    (case (({-# LINE 84 "src-ag/PrintOcamlCode.ag" #-}                                            _hdIpps ++ _tlIpps-                                           {-# LINE 418 "dist/build/PrintOcamlCode" #-}+                                           {-# LINE 426 "dist/build/PrintOcamlCode" #-}                                            )) of                                     { !_lhsOpps ->-                                    ( _lhsOpps) }) }) }) }) }) }) }) }) })))+                                    (case ((Syn_Chunks _lhsOpps)) of+                                     { ___node ->+                                     ( _lhsOpps) }) }) }) }) }) }) }) }) }) }))) sem_Chunks_Nil :: T_Chunks sem_Chunks_Nil =     (T_Chunks (\ (!_lhsIisToplevel)@@ -425,10 +435,12 @@                  (!_lhsItextBlockMap) ->                    (case (({-# LINE 85 "src-ag/PrintOcamlCode.ag" #-}                            []-                           {-# LINE 429 "dist/build/PrintOcamlCode" #-}+                           {-# LINE 439 "dist/build/PrintOcamlCode" #-}                            )) of                     { !_lhsOpps ->-                    ( _lhsOpps) })))+                    (case ((Syn_Chunks _lhsOpps)) of+                     { ___node ->+                     ( _lhsOpps) }) }))) -- DataAlt ----------------------------------------------------- {-    visit 0:@@ -467,10 +479,12 @@                 { ( !_argsIpps) ->                     (case (({-# LINE 183 "src-ag/PrintOcamlCode.ag" #-}                             name_ >#< "of" >#< pp_block "" "" " * " (map pp_parens _argsIpps)-                            {-# LINE 471 "dist/build/PrintOcamlCode" #-}+                            {-# LINE 483 "dist/build/PrintOcamlCode" #-}                             )) of                      { !_lhsOpp ->-                     ( _lhsOpp) }) }))+                     (case ((Syn_DataAlt _lhsOpp)) of+                      { ___node ->+                      ( _lhsOpp) }) }) })) sem_DataAlt_Record :: String ->                       T_NamedTypes ->                       T_DataAlt@@ -479,10 +493,12 @@                 { ( !_argsIpps) ->                     (case (({-# LINE 184 "src-ag/PrintOcamlCode.ag" #-}                             pp_block "{" "}" ";" _argsIpps-                            {-# LINE 483 "dist/build/PrintOcamlCode" #-}+                            {-# LINE 497 "dist/build/PrintOcamlCode" #-}                             )) of                      { !_lhsOpp ->-                     ( _lhsOpp) }) }))+                     (case ((Syn_DataAlt _lhsOpp)) of+                      { ___node ->+                      ( _lhsOpp) }) }) })) -- DataAlts ---------------------------------------------------- {-    visit 0:@@ -519,18 +535,22 @@                       { ( !_hdIpp) ->                           (case (({-# LINE 68 "src-ag/PrintOcamlCode.ag" #-}                                   _hdIpp : _tlIpps-                                  {-# LINE 523 "dist/build/PrintOcamlCode" #-}+                                  {-# LINE 539 "dist/build/PrintOcamlCode" #-}                                   )) of                            { !_lhsOpps ->-                           ( _lhsOpps) }) }) }))+                           (case ((Syn_DataAlts _lhsOpps)) of+                            { ___node ->+                            ( _lhsOpps) }) }) }) })) sem_DataAlts_Nil :: T_DataAlts sem_DataAlts_Nil =     (T_DataAlts (case (({-# LINE 69 "src-ag/PrintOcamlCode.ag" #-}                         []-                        {-# LINE 531 "dist/build/PrintOcamlCode" #-}+                        {-# LINE 549 "dist/build/PrintOcamlCode" #-}                         )) of                  { !_lhsOpps ->-                 ( _lhsOpps) }))+                 (case ((Syn_DataAlts _lhsOpps)) of+                  { ___node ->+                  ( _lhsOpps) }) })) -- Decl -------------------------------------------------------- {-    visit 0:@@ -628,10 +648,12 @@                (!_lhsIoptions) ->                  (case (({-# LINE 111 "src-ag/PrintOcamlCode.ag" #-}                          error "pp of Decl.Bind not supported"-                         {-# LINE 632 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 652 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_lhsOpp ->-                  ( _lhsOpp) })))+                  (case ((Syn_Decl _lhsOpp)) of+                   { ___node ->+                   ( _lhsOpp) }) }))) sem_Decl_BindLet :: T_Lhs ->                     T_Expr ->                     T_Decl@@ -640,10 +662,12 @@                (!_lhsIoptions) ->                  (case (({-# LINE 112 "src-ag/PrintOcamlCode.ag" #-}                          error "pp of Decl.BindLet not supported"-                         {-# LINE 644 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 666 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_lhsOpp ->-                  ( _lhsOpp) })))+                  (case ((Syn_Decl _lhsOpp)) of+                   { ___node ->+                   ( _lhsOpp) }) }))) sem_Decl_Comment :: String ->                     T_Decl sem_Decl_Comment !txt_ =@@ -653,10 +677,12 @@                          if '\n' `elem` txt_                            then "(* " >-< vlist (lines txt_) >-< "*)"                            else "(*" >#< txt_ >#< "*)"-                         {-# LINE 657 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 681 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_lhsOpp ->-                  ( _lhsOpp) })))+                  (case ((Syn_Decl _lhsOpp)) of+                   { ___node ->+                   ( _lhsOpp) }) }))) sem_Decl_Data :: String ->                  ([String]) ->                  T_DataAlts ->@@ -676,10 +702,12 @@                                                   >-< vlist (map ("|" >#<) xs)                                    )                               >#< ";;"-                              {-# LINE 680 "dist/build/PrintOcamlCode" #-}+                              {-# LINE 706 "dist/build/PrintOcamlCode" #-}                               )) of                        { !_lhsOpp ->-                       ( _lhsOpp) }) })))+                       (case ((Syn_Decl _lhsOpp)) of+                        { ___node ->+                        ( _lhsOpp) }) }) }))) sem_Decl_Decl :: T_Lhs ->                  T_Expr ->                  (Set String) ->@@ -690,14 +718,14 @@                (!_lhsIoptions) ->                  (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                          _lhsIoptions-                         {-# LINE 694 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 722 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_rhsOoptions ->                   (case (rhs_ _rhsOoptions) of                    { ( !_rhsIpp) ->                        (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                                _lhsIoptions-                               {-# LINE 701 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 729 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_leftOoptions ->                         (case (left_ _leftOoptions) of@@ -708,10 +736,12 @@                                           >-< indent 4 _rhsIpp >#< ";;"                                      else "let" >#< _leftIpp >#< "="                                           >-< indent 4 _rhsIpp >#< "in"-                                     {-# LINE 712 "dist/build/PrintOcamlCode" #-}+                                     {-# LINE 740 "dist/build/PrintOcamlCode" #-}                                      )) of                               { !_lhsOpp ->-                              ( _lhsOpp) }) }) }) }) })))+                              (case ((Syn_Decl _lhsOpp)) of+                               { ___node ->+                               ( _lhsOpp) }) }) }) }) }) }))) sem_Decl_EvalDecl :: String ->                      T_Lhs ->                      T_Expr ->@@ -721,17 +751,19 @@                (!_lhsIoptions) ->                  (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                          _lhsIoptions-                         {-# LINE 725 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 755 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_rhsOoptions ->                   (case (rhs_ _rhsOoptions) of                    { ( !_rhsIpp) ->                        (case (({-# LINE 53 "src-ag/PrintOcamlCode.ag" #-}                                _rhsIpp-                               {-# LINE 732 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 762 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_lhsOpp ->-                        ( _lhsOpp) }) }) })))+                        (case ((Syn_Decl _lhsOpp)) of+                         { ___node ->+                         ( _lhsOpp) }) }) }) }))) sem_Decl_NewType :: String ->                     ([String]) ->                     String ->@@ -742,10 +774,12 @@                (!_lhsIoptions) ->                  (case (({-# LINE 120 "src-ag/PrintOcamlCode.ag" #-}                          error "pp of Decl.NewType not supported"-                         {-# LINE 746 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 778 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_lhsOpp ->-                  ( _lhsOpp) })))+                  (case ((Syn_Decl _lhsOpp)) of+                   { ___node ->+                   ( _lhsOpp) }) }))) sem_Decl_PragmaDecl :: String ->                        T_Decl sem_Decl_PragmaDecl !txt_ =@@ -753,10 +787,12 @@                (!_lhsIoptions) ->                  (case (({-# LINE 126 "src-ag/PrintOcamlCode.ag" #-}                          error "pp of Decl.PragmaDecl not supported"-                         {-# LINE 757 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 791 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_lhsOpp ->-                  ( _lhsOpp) })))+                  (case ((Syn_Decl _lhsOpp)) of+                   { ___node ->+                   ( _lhsOpp) }) }))) sem_Decl_Resume :: Bool ->                    String ->                    T_Lhs ->@@ -767,17 +803,19 @@                (!_lhsIoptions) ->                  (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                          _lhsIoptions-                         {-# LINE 771 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 807 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_rhsOoptions ->                   (case (rhs_ _rhsOoptions) of                    { ( !_rhsIpp) ->                        (case (({-# LINE 53 "src-ag/PrintOcamlCode.ag" #-}                                _rhsIpp-                               {-# LINE 778 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 814 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_lhsOpp ->-                        ( _lhsOpp) }) }) })))+                        (case ((Syn_Decl _lhsOpp)) of+                         { ___node ->+                         ( _lhsOpp) }) }) }) }))) sem_Decl_TSig :: String ->                  T_Type ->                  T_Decl@@ -788,10 +826,12 @@                   { ( !_tpIpp) ->                       (case (({-# LINE 122 "src-ag/PrintOcamlCode.ag" #-}                               "(*" >#< name_ >#< ":" >#< _tpIpp >#< "*)"-                              {-# LINE 792 "dist/build/PrintOcamlCode" #-}+                              {-# LINE 830 "dist/build/PrintOcamlCode" #-}                               )) of                        { !_lhsOpp ->-                       ( _lhsOpp) }) })))+                       (case ((Syn_Decl _lhsOpp)) of+                        { ___node ->+                        ( _lhsOpp) }) }) }))) sem_Decl_Type :: String ->                  ([String]) ->                  T_Type ->@@ -803,10 +843,12 @@                   { ( !_tpIpp) ->                       (case (({-# LINE 121 "src-ag/PrintOcamlCode.ag" #-}                               "type" >#< hv_sp (map (\p -> "'" >|< p) params_ ++ [text $ toOcamlTC name_]) >#< "=" >#<  _tpIpp >#< ";;"-                              {-# LINE 807 "dist/build/PrintOcamlCode" #-}+                              {-# LINE 847 "dist/build/PrintOcamlCode" #-}                               )) of                        { !_lhsOpp ->-                       ( _lhsOpp) }) })))+                       (case ((Syn_Decl _lhsOpp)) of+                        { ___node ->+                        ( _lhsOpp) }) }) }))) -- Decls ------------------------------------------------------- {-    visit 0:@@ -846,44 +888,48 @@                 (!_lhsIoptions) ->                   (case (({-# LINE 209 "src-ag/PrintOcamlCode.ag" #-}                           _lhsIisToplevel-                          {-# LINE 850 "dist/build/PrintOcamlCode" #-}+                          {-# LINE 892 "dist/build/PrintOcamlCode" #-}                           )) of                    { !_tlOisToplevel ->                    (case (({-# LINE 209 "src-ag/PrintOcamlCode.ag" #-}                            _lhsIisToplevel-                           {-# LINE 855 "dist/build/PrintOcamlCode" #-}+                           {-# LINE 897 "dist/build/PrintOcamlCode" #-}                            )) of                     { !_hdOisToplevel ->                     (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                             _lhsIoptions-                            {-# LINE 860 "dist/build/PrintOcamlCode" #-}+                            {-# LINE 902 "dist/build/PrintOcamlCode" #-}                             )) of                      { !_tlOoptions ->                      (case (tl_ _tlOisToplevel _tlOoptions) of                       { ( !_tlIpps) ->                           (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                                   _lhsIoptions-                                  {-# LINE 867 "dist/build/PrintOcamlCode" #-}+                                  {-# LINE 909 "dist/build/PrintOcamlCode" #-}                                   )) of                            { !_hdOoptions ->                            (case (hd_ _hdOisToplevel _hdOoptions) of                             { ( !_hdIpp) ->                                 (case (({-# LINE 80 "src-ag/PrintOcamlCode.ag" #-}                                         _hdIpp : _tlIpps-                                        {-# LINE 874 "dist/build/PrintOcamlCode" #-}+                                        {-# LINE 916 "dist/build/PrintOcamlCode" #-}                                         )) of                                  { !_lhsOpps ->-                                 ( _lhsOpps) }) }) }) }) }) }) })))+                                 (case ((Syn_Decls _lhsOpps)) of+                                  { ___node ->+                                  ( _lhsOpps) }) }) }) }) }) }) }) }))) sem_Decls_Nil :: T_Decls sem_Decls_Nil =     (T_Decls (\ (!_lhsIisToplevel)                 (!_lhsIoptions) ->                   (case (({-# LINE 81 "src-ag/PrintOcamlCode.ag" #-}                           []-                          {-# LINE 884 "dist/build/PrintOcamlCode" #-}+                          {-# LINE 928 "dist/build/PrintOcamlCode" #-}                           )) of                    { !_lhsOpps ->-                   ( _lhsOpps) })))+                   (case ((Syn_Decls _lhsOpps)) of+                    { ___node ->+                    ( _lhsOpps) }) }))) -- Expr -------------------------------------------------------- {-    visit 0:@@ -1000,17 +1046,19 @@     (T_Expr (\ (!_lhsIoptions) ->                  (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                          _lhsIoptions-                         {-# LINE 1004 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 1050 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_argsOoptions ->                   (case (args_ _argsOoptions) of                    { ( !_argsIpps) ->                        (case (({-# LINE 143 "src-ag/PrintOcamlCode.ag" #-}                                pp_parens $ name_ >#< hv_sp _argsIpps-                               {-# LINE 1011 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 1057 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_lhsOpp ->-                        ( _lhsOpp) }) }) })))+                        (case ((Syn_Expr _lhsOpp)) of+                         { ___node ->+                         ( _lhsOpp) }) }) }) }))) sem_Expr_Case :: T_Expr ->                  T_CaseAlts ->                  T_Expr@@ -1018,14 +1066,14 @@     (T_Expr (\ (!_lhsIoptions) ->                  (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                          _lhsIoptions-                         {-# LINE 1022 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 1070 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_altsOoptions ->                   (case (alts_ _altsOoptions) of                    { ( !_altsIpps) ->                        (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                                _lhsIoptions-                               {-# LINE 1029 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 1077 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_exprOoptions ->                         (case (expr_ _exprOoptions) of@@ -1038,10 +1086,12 @@                                                                           >-< vlist (map ("|" >#<) xs)                                                             )                                                )-                                     {-# LINE 1042 "dist/build/PrintOcamlCode" #-}+                                     {-# LINE 1090 "dist/build/PrintOcamlCode" #-}                                      )) of                               { !_lhsOpp ->-                              ( _lhsOpp) }) }) }) }) })))+                              (case ((Syn_Expr _lhsOpp)) of+                               { ___node ->+                               ( _lhsOpp) }) }) }) }) }) }))) sem_Expr_Do :: T_Decls ->                T_Expr ->                T_Expr@@ -1049,10 +1099,12 @@     (T_Expr (\ (!_lhsIoptions) ->                  (case (({-# LINE 138 "src-ag/PrintOcamlCode.ag" #-}                          error "pp of Expr.Do not supported"-                         {-# LINE 1053 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 1103 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_lhsOpp ->-                  ( _lhsOpp) })))+                  (case ((Syn_Expr _lhsOpp)) of+                   { ___node ->+                   ( _lhsOpp) }) }))) sem_Expr_InvokeExpr :: String ->                        T_Expr ->                        T_Exprs ->@@ -1061,17 +1113,19 @@     (T_Expr (\ (!_lhsIoptions) ->                  (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                          _lhsIoptions-                         {-# LINE 1065 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 1117 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_exprOoptions ->                   (case (expr_ _exprOoptions) of                    { ( !_exprIpp) ->                        (case (({-# LINE 53 "src-ag/PrintOcamlCode.ag" #-}                                _exprIpp-                               {-# LINE 1072 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 1124 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_lhsOpp ->-                        ( _lhsOpp) }) }) })))+                        (case ((Syn_Expr _lhsOpp)) of+                         { ___node ->+                         ( _lhsOpp) }) }) }) }))) sem_Expr_Lambda :: T_Exprs ->                    T_Expr ->                    T_Expr@@ -1079,14 +1133,14 @@     (T_Expr (\ (!_lhsIoptions) ->                  (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                          _lhsIoptions-                         {-# LINE 1083 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 1137 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_bodyOoptions ->                   (case (body_ _bodyOoptions) of                    { ( !_bodyIpp) ->                        (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                                _lhsIoptions-                               {-# LINE 1090 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 1144 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_argsOoptions ->                         (case (args_ _argsOoptions) of@@ -1094,10 +1148,12 @@                              (case (({-# LINE 139 "src-ag/PrintOcamlCode.ag" #-}                                      pp_parens ( pp "fun" >#< hv_sp _argsIpps >#< "->"                                                >-< indent 2 _bodyIpp )-                                     {-# LINE 1098 "dist/build/PrintOcamlCode" #-}+                                     {-# LINE 1152 "dist/build/PrintOcamlCode" #-}                                      )) of                               { !_lhsOpp ->-                              ( _lhsOpp) }) }) }) }) })))+                              (case ((Syn_Expr _lhsOpp)) of+                               { ___node ->+                               ( _lhsOpp) }) }) }) }) }) }))) sem_Expr_Let :: T_Decls ->                 T_Expr ->                 T_Expr@@ -1105,46 +1161,50 @@     (T_Expr (\ (!_lhsIoptions) ->                  (case (({-# LINE 216 "src-ag/PrintOcamlCode.ag" #-}                          False-                         {-# LINE 1109 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 1165 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_declsOisToplevel ->                   (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                           _lhsIoptions-                          {-# LINE 1114 "dist/build/PrintOcamlCode" #-}+                          {-# LINE 1170 "dist/build/PrintOcamlCode" #-}                           )) of                    { !_bodyOoptions ->                    (case (body_ _bodyOoptions) of                     { ( !_bodyIpp) ->                         (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                                 _lhsIoptions-                                {-# LINE 1121 "dist/build/PrintOcamlCode" #-}+                                {-# LINE 1177 "dist/build/PrintOcamlCode" #-}                                 )) of                          { !_declsOoptions ->                          (case (decls_ _declsOisToplevel _declsOoptions) of                           { ( !_declsIpps) ->                               (case (({-# LINE 130 "src-ag/PrintOcamlCode.ag" #-}                                       pp_parens $ vlist (_declsIpps ++ [_bodyIpp])-                                      {-# LINE 1128 "dist/build/PrintOcamlCode" #-}+                                      {-# LINE 1184 "dist/build/PrintOcamlCode" #-}                                       )) of                                { !_lhsOpp ->-                               ( _lhsOpp) }) }) }) }) }) })))+                               (case ((Syn_Expr _lhsOpp)) of+                                { ___node ->+                                ( _lhsOpp) }) }) }) }) }) }) }))) sem_Expr_LineExpr :: T_Expr ->                      T_Expr sem_Expr_LineExpr !(T_Expr expr_) =     (T_Expr (\ (!_lhsIoptions) ->                  (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                          _lhsIoptions-                         {-# LINE 1138 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 1196 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_exprOoptions ->                   (case (expr_ _exprOoptions) of                    { ( !_exprIpp) ->                        (case (({-# LINE 148 "src-ag/PrintOcamlCode.ag" #-}                                _exprIpp-                               {-# LINE 1145 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 1203 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_lhsOpp ->-                        ( _lhsOpp) }) }) })))+                        (case ((Syn_Expr _lhsOpp)) of+                         { ___node ->+                         ( _lhsOpp) }) }) }) }))) sem_Expr_PragmaExpr :: Bool ->                        Bool ->                        String ->@@ -1154,17 +1214,19 @@     (T_Expr (\ (!_lhsIoptions) ->                  (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                          _lhsIoptions-                         {-# LINE 1158 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 1218 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_exprOoptions ->                   (case (expr_ _exprOoptions) of                    { ( !_exprIpp) ->                        (case (({-# LINE 147 "src-ag/PrintOcamlCode.ag" #-}                                _exprIpp-                               {-# LINE 1165 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 1225 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_lhsOpp ->-                        ( _lhsOpp) }) }) })))+                        (case ((Syn_Expr _lhsOpp)) of+                         { ___node ->+                         ( _lhsOpp) }) }) }) }))) sem_Expr_ResultExpr :: String ->                        T_Expr ->                        T_Expr@@ -1172,17 +1234,19 @@     (T_Expr (\ (!_lhsIoptions) ->                  (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                          _lhsIoptions-                         {-# LINE 1176 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 1238 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_exprOoptions ->                   (case (expr_ _exprOoptions) of                    { ( !_exprIpp) ->                        (case (({-# LINE 53 "src-ag/PrintOcamlCode.ag" #-}                                _exprIpp-                               {-# LINE 1183 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 1245 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_lhsOpp ->-                        ( _lhsOpp) }) }) })))+                        (case ((Syn_Expr _lhsOpp)) of+                         { ___node ->+                         ( _lhsOpp) }) }) }) }))) sem_Expr_ResumeExpr :: String ->                        T_Expr ->                        T_Lhs ->@@ -1192,17 +1256,19 @@     (T_Expr (\ (!_lhsIoptions) ->                  (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                          _lhsIoptions-                         {-# LINE 1196 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 1260 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_rhsOoptions ->                   (case (rhs_ _rhsOoptions) of                    { ( !_rhsIpp) ->                        (case (({-# LINE 53 "src-ag/PrintOcamlCode.ag" #-}                                _rhsIpp-                               {-# LINE 1203 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 1267 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_lhsOpp ->-                        ( _lhsOpp) }) }) })))+                        (case ((Syn_Expr _lhsOpp)) of+                         { ___node ->+                         ( _lhsOpp) }) }) }) }))) sem_Expr_SemFun :: String ->                    T_Exprs ->                    T_Expr ->@@ -1211,37 +1277,43 @@     (T_Expr (\ (!_lhsIoptions) ->                  (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                          _lhsIoptions-                         {-# LINE 1215 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 1281 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_bodyOoptions ->                   (case (body_ _bodyOoptions) of                    { ( !_bodyIpp) ->                        (case (({-# LINE 53 "src-ag/PrintOcamlCode.ag" #-}                                _bodyIpp-                               {-# LINE 1222 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 1288 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_lhsOpp ->-                        ( _lhsOpp) }) }) })))+                        (case ((Syn_Expr _lhsOpp)) of+                         { ___node ->+                         ( _lhsOpp) }) }) }) }))) sem_Expr_SimpleExpr :: String ->                        T_Expr sem_Expr_SimpleExpr !txt_ =     (T_Expr (\ (!_lhsIoptions) ->                  (case (({-# LINE 144 "src-ag/PrintOcamlCode.ag" #-}                          text txt_-                         {-# LINE 1232 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 1300 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_lhsOpp ->-                  ( _lhsOpp) })))+                  (case ((Syn_Expr _lhsOpp)) of+                   { ___node ->+                   ( _lhsOpp) }) }))) sem_Expr_TextExpr :: ([String]) ->                      T_Expr sem_Expr_TextExpr !lns_ =     (T_Expr (\ (!_lhsIoptions) ->                  (case (({-# LINE 145 "src-ag/PrintOcamlCode.ag" #-}                          vlist (map text lns_)-                         {-# LINE 1242 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 1312 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_lhsOpp ->-                  ( _lhsOpp) })))+                  (case ((Syn_Expr _lhsOpp)) of+                   { ___node ->+                   ( _lhsOpp) }) }))) sem_Expr_Trace :: String ->                   T_Expr ->                   T_Expr@@ -1249,34 +1321,38 @@     (T_Expr (\ (!_lhsIoptions) ->                  (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                          _lhsIoptions-                         {-# LINE 1253 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 1325 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_exprOoptions ->                   (case (expr_ _exprOoptions) of                    { ( !_exprIpp) ->                        (case (({-# LINE 146 "src-ag/PrintOcamlCode.ag" #-}                                _exprIpp-                               {-# LINE 1260 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 1332 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_lhsOpp ->-                        ( _lhsOpp) }) }) })))+                        (case ((Syn_Expr _lhsOpp)) of+                         { ___node ->+                         ( _lhsOpp) }) }) }) }))) sem_Expr_TupleExpr :: T_Exprs ->                       T_Expr sem_Expr_TupleExpr !(T_Exprs exprs_) =     (T_Expr (\ (!_lhsIoptions) ->                  (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                          _lhsIoptions-                         {-# LINE 1270 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 1344 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_exprsOoptions ->                   (case (exprs_ _exprsOoptions) of                    { ( !_exprsIpps) ->                        (case (({-# LINE 141 "src-ag/PrintOcamlCode.ag" #-}                                ppTuple False _exprsIpps-                               {-# LINE 1277 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 1351 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_lhsOpp ->-                        ( _lhsOpp) }) }) })))+                        (case ((Syn_Expr _lhsOpp)) of+                         { ___node ->+                         ( _lhsOpp) }) }) }) }))) sem_Expr_TypedExpr :: T_Expr ->                       T_Type ->                       T_Expr@@ -1284,27 +1360,31 @@     (T_Expr (\ (!_lhsIoptions) ->                  (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                          _lhsIoptions-                         {-# LINE 1288 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 1364 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_exprOoptions ->                   (case (expr_ _exprOoptions) of                    { ( !_exprIpp) ->                        (case (({-# LINE 149 "src-ag/PrintOcamlCode.ag" #-}                                _exprIpp-                               {-# LINE 1295 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 1371 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_lhsOpp ->-                        ( _lhsOpp) }) }) })))+                        (case ((Syn_Expr _lhsOpp)) of+                         { ___node ->+                         ( _lhsOpp) }) }) }) }))) sem_Expr_UnboxedTupleExpr :: T_Exprs ->                              T_Expr sem_Expr_UnboxedTupleExpr !(T_Exprs exprs_) =     (T_Expr (\ (!_lhsIoptions) ->                  (case (({-# LINE 142 "src-ag/PrintOcamlCode.ag" #-}                          error "pp of Expr.UnboxedTupleExpr not supported"-                         {-# LINE 1305 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 1383 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_lhsOpp ->-                  ( _lhsOpp) })))+                  (case ((Syn_Expr _lhsOpp)) of+                   { ___node ->+                   ( _lhsOpp) }) }))) -- Exprs ------------------------------------------------------- {-    visit 0:@@ -1341,33 +1421,37 @@     (T_Exprs (\ (!_lhsIoptions) ->                   (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                           _lhsIoptions-                          {-# LINE 1345 "dist/build/PrintOcamlCode" #-}+                          {-# LINE 1425 "dist/build/PrintOcamlCode" #-}                           )) of                    { !_tlOoptions ->                    (case (tl_ _tlOoptions) of                     { ( !_tlIpps) ->                         (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                                 _lhsIoptions-                                {-# LINE 1352 "dist/build/PrintOcamlCode" #-}+                                {-# LINE 1432 "dist/build/PrintOcamlCode" #-}                                 )) of                          { !_hdOoptions ->                          (case (hd_ _hdOoptions) of                           { ( !_hdIpp) ->                               (case (({-# LINE 60 "src-ag/PrintOcamlCode.ag" #-}                                       _hdIpp : _tlIpps-                                      {-# LINE 1359 "dist/build/PrintOcamlCode" #-}+                                      {-# LINE 1439 "dist/build/PrintOcamlCode" #-}                                       )) of                                { !_lhsOpps ->-                               ( _lhsOpps) }) }) }) }) })))+                               (case ((Syn_Exprs _lhsOpps)) of+                                { ___node ->+                                ( _lhsOpps) }) }) }) }) }) }))) sem_Exprs_Nil :: T_Exprs sem_Exprs_Nil =     (T_Exprs (\ (!_lhsIoptions) ->                   (case (({-# LINE 61 "src-ag/PrintOcamlCode.ag" #-}                           []-                          {-# LINE 1368 "dist/build/PrintOcamlCode" #-}+                          {-# LINE 1450 "dist/build/PrintOcamlCode" #-}                           )) of                    { !_lhsOpps ->-                   ( _lhsOpps) })))+                   (case ((Syn_Exprs _lhsOpps)) of+                    { ___node ->+                    ( _lhsOpps) }) }))) -- Lhs --------------------------------------------------------- {-    visit 0:@@ -1424,64 +1508,74 @@     (T_Lhs (\ (!_lhsIoptions) ->                 (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                         _lhsIoptions-                        {-# LINE 1428 "dist/build/PrintOcamlCode" #-}+                        {-# LINE 1512 "dist/build/PrintOcamlCode" #-}                         )) of                  { !_argsOoptions ->                  (case (args_ _argsOoptions) of                   { ( !_argsIpps) ->                       (case (({-# LINE 156 "src-ag/PrintOcamlCode.ag" #-}                               name_ >#< hv_sp _argsIpps-                              {-# LINE 1435 "dist/build/PrintOcamlCode" #-}+                              {-# LINE 1519 "dist/build/PrintOcamlCode" #-}                               )) of                        { !_lhsOpp ->-                       ( _lhsOpp) }) }) })))+                       (case ((Syn_Lhs _lhsOpp)) of+                        { ___node ->+                        ( _lhsOpp) }) }) }) }))) sem_Lhs_Pattern3 :: T_Pattern ->                     T_Lhs sem_Lhs_Pattern3 !(T_Pattern pat3_) =     (T_Lhs (\ (!_lhsIoptions) ->                 (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                         _lhsIoptions-                        {-# LINE 1445 "dist/build/PrintOcamlCode" #-}+                        {-# LINE 1531 "dist/build/PrintOcamlCode" #-}                         )) of                  { !_pat3Ooptions ->                  (case (pat3_ _pat3Ooptions) of                   { ( !_pat3Icopy,!_pat3IisUnderscore,!_pat3Ipp) ->                       (case (({-# LINE 152 "src-ag/PrintOcamlCode.ag" #-}                               _pat3Ipp-                              {-# LINE 1452 "dist/build/PrintOcamlCode" #-}+                              {-# LINE 1538 "dist/build/PrintOcamlCode" #-}                               )) of                        { !_lhsOpp ->-                       ( _lhsOpp) }) }) })))+                       (case ((Syn_Lhs _lhsOpp)) of+                        { ___node ->+                        ( _lhsOpp) }) }) }) }))) sem_Lhs_Pattern3SM :: T_Pattern ->                       T_Lhs sem_Lhs_Pattern3SM !(T_Pattern pat3_) =     (T_Lhs (\ (!_lhsIoptions) ->                 (case (({-# LINE 153 "src-ag/PrintOcamlCode.ag" #-}                         error "pp of Lhs.Pattern3SM not supported"-                        {-# LINE 1462 "dist/build/PrintOcamlCode" #-}+                        {-# LINE 1550 "dist/build/PrintOcamlCode" #-}                         )) of                  { !_lhsOpp ->-                 ( _lhsOpp) })))+                 (case ((Syn_Lhs _lhsOpp)) of+                  { ___node ->+                  ( _lhsOpp) }) }))) sem_Lhs_TupleLhs :: ([String]) ->                     T_Lhs sem_Lhs_TupleLhs !comps_ =     (T_Lhs (\ (!_lhsIoptions) ->                 (case (({-# LINE 154 "src-ag/PrintOcamlCode.ag" #-}                         ppTuple False (map text comps_)-                        {-# LINE 1472 "dist/build/PrintOcamlCode" #-}+                        {-# LINE 1562 "dist/build/PrintOcamlCode" #-}                         )) of                  { !_lhsOpp ->-                 ( _lhsOpp) })))+                 (case ((Syn_Lhs _lhsOpp)) of+                  { ___node ->+                  ( _lhsOpp) }) }))) sem_Lhs_UnboxedTupleLhs :: ([String]) ->                            T_Lhs sem_Lhs_UnboxedTupleLhs !comps_ =     (T_Lhs (\ (!_lhsIoptions) ->                 (case (({-# LINE 155 "src-ag/PrintOcamlCode.ag" #-}                         error "pp of Lhs.UnboxedTupleLhs not supported"-                        {-# LINE 1482 "dist/build/PrintOcamlCode" #-}+                        {-# LINE 1574 "dist/build/PrintOcamlCode" #-}                         )) of                  { !_lhsOpp ->-                 ( _lhsOpp) })))+                 (case ((Syn_Lhs _lhsOpp)) of+                  { ___node ->+                  ( _lhsOpp) }) }))) sem_Lhs_Unwrap :: String ->                   T_Lhs ->                   T_Lhs@@ -1489,17 +1583,19 @@     (T_Lhs (\ (!_lhsIoptions) ->                 (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                         _lhsIoptions-                        {-# LINE 1493 "dist/build/PrintOcamlCode" #-}+                        {-# LINE 1587 "dist/build/PrintOcamlCode" #-}                         )) of                  { !_subOoptions ->                  (case (sub_ _subOoptions) of                   { ( !_subIpp) ->                       (case (({-# LINE 157 "src-ag/PrintOcamlCode.ag" #-}                               pp_parens (name_ >#< _subIpp)-                              {-# LINE 1500 "dist/build/PrintOcamlCode" #-}+                              {-# LINE 1594 "dist/build/PrintOcamlCode" #-}                               )) of                        { !_lhsOpp ->-                       ( _lhsOpp) }) }) })))+                       (case ((Syn_Lhs _lhsOpp)) of+                        { ___node ->+                        ( _lhsOpp) }) }) }) }))) -- NamedType --------------------------------------------------- {-    visit 0:@@ -1535,10 +1631,12 @@                   { ( !_tpIpp) ->                       (case (({-# LINE 187 "src-ag/PrintOcamlCode.ag" #-}                               name_ >#< ":" >#< _tpIpp-                              {-# LINE 1539 "dist/build/PrintOcamlCode" #-}+                              {-# LINE 1635 "dist/build/PrintOcamlCode" #-}                               )) of                        { !_lhsOpp ->-                       ( _lhsOpp) }) }))+                       (case ((Syn_NamedType _lhsOpp)) of+                        { ___node ->+                        ( _lhsOpp) }) }) })) -- NamedTypes -------------------------------------------------- {-    visit 0:@@ -1575,18 +1673,22 @@                         { ( !_hdIpp) ->                             (case (({-# LINE 76 "src-ag/PrintOcamlCode.ag" #-}                                     _hdIpp : _tlIpps-                                    {-# LINE 1579 "dist/build/PrintOcamlCode" #-}+                                    {-# LINE 1677 "dist/build/PrintOcamlCode" #-}                                     )) of                              { !_lhsOpps ->-                             ( _lhsOpps) }) }) }))+                             (case ((Syn_NamedTypes _lhsOpps)) of+                              { ___node ->+                              ( _lhsOpps) }) }) }) })) sem_NamedTypes_Nil :: T_NamedTypes sem_NamedTypes_Nil =     (T_NamedTypes (case (({-# LINE 77 "src-ag/PrintOcamlCode.ag" #-}                           []-                          {-# LINE 1587 "dist/build/PrintOcamlCode" #-}+                          {-# LINE 1687 "dist/build/PrintOcamlCode" #-}                           )) of                    { !_lhsOpps ->-                   ( _lhsOpps) }))+                   (case ((Syn_NamedTypes _lhsOpps)) of+                    { ___node ->+                    ( _lhsOpps) }) })) -- Pattern ----------------------------------------------------- {-    visit 0:@@ -1654,34 +1756,36 @@     (T_Pattern (\ (!_lhsIoptions) ->                     (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                             _lhsIoptions-                            {-# LINE 1658 "dist/build/PrintOcamlCode" #-}+                            {-# LINE 1760 "dist/build/PrintOcamlCode" #-}                             )) of                      { !_patOoptions ->                      (case (pat_ _patOoptions) of                       { ( !_patIcopy,!_patIisUnderscore,!_patIpp) ->                           (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                   Alias field_ attr_ _patIcopy-                                  {-# LINE 1665 "dist/build/PrintOcamlCode" #-}+                                  {-# LINE 1767 "dist/build/PrintOcamlCode" #-}                                   )) of                            { !_copy ->                            (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                    _copy-                                   {-# LINE 1670 "dist/build/PrintOcamlCode" #-}+                                   {-# LINE 1772 "dist/build/PrintOcamlCode" #-}                                    )) of                             { !_lhsOcopy ->                             (case (({-# LINE 202 "src-ag/PrintOcamlCode.ag" #-}                                     False-                                    {-# LINE 1675 "dist/build/PrintOcamlCode" #-}+                                    {-# LINE 1777 "dist/build/PrintOcamlCode" #-}                                     )) of                              { !_lhsOisUnderscore ->                              (case (({-# LINE 193 "src-ag/PrintOcamlCode.ag" #-}                                      if _patIisUnderscore                                       then pp (attrname False field_ attr_)                                       else error "pp of Pattern.Alias is only supported in the form (x@_)"-                                     {-# LINE 1682 "dist/build/PrintOcamlCode" #-}+                                     {-# LINE 1784 "dist/build/PrintOcamlCode" #-}                                      )) of                               { !_lhsOpp ->-                              ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp) }) }) }) }) }) })))+                              (case ((Syn_Pattern _lhsOcopy _lhsOisUnderscore _lhsOpp)) of+                               { ___node ->+                               ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp) }) }) }) }) }) }) }))) sem_Pattern_Constr :: ConstructorIdent ->                       T_Patterns ->                       T_Pattern@@ -1689,64 +1793,68 @@     (T_Pattern (\ (!_lhsIoptions) ->                     (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                             _lhsIoptions-                            {-# LINE 1693 "dist/build/PrintOcamlCode" #-}+                            {-# LINE 1797 "dist/build/PrintOcamlCode" #-}                             )) of                      { !_patsOoptions ->                      (case (pats_ _patsOoptions) of                       { ( !_patsIcopy,!_patsIpps) ->                           (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                   Constr name_ _patsIcopy-                                  {-# LINE 1700 "dist/build/PrintOcamlCode" #-}+                                  {-# LINE 1804 "dist/build/PrintOcamlCode" #-}                                   )) of                            { !_copy ->                            (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                    _copy-                                   {-# LINE 1705 "dist/build/PrintOcamlCode" #-}+                                   {-# LINE 1809 "dist/build/PrintOcamlCode" #-}                                    )) of                             { !_lhsOcopy ->                             (case (({-# LINE 200 "src-ag/PrintOcamlCode.ag" #-}                                     False-                                    {-# LINE 1710 "dist/build/PrintOcamlCode" #-}+                                    {-# LINE 1814 "dist/build/PrintOcamlCode" #-}                                     )) of                              { !_lhsOisUnderscore ->                              (case (({-# LINE 190 "src-ag/PrintOcamlCode.ag" #-}                                      pp_parens $ name_ >#< hv_sp _patsIpps-                                     {-# LINE 1715 "dist/build/PrintOcamlCode" #-}+                                     {-# LINE 1819 "dist/build/PrintOcamlCode" #-}                                      )) of                               { !_lhsOpp ->-                              ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp) }) }) }) }) }) })))+                              (case ((Syn_Pattern _lhsOcopy _lhsOisUnderscore _lhsOpp)) of+                               { ___node ->+                               ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp) }) }) }) }) }) }) }))) sem_Pattern_Irrefutable :: T_Pattern ->                            T_Pattern sem_Pattern_Irrefutable !(T_Pattern pat_) =     (T_Pattern (\ (!_lhsIoptions) ->                     (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                             _lhsIoptions-                            {-# LINE 1725 "dist/build/PrintOcamlCode" #-}+                            {-# LINE 1831 "dist/build/PrintOcamlCode" #-}                             )) of                      { !_patOoptions ->                      (case (pat_ _patOoptions) of                       { ( !_patIcopy,!_patIisUnderscore,!_patIpp) ->                           (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                   Irrefutable _patIcopy-                                  {-# LINE 1732 "dist/build/PrintOcamlCode" #-}+                                  {-# LINE 1838 "dist/build/PrintOcamlCode" #-}                                   )) of                            { !_copy ->                            (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                    _copy-                                   {-# LINE 1737 "dist/build/PrintOcamlCode" #-}+                                   {-# LINE 1843 "dist/build/PrintOcamlCode" #-}                                    )) of                             { !_lhsOcopy ->                             (case (({-# LINE 199 "src-ag/PrintOcamlCode.ag" #-}                                     _patIisUnderscore-                                    {-# LINE 1742 "dist/build/PrintOcamlCode" #-}+                                    {-# LINE 1848 "dist/build/PrintOcamlCode" #-}                                     )) of                              { !_lhsOisUnderscore ->                              (case (({-# LINE 196 "src-ag/PrintOcamlCode.ag" #-}                                      error "pp of Pattern.Irrefutable not supported"-                                     {-# LINE 1747 "dist/build/PrintOcamlCode" #-}+                                     {-# LINE 1853 "dist/build/PrintOcamlCode" #-}                                      )) of                               { !_lhsOpp ->-                              ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp) }) }) }) }) }) })))+                              (case ((Syn_Pattern _lhsOcopy _lhsOisUnderscore _lhsOpp)) of+                               { ___node ->+                               ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp) }) }) }) }) }) }) }))) sem_Pattern_Product :: Pos ->                        T_Patterns ->                        T_Pattern@@ -1754,57 +1862,61 @@     (T_Pattern (\ (!_lhsIoptions) ->                     (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                             _lhsIoptions-                            {-# LINE 1758 "dist/build/PrintOcamlCode" #-}+                            {-# LINE 1866 "dist/build/PrintOcamlCode" #-}                             )) of                      { !_patsOoptions ->                      (case (pats_ _patsOoptions) of                       { ( !_patsIcopy,!_patsIpps) ->                           (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                   Product pos_ _patsIcopy-                                  {-# LINE 1765 "dist/build/PrintOcamlCode" #-}+                                  {-# LINE 1873 "dist/build/PrintOcamlCode" #-}                                   )) of                            { !_copy ->                            (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                    _copy-                                   {-# LINE 1770 "dist/build/PrintOcamlCode" #-}+                                   {-# LINE 1878 "dist/build/PrintOcamlCode" #-}                                    )) of                             { !_lhsOcopy ->                             (case (({-# LINE 201 "src-ag/PrintOcamlCode.ag" #-}                                     False-                                    {-# LINE 1775 "dist/build/PrintOcamlCode" #-}+                                    {-# LINE 1883 "dist/build/PrintOcamlCode" #-}                                     )) of                              { !_lhsOisUnderscore ->                              (case (({-# LINE 191 "src-ag/PrintOcamlCode.ag" #-}                                      pp_block "(" ")" "," _patsIpps-                                     {-# LINE 1780 "dist/build/PrintOcamlCode" #-}+                                     {-# LINE 1888 "dist/build/PrintOcamlCode" #-}                                      )) of                               { !_lhsOpp ->-                              ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp) }) }) }) }) }) })))+                              (case ((Syn_Pattern _lhsOcopy _lhsOisUnderscore _lhsOpp)) of+                               { ___node ->+                               ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp) }) }) }) }) }) }) }))) sem_Pattern_Underscore :: Pos ->                           T_Pattern sem_Pattern_Underscore !pos_ =     (T_Pattern (\ (!_lhsIoptions) ->                     (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                             Underscore pos_-                            {-# LINE 1790 "dist/build/PrintOcamlCode" #-}+                            {-# LINE 1900 "dist/build/PrintOcamlCode" #-}                             )) of                      { !_copy ->                      (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                              _copy-                             {-# LINE 1795 "dist/build/PrintOcamlCode" #-}+                             {-# LINE 1905 "dist/build/PrintOcamlCode" #-}                              )) of                       { !_lhsOcopy ->                       (case (({-# LINE 203 "src-ag/PrintOcamlCode.ag" #-}                               True-                              {-# LINE 1800 "dist/build/PrintOcamlCode" #-}+                              {-# LINE 1910 "dist/build/PrintOcamlCode" #-}                               )) of                        { !_lhsOisUnderscore ->                        (case (({-# LINE 197 "src-ag/PrintOcamlCode.ag" #-}                                text "_"-                               {-# LINE 1805 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 1915 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_lhsOpp ->-                        ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp) }) }) }) })))+                        (case ((Syn_Pattern _lhsOcopy _lhsOisUnderscore _lhsOpp)) of+                         { ___node ->+                         ( _lhsOcopy,_lhsOisUnderscore,_lhsOpp) }) }) }) }) }))) -- Patterns ---------------------------------------------------- {-    visit 0:@@ -1846,53 +1958,57 @@     (T_Patterns (\ (!_lhsIoptions) ->                      (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                              _lhsIoptions-                             {-# LINE 1850 "dist/build/PrintOcamlCode" #-}+                             {-# LINE 1962 "dist/build/PrintOcamlCode" #-}                              )) of                       { !_tlOoptions ->                       (case (tl_ _tlOoptions) of                        { ( !_tlIcopy,!_tlIpps) ->                            (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                                    _lhsIoptions-                                   {-# LINE 1857 "dist/build/PrintOcamlCode" #-}+                                   {-# LINE 1969 "dist/build/PrintOcamlCode" #-}                                    )) of                             { !_hdOoptions ->                             (case (hd_ _hdOoptions) of                              { ( !_hdIcopy,!_hdIisUnderscore,!_hdIpp) ->                                  (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                          (:) _hdIcopy _tlIcopy-                                         {-# LINE 1864 "dist/build/PrintOcamlCode" #-}+                                         {-# LINE 1976 "dist/build/PrintOcamlCode" #-}                                          )) of                                   { !_copy ->                                   (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                           _copy-                                          {-# LINE 1869 "dist/build/PrintOcamlCode" #-}+                                          {-# LINE 1981 "dist/build/PrintOcamlCode" #-}                                           )) of                                    { !_lhsOcopy ->                                    (case (({-# LINE 88 "src-ag/PrintOcamlCode.ag" #-}                                            _hdIpp : _tlIpps-                                           {-# LINE 1874 "dist/build/PrintOcamlCode" #-}+                                           {-# LINE 1986 "dist/build/PrintOcamlCode" #-}                                            )) of                                     { !_lhsOpps ->-                                    ( _lhsOcopy,_lhsOpps) }) }) }) }) }) }) })))+                                    (case ((Syn_Patterns _lhsOcopy _lhsOpps)) of+                                     { ___node ->+                                     ( _lhsOcopy,_lhsOpps) }) }) }) }) }) }) }) }))) sem_Patterns_Nil :: T_Patterns sem_Patterns_Nil =     (T_Patterns (\ (!_lhsIoptions) ->                      (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                              []-                             {-# LINE 1883 "dist/build/PrintOcamlCode" #-}+                             {-# LINE 1997 "dist/build/PrintOcamlCode" #-}                              )) of                       { !_copy ->                       (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                               _copy-                              {-# LINE 1888 "dist/build/PrintOcamlCode" #-}+                              {-# LINE 2002 "dist/build/PrintOcamlCode" #-}                               )) of                        { !_lhsOcopy ->                        (case (({-# LINE 89 "src-ag/PrintOcamlCode.ag" #-}                                []-                               {-# LINE 1893 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 2007 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_lhsOpps ->-                        ( _lhsOcopy,_lhsOpps) }) }) })))+                        (case ((Syn_Patterns _lhsOcopy _lhsOpps)) of+                         { ___node ->+                         ( _lhsOcopy,_lhsOpps) }) }) }) }))) -- Program ----------------------------------------------------- {-    visit 0:@@ -1931,27 +2047,29 @@                   (!_lhsItextBlockMap) ->                     (case (({-# LINE 45 "src-ag/PrintOcamlCode.ag" #-}                             _lhsItextBlockMap-                            {-# LINE 1935 "dist/build/PrintOcamlCode" #-}+                            {-# LINE 2051 "dist/build/PrintOcamlCode" #-}                             )) of                      { !_chunksOtextBlockMap ->                      (case (({-# LINE 212 "src-ag/PrintOcamlCode.ag" #-}                              True-                             {-# LINE 1940 "dist/build/PrintOcamlCode" #-}+                             {-# LINE 2056 "dist/build/PrintOcamlCode" #-}                              )) of                       { !_chunksOisToplevel ->                       (case (({-# LINE 43 "src-ag/PrintOcamlCode.ag" #-}                               _lhsIoptions-                              {-# LINE 1945 "dist/build/PrintOcamlCode" #-}+                              {-# LINE 2061 "dist/build/PrintOcamlCode" #-}                               )) of                        { !_chunksOoptions ->                        (case (chunks_ _chunksOisToplevel _chunksOoptions _chunksOtextBlockMap) of                         { ( !_chunksIpps) ->                             (case (({-# LINE 57 "src-ag/PrintOcamlCode.ag" #-}                                     _chunksIpps-                                    {-# LINE 1952 "dist/build/PrintOcamlCode" #-}+                                    {-# LINE 2068 "dist/build/PrintOcamlCode" #-}                                     )) of                              { !_lhsOoutput ->-                             ( _lhsOoutput) }) }) }) }) })))+                             (case ((Syn_Program _lhsOoutput)) of+                              { ___node ->+                              ( _lhsOoutput) }) }) }) }) }) }))) -- Type -------------------------------------------------------- {-    visit 0:@@ -2042,20 +2160,24 @@                   { ( !_leftIpp) ->                       (case (({-# LINE 160 "src-ag/PrintOcamlCode.ag" #-}                               pp_parens (_leftIpp >#< "->" >#< _rightIpp)-                              {-# LINE 2046 "dist/build/PrintOcamlCode" #-}+                              {-# LINE 2164 "dist/build/PrintOcamlCode" #-}                               )) of                        { !_lhsOpp ->-                       ( _lhsOpp) }) }) }))+                       (case ((Syn_Type _lhsOpp)) of+                        { ___node ->+                        ( _lhsOpp) }) }) }) })) sem_Type_CtxApp :: ([(String, [String])]) ->                    T_Type ->                    T_Type sem_Type_CtxApp !left_ !(T_Type right_) =     (T_Type (case (({-# LINE 161 "src-ag/PrintOcamlCode.ag" #-}                     error "pp of Type.CtxApp not supported"-                    {-# LINE 2056 "dist/build/PrintOcamlCode" #-}+                    {-# LINE 2176 "dist/build/PrintOcamlCode" #-}                     )) of              { !_lhsOpp ->-             ( _lhsOpp) }))+             (case ((Syn_Type _lhsOpp)) of+              { ___node ->+              ( _lhsOpp) }) })) sem_Type_List :: T_Type ->                  T_Type sem_Type_List !(T_Type tp_) =@@ -2063,10 +2185,12 @@              { ( !_tpIpp) ->                  (case (({-# LINE 166 "src-ag/PrintOcamlCode.ag" #-}                          _tpIpp >#< "list"-                         {-# LINE 2067 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 2189 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_lhsOpp ->-                  ( _lhsOpp) }) }))+                  (case ((Syn_Type _lhsOpp)) of+                   { ___node ->+                   ( _lhsOpp) }) }) })) sem_Type_NontermType :: String ->                         ([String]) ->                         Bool ->@@ -2074,10 +2198,12 @@ sem_Type_NontermType !name_ !params_ !deforested_ =     (T_Type (case (({-# LINE 168 "src-ag/PrintOcamlCode.ag" #-}                     pp_block "(" ")" " " (map text params_ ++ [text $ toOcamlTC name_])-                    {-# LINE 2078 "dist/build/PrintOcamlCode" #-}+                    {-# LINE 2202 "dist/build/PrintOcamlCode" #-}                     )) of              { !_lhsOpp ->-             ( _lhsOpp) }))+             (case ((Syn_Type _lhsOpp)) of+              { ___node ->+              ( _lhsOpp) }) })) sem_Type_QuantApp :: String ->                      T_Type ->                      T_Type@@ -2086,48 +2212,58 @@              { ( !_rightIpp) ->                  (case (({-# LINE 53 "src-ag/PrintOcamlCode.ag" #-}                          _rightIpp-                         {-# LINE 2090 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 2216 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_lhsOpp ->-                  ( _lhsOpp) }) }))+                  (case ((Syn_Type _lhsOpp)) of+                   { ___node ->+                   ( _lhsOpp) }) }) })) sem_Type_SimpleType :: String ->                        T_Type sem_Type_SimpleType !txt_ =     (T_Type (case (({-# LINE 167 "src-ag/PrintOcamlCode.ag" #-}                     text txt_-                    {-# LINE 2099 "dist/build/PrintOcamlCode" #-}+                    {-# LINE 2227 "dist/build/PrintOcamlCode" #-}                     )) of              { !_lhsOpp ->-             ( _lhsOpp) }))+             (case ((Syn_Type _lhsOpp)) of+              { ___node ->+              ( _lhsOpp) }) })) sem_Type_TEither :: T_Type ->                     T_Type ->                     T_Type sem_Type_TEither !(T_Type left_) !(T_Type right_) =     (T_Type (case (({-# LINE 170 "src-ag/PrintOcamlCode.ag" #-}                     error "pp of Type.TEither is not supported"-                    {-# LINE 2109 "dist/build/PrintOcamlCode" #-}+                    {-# LINE 2239 "dist/build/PrintOcamlCode" #-}                     )) of              { !_lhsOpp ->-             ( _lhsOpp) }))+             (case ((Syn_Type _lhsOpp)) of+              { ___node ->+              ( _lhsOpp) }) })) sem_Type_TIntMap :: T_Type ->                     T_Type sem_Type_TIntMap !(T_Type value_) =     (T_Type (case (({-# LINE 172 "src-ag/PrintOcamlCode.ag" #-}                     error "pp of Type.TIntMap is not supported"-                    {-# LINE 2118 "dist/build/PrintOcamlCode" #-}+                    {-# LINE 2250 "dist/build/PrintOcamlCode" #-}                     )) of              { !_lhsOpp ->-             ( _lhsOpp) }))+             (case ((Syn_Type _lhsOpp)) of+              { ___node ->+              ( _lhsOpp) }) })) sem_Type_TMap :: T_Type ->                  T_Type ->                  T_Type sem_Type_TMap !(T_Type key_) !(T_Type value_) =     (T_Type (case (({-# LINE 171 "src-ag/PrintOcamlCode.ag" #-}                     error "pp of Type.TMap is not supported"-                    {-# LINE 2128 "dist/build/PrintOcamlCode" #-}+                    {-# LINE 2262 "dist/build/PrintOcamlCode" #-}                     )) of              { !_lhsOpp ->-             ( _lhsOpp) }))+             (case ((Syn_Type _lhsOpp)) of+              { ___node ->+              ( _lhsOpp) }) })) sem_Type_TMaybe :: T_Type ->                    T_Type sem_Type_TMaybe !(T_Type tp_) =@@ -2135,10 +2271,12 @@              { ( !_tpIpp) ->                  (case (({-# LINE 169 "src-ag/PrintOcamlCode.ag" #-}                          _tpIpp >#< "opt"-                         {-# LINE 2139 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 2275 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_lhsOpp ->-                  ( _lhsOpp) }) }))+                  (case ((Syn_Type _lhsOpp)) of+                   { ___node ->+                   ( _lhsOpp) }) }) })) sem_Type_TupleType :: T_Types ->                       T_Type sem_Type_TupleType !(T_Types tps_) =@@ -2146,10 +2284,12 @@              { ( !_tpsIpps) ->                  (case (({-# LINE 163 "src-ag/PrintOcamlCode.ag" #-}                          pp_block "(" ")" "," _tpsIpps-                         {-# LINE 2150 "dist/build/PrintOcamlCode" #-}+                         {-# LINE 2288 "dist/build/PrintOcamlCode" #-}                          )) of                   { !_lhsOpp ->-                  ( _lhsOpp) }) }))+                  (case ((Syn_Type _lhsOpp)) of+                   { ___node ->+                   ( _lhsOpp) }) }) })) sem_Type_TypeApp :: T_Type ->                     T_Types ->                     T_Type@@ -2160,19 +2300,23 @@                   { ( !_funcIpp) ->                       (case (({-# LINE 162 "src-ag/PrintOcamlCode.ag" #-}                               pp_parens (hv_sp (_argsIpps ++ [_funcIpp]))-                              {-# LINE 2164 "dist/build/PrintOcamlCode" #-}+                              {-# LINE 2304 "dist/build/PrintOcamlCode" #-}                               )) of                        { !_lhsOpp ->-                       ( _lhsOpp) }) }) }))+                       (case ((Syn_Type _lhsOpp)) of+                        { ___node ->+                        ( _lhsOpp) }) }) }) })) sem_Type_UnboxedTupleType :: T_Types ->                              T_Type sem_Type_UnboxedTupleType !(T_Types tps_) =     (T_Type (case (({-# LINE 165 "src-ag/PrintOcamlCode.ag" #-}                     error "pp of Type.UnboxedTupleType is not supported"-                    {-# LINE 2173 "dist/build/PrintOcamlCode" #-}+                    {-# LINE 2315 "dist/build/PrintOcamlCode" #-}                     )) of              { !_lhsOpp ->-             ( _lhsOpp) }))+             (case ((Syn_Type _lhsOpp)) of+              { ___node ->+              ( _lhsOpp) }) })) -- Types ------------------------------------------------------- {-    visit 0:@@ -2209,15 +2353,19 @@                    { ( !_hdIpp) ->                        (case (({-# LINE 72 "src-ag/PrintOcamlCode.ag" #-}                                _hdIpp : _tlIpps-                               {-# LINE 2213 "dist/build/PrintOcamlCode" #-}+                               {-# LINE 2357 "dist/build/PrintOcamlCode" #-}                                )) of                         { !_lhsOpps ->-                        ( _lhsOpps) }) }) }))+                        (case ((Syn_Types _lhsOpps)) of+                         { ___node ->+                         ( _lhsOpps) }) }) }) })) sem_Types_Nil :: T_Types sem_Types_Nil =     (T_Types (case (({-# LINE 73 "src-ag/PrintOcamlCode.ag" #-}                      []-                     {-# LINE 2221 "dist/build/PrintOcamlCode" #-}+                     {-# LINE 2367 "dist/build/PrintOcamlCode" #-}                      )) of               { !_lhsOpps ->-              ( _lhsOpps) }))+              (case ((Syn_Types _lhsOpps)) of+               { ___node ->+               ( _lhsOpps) }) }))
src-derived/PrintVisitCode.hs view
@@ -114,7 +114,9 @@                              {-# LINE 115 "dist/build/PrintVisitCode" #-}                              )) of                       { _lhsOoutput ->-                      ( _lhsOoutput) })))+                      (case ((Syn_CGrammar _lhsOoutput)) of+                       { ___node ->+                       ( _lhsOoutput) }) }))) -- CInterface -------------------------------------------------- {-    alternatives:@@ -139,7 +141,9 @@ sem_CInterface_CInterface :: T_CSegments ->                              T_CInterface sem_CInterface_CInterface (T_CSegments seg_) =-    (T_CInterface ( ))+    (T_CInterface (case ((Syn_CInterface)) of+                   { ___node ->+                   ( ) })) -- CNonterminal ------------------------------------------------ {-    alternatives:@@ -174,7 +178,9 @@                                  T_CInterface ->                                  T_CNonterminal sem_CNonterminal_CNonterminal nt_ params_ inh_ syn_ (T_CProductions prods_) (T_CInterface inter_) =-    (T_CNonterminal ( ))+    (T_CNonterminal (case ((Syn_CNonterminal)) of+                     { ___node ->+                     ( ) })) -- CNonterminals ----------------------------------------------- {-    alternatives:@@ -202,10 +208,14 @@                           T_CNonterminals ->                           T_CNonterminals sem_CNonterminals_Cons (T_CNonterminal hd_) (T_CNonterminals tl_) =-    (T_CNonterminals ( ))+    (T_CNonterminals (case ((Syn_CNonterminals)) of+                      { ___node ->+                      ( ) })) sem_CNonterminals_Nil :: T_CNonterminals sem_CNonterminals_Nil =-    (T_CNonterminals ( ))+    (T_CNonterminals (case ((Syn_CNonterminals)) of+                      { ___node ->+                      ( ) })) -- CProduction ------------------------------------------------- {-    alternatives:@@ -236,7 +246,9 @@                                ([Identifier]) ->                                T_CProduction sem_CProduction_CProduction con_ (T_CVisits visits_) children_ terminals_ =-    (T_CProduction ( ))+    (T_CProduction (case ((Syn_CProduction)) of+                    { ___node ->+                    ( ) })) -- CProductions ------------------------------------------------ {-    alternatives:@@ -264,10 +276,14 @@                          T_CProductions ->                          T_CProductions sem_CProductions_Cons (T_CProduction hd_) (T_CProductions tl_) =-    (T_CProductions ( ))+    (T_CProductions (case ((Syn_CProductions)) of+                     { ___node ->+                     ( ) })) sem_CProductions_Nil :: T_CProductions sem_CProductions_Nil =-    (T_CProductions ( ))+    (T_CProductions (case ((Syn_CProductions)) of+                     { ___node ->+                     ( ) })) -- CRule ------------------------------------------------------- {-    alternatives:@@ -321,7 +337,9 @@                          Bool ->                          T_CRule sem_CRule_CChildVisit name_ nt_ nr_ inh_ syn_ isLast_ =-    (T_CRule ( ))+    (T_CRule (case ((Syn_CRule)) of+              { ___node ->+              ( ) })) sem_CRule_CRule :: Identifier ->                    Bool ->                    Bool ->@@ -340,7 +358,9 @@                    (Maybe Identifier) ->                    T_CRule sem_CRule_CRule name_ isIn_ hasCode_ nt_ con_ field_ childnt_ tp_ (T_Pattern pattern_) rhs_ defines_ owrt_ origin_ uses_ explicit_ mbNamed_ =-    (T_CRule ( ))+    (T_CRule (case ((Syn_CRule)) of+              { ___node ->+              ( ) })) -- CSegment ---------------------------------------------------- {-    alternatives:@@ -367,7 +387,9 @@                          Attributes ->                          T_CSegment sem_CSegment_CSegment inh_ syn_ =-    (T_CSegment ( ))+    (T_CSegment (case ((Syn_CSegment)) of+                 { ___node ->+                 ( ) })) -- CSegments --------------------------------------------------- {-    alternatives:@@ -395,10 +417,14 @@                       T_CSegments ->                       T_CSegments sem_CSegments_Cons (T_CSegment hd_) (T_CSegments tl_) =-    (T_CSegments ( ))+    (T_CSegments (case ((Syn_CSegments)) of+                  { ___node ->+                  ( ) })) sem_CSegments_Nil :: T_CSegments sem_CSegments_Nil =-    (T_CSegments ( ))+    (T_CSegments (case ((Syn_CSegments)) of+                  { ___node ->+                  ( ) })) -- CVisit ------------------------------------------------------ {-    alternatives:@@ -431,7 +457,9 @@                      Bool ->                      T_CVisit sem_CVisit_CVisit inh_ syn_ (T_Sequence vss_) (T_Sequence intra_) ordered_ =-    (T_CVisit ( ))+    (T_CVisit (case ((Syn_CVisit)) of+               { ___node ->+               ( ) })) -- CVisits ----------------------------------------------------- {-    alternatives:@@ -459,10 +487,14 @@                     T_CVisits ->                     T_CVisits sem_CVisits_Cons (T_CVisit hd_) (T_CVisits tl_) =-    (T_CVisits ( ))+    (T_CVisits (case ((Syn_CVisits)) of+                { ___node ->+                ( ) })) sem_CVisits_Nil :: T_CVisits sem_CVisits_Nil =-    (T_CVisits ( ))+    (T_CVisits (case ((Syn_CVisits)) of+                { ___node ->+                ( ) })) -- DeclBlocks -------------------------------------------------- {-    alternatives:@@ -496,12 +528,16 @@                             T_DeclBlocks ->                             T_DeclBlocks sem_DeclBlocks_DeclBlock defs_ visit_ (T_DeclBlocks next_) =-    (T_DeclBlocks ( ))+    (T_DeclBlocks (case ((Syn_DeclBlocks)) of+                   { ___node ->+                   ( ) })) sem_DeclBlocks_DeclTerminator :: ([Decl]) ->                                  Expr ->                                  T_DeclBlocks sem_DeclBlocks_DeclTerminator defs_ result_ =-    (T_DeclBlocks ( ))+    (T_DeclBlocks (case ((Syn_DeclBlocks)) of+                   { ___node ->+                   ( ) })) -- DeclBlocksRoot ---------------------------------------------- {-    alternatives:@@ -526,7 +562,9 @@ sem_DeclBlocksRoot_DeclBlocksRoot :: T_DeclBlocks ->                                      T_DeclBlocksRoot sem_DeclBlocksRoot_DeclBlocksRoot (T_DeclBlocks blocks_) =-    (T_DeclBlocksRoot ( ))+    (T_DeclBlocksRoot (case ((Syn_DeclBlocksRoot)) of+                       { ___node ->+                       ( ) })) -- Pattern ----------------------------------------------------- {-    visit 0:@@ -590,15 +628,17 @@                 { ( _patIcopy) ->                     (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                             Alias field_ attr_ _patIcopy-                            {-# LINE 594 "dist/build/PrintVisitCode" #-}+                            {-# LINE 632 "dist/build/PrintVisitCode" #-}                             )) of                      { _copy ->                      (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                              _copy-                             {-# LINE 599 "dist/build/PrintVisitCode" #-}+                             {-# LINE 637 "dist/build/PrintVisitCode" #-}                              )) of                       { _lhsOcopy ->-                      ( _lhsOcopy) }) }) }))+                      (case ((Syn_Pattern _lhsOcopy)) of+                       { ___node ->+                       ( _lhsOcopy) }) }) }) })) sem_Pattern_Constr :: ConstructorIdent ->                       T_Patterns ->                       T_Pattern@@ -607,15 +647,17 @@                 { ( _patsIcopy) ->                     (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                             Constr name_ _patsIcopy-                            {-# LINE 611 "dist/build/PrintVisitCode" #-}+                            {-# LINE 651 "dist/build/PrintVisitCode" #-}                             )) of                      { _copy ->                      (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                              _copy-                             {-# LINE 616 "dist/build/PrintVisitCode" #-}+                             {-# LINE 656 "dist/build/PrintVisitCode" #-}                              )) of                       { _lhsOcopy ->-                      ( _lhsOcopy) }) }) }))+                      (case ((Syn_Pattern _lhsOcopy)) of+                       { ___node ->+                       ( _lhsOcopy) }) }) }) })) sem_Pattern_Irrefutable :: T_Pattern ->                            T_Pattern sem_Pattern_Irrefutable (T_Pattern pat_) =@@ -623,15 +665,17 @@                 { ( _patIcopy) ->                     (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                             Irrefutable _patIcopy-                            {-# LINE 627 "dist/build/PrintVisitCode" #-}+                            {-# LINE 669 "dist/build/PrintVisitCode" #-}                             )) of                      { _copy ->                      (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                              _copy-                             {-# LINE 632 "dist/build/PrintVisitCode" #-}+                             {-# LINE 674 "dist/build/PrintVisitCode" #-}                              )) of                       { _lhsOcopy ->-                      ( _lhsOcopy) }) }) }))+                      (case ((Syn_Pattern _lhsOcopy)) of+                       { ___node ->+                       ( _lhsOcopy) }) }) }) })) sem_Pattern_Product :: Pos ->                        T_Patterns ->                        T_Pattern@@ -640,29 +684,33 @@                 { ( _patsIcopy) ->                     (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                             Product pos_ _patsIcopy-                            {-# LINE 644 "dist/build/PrintVisitCode" #-}+                            {-# LINE 688 "dist/build/PrintVisitCode" #-}                             )) of                      { _copy ->                      (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                              _copy-                             {-# LINE 649 "dist/build/PrintVisitCode" #-}+                             {-# LINE 693 "dist/build/PrintVisitCode" #-}                              )) of                       { _lhsOcopy ->-                      ( _lhsOcopy) }) }) }))+                      (case ((Syn_Pattern _lhsOcopy)) of+                       { ___node ->+                       ( _lhsOcopy) }) }) }) })) sem_Pattern_Underscore :: Pos ->                           T_Pattern sem_Pattern_Underscore pos_ =     (T_Pattern (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                        Underscore pos_-                       {-# LINE 658 "dist/build/PrintVisitCode" #-}+                       {-# LINE 704 "dist/build/PrintVisitCode" #-}                        )) of                 { _copy ->                 (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                         _copy-                        {-# LINE 663 "dist/build/PrintVisitCode" #-}+                        {-# LINE 709 "dist/build/PrintVisitCode" #-}                         )) of                  { _lhsOcopy ->-                 ( _lhsOcopy) }) }))+                 (case ((Syn_Pattern _lhsOcopy)) of+                  { ___node ->+                  ( _lhsOcopy) }) }) })) -- Patterns ---------------------------------------------------- {-    visit 0:@@ -703,28 +751,32 @@                       { ( _hdIcopy) ->                           (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                   (:) _hdIcopy _tlIcopy-                                  {-# LINE 707 "dist/build/PrintVisitCode" #-}+                                  {-# LINE 755 "dist/build/PrintVisitCode" #-}                                   )) of                            { _copy ->                            (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                                    _copy-                                   {-# LINE 712 "dist/build/PrintVisitCode" #-}+                                   {-# LINE 760 "dist/build/PrintVisitCode" #-}                                    )) of                             { _lhsOcopy ->-                            ( _lhsOcopy) }) }) }) }))+                            (case ((Syn_Patterns _lhsOcopy)) of+                             { ___node ->+                             ( _lhsOcopy) }) }) }) }) })) sem_Patterns_Nil :: T_Patterns sem_Patterns_Nil =     (T_Patterns (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                         []-                        {-# LINE 720 "dist/build/PrintVisitCode" #-}+                        {-# LINE 770 "dist/build/PrintVisitCode" #-}                         )) of                  { _copy ->                  (case (({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 725 "dist/build/PrintVisitCode" #-}+                         {-# LINE 775 "dist/build/PrintVisitCode" #-}                          )) of                   { _lhsOcopy ->-                  ( _lhsOcopy) }) }))+                  (case ((Syn_Patterns _lhsOcopy)) of+                   { ___node ->+                   ( _lhsOcopy) }) }) })) -- Sequence ---------------------------------------------------- {-    alternatives:@@ -752,7 +804,11 @@                      T_Sequence ->                      T_Sequence sem_Sequence_Cons (T_CRule hd_) (T_Sequence tl_) =-    (T_Sequence ( ))+    (T_Sequence (case ((Syn_Sequence)) of+                 { ___node ->+                 ( ) })) sem_Sequence_Nil :: T_Sequence sem_Sequence_Nil =-    (T_Sequence ( ))+    (T_Sequence (case ((Syn_Sequence)) of+                 { ___node ->+                 ( ) }))
src-derived/ResolveLocals.hs view
@@ -162,6 +162,8 @@                             _output                             {-# LINE 164 "dist/build/ResolveLocals" #-}                             )+                       ___node =+                           (Syn_Child _lhsOattributes _lhsOfield _lhsOoutput)                    in  ( _lhsOattributes,_lhsOfield,_lhsOoutput)))) -- Children ---------------------------------------------------- {-@@ -263,150 +265,152 @@                           _lhsOfields =                               ({-# LINE 90 "src-ag/ResolveLocals.ag" #-}                                _hdIfield : _tlIfields-                               {-# LINE 267 "dist/build/ResolveLocals" #-}+                               {-# LINE 269 "dist/build/ResolveLocals" #-}                                )                           -- use rule "src-ag/ResolveLocals.ag"(line 82, column 32)                           _lhsOattributes =                               ({-# LINE 82 "src-ag/ResolveLocals.ag" #-}                                _hdIattributes ++ _tlIattributes-                               {-# LINE 273 "dist/build/ResolveLocals" #-}+                               {-# LINE 275 "dist/build/ResolveLocals" #-}                                )                           -- self rule                           _output =                               ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                (:) _hdIoutput _tlIoutput-                               {-# LINE 279 "dist/build/ResolveLocals" #-}+                               {-# LINE 281 "dist/build/ResolveLocals" #-}                                )                           -- self rule                           _lhsOoutput =                               ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                _output-                               {-# LINE 285 "dist/build/ResolveLocals" #-}+                               {-# LINE 287 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _hdOallfields =                               ({-# LINE 71 "src-ag/ResolveLocals.ag" #-}                                _lhsIallfields-                               {-# LINE 291 "dist/build/ResolveLocals" #-}+                               {-# LINE 293 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _hdOallnts =                               ({-# LINE 57 "src-ag/ResolveLocals.ag" #-}                                _lhsIallnts-                               {-# LINE 297 "dist/build/ResolveLocals" #-}+                               {-# LINE 299 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _hdOattrs =                               ({-# LINE 71 "src-ag/ResolveLocals.ag" #-}                                _lhsIattrs-                               {-# LINE 303 "dist/build/ResolveLocals" #-}+                               {-# LINE 305 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _hdOcon =                               ({-# LINE 105 "src-ag/ResolveLocals.ag" #-}                                _lhsIcon-                               {-# LINE 309 "dist/build/ResolveLocals" #-}+                               {-# LINE 311 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _hdOinh =                               ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                _lhsIinh-                               {-# LINE 315 "dist/build/ResolveLocals" #-}+                               {-# LINE 317 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _hdOinhMap =                               ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIinhMap-                               {-# LINE 321 "dist/build/ResolveLocals" #-}+                               {-# LINE 323 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _hdOmergeMap =                               ({-# LINE 131 "src-ag/ResolveLocals.ag" #-}                                _lhsImergeMap-                               {-# LINE 327 "dist/build/ResolveLocals" #-}+                               {-# LINE 329 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _hdOnt =                               ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                _lhsInt-                               {-# LINE 333 "dist/build/ResolveLocals" #-}+                               {-# LINE 335 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _hdOsyn =                               ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                _lhsIsyn-                               {-# LINE 339 "dist/build/ResolveLocals" #-}+                               {-# LINE 341 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _hdOsynMap =                               ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIsynMap-                               {-# LINE 345 "dist/build/ResolveLocals" #-}+                               {-# LINE 347 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _tlOallfields =                               ({-# LINE 71 "src-ag/ResolveLocals.ag" #-}                                _lhsIallfields-                               {-# LINE 351 "dist/build/ResolveLocals" #-}+                               {-# LINE 353 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _tlOallnts =                               ({-# LINE 57 "src-ag/ResolveLocals.ag" #-}                                _lhsIallnts-                               {-# LINE 357 "dist/build/ResolveLocals" #-}+                               {-# LINE 359 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _tlOattrs =                               ({-# LINE 71 "src-ag/ResolveLocals.ag" #-}                                _lhsIattrs-                               {-# LINE 363 "dist/build/ResolveLocals" #-}+                               {-# LINE 365 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _tlOcon =                               ({-# LINE 105 "src-ag/ResolveLocals.ag" #-}                                _lhsIcon-                               {-# LINE 369 "dist/build/ResolveLocals" #-}+                               {-# LINE 371 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _tlOinh =                               ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                _lhsIinh-                               {-# LINE 375 "dist/build/ResolveLocals" #-}+                               {-# LINE 377 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _tlOinhMap =                               ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIinhMap-                               {-# LINE 381 "dist/build/ResolveLocals" #-}+                               {-# LINE 383 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _tlOmergeMap =                               ({-# LINE 131 "src-ag/ResolveLocals.ag" #-}                                _lhsImergeMap-                               {-# LINE 387 "dist/build/ResolveLocals" #-}+                               {-# LINE 389 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _tlOnt =                               ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                _lhsInt-                               {-# LINE 393 "dist/build/ResolveLocals" #-}+                               {-# LINE 395 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _tlOsyn =                               ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                _lhsIsyn-                               {-# LINE 399 "dist/build/ResolveLocals" #-}+                               {-# LINE 401 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _tlOsynMap =                               ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIsynMap-                               {-# LINE 405 "dist/build/ResolveLocals" #-}+                               {-# LINE 407 "dist/build/ResolveLocals" #-}                                )                           ( _hdIattributes,_hdIfield,_hdIoutput) =                               hd_ _hdOallfields _hdOallnts _hdOattrs _hdOcon _hdOinh _hdOinhMap _hdOmergeMap _hdOnt _hdOsyn _hdOsynMap                           ( _tlIattributes,_tlIfields,_tlIoutput) =                               tl_ _tlOallfields _tlOallnts _tlOattrs _tlOcon _tlOinh _tlOinhMap _tlOmergeMap _tlOnt _tlOsyn _tlOsynMap+                          ___node =+                              (Syn_Children _lhsOattributes _lhsOfields _lhsOoutput)                       in  ( _lhsOattributes,_lhsOfields,_lhsOoutput)))) sem_Children_Nil :: T_Children sem_Children_Nil =@@ -427,26 +431,28 @@                           _lhsOfields =                               ({-# LINE 91 "src-ag/ResolveLocals.ag" #-}                                []-                               {-# LINE 431 "dist/build/ResolveLocals" #-}+                               {-# LINE 435 "dist/build/ResolveLocals" #-}                                )                           -- use rule "src-ag/ResolveLocals.ag"(line 82, column 32)                           _lhsOattributes =                               ({-# LINE 82 "src-ag/ResolveLocals.ag" #-}                                []-                               {-# LINE 437 "dist/build/ResolveLocals" #-}+                               {-# LINE 441 "dist/build/ResolveLocals" #-}                                )                           -- self rule                           _output =                               ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                []-                               {-# LINE 443 "dist/build/ResolveLocals" #-}+                               {-# LINE 447 "dist/build/ResolveLocals" #-}                                )                           -- self rule                           _lhsOoutput =                               ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                _output-                               {-# LINE 449 "dist/build/ResolveLocals" #-}+                               {-# LINE 453 "dist/build/ResolveLocals" #-}                                )+                          ___node =+                              (Syn_Children _lhsOattributes _lhsOfields _lhsOoutput)                       in  ( _lhsOattributes,_lhsOfields,_lhsOoutput)))) -- Expression -------------------------------------------------- {-@@ -520,26 +526,28 @@                                                  }                                      synthesized = wrap_HsTokensRoot (sem_HsTokensRoot (HsTokensRoot tks_)) inherited                                  in (errors_Syn_HsTokensRoot synthesized, output_Syn_HsTokensRoot synthesized)-                                 {-# LINE 524 "dist/build/ResolveLocals" #-}+                                 {-# LINE 530 "dist/build/ResolveLocals" #-}                                  )                             -- "src-ag/ResolveLocals.ag"(line 157, column 17)                             _lhsOoutput =                                 ({-# LINE 157 "src-ag/ResolveLocals.ag" #-}                                  Expression pos_ _newTks-                                 {-# LINE 530 "dist/build/ResolveLocals" #-}+                                 {-# LINE 536 "dist/build/ResolveLocals" #-}                                  )                             -- use rule "src-ag/ResolveLocals.ag"(line 44, column 16)                             _lhsOerrors =                                 ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                                  _errors-                                 {-# LINE 536 "dist/build/ResolveLocals" #-}+                                 {-# LINE 542 "dist/build/ResolveLocals" #-}                                  )                             -- self rule                             _output =                                 ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                  Expression pos_ tks_-                                 {-# LINE 542 "dist/build/ResolveLocals" #-}+                                 {-# LINE 548 "dist/build/ResolveLocals" #-}                                  )+                            ___node =+                                (Syn_Expression _lhsOerrors _lhsOoutput)                         in  ( _lhsOerrors,_lhsOoutput)))) -- Grammar ----------------------------------------------------- {-@@ -617,52 +625,54 @@                          _nontsOallnts =                              ({-# LINE 60 "src-ag/ResolveLocals.ag" #-}                               map fst (_nontsInonts)-                              {-# LINE 621 "dist/build/ResolveLocals" #-}+                              {-# LINE 629 "dist/build/ResolveLocals" #-}                               )                          -- "src-ag/ResolveLocals.ag"(line 120, column 14)                          _nontsOmergeMap =                              ({-# LINE 120 "src-ag/ResolveLocals.ag" #-}                               Map.map (Map.map (Map.map (\(nt,srcs,_) -> (nt,srcs)))) mergeMap_-                              {-# LINE 627 "dist/build/ResolveLocals" #-}+                              {-# LINE 635 "dist/build/ResolveLocals" #-}                               )                          -- "src-ag/DistChildAttr.ag"(line 15, column 13)                          _nontsOinhMap =                              ({-# LINE 15 "src-ag/DistChildAttr.ag" #-}                               _nontsIinhMap'-                              {-# LINE 633 "dist/build/ResolveLocals" #-}+                              {-# LINE 641 "dist/build/ResolveLocals" #-}                               )                          -- "src-ag/DistChildAttr.ag"(line 16, column 13)                          _nontsOsynMap =                              ({-# LINE 16 "src-ag/DistChildAttr.ag" #-}                               _nontsIsynMap'-                              {-# LINE 639 "dist/build/ResolveLocals" #-}+                              {-# LINE 647 "dist/build/ResolveLocals" #-}                               )                          -- use rule "src-ag/ResolveLocals.ag"(line 44, column 16)                          _lhsOerrors =                              ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                               _nontsIerrors-                              {-# LINE 645 "dist/build/ResolveLocals" #-}+                              {-# LINE 653 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _output =                              ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                               Grammar typeSyns_ useMap_ derivings_ wrappers_ _nontsIoutput pragmas_ manualAttrOrderMap_ paramMap_ contextMap_ quantMap_ uniqueMap_ augmentsMap_ aroundsMap_ mergeMap_-                              {-# LINE 651 "dist/build/ResolveLocals" #-}+                              {-# LINE 659 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _lhsOoutput =                              ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                               _output-                              {-# LINE 657 "dist/build/ResolveLocals" #-}+                              {-# LINE 665 "dist/build/ResolveLocals" #-}                               )                          -- copy rule (down)                          _nontsOoptions =                              ({-# LINE 41 "src-ag/ResolveLocals.ag" #-}                               _lhsIoptions-                              {-# LINE 663 "dist/build/ResolveLocals" #-}+                              {-# LINE 671 "dist/build/ResolveLocals" #-}                               )                          ( _nontsIerrors,_nontsIinhMap',_nontsInonts,_nontsIoutput,_nontsIsynMap') =                              nonts_ _nontsOallnts _nontsOinhMap _nontsOmergeMap _nontsOoptions _nontsOsynMap+                         ___node =+                             (Syn_Grammar _lhsOerrors _lhsOoutput)                      in  ( _lhsOerrors,_lhsOoutput)))) -- Nonterminal ------------------------------------------------- {-@@ -742,94 +752,96 @@                              _lhsOnonts =                                  ({-# LINE 64 "src-ag/ResolveLocals.ag" #-}                                   [(nt_,_prodsIcons)]-                                  {-# LINE 746 "dist/build/ResolveLocals" #-}+                                  {-# LINE 756 "dist/build/ResolveLocals" #-}                                   )                              -- "src-ag/ResolveLocals.ag"(line 112, column 17)                              _prodsOnt =                                  ({-# LINE 112 "src-ag/ResolveLocals.ag" #-}                                   nt_-                                  {-# LINE 752 "dist/build/ResolveLocals" #-}+                                  {-# LINE 762 "dist/build/ResolveLocals" #-}                                   )                              -- "src-ag/ResolveLocals.ag"(line 115, column 17)                              _prodsOinh =                                  ({-# LINE 115 "src-ag/ResolveLocals.ag" #-}                                   inh_-                                  {-# LINE 758 "dist/build/ResolveLocals" #-}+                                  {-# LINE 768 "dist/build/ResolveLocals" #-}                                   )                              -- "src-ag/ResolveLocals.ag"(line 116, column 17)                              _prodsOsyn =                                  ({-# LINE 116 "src-ag/ResolveLocals.ag" #-}                                   syn_-                                  {-# LINE 764 "dist/build/ResolveLocals" #-}+                                  {-# LINE 774 "dist/build/ResolveLocals" #-}                                   )                              -- "src-ag/ResolveLocals.ag"(line 128, column 32)                              _mergeMap =                                  ({-# LINE 128 "src-ag/ResolveLocals.ag" #-}                                   Map.findWithDefault Map.empty nt_ _lhsImergeMap-                                  {-# LINE 770 "dist/build/ResolveLocals" #-}+                                  {-# LINE 780 "dist/build/ResolveLocals" #-}                                   )                              -- "src-ag/DistChildAttr.ag"(line 7, column 18)                              _lhsOinhMap' =                                  ({-# LINE 7 "src-ag/DistChildAttr.ag" #-}                                   Map.singleton nt_ inh_-                                  {-# LINE 776 "dist/build/ResolveLocals" #-}+                                  {-# LINE 786 "dist/build/ResolveLocals" #-}                                   )                              -- "src-ag/DistChildAttr.ag"(line 8, column 18)                              _lhsOsynMap' =                                  ({-# LINE 8 "src-ag/DistChildAttr.ag" #-}                                   Map.singleton nt_ syn_-                                  {-# LINE 782 "dist/build/ResolveLocals" #-}+                                  {-# LINE 792 "dist/build/ResolveLocals" #-}                                   )                              -- use rule "src-ag/ResolveLocals.ag"(line 44, column 16)                              _lhsOerrors =                                  ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                                   _prodsIerrors-                                  {-# LINE 788 "dist/build/ResolveLocals" #-}+                                  {-# LINE 798 "dist/build/ResolveLocals" #-}                                   )                              -- self rule                              _output =                                  ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                   Nonterminal nt_ params_ inh_ syn_ _prodsIoutput-                                  {-# LINE 794 "dist/build/ResolveLocals" #-}+                                  {-# LINE 804 "dist/build/ResolveLocals" #-}                                   )                              -- self rule                              _lhsOoutput =                                  ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                   _output-                                  {-# LINE 800 "dist/build/ResolveLocals" #-}+                                  {-# LINE 810 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _prodsOallnts =                                  ({-# LINE 57 "src-ag/ResolveLocals.ag" #-}                                   _lhsIallnts-                                  {-# LINE 806 "dist/build/ResolveLocals" #-}+                                  {-# LINE 816 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _prodsOinhMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIinhMap-                                  {-# LINE 812 "dist/build/ResolveLocals" #-}+                                  {-# LINE 822 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (from local)                              _prodsOmergeMap =                                  ({-# LINE 126 "src-ag/ResolveLocals.ag" #-}                                   _mergeMap-                                  {-# LINE 818 "dist/build/ResolveLocals" #-}+                                  {-# LINE 828 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _prodsOoptions =                                  ({-# LINE 41 "src-ag/ResolveLocals.ag" #-}                                   _lhsIoptions-                                  {-# LINE 824 "dist/build/ResolveLocals" #-}+                                  {-# LINE 834 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _prodsOsynMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIsynMap-                                  {-# LINE 830 "dist/build/ResolveLocals" #-}+                                  {-# LINE 840 "dist/build/ResolveLocals" #-}                                   )                              ( _prodsIcons,_prodsIerrors,_prodsIoutput) =                                  prods_ _prodsOallnts _prodsOinh _prodsOinhMap _prodsOmergeMap _prodsOnt _prodsOoptions _prodsOsyn _prodsOsynMap+                             ___node =+                                 (Syn_Nonterminal _lhsOerrors _lhsOinhMap' _lhsOnonts _lhsOoutput _lhsOsynMap')                          in  ( _lhsOerrors,_lhsOinhMap',_lhsOnonts,_lhsOoutput,_lhsOsynMap')))) -- Nonterminals ------------------------------------------------ {-@@ -914,102 +926,104 @@                               _lhsOerrors =                                   ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                                    _hdIerrors Seq.>< _tlIerrors-                                   {-# LINE 918 "dist/build/ResolveLocals" #-}+                                   {-# LINE 930 "dist/build/ResolveLocals" #-}                                    )                               -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)                               _lhsOinhMap' =                                   ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                    _hdIinhMap' `Map.union` _tlIinhMap'-                                   {-# LINE 924 "dist/build/ResolveLocals" #-}+                                   {-# LINE 936 "dist/build/ResolveLocals" #-}                                    )                               -- use rule "src-ag/ResolveLocals.ag"(line 62, column 43)                               _lhsOnonts =                                   ({-# LINE 62 "src-ag/ResolveLocals.ag" #-}                                    _hdInonts ++ _tlInonts-                                   {-# LINE 930 "dist/build/ResolveLocals" #-}+                                   {-# LINE 942 "dist/build/ResolveLocals" #-}                                    )                               -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)                               _lhsOsynMap' =                                   ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                    _hdIsynMap' `Map.union` _tlIsynMap'-                                   {-# LINE 936 "dist/build/ResolveLocals" #-}+                                   {-# LINE 948 "dist/build/ResolveLocals" #-}                                    )                               -- self rule                               _output =                                   ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                    (:) _hdIoutput _tlIoutput-                                   {-# LINE 942 "dist/build/ResolveLocals" #-}+                                   {-# LINE 954 "dist/build/ResolveLocals" #-}                                    )                               -- self rule                               _lhsOoutput =                                   ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                    _output-                                   {-# LINE 948 "dist/build/ResolveLocals" #-}+                                   {-# LINE 960 "dist/build/ResolveLocals" #-}                                    )                               -- copy rule (down)                               _hdOallnts =                                   ({-# LINE 57 "src-ag/ResolveLocals.ag" #-}                                    _lhsIallnts-                                   {-# LINE 954 "dist/build/ResolveLocals" #-}+                                   {-# LINE 966 "dist/build/ResolveLocals" #-}                                    )                               -- copy rule (down)                               _hdOinhMap =                                   ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                    _lhsIinhMap-                                   {-# LINE 960 "dist/build/ResolveLocals" #-}+                                   {-# LINE 972 "dist/build/ResolveLocals" #-}                                    )                               -- copy rule (down)                               _hdOmergeMap =                                   ({-# LINE 123 "src-ag/ResolveLocals.ag" #-}                                    _lhsImergeMap-                                   {-# LINE 966 "dist/build/ResolveLocals" #-}+                                   {-# LINE 978 "dist/build/ResolveLocals" #-}                                    )                               -- copy rule (down)                               _hdOoptions =                                   ({-# LINE 41 "src-ag/ResolveLocals.ag" #-}                                    _lhsIoptions-                                   {-# LINE 972 "dist/build/ResolveLocals" #-}+                                   {-# LINE 984 "dist/build/ResolveLocals" #-}                                    )                               -- copy rule (down)                               _hdOsynMap =                                   ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                    _lhsIsynMap-                                   {-# LINE 978 "dist/build/ResolveLocals" #-}+                                   {-# LINE 990 "dist/build/ResolveLocals" #-}                                    )                               -- copy rule (down)                               _tlOallnts =                                   ({-# LINE 57 "src-ag/ResolveLocals.ag" #-}                                    _lhsIallnts-                                   {-# LINE 984 "dist/build/ResolveLocals" #-}+                                   {-# LINE 996 "dist/build/ResolveLocals" #-}                                    )                               -- copy rule (down)                               _tlOinhMap =                                   ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                    _lhsIinhMap-                                   {-# LINE 990 "dist/build/ResolveLocals" #-}+                                   {-# LINE 1002 "dist/build/ResolveLocals" #-}                                    )                               -- copy rule (down)                               _tlOmergeMap =                                   ({-# LINE 123 "src-ag/ResolveLocals.ag" #-}                                    _lhsImergeMap-                                   {-# LINE 996 "dist/build/ResolveLocals" #-}+                                   {-# LINE 1008 "dist/build/ResolveLocals" #-}                                    )                               -- copy rule (down)                               _tlOoptions =                                   ({-# LINE 41 "src-ag/ResolveLocals.ag" #-}                                    _lhsIoptions-                                   {-# LINE 1002 "dist/build/ResolveLocals" #-}+                                   {-# LINE 1014 "dist/build/ResolveLocals" #-}                                    )                               -- copy rule (down)                               _tlOsynMap =                                   ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                    _lhsIsynMap-                                   {-# LINE 1008 "dist/build/ResolveLocals" #-}+                                   {-# LINE 1020 "dist/build/ResolveLocals" #-}                                    )                               ( _hdIerrors,_hdIinhMap',_hdInonts,_hdIoutput,_hdIsynMap') =                                   hd_ _hdOallnts _hdOinhMap _hdOmergeMap _hdOoptions _hdOsynMap                               ( _tlIerrors,_tlIinhMap',_tlInonts,_tlIoutput,_tlIsynMap') =                                   tl_ _tlOallnts _tlOinhMap _tlOmergeMap _tlOoptions _tlOsynMap+                              ___node =+                                  (Syn_Nonterminals _lhsOerrors _lhsOinhMap' _lhsOnonts _lhsOoutput _lhsOsynMap')                           in  ( _lhsOerrors,_lhsOinhMap',_lhsOnonts,_lhsOoutput,_lhsOsynMap')))) sem_Nonterminals_Nil :: T_Nonterminals sem_Nonterminals_Nil =@@ -1027,38 +1041,40 @@                               _lhsOerrors =                                   ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                                    Seq.empty-                                   {-# LINE 1031 "dist/build/ResolveLocals" #-}+                                   {-# LINE 1045 "dist/build/ResolveLocals" #-}                                    )                               -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)                               _lhsOinhMap' =                                   ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                    Map.empty-                                   {-# LINE 1037 "dist/build/ResolveLocals" #-}+                                   {-# LINE 1051 "dist/build/ResolveLocals" #-}                                    )                               -- use rule "src-ag/ResolveLocals.ag"(line 62, column 43)                               _lhsOnonts =                                   ({-# LINE 62 "src-ag/ResolveLocals.ag" #-}                                    []-                                   {-# LINE 1043 "dist/build/ResolveLocals" #-}+                                   {-# LINE 1057 "dist/build/ResolveLocals" #-}                                    )                               -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)                               _lhsOsynMap' =                                   ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                    Map.empty-                                   {-# LINE 1049 "dist/build/ResolveLocals" #-}+                                   {-# LINE 1063 "dist/build/ResolveLocals" #-}                                    )                               -- self rule                               _output =                                   ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                    []-                                   {-# LINE 1055 "dist/build/ResolveLocals" #-}+                                   {-# LINE 1069 "dist/build/ResolveLocals" #-}                                    )                               -- self rule                               _lhsOoutput =                                   ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                    _output-                                   {-# LINE 1061 "dist/build/ResolveLocals" #-}+                                   {-# LINE 1075 "dist/build/ResolveLocals" #-}                                    )+                              ___node =+                                  (Syn_Nonterminals _lhsOerrors _lhsOinhMap' _lhsOnonts _lhsOoutput _lhsOsynMap')                           in  ( _lhsOerrors,_lhsOinhMap',_lhsOnonts,_lhsOoutput,_lhsOsynMap')))) -- Pattern ----------------------------------------------------- {-@@ -1161,7 +1177,7 @@                               if field_ == _LOC                                  then [attr_]                                  else []-                              {-# LINE 1165 "dist/build/ResolveLocals" #-}+                              {-# LINE 1181 "dist/build/ResolveLocals" #-}                               )                          -- "src-ag/ResolveLocals.ag"(line 99, column 14)                          _lhsOinstVars =@@ -1169,64 +1185,66 @@                               if field_ == _INST                                  then [attr_]                                  else []-                              {-# LINE 1173 "dist/build/ResolveLocals" #-}+                              {-# LINE 1189 "dist/build/ResolveLocals" #-}                               )                          -- use rule "src-ag/ResolveLocals.ag"(line 44, column 16)                          _lhsOerrors =                              ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                               _patIerrors-                              {-# LINE 1179 "dist/build/ResolveLocals" #-}+                              {-# LINE 1195 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _copy =                              ({-# LINE 22 "src-ag/Patterns.ag" #-}                               Alias field_ attr_ _patIcopy-                              {-# LINE 1185 "dist/build/ResolveLocals" #-}+                              {-# LINE 1201 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _output =                              ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                               Alias field_ attr_ _patIoutput-                              {-# LINE 1191 "dist/build/ResolveLocals" #-}+                              {-# LINE 1207 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _lhsOcopy =                              ({-# LINE 22 "src-ag/Patterns.ag" #-}                               _copy-                              {-# LINE 1197 "dist/build/ResolveLocals" #-}+                              {-# LINE 1213 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _lhsOoutput =                              ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                               _output-                              {-# LINE 1203 "dist/build/ResolveLocals" #-}+                              {-# LINE 1219 "dist/build/ResolveLocals" #-}                               )                          -- copy rule (down)                          _patOcon =                              ({-# LINE 105 "src-ag/ResolveLocals.ag" #-}                               _lhsIcon-                              {-# LINE 1209 "dist/build/ResolveLocals" #-}+                              {-# LINE 1225 "dist/build/ResolveLocals" #-}                               )                          -- copy rule (down)                          _patOinh =                              ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                               _lhsIinh-                              {-# LINE 1215 "dist/build/ResolveLocals" #-}+                              {-# LINE 1231 "dist/build/ResolveLocals" #-}                               )                          -- copy rule (down)                          _patOnt =                              ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                               _lhsInt-                              {-# LINE 1221 "dist/build/ResolveLocals" #-}+                              {-# LINE 1237 "dist/build/ResolveLocals" #-}                               )                          -- copy rule (down)                          _patOsyn =                              ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                               _lhsIsyn-                              {-# LINE 1227 "dist/build/ResolveLocals" #-}+                              {-# LINE 1243 "dist/build/ResolveLocals" #-}                               )                          ( _patIcopy,_patIerrors,_patIinstVars,_patIlocVars,_patIoutput) =                              pat_ _patOcon _patOinh _patOnt _patOsyn+                         ___node =+                             (Syn_Pattern _lhsOcopy _lhsOerrors _lhsOinstVars _lhsOlocVars _lhsOoutput)                      in  ( _lhsOcopy,_lhsOerrors,_lhsOinstVars,_lhsOlocVars,_lhsOoutput)))) sem_Pattern_Constr :: ConstructorIdent ->                       T_Patterns ->@@ -1254,70 +1272,72 @@                          _lhsOerrors =                              ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                               _patsIerrors-                              {-# LINE 1258 "dist/build/ResolveLocals" #-}+                              {-# LINE 1276 "dist/build/ResolveLocals" #-}                               )                          -- use rule "src-ag/ResolveLocals.ag"(line 93, column 86)                          _lhsOinstVars =                              ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                               _patsIinstVars-                              {-# LINE 1264 "dist/build/ResolveLocals" #-}+                              {-# LINE 1282 "dist/build/ResolveLocals" #-}                               )                          -- use rule "src-ag/ResolveLocals.ag"(line 93, column 48)                          _lhsOlocVars =                              ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                               _patsIlocVars-                              {-# LINE 1270 "dist/build/ResolveLocals" #-}+                              {-# LINE 1288 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _copy =                              ({-# LINE 22 "src-ag/Patterns.ag" #-}                               Constr name_ _patsIcopy-                              {-# LINE 1276 "dist/build/ResolveLocals" #-}+                              {-# LINE 1294 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _output =                              ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                               Constr name_ _patsIoutput-                              {-# LINE 1282 "dist/build/ResolveLocals" #-}+                              {-# LINE 1300 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _lhsOcopy =                              ({-# LINE 22 "src-ag/Patterns.ag" #-}                               _copy-                              {-# LINE 1288 "dist/build/ResolveLocals" #-}+                              {-# LINE 1306 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _lhsOoutput =                              ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                               _output-                              {-# LINE 1294 "dist/build/ResolveLocals" #-}+                              {-# LINE 1312 "dist/build/ResolveLocals" #-}                               )                          -- copy rule (down)                          _patsOcon =                              ({-# LINE 105 "src-ag/ResolveLocals.ag" #-}                               _lhsIcon-                              {-# LINE 1300 "dist/build/ResolveLocals" #-}+                              {-# LINE 1318 "dist/build/ResolveLocals" #-}                               )                          -- copy rule (down)                          _patsOinh =                              ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                               _lhsIinh-                              {-# LINE 1306 "dist/build/ResolveLocals" #-}+                              {-# LINE 1324 "dist/build/ResolveLocals" #-}                               )                          -- copy rule (down)                          _patsOnt =                              ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                               _lhsInt-                              {-# LINE 1312 "dist/build/ResolveLocals" #-}+                              {-# LINE 1330 "dist/build/ResolveLocals" #-}                               )                          -- copy rule (down)                          _patsOsyn =                              ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                               _lhsIsyn-                              {-# LINE 1318 "dist/build/ResolveLocals" #-}+                              {-# LINE 1336 "dist/build/ResolveLocals" #-}                               )                          ( _patsIcopy,_patsIerrors,_patsIinstVars,_patsIlocVars,_patsIoutput) =                              pats_ _patsOcon _patsOinh _patsOnt _patsOsyn+                         ___node =+                             (Syn_Pattern _lhsOcopy _lhsOerrors _lhsOinstVars _lhsOlocVars _lhsOoutput)                      in  ( _lhsOcopy,_lhsOerrors,_lhsOinstVars,_lhsOlocVars,_lhsOoutput)))) sem_Pattern_Irrefutable :: T_Pattern ->                            T_Pattern@@ -1344,70 +1364,72 @@                          _lhsOerrors =                              ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                               _patIerrors-                              {-# LINE 1348 "dist/build/ResolveLocals" #-}+                              {-# LINE 1368 "dist/build/ResolveLocals" #-}                               )                          -- use rule "src-ag/ResolveLocals.ag"(line 93, column 86)                          _lhsOinstVars =                              ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                               _patIinstVars-                              {-# LINE 1354 "dist/build/ResolveLocals" #-}+                              {-# LINE 1374 "dist/build/ResolveLocals" #-}                               )                          -- use rule "src-ag/ResolveLocals.ag"(line 93, column 48)                          _lhsOlocVars =                              ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                               _patIlocVars-                              {-# LINE 1360 "dist/build/ResolveLocals" #-}+                              {-# LINE 1380 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _copy =                              ({-# LINE 22 "src-ag/Patterns.ag" #-}                               Irrefutable _patIcopy-                              {-# LINE 1366 "dist/build/ResolveLocals" #-}+                              {-# LINE 1386 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _output =                              ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                               Irrefutable _patIoutput-                              {-# LINE 1372 "dist/build/ResolveLocals" #-}+                              {-# LINE 1392 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _lhsOcopy =                              ({-# LINE 22 "src-ag/Patterns.ag" #-}                               _copy-                              {-# LINE 1378 "dist/build/ResolveLocals" #-}+                              {-# LINE 1398 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _lhsOoutput =                              ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                               _output-                              {-# LINE 1384 "dist/build/ResolveLocals" #-}+                              {-# LINE 1404 "dist/build/ResolveLocals" #-}                               )                          -- copy rule (down)                          _patOcon =                              ({-# LINE 105 "src-ag/ResolveLocals.ag" #-}                               _lhsIcon-                              {-# LINE 1390 "dist/build/ResolveLocals" #-}+                              {-# LINE 1410 "dist/build/ResolveLocals" #-}                               )                          -- copy rule (down)                          _patOinh =                              ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                               _lhsIinh-                              {-# LINE 1396 "dist/build/ResolveLocals" #-}+                              {-# LINE 1416 "dist/build/ResolveLocals" #-}                               )                          -- copy rule (down)                          _patOnt =                              ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                               _lhsInt-                              {-# LINE 1402 "dist/build/ResolveLocals" #-}+                              {-# LINE 1422 "dist/build/ResolveLocals" #-}                               )                          -- copy rule (down)                          _patOsyn =                              ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                               _lhsIsyn-                              {-# LINE 1408 "dist/build/ResolveLocals" #-}+                              {-# LINE 1428 "dist/build/ResolveLocals" #-}                               )                          ( _patIcopy,_patIerrors,_patIinstVars,_patIlocVars,_patIoutput) =                              pat_ _patOcon _patOinh _patOnt _patOsyn+                         ___node =+                             (Syn_Pattern _lhsOcopy _lhsOerrors _lhsOinstVars _lhsOlocVars _lhsOoutput)                      in  ( _lhsOcopy,_lhsOerrors,_lhsOinstVars,_lhsOlocVars,_lhsOoutput)))) sem_Pattern_Product :: Pos ->                        T_Patterns ->@@ -1435,70 +1457,72 @@                          _lhsOerrors =                              ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                               _patsIerrors-                              {-# LINE 1439 "dist/build/ResolveLocals" #-}+                              {-# LINE 1461 "dist/build/ResolveLocals" #-}                               )                          -- use rule "src-ag/ResolveLocals.ag"(line 93, column 86)                          _lhsOinstVars =                              ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                               _patsIinstVars-                              {-# LINE 1445 "dist/build/ResolveLocals" #-}+                              {-# LINE 1467 "dist/build/ResolveLocals" #-}                               )                          -- use rule "src-ag/ResolveLocals.ag"(line 93, column 48)                          _lhsOlocVars =                              ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                               _patsIlocVars-                              {-# LINE 1451 "dist/build/ResolveLocals" #-}+                              {-# LINE 1473 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _copy =                              ({-# LINE 22 "src-ag/Patterns.ag" #-}                               Product pos_ _patsIcopy-                              {-# LINE 1457 "dist/build/ResolveLocals" #-}+                              {-# LINE 1479 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _output =                              ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                               Product pos_ _patsIoutput-                              {-# LINE 1463 "dist/build/ResolveLocals" #-}+                              {-# LINE 1485 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _lhsOcopy =                              ({-# LINE 22 "src-ag/Patterns.ag" #-}                               _copy-                              {-# LINE 1469 "dist/build/ResolveLocals" #-}+                              {-# LINE 1491 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _lhsOoutput =                              ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                               _output-                              {-# LINE 1475 "dist/build/ResolveLocals" #-}+                              {-# LINE 1497 "dist/build/ResolveLocals" #-}                               )                          -- copy rule (down)                          _patsOcon =                              ({-# LINE 105 "src-ag/ResolveLocals.ag" #-}                               _lhsIcon-                              {-# LINE 1481 "dist/build/ResolveLocals" #-}+                              {-# LINE 1503 "dist/build/ResolveLocals" #-}                               )                          -- copy rule (down)                          _patsOinh =                              ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                               _lhsIinh-                              {-# LINE 1487 "dist/build/ResolveLocals" #-}+                              {-# LINE 1509 "dist/build/ResolveLocals" #-}                               )                          -- copy rule (down)                          _patsOnt =                              ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                               _lhsInt-                              {-# LINE 1493 "dist/build/ResolveLocals" #-}+                              {-# LINE 1515 "dist/build/ResolveLocals" #-}                               )                          -- copy rule (down)                          _patsOsyn =                              ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                               _lhsIsyn-                              {-# LINE 1499 "dist/build/ResolveLocals" #-}+                              {-# LINE 1521 "dist/build/ResolveLocals" #-}                               )                          ( _patsIcopy,_patsIerrors,_patsIinstVars,_patsIlocVars,_patsIoutput) =                              pats_ _patsOcon _patsOinh _patsOnt _patsOsyn+                         ___node =+                             (Syn_Pattern _lhsOcopy _lhsOerrors _lhsOinstVars _lhsOlocVars _lhsOoutput)                      in  ( _lhsOcopy,_lhsOerrors,_lhsOinstVars,_lhsOlocVars,_lhsOoutput)))) sem_Pattern_Underscore :: Pos ->                           T_Pattern@@ -1516,44 +1540,46 @@                          _lhsOerrors =                              ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                               Seq.empty-                              {-# LINE 1520 "dist/build/ResolveLocals" #-}+                              {-# LINE 1544 "dist/build/ResolveLocals" #-}                               )                          -- use rule "src-ag/ResolveLocals.ag"(line 93, column 86)                          _lhsOinstVars =                              ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                               []-                              {-# LINE 1526 "dist/build/ResolveLocals" #-}+                              {-# LINE 1550 "dist/build/ResolveLocals" #-}                               )                          -- use rule "src-ag/ResolveLocals.ag"(line 93, column 48)                          _lhsOlocVars =                              ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                               []-                              {-# LINE 1532 "dist/build/ResolveLocals" #-}+                              {-# LINE 1556 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _copy =                              ({-# LINE 22 "src-ag/Patterns.ag" #-}                               Underscore pos_-                              {-# LINE 1538 "dist/build/ResolveLocals" #-}+                              {-# LINE 1562 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _output =                              ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                               Underscore pos_-                              {-# LINE 1544 "dist/build/ResolveLocals" #-}+                              {-# LINE 1568 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _lhsOcopy =                              ({-# LINE 22 "src-ag/Patterns.ag" #-}                               _copy-                              {-# LINE 1550 "dist/build/ResolveLocals" #-}+                              {-# LINE 1574 "dist/build/ResolveLocals" #-}                               )                          -- self rule                          _lhsOoutput =                              ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                               _output-                              {-# LINE 1556 "dist/build/ResolveLocals" #-}+                              {-# LINE 1580 "dist/build/ResolveLocals" #-}                               )+                         ___node =+                             (Syn_Pattern _lhsOcopy _lhsOerrors _lhsOinstVars _lhsOlocVars _lhsOoutput)                      in  ( _lhsOcopy,_lhsOerrors,_lhsOinstVars,_lhsOlocVars,_lhsOoutput)))) -- Patterns ---------------------------------------------------- {-@@ -1635,96 +1661,98 @@                           _lhsOerrors =                               ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                                _hdIerrors Seq.>< _tlIerrors-                               {-# LINE 1639 "dist/build/ResolveLocals" #-}+                               {-# LINE 1665 "dist/build/ResolveLocals" #-}                                )                           -- use rule "src-ag/ResolveLocals.ag"(line 93, column 86)                           _lhsOinstVars =                               ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                                _hdIinstVars ++ _tlIinstVars-                               {-# LINE 1645 "dist/build/ResolveLocals" #-}+                               {-# LINE 1671 "dist/build/ResolveLocals" #-}                                )                           -- use rule "src-ag/ResolveLocals.ag"(line 93, column 48)                           _lhsOlocVars =                               ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                                _hdIlocVars ++ _tlIlocVars-                               {-# LINE 1651 "dist/build/ResolveLocals" #-}+                               {-# LINE 1677 "dist/build/ResolveLocals" #-}                                )                           -- self rule                           _copy =                               ({-# LINE 22 "src-ag/Patterns.ag" #-}                                (:) _hdIcopy _tlIcopy-                               {-# LINE 1657 "dist/build/ResolveLocals" #-}+                               {-# LINE 1683 "dist/build/ResolveLocals" #-}                                )                           -- self rule                           _output =                               ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                (:) _hdIoutput _tlIoutput-                               {-# LINE 1663 "dist/build/ResolveLocals" #-}+                               {-# LINE 1689 "dist/build/ResolveLocals" #-}                                )                           -- self rule                           _lhsOcopy =                               ({-# LINE 22 "src-ag/Patterns.ag" #-}                                _copy-                               {-# LINE 1669 "dist/build/ResolveLocals" #-}+                               {-# LINE 1695 "dist/build/ResolveLocals" #-}                                )                           -- self rule                           _lhsOoutput =                               ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                _output-                               {-# LINE 1675 "dist/build/ResolveLocals" #-}+                               {-# LINE 1701 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _hdOcon =                               ({-# LINE 105 "src-ag/ResolveLocals.ag" #-}                                _lhsIcon-                               {-# LINE 1681 "dist/build/ResolveLocals" #-}+                               {-# LINE 1707 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _hdOinh =                               ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                _lhsIinh-                               {-# LINE 1687 "dist/build/ResolveLocals" #-}+                               {-# LINE 1713 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _hdOnt =                               ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                _lhsInt-                               {-# LINE 1693 "dist/build/ResolveLocals" #-}+                               {-# LINE 1719 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _hdOsyn =                               ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                _lhsIsyn-                               {-# LINE 1699 "dist/build/ResolveLocals" #-}+                               {-# LINE 1725 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _tlOcon =                               ({-# LINE 105 "src-ag/ResolveLocals.ag" #-}                                _lhsIcon-                               {-# LINE 1705 "dist/build/ResolveLocals" #-}+                               {-# LINE 1731 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _tlOinh =                               ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                _lhsIinh-                               {-# LINE 1711 "dist/build/ResolveLocals" #-}+                               {-# LINE 1737 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _tlOnt =                               ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                _lhsInt-                               {-# LINE 1717 "dist/build/ResolveLocals" #-}+                               {-# LINE 1743 "dist/build/ResolveLocals" #-}                                )                           -- copy rule (down)                           _tlOsyn =                               ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                _lhsIsyn-                               {-# LINE 1723 "dist/build/ResolveLocals" #-}+                               {-# LINE 1749 "dist/build/ResolveLocals" #-}                                )                           ( _hdIcopy,_hdIerrors,_hdIinstVars,_hdIlocVars,_hdIoutput) =                               hd_ _hdOcon _hdOinh _hdOnt _hdOsyn                           ( _tlIcopy,_tlIerrors,_tlIinstVars,_tlIlocVars,_tlIoutput) =                               tl_ _tlOcon _tlOinh _tlOnt _tlOsyn+                          ___node =+                              (Syn_Patterns _lhsOcopy _lhsOerrors _lhsOinstVars _lhsOlocVars _lhsOoutput)                       in  ( _lhsOcopy,_lhsOerrors,_lhsOinstVars,_lhsOlocVars,_lhsOoutput)))) sem_Patterns_Nil :: T_Patterns sem_Patterns_Nil =@@ -1741,44 +1769,46 @@                           _lhsOerrors =                               ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                                Seq.empty-                               {-# LINE 1745 "dist/build/ResolveLocals" #-}+                               {-# LINE 1773 "dist/build/ResolveLocals" #-}                                )                           -- use rule "src-ag/ResolveLocals.ag"(line 93, column 86)                           _lhsOinstVars =                               ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                                []-                               {-# LINE 1751 "dist/build/ResolveLocals" #-}+                               {-# LINE 1779 "dist/build/ResolveLocals" #-}                                )                           -- use rule "src-ag/ResolveLocals.ag"(line 93, column 48)                           _lhsOlocVars =                               ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                                []-                               {-# LINE 1757 "dist/build/ResolveLocals" #-}+                               {-# LINE 1785 "dist/build/ResolveLocals" #-}                                )                           -- self rule                           _copy =                               ({-# LINE 22 "src-ag/Patterns.ag" #-}                                []-                               {-# LINE 1763 "dist/build/ResolveLocals" #-}+                               {-# LINE 1791 "dist/build/ResolveLocals" #-}                                )                           -- self rule                           _output =                               ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                []-                               {-# LINE 1769 "dist/build/ResolveLocals" #-}+                               {-# LINE 1797 "dist/build/ResolveLocals" #-}                                )                           -- self rule                           _lhsOcopy =                               ({-# LINE 22 "src-ag/Patterns.ag" #-}                                _copy-                               {-# LINE 1775 "dist/build/ResolveLocals" #-}+                               {-# LINE 1803 "dist/build/ResolveLocals" #-}                                )                           -- self rule                           _lhsOoutput =                               ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                _output-                               {-# LINE 1781 "dist/build/ResolveLocals" #-}+                               {-# LINE 1809 "dist/build/ResolveLocals" #-}                                )+                          ___node =+                              (Syn_Patterns _lhsOcopy _lhsOerrors _lhsOinstVars _lhsOlocVars _lhsOoutput)                       in  ( _lhsOcopy,_lhsOerrors,_lhsOinstVars,_lhsOlocVars,_lhsOoutput)))) -- Production -------------------------------------------------- {-@@ -1887,13 +1917,13 @@                             _lhsOcons =                                 ({-# LINE 67 "src-ag/ResolveLocals.ag" #-}                                  [con_]-                                 {-# LINE 1891 "dist/build/ResolveLocals" #-}+                                 {-# LINE 1921 "dist/build/ResolveLocals" #-}                                  )                             -- "src-ag/ResolveLocals.ag"(line 74, column 16)                             _allfields =                                 ({-# LINE 74 "src-ag/ResolveLocals.ag" #-}                                  _childrenIfields-                                 {-# LINE 1897 "dist/build/ResolveLocals" #-}+                                 {-# LINE 1927 "dist/build/ResolveLocals" #-}                                  )                             -- "src-ag/ResolveLocals.ag"(line 74, column 16)                             _attrs =@@ -1902,157 +1932,157 @@                                  map ((,) _INST) _rulesIinstVars ++                                  map ((,) _LHS)  _inhnames ++                                  concat [map ((,) nm) (Map.keys as) | (nm,_,as) <- _childrenIattributes]-                                 {-# LINE 1906 "dist/build/ResolveLocals" #-}+                                 {-# LINE 1936 "dist/build/ResolveLocals" #-}                                  )                             -- "src-ag/ResolveLocals.ag"(line 74, column 16)                             _inhnames =                                 ({-# LINE 79 "src-ag/ResolveLocals.ag" #-}                                  Map.keys _lhsIinh-                                 {-# LINE 1912 "dist/build/ResolveLocals" #-}+                                 {-# LINE 1942 "dist/build/ResolveLocals" #-}                                  )                             -- "src-ag/ResolveLocals.ag"(line 74, column 16)                             _synnames =                                 ({-# LINE 80 "src-ag/ResolveLocals.ag" #-}                                  Map.keys _lhsIsyn-                                 {-# LINE 1918 "dist/build/ResolveLocals" #-}+                                 {-# LINE 1948 "dist/build/ResolveLocals" #-}                                  )                             -- "src-ag/ResolveLocals.ag"(line 108, column 16)                             _childrenOcon =                                 ({-# LINE 108 "src-ag/ResolveLocals.ag" #-}                                  con_-                                 {-# LINE 1924 "dist/build/ResolveLocals" #-}+                                 {-# LINE 1954 "dist/build/ResolveLocals" #-}                                  )                             -- "src-ag/ResolveLocals.ag"(line 110, column 16)                             _rulesOcon =                                 ({-# LINE 110 "src-ag/ResolveLocals.ag" #-}                                  con_-                                 {-# LINE 1930 "dist/build/ResolveLocals" #-}+                                 {-# LINE 1960 "dist/build/ResolveLocals" #-}                                  )                             -- "src-ag/ResolveLocals.ag"(line 129, column 32)                             _mergeMap =                                 ({-# LINE 129 "src-ag/ResolveLocals.ag" #-}                                  Map.findWithDefault Map.empty con_ _lhsImergeMap-                                 {-# LINE 1936 "dist/build/ResolveLocals" #-}+                                 {-# LINE 1966 "dist/build/ResolveLocals" #-}                                  )                             -- use rule "src-ag/ResolveLocals.ag"(line 44, column 16)                             _lhsOerrors =                                 ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                                  _rulesIerrors-                                 {-# LINE 1942 "dist/build/ResolveLocals" #-}+                                 {-# LINE 1972 "dist/build/ResolveLocals" #-}                                  )                             -- self rule                             _output =                                 ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                  Production con_ params_ constraints_ _childrenIoutput _rulesIoutput _typeSigsIoutput macro_-                                 {-# LINE 1948 "dist/build/ResolveLocals" #-}+                                 {-# LINE 1978 "dist/build/ResolveLocals" #-}                                  )                             -- self rule                             _lhsOoutput =                                 ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                  _output-                                 {-# LINE 1954 "dist/build/ResolveLocals" #-}+                                 {-# LINE 1984 "dist/build/ResolveLocals" #-}                                  )                             -- copy rule (from local)                             _childrenOallfields =                                 ({-# LINE 71 "src-ag/ResolveLocals.ag" #-}                                  _allfields-                                 {-# LINE 1960 "dist/build/ResolveLocals" #-}+                                 {-# LINE 1990 "dist/build/ResolveLocals" #-}                                  )                             -- copy rule (down)                             _childrenOallnts =                                 ({-# LINE 57 "src-ag/ResolveLocals.ag" #-}                                  _lhsIallnts-                                 {-# LINE 1966 "dist/build/ResolveLocals" #-}+                                 {-# LINE 1996 "dist/build/ResolveLocals" #-}                                  )                             -- copy rule (from local)                             _childrenOattrs =                                 ({-# LINE 71 "src-ag/ResolveLocals.ag" #-}                                  _attrs-                                 {-# LINE 1972 "dist/build/ResolveLocals" #-}+                                 {-# LINE 2002 "dist/build/ResolveLocals" #-}                                  )                             -- copy rule (down)                             _childrenOinh =                                 ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                  _lhsIinh-                                 {-# LINE 1978 "dist/build/ResolveLocals" #-}+                                 {-# LINE 2008 "dist/build/ResolveLocals" #-}                                  )                             -- copy rule (down)                             _childrenOinhMap =                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                  _lhsIinhMap-                                 {-# LINE 1984 "dist/build/ResolveLocals" #-}+                                 {-# LINE 2014 "dist/build/ResolveLocals" #-}                                  )                             -- copy rule (from local)                             _childrenOmergeMap =                                 ({-# LINE 131 "src-ag/ResolveLocals.ag" #-}                                  _mergeMap-                                 {-# LINE 1990 "dist/build/ResolveLocals" #-}+                                 {-# LINE 2020 "dist/build/ResolveLocals" #-}                                  )                             -- copy rule (down)                             _childrenOnt =                                 ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                  _lhsInt-                                 {-# LINE 1996 "dist/build/ResolveLocals" #-}+                                 {-# LINE 2026 "dist/build/ResolveLocals" #-}                                  )                             -- copy rule (down)                             _childrenOsyn =                                 ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                  _lhsIsyn-                                 {-# LINE 2002 "dist/build/ResolveLocals" #-}+                                 {-# LINE 2032 "dist/build/ResolveLocals" #-}                                  )                             -- copy rule (down)                             _childrenOsynMap =                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                  _lhsIsynMap-                                 {-# LINE 2008 "dist/build/ResolveLocals" #-}+                                 {-# LINE 2038 "dist/build/ResolveLocals" #-}                                  )                             -- copy rule (from local)                             _rulesOallfields =                                 ({-# LINE 71 "src-ag/ResolveLocals.ag" #-}                                  _allfields-                                 {-# LINE 2014 "dist/build/ResolveLocals" #-}+                                 {-# LINE 2044 "dist/build/ResolveLocals" #-}                                  )                             -- copy rule (down)                             _rulesOallnts =                                 ({-# LINE 57 "src-ag/ResolveLocals.ag" #-}                                  _lhsIallnts-                                 {-# LINE 2020 "dist/build/ResolveLocals" #-}+                                 {-# LINE 2050 "dist/build/ResolveLocals" #-}                                  )                             -- copy rule (from local)                             _rulesOattrs =                                 ({-# LINE 71 "src-ag/ResolveLocals.ag" #-}                                  _attrs-                                 {-# LINE 2026 "dist/build/ResolveLocals" #-}+                                 {-# LINE 2056 "dist/build/ResolveLocals" #-}                                  )                             -- copy rule (down)                             _rulesOinh =                                 ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                  _lhsIinh-                                 {-# LINE 2032 "dist/build/ResolveLocals" #-}+                                 {-# LINE 2062 "dist/build/ResolveLocals" #-}                                  )                             -- copy rule (from local)                             _rulesOmergeMap =                                 ({-# LINE 131 "src-ag/ResolveLocals.ag" #-}                                  _mergeMap-                                 {-# LINE 2038 "dist/build/ResolveLocals" #-}+                                 {-# LINE 2068 "dist/build/ResolveLocals" #-}                                  )                             -- copy rule (down)                             _rulesOnt =                                 ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                  _lhsInt-                                 {-# LINE 2044 "dist/build/ResolveLocals" #-}+                                 {-# LINE 2074 "dist/build/ResolveLocals" #-}                                  )                             -- copy rule (down)                             _rulesOoptions =                                 ({-# LINE 41 "src-ag/ResolveLocals.ag" #-}                                  _lhsIoptions-                                 {-# LINE 2050 "dist/build/ResolveLocals" #-}+                                 {-# LINE 2080 "dist/build/ResolveLocals" #-}                                  )                             -- copy rule (down)                             _rulesOsyn =                                 ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                  _lhsIsyn-                                 {-# LINE 2056 "dist/build/ResolveLocals" #-}+                                 {-# LINE 2086 "dist/build/ResolveLocals" #-}                                  )                             ( _childrenIattributes,_childrenIfields,_childrenIoutput) =                                 children_ _childrenOallfields _childrenOallnts _childrenOattrs _childrenOcon _childrenOinh _childrenOinhMap _childrenOmergeMap _childrenOnt _childrenOsyn _childrenOsynMap@@ -2060,6 +2090,8 @@                                 rules_ _rulesOallfields _rulesOallnts _rulesOattrs _rulesOcon _rulesOinh _rulesOmergeMap _rulesOnt _rulesOoptions _rulesOsyn                             ( _typeSigsIoutput) =                                 typeSigs_+                            ___node =+                                (Syn_Production _lhsOcons _lhsOerrors _lhsOoutput)                         in  ( _lhsOcons,_lhsOerrors,_lhsOoutput)))) -- Productions ------------------------------------------------- {-@@ -2151,126 +2183,128 @@                              _lhsOcons =                                  ({-# LINE 65 "src-ag/ResolveLocals.ag" #-}                                   _hdIcons ++ _tlIcons-                                  {-# LINE 2155 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2187 "dist/build/ResolveLocals" #-}                                   )                              -- use rule "src-ag/ResolveLocals.ag"(line 44, column 16)                              _lhsOerrors =                                  ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                                   _hdIerrors Seq.>< _tlIerrors-                                  {-# LINE 2161 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2193 "dist/build/ResolveLocals" #-}                                   )                              -- self rule                              _output =                                  ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                   (:) _hdIoutput _tlIoutput-                                  {-# LINE 2167 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2199 "dist/build/ResolveLocals" #-}                                   )                              -- self rule                              _lhsOoutput =                                  ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                   _output-                                  {-# LINE 2173 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2205 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _hdOallnts =                                  ({-# LINE 57 "src-ag/ResolveLocals.ag" #-}                                   _lhsIallnts-                                  {-# LINE 2179 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2211 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _hdOinh =                                  ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                   _lhsIinh-                                  {-# LINE 2185 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2217 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _hdOinhMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIinhMap-                                  {-# LINE 2191 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2223 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _hdOmergeMap =                                  ({-# LINE 126 "src-ag/ResolveLocals.ag" #-}                                   _lhsImergeMap-                                  {-# LINE 2197 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2229 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _hdOnt =                                  ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                   _lhsInt-                                  {-# LINE 2203 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2235 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _hdOoptions =                                  ({-# LINE 41 "src-ag/ResolveLocals.ag" #-}                                   _lhsIoptions-                                  {-# LINE 2209 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2241 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _hdOsyn =                                  ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                   _lhsIsyn-                                  {-# LINE 2215 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2247 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _hdOsynMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIsynMap-                                  {-# LINE 2221 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2253 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _tlOallnts =                                  ({-# LINE 57 "src-ag/ResolveLocals.ag" #-}                                   _lhsIallnts-                                  {-# LINE 2227 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2259 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _tlOinh =                                  ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                   _lhsIinh-                                  {-# LINE 2233 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2265 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _tlOinhMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIinhMap-                                  {-# LINE 2239 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2271 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _tlOmergeMap =                                  ({-# LINE 126 "src-ag/ResolveLocals.ag" #-}                                   _lhsImergeMap-                                  {-# LINE 2245 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2277 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _tlOnt =                                  ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                   _lhsInt-                                  {-# LINE 2251 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2283 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _tlOoptions =                                  ({-# LINE 41 "src-ag/ResolveLocals.ag" #-}                                   _lhsIoptions-                                  {-# LINE 2257 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2289 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _tlOsyn =                                  ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                                   _lhsIsyn-                                  {-# LINE 2263 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2295 "dist/build/ResolveLocals" #-}                                   )                              -- copy rule (down)                              _tlOsynMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIsynMap-                                  {-# LINE 2269 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2301 "dist/build/ResolveLocals" #-}                                   )                              ( _hdIcons,_hdIerrors,_hdIoutput) =                                  hd_ _hdOallnts _hdOinh _hdOinhMap _hdOmergeMap _hdOnt _hdOoptions _hdOsyn _hdOsynMap                              ( _tlIcons,_tlIerrors,_tlIoutput) =                                  tl_ _tlOallnts _tlOinh _tlOinhMap _tlOmergeMap _tlOnt _tlOoptions _tlOsyn _tlOsynMap+                             ___node =+                                 (Syn_Productions _lhsOcons _lhsOerrors _lhsOoutput)                          in  ( _lhsOcons,_lhsOerrors,_lhsOoutput)))) sem_Productions_Nil :: T_Productions sem_Productions_Nil =@@ -2289,26 +2323,28 @@                              _lhsOcons =                                  ({-# LINE 65 "src-ag/ResolveLocals.ag" #-}                                   []-                                  {-# LINE 2293 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2327 "dist/build/ResolveLocals" #-}                                   )                              -- use rule "src-ag/ResolveLocals.ag"(line 44, column 16)                              _lhsOerrors =                                  ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                                   Seq.empty-                                  {-# LINE 2299 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2333 "dist/build/ResolveLocals" #-}                                   )                              -- self rule                              _output =                                  ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                   []-                                  {-# LINE 2305 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2339 "dist/build/ResolveLocals" #-}                                   )                              -- self rule                              _lhsOoutput =                                  ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                                   _output-                                  {-# LINE 2311 "dist/build/ResolveLocals" #-}+                                  {-# LINE 2345 "dist/build/ResolveLocals" #-}                                   )+                             ___node =+                                 (Syn_Productions _lhsOcons _lhsOerrors _lhsOoutput)                          in  ( _lhsOcons,_lhsOerrors,_lhsOoutput)))) -- Rule -------------------------------------------------------- {-@@ -2414,102 +2450,104 @@                       _lhsOerrors =                           ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                            _patternIerrors Seq.>< _rhsIerrors-                           {-# LINE 2418 "dist/build/ResolveLocals" #-}+                           {-# LINE 2454 "dist/build/ResolveLocals" #-}                            )                       -- use rule "src-ag/ResolveLocals.ag"(line 93, column 86)                       _lhsOinstVars =                           ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                            _patternIinstVars-                           {-# LINE 2424 "dist/build/ResolveLocals" #-}+                           {-# LINE 2460 "dist/build/ResolveLocals" #-}                            )                       -- use rule "src-ag/ResolveLocals.ag"(line 93, column 48)                       _lhsOlocVars =                           ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                            _patternIlocVars-                           {-# LINE 2430 "dist/build/ResolveLocals" #-}+                           {-# LINE 2466 "dist/build/ResolveLocals" #-}                            )                       -- self rule                       _output =                           ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                            Rule mbName_ _patternIoutput _rhsIoutput owrt_ origin_ explicit_ pure_ identity_ mbError_ eager_-                           {-# LINE 2436 "dist/build/ResolveLocals" #-}+                           {-# LINE 2472 "dist/build/ResolveLocals" #-}                            )                       -- self rule                       _lhsOoutput =                           ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                            _output-                           {-# LINE 2442 "dist/build/ResolveLocals" #-}+                           {-# LINE 2478 "dist/build/ResolveLocals" #-}                            )                       -- copy rule (down)                       _patternOcon =                           ({-# LINE 105 "src-ag/ResolveLocals.ag" #-}                            _lhsIcon-                           {-# LINE 2448 "dist/build/ResolveLocals" #-}+                           {-# LINE 2484 "dist/build/ResolveLocals" #-}                            )                       -- copy rule (down)                       _patternOinh =                           ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                            _lhsIinh-                           {-# LINE 2454 "dist/build/ResolveLocals" #-}+                           {-# LINE 2490 "dist/build/ResolveLocals" #-}                            )                       -- copy rule (down)                       _patternOnt =                           ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                            _lhsInt-                           {-# LINE 2460 "dist/build/ResolveLocals" #-}+                           {-# LINE 2496 "dist/build/ResolveLocals" #-}                            )                       -- copy rule (down)                       _patternOsyn =                           ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                            _lhsIsyn-                           {-# LINE 2466 "dist/build/ResolveLocals" #-}+                           {-# LINE 2502 "dist/build/ResolveLocals" #-}                            )                       -- copy rule (down)                       _rhsOallfields =                           ({-# LINE 139 "src-ag/ResolveLocals.ag" #-}                            _lhsIallfields-                           {-# LINE 2472 "dist/build/ResolveLocals" #-}+                           {-# LINE 2508 "dist/build/ResolveLocals" #-}                            )                       -- copy rule (down)                       _rhsOallnts =                           ({-# LINE 140 "src-ag/ResolveLocals.ag" #-}                            _lhsIallnts-                           {-# LINE 2478 "dist/build/ResolveLocals" #-}+                           {-# LINE 2514 "dist/build/ResolveLocals" #-}                            )                       -- copy rule (down)                       _rhsOattrs =                           ({-# LINE 141 "src-ag/ResolveLocals.ag" #-}                            _lhsIattrs-                           {-# LINE 2484 "dist/build/ResolveLocals" #-}+                           {-# LINE 2520 "dist/build/ResolveLocals" #-}                            )                       -- copy rule (down)                       _rhsOcon =                           ({-# LINE 138 "src-ag/ResolveLocals.ag" #-}                            _lhsIcon-                           {-# LINE 2490 "dist/build/ResolveLocals" #-}+                           {-# LINE 2526 "dist/build/ResolveLocals" #-}                            )                       -- copy rule (down)                       _rhsOmergeMap =                           ({-# LINE 131 "src-ag/ResolveLocals.ag" #-}                            _lhsImergeMap-                           {-# LINE 2496 "dist/build/ResolveLocals" #-}+                           {-# LINE 2532 "dist/build/ResolveLocals" #-}                            )                       -- copy rule (down)                       _rhsOnt =                           ({-# LINE 138 "src-ag/ResolveLocals.ag" #-}                            _lhsInt-                           {-# LINE 2502 "dist/build/ResolveLocals" #-}+                           {-# LINE 2538 "dist/build/ResolveLocals" #-}                            )                       -- copy rule (down)                       _rhsOoptions =                           ({-# LINE 41 "src-ag/ResolveLocals.ag" #-}                            _lhsIoptions-                           {-# LINE 2508 "dist/build/ResolveLocals" #-}+                           {-# LINE 2544 "dist/build/ResolveLocals" #-}                            )                       ( _patternIcopy,_patternIerrors,_patternIinstVars,_patternIlocVars,_patternIoutput) =                           pattern_ _patternOcon _patternOinh _patternOnt _patternOsyn                       ( _rhsIerrors,_rhsIoutput) =                           rhs_ _rhsOallfields _rhsOallnts _rhsOattrs _rhsOcon _rhsOmergeMap _rhsOnt _rhsOoptions+                      ___node =+                          (Syn_Rule _lhsOerrors _lhsOinstVars _lhsOlocVars _lhsOoutput)                   in  ( _lhsOerrors,_lhsOinstVars,_lhsOlocVars,_lhsOoutput)))) -- Rules ------------------------------------------------------- {-@@ -2610,144 +2648,146 @@                        _lhsOerrors =                            ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                             _hdIerrors Seq.>< _tlIerrors-                            {-# LINE 2614 "dist/build/ResolveLocals" #-}+                            {-# LINE 2652 "dist/build/ResolveLocals" #-}                             )                        -- use rule "src-ag/ResolveLocals.ag"(line 93, column 86)                        _lhsOinstVars =                            ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                             _hdIinstVars ++ _tlIinstVars-                            {-# LINE 2620 "dist/build/ResolveLocals" #-}+                            {-# LINE 2658 "dist/build/ResolveLocals" #-}                             )                        -- use rule "src-ag/ResolveLocals.ag"(line 93, column 48)                        _lhsOlocVars =                            ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                             _hdIlocVars ++ _tlIlocVars-                            {-# LINE 2626 "dist/build/ResolveLocals" #-}+                            {-# LINE 2664 "dist/build/ResolveLocals" #-}                             )                        -- self rule                        _output =                            ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                             (:) _hdIoutput _tlIoutput-                            {-# LINE 2632 "dist/build/ResolveLocals" #-}+                            {-# LINE 2670 "dist/build/ResolveLocals" #-}                             )                        -- self rule                        _lhsOoutput =                            ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                             _output-                            {-# LINE 2638 "dist/build/ResolveLocals" #-}+                            {-# LINE 2676 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _hdOallfields =                            ({-# LINE 71 "src-ag/ResolveLocals.ag" #-}                             _lhsIallfields-                            {-# LINE 2644 "dist/build/ResolveLocals" #-}+                            {-# LINE 2682 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _hdOallnts =                            ({-# LINE 57 "src-ag/ResolveLocals.ag" #-}                             _lhsIallnts-                            {-# LINE 2650 "dist/build/ResolveLocals" #-}+                            {-# LINE 2688 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _hdOattrs =                            ({-# LINE 71 "src-ag/ResolveLocals.ag" #-}                             _lhsIattrs-                            {-# LINE 2656 "dist/build/ResolveLocals" #-}+                            {-# LINE 2694 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _hdOcon =                            ({-# LINE 105 "src-ag/ResolveLocals.ag" #-}                             _lhsIcon-                            {-# LINE 2662 "dist/build/ResolveLocals" #-}+                            {-# LINE 2700 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _hdOinh =                            ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                             _lhsIinh-                            {-# LINE 2668 "dist/build/ResolveLocals" #-}+                            {-# LINE 2706 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _hdOmergeMap =                            ({-# LINE 131 "src-ag/ResolveLocals.ag" #-}                             _lhsImergeMap-                            {-# LINE 2674 "dist/build/ResolveLocals" #-}+                            {-# LINE 2712 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _hdOnt =                            ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                             _lhsInt-                            {-# LINE 2680 "dist/build/ResolveLocals" #-}+                            {-# LINE 2718 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _hdOoptions =                            ({-# LINE 41 "src-ag/ResolveLocals.ag" #-}                             _lhsIoptions-                            {-# LINE 2686 "dist/build/ResolveLocals" #-}+                            {-# LINE 2724 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _hdOsyn =                            ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                             _lhsIsyn-                            {-# LINE 2692 "dist/build/ResolveLocals" #-}+                            {-# LINE 2730 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _tlOallfields =                            ({-# LINE 71 "src-ag/ResolveLocals.ag" #-}                             _lhsIallfields-                            {-# LINE 2698 "dist/build/ResolveLocals" #-}+                            {-# LINE 2736 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _tlOallnts =                            ({-# LINE 57 "src-ag/ResolveLocals.ag" #-}                             _lhsIallnts-                            {-# LINE 2704 "dist/build/ResolveLocals" #-}+                            {-# LINE 2742 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _tlOattrs =                            ({-# LINE 71 "src-ag/ResolveLocals.ag" #-}                             _lhsIattrs-                            {-# LINE 2710 "dist/build/ResolveLocals" #-}+                            {-# LINE 2748 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _tlOcon =                            ({-# LINE 105 "src-ag/ResolveLocals.ag" #-}                             _lhsIcon-                            {-# LINE 2716 "dist/build/ResolveLocals" #-}+                            {-# LINE 2754 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _tlOinh =                            ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                             _lhsIinh-                            {-# LINE 2722 "dist/build/ResolveLocals" #-}+                            {-# LINE 2760 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _tlOmergeMap =                            ({-# LINE 131 "src-ag/ResolveLocals.ag" #-}                             _lhsImergeMap-                            {-# LINE 2728 "dist/build/ResolveLocals" #-}+                            {-# LINE 2766 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _tlOnt =                            ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                             _lhsInt-                            {-# LINE 2734 "dist/build/ResolveLocals" #-}+                            {-# LINE 2772 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _tlOoptions =                            ({-# LINE 41 "src-ag/ResolveLocals.ag" #-}                             _lhsIoptions-                            {-# LINE 2740 "dist/build/ResolveLocals" #-}+                            {-# LINE 2778 "dist/build/ResolveLocals" #-}                             )                        -- copy rule (down)                        _tlOsyn =                            ({-# LINE 104 "src-ag/ResolveLocals.ag" #-}                             _lhsIsyn-                            {-# LINE 2746 "dist/build/ResolveLocals" #-}+                            {-# LINE 2784 "dist/build/ResolveLocals" #-}                             )                        ( _hdIerrors,_hdIinstVars,_hdIlocVars,_hdIoutput) =                            hd_ _hdOallfields _hdOallnts _hdOattrs _hdOcon _hdOinh _hdOmergeMap _hdOnt _hdOoptions _hdOsyn                        ( _tlIerrors,_tlIinstVars,_tlIlocVars,_tlIoutput) =                            tl_ _tlOallfields _tlOallnts _tlOattrs _tlOcon _tlOinh _tlOmergeMap _tlOnt _tlOoptions _tlOsyn+                       ___node =+                           (Syn_Rules _lhsOerrors _lhsOinstVars _lhsOlocVars _lhsOoutput)                    in  ( _lhsOerrors,_lhsOinstVars,_lhsOlocVars,_lhsOoutput)))) sem_Rules_Nil :: T_Rules sem_Rules_Nil =@@ -2768,32 +2808,34 @@                        _lhsOerrors =                            ({-# LINE 44 "src-ag/ResolveLocals.ag" #-}                             Seq.empty-                            {-# LINE 2772 "dist/build/ResolveLocals" #-}+                            {-# LINE 2812 "dist/build/ResolveLocals" #-}                             )                        -- use rule "src-ag/ResolveLocals.ag"(line 93, column 86)                        _lhsOinstVars =                            ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                             []-                            {-# LINE 2778 "dist/build/ResolveLocals" #-}+                            {-# LINE 2818 "dist/build/ResolveLocals" #-}                             )                        -- use rule "src-ag/ResolveLocals.ag"(line 93, column 48)                        _lhsOlocVars =                            ({-# LINE 93 "src-ag/ResolveLocals.ag" #-}                             []-                            {-# LINE 2784 "dist/build/ResolveLocals" #-}+                            {-# LINE 2824 "dist/build/ResolveLocals" #-}                             )                        -- self rule                        _output =                            ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                             []-                            {-# LINE 2790 "dist/build/ResolveLocals" #-}+                            {-# LINE 2830 "dist/build/ResolveLocals" #-}                             )                        -- self rule                        _lhsOoutput =                            ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                             _output-                            {-# LINE 2796 "dist/build/ResolveLocals" #-}+                            {-# LINE 2836 "dist/build/ResolveLocals" #-}                             )+                       ___node =+                           (Syn_Rules _lhsOerrors _lhsOinstVars _lhsOlocVars _lhsOoutput)                    in  ( _lhsOerrors,_lhsOinstVars,_lhsOlocVars,_lhsOoutput)))) -- TypeSig ----------------------------------------------------- {-@@ -2831,14 +2873,16 @@                     _output =                         ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                          TypeSig name_ tp_-                         {-# LINE 2835 "dist/build/ResolveLocals" #-}+                         {-# LINE 2877 "dist/build/ResolveLocals" #-}                          )                     -- self rule                     _lhsOoutput =                         ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                          _output-                         {-# LINE 2841 "dist/build/ResolveLocals" #-}+                         {-# LINE 2883 "dist/build/ResolveLocals" #-}                          )+                    ___node =+                        (Syn_TypeSig _lhsOoutput)                 in  ( _lhsOoutput))) -- TypeSigs ---------------------------------------------------- {-@@ -2881,18 +2925,20 @@                      _output =                          ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                           (:) _hdIoutput _tlIoutput-                          {-# LINE 2885 "dist/build/ResolveLocals" #-}+                          {-# LINE 2929 "dist/build/ResolveLocals" #-}                           )                      -- self rule                      _lhsOoutput =                          ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                           _output-                          {-# LINE 2891 "dist/build/ResolveLocals" #-}+                          {-# LINE 2935 "dist/build/ResolveLocals" #-}                           )                      ( _hdIoutput) =                          hd_                      ( _tlIoutput) =                          tl_+                     ___node =+                         (Syn_TypeSigs _lhsOoutput)                  in  ( _lhsOoutput))) sem_TypeSigs_Nil :: T_TypeSigs sem_TypeSigs_Nil =@@ -2901,12 +2947,14 @@                      _output =                          ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                           []-                          {-# LINE 2905 "dist/build/ResolveLocals" #-}+                          {-# LINE 2951 "dist/build/ResolveLocals" #-}                           )                      -- self rule                      _lhsOoutput =                          ({-# LINE 47 "src-ag/ResolveLocals.ag" #-}                           _output-                          {-# LINE 2911 "dist/build/ResolveLocals" #-}+                          {-# LINE 2957 "dist/build/ResolveLocals" #-}                           )+                     ___node =+                         (Syn_TypeSigs _lhsOoutput)                  in  ( _lhsOoutput)))
src-derived/SemHsTokens.hs view
@@ -127,9 +127,9 @@                   _lhsInt ->                     (let _lhsOerrors :: (Seq Error)                          _lhsOusedAttrs :: ([(Identifier,Identifier)])-                         _lhsOusedLocals :: ([Identifier])                          _lhsOtok :: ((Pos,String))                          _lhsOusedFields :: (Seq Identifier)+                         _lhsOusedLocals :: ([Identifier])                          _lhsOoutput :: HsToken                          -- "src-ag/SemHsTokens.ag"(line 77, column 15)                          _lhsOerrors =@@ -142,45 +142,51 @@                               {-# LINE 143 "dist/build/SemHsTokens" #-}                               )                          -- "src-ag/SemHsTokens.ag"(line 91, column 13)-                         (_lhsOusedAttrs,_lhsOusedLocals) =+                         _lhsOusedAttrs =                              ({-# LINE 91 "src-ag/SemHsTokens.ag" #-}-                              if field_ == _LOC-                              then ([], [attr_])-                              else ([(field_,attr_)], [])-                              {-# LINE 151 "dist/build/SemHsTokens" #-}+                              [(field_,attr_)]+                              {-# LINE 149 "dist/build/SemHsTokens" #-}                               )-                         -- "src-ag/SemHsTokens.ag"(line 122, column 8)+                         -- "src-ag/SemHsTokens.ag"(line 118, column 8)                          _addTrace =-                             ({-# LINE 122 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 118 "src-ag/SemHsTokens.ag" #-}                               case rdesc_ of                                 Just d  -> \x -> "(trace " ++ show (d ++ " -> " ++ show field_ ++ "." ++ show attr_) ++ " (" ++ x ++ "))"                                 Nothing -> id-                              {-# LINE 159 "dist/build/SemHsTokens" #-}+                              {-# LINE 157 "dist/build/SemHsTokens" #-}                               )-                         -- "src-ag/SemHsTokens.ag"(line 125, column 8)+                         -- "src-ag/SemHsTokens.ag"(line 121, column 8)                          _lhsOtok =-                             ({-# LINE 125 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 121 "src-ag/SemHsTokens.ag" #-}                               (pos_, _addTrace     $ attrname True field_ attr_)-                              {-# LINE 165 "dist/build/SemHsTokens" #-}+                              {-# LINE 163 "dist/build/SemHsTokens" #-}                               )-                         -- use rule "src-ag/SemHsTokens.ag"(line 100, column 40)+                         -- use rule "src-ag/SemHsTokens.ag"(line 96, column 40)                          _lhsOusedFields =-                             ({-# LINE 100 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 96 "src-ag/SemHsTokens.ag" #-}                               Seq.empty-                              {-# LINE 171 "dist/build/SemHsTokens" #-}+                              {-# LINE 169 "dist/build/SemHsTokens" #-}                               )+                         -- use rule "src-ag/SemHsTokens.ag"(line 87, column 40)+                         _lhsOusedLocals =+                             ({-# LINE 87 "src-ag/SemHsTokens.ag" #-}+                              []+                              {-# LINE 175 "dist/build/SemHsTokens" #-}+                              )                          -- self rule                          _output =-                             ({-# LINE 142 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 138 "src-ag/SemHsTokens.ag" #-}                               AGField field_ attr_ pos_ rdesc_-                              {-# LINE 177 "dist/build/SemHsTokens" #-}+                              {-# LINE 181 "dist/build/SemHsTokens" #-}                               )                          -- self rule                          _lhsOoutput =-                             ({-# LINE 142 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 138 "src-ag/SemHsTokens.ag" #-}                               _output-                              {-# LINE 183 "dist/build/SemHsTokens" #-}+                              {-# LINE 187 "dist/build/SemHsTokens" #-}                               )+                         ___node =+                             (Syn_HsToken _lhsOerrors _lhsOoutput _lhsOtok _lhsOusedAttrs _lhsOusedFields _lhsOusedLocals)                      in  ( _lhsOerrors,_lhsOoutput,_lhsOtok,_lhsOusedAttrs,_lhsOusedFields,_lhsOusedLocals)))) sem_HsToken_AGLocal :: Identifier ->                        Pos ->@@ -203,13 +209,13 @@                          _tkAsLocal =                              ({-# LINE 65 "src-ag/SemHsTokens.ag" #-}                               AGLocal var_ pos_ rdesc_-                              {-# LINE 207 "dist/build/SemHsTokens" #-}+                              {-# LINE 213 "dist/build/SemHsTokens" #-}                               )                          -- "src-ag/SemHsTokens.ag"(line 66, column 15)                          _tkAsField =                              ({-# LINE 66 "src-ag/SemHsTokens.ag" #-}                               AGField _LOC var_ pos_ rdesc_-                              {-# LINE 213 "dist/build/SemHsTokens" #-}+                              {-# LINE 219 "dist/build/SemHsTokens" #-}                               )                          -- "src-ag/SemHsTokens.ag"(line 67, column 19)                          (_errors,_output,_tok,_usedLocals) =@@ -221,46 +227,48 @@                               else if (_LOC,var_) `elem` _lhsIattrs                                    then (Seq.empty                                      , _tkAsField    , (pos_,locname   var_), [var_])                                    else (Seq.singleton(UndefLocal _lhsInt _lhsIcon var_), _tkAsField    , (pos_,locname   var_), []    )-                              {-# LINE 225 "dist/build/SemHsTokens" #-}+                              {-# LINE 231 "dist/build/SemHsTokens" #-}                               )-                         -- "src-ag/SemHsTokens.ag"(line 103, column 13)+                         -- "src-ag/SemHsTokens.ag"(line 99, column 13)                          _lhsOusedFields =-                             ({-# LINE 103 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 99 "src-ag/SemHsTokens.ag" #-}                               if var_ `elem` _lhsIfieldnames                                then Seq.singleton var_                                else Seq.empty-                              {-# LINE 233 "dist/build/SemHsTokens" #-}+                              {-# LINE 239 "dist/build/SemHsTokens" #-}                               )                          -- use rule "src-ag/SemHsTokens.ag"(line 43, column 37)                          _lhsOerrors =                              ({-# LINE 43 "src-ag/SemHsTokens.ag" #-}                               _errors-                              {-# LINE 239 "dist/build/SemHsTokens" #-}+                              {-# LINE 245 "dist/build/SemHsTokens" #-}                               )                          -- use rule "src-ag/SemHsTokens.ag"(line 88, column 40)                          _lhsOusedAttrs =                              ({-# LINE 88 "src-ag/SemHsTokens.ag" #-}                               []-                              {-# LINE 245 "dist/build/SemHsTokens" #-}+                              {-# LINE 251 "dist/build/SemHsTokens" #-}                               )                          -- use rule "src-ag/SemHsTokens.ag"(line 87, column 40)                          _lhsOusedLocals =                              ({-# LINE 87 "src-ag/SemHsTokens.ag" #-}                               _usedLocals-                              {-# LINE 251 "dist/build/SemHsTokens" #-}+                              {-# LINE 257 "dist/build/SemHsTokens" #-}                               )                          -- self rule                          _lhsOoutput =-                             ({-# LINE 142 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 138 "src-ag/SemHsTokens.ag" #-}                               _output-                              {-# LINE 257 "dist/build/SemHsTokens" #-}+                              {-# LINE 263 "dist/build/SemHsTokens" #-}                               )                          -- copy rule (from local)                          _lhsOtok =-                             ({-# LINE 120 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 116 "src-ag/SemHsTokens.ag" #-}                               _tok-                              {-# LINE 263 "dist/build/SemHsTokens" #-}+                              {-# LINE 269 "dist/build/SemHsTokens" #-}                               )+                         ___node =+                             (Syn_HsToken _lhsOerrors _lhsOoutput _lhsOtok _lhsOusedAttrs _lhsOusedFields _lhsOusedLocals)                      in  ( _lhsOerrors,_lhsOoutput,_lhsOtok,_lhsOusedAttrs,_lhsOusedFields,_lhsOusedLocals)))) sem_HsToken_CharToken :: String ->                          Pos ->@@ -278,51 +286,53 @@                          _lhsOusedFields :: (Seq Identifier)                          _lhsOusedLocals :: ([Identifier])                          _lhsOoutput :: HsToken-                         -- "src-ag/SemHsTokens.ag"(line 129, column 16)+                         -- "src-ag/SemHsTokens.ag"(line 125, column 16)                          _lhsOtok =-                             ({-# LINE 129 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 125 "src-ag/SemHsTokens.ag" #-}                               (pos_, if null value_                                         then ""                                         else showCharShort (head value_)                               )-                              {-# LINE 289 "dist/build/SemHsTokens" #-}+                              {-# LINE 297 "dist/build/SemHsTokens" #-}                               )                          -- use rule "src-ag/SemHsTokens.ag"(line 43, column 37)                          _lhsOerrors =                              ({-# LINE 43 "src-ag/SemHsTokens.ag" #-}                               Seq.empty-                              {-# LINE 295 "dist/build/SemHsTokens" #-}+                              {-# LINE 303 "dist/build/SemHsTokens" #-}                               )                          -- use rule "src-ag/SemHsTokens.ag"(line 88, column 40)                          _lhsOusedAttrs =                              ({-# LINE 88 "src-ag/SemHsTokens.ag" #-}                               []-                              {-# LINE 301 "dist/build/SemHsTokens" #-}+                              {-# LINE 309 "dist/build/SemHsTokens" #-}                               )-                         -- use rule "src-ag/SemHsTokens.ag"(line 100, column 40)+                         -- use rule "src-ag/SemHsTokens.ag"(line 96, column 40)                          _lhsOusedFields =-                             ({-# LINE 100 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 96 "src-ag/SemHsTokens.ag" #-}                               Seq.empty-                              {-# LINE 307 "dist/build/SemHsTokens" #-}+                              {-# LINE 315 "dist/build/SemHsTokens" #-}                               )                          -- use rule "src-ag/SemHsTokens.ag"(line 87, column 40)                          _lhsOusedLocals =                              ({-# LINE 87 "src-ag/SemHsTokens.ag" #-}                               []-                              {-# LINE 313 "dist/build/SemHsTokens" #-}+                              {-# LINE 321 "dist/build/SemHsTokens" #-}                               )                          -- self rule                          _output =-                             ({-# LINE 142 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 138 "src-ag/SemHsTokens.ag" #-}                               CharToken value_ pos_-                              {-# LINE 319 "dist/build/SemHsTokens" #-}+                              {-# LINE 327 "dist/build/SemHsTokens" #-}                               )                          -- self rule                          _lhsOoutput =-                             ({-# LINE 142 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 138 "src-ag/SemHsTokens.ag" #-}                               _output-                              {-# LINE 325 "dist/build/SemHsTokens" #-}+                              {-# LINE 333 "dist/build/SemHsTokens" #-}                               )+                         ___node =+                             (Syn_HsToken _lhsOerrors _lhsOoutput _lhsOtok _lhsOusedAttrs _lhsOusedFields _lhsOusedLocals)                      in  ( _lhsOerrors,_lhsOoutput,_lhsOtok,_lhsOusedAttrs,_lhsOusedFields,_lhsOusedLocals)))) sem_HsToken_Err :: String ->                    Pos ->@@ -345,44 +355,46 @@                              ({-# LINE 50 "src-ag/SemHsTokens.ag" #-}                               let m = text mesg_                               in Seq.singleton (CustomError False pos_ m)-                              {-# LINE 349 "dist/build/SemHsTokens" #-}+                              {-# LINE 359 "dist/build/SemHsTokens" #-}                               )-                         -- "src-ag/SemHsTokens.ag"(line 135, column 16)+                         -- "src-ag/SemHsTokens.ag"(line 131, column 16)                          _lhsOtok =-                             ({-# LINE 135 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 131 "src-ag/SemHsTokens.ag" #-}                               (pos_, "")-                              {-# LINE 355 "dist/build/SemHsTokens" #-}+                              {-# LINE 365 "dist/build/SemHsTokens" #-}                               )                          -- use rule "src-ag/SemHsTokens.ag"(line 88, column 40)                          _lhsOusedAttrs =                              ({-# LINE 88 "src-ag/SemHsTokens.ag" #-}                               []-                              {-# LINE 361 "dist/build/SemHsTokens" #-}+                              {-# LINE 371 "dist/build/SemHsTokens" #-}                               )-                         -- use rule "src-ag/SemHsTokens.ag"(line 100, column 40)+                         -- use rule "src-ag/SemHsTokens.ag"(line 96, column 40)                          _lhsOusedFields =-                             ({-# LINE 100 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 96 "src-ag/SemHsTokens.ag" #-}                               Seq.empty-                              {-# LINE 367 "dist/build/SemHsTokens" #-}+                              {-# LINE 377 "dist/build/SemHsTokens" #-}                               )                          -- use rule "src-ag/SemHsTokens.ag"(line 87, column 40)                          _lhsOusedLocals =                              ({-# LINE 87 "src-ag/SemHsTokens.ag" #-}                               []-                              {-# LINE 373 "dist/build/SemHsTokens" #-}+                              {-# LINE 383 "dist/build/SemHsTokens" #-}                               )                          -- self rule                          _output =-                             ({-# LINE 142 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 138 "src-ag/SemHsTokens.ag" #-}                               Err mesg_ pos_-                              {-# LINE 379 "dist/build/SemHsTokens" #-}+                              {-# LINE 389 "dist/build/SemHsTokens" #-}                               )                          -- self rule                          _lhsOoutput =-                             ({-# LINE 142 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 138 "src-ag/SemHsTokens.ag" #-}                               _output-                              {-# LINE 385 "dist/build/SemHsTokens" #-}+                              {-# LINE 395 "dist/build/SemHsTokens" #-}                               )+                         ___node =+                             (Syn_HsToken _lhsOerrors _lhsOoutput _lhsOtok _lhsOusedAttrs _lhsOusedFields _lhsOusedLocals)                      in  ( _lhsOerrors,_lhsOoutput,_lhsOtok,_lhsOusedAttrs,_lhsOusedFields,_lhsOusedLocals)))) sem_HsToken_HsToken :: String ->                        Pos ->@@ -400,48 +412,50 @@                          _lhsOusedFields :: (Seq Identifier)                          _lhsOusedLocals :: ([Identifier])                          _lhsOoutput :: HsToken-                         -- "src-ag/SemHsTokens.ag"(line 127, column 14)+                         -- "src-ag/SemHsTokens.ag"(line 123, column 14)                          _lhsOtok =-                             ({-# LINE 127 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 123 "src-ag/SemHsTokens.ag" #-}                               (pos_, value_)-                              {-# LINE 408 "dist/build/SemHsTokens" #-}+                              {-# LINE 420 "dist/build/SemHsTokens" #-}                               )                          -- use rule "src-ag/SemHsTokens.ag"(line 43, column 37)                          _lhsOerrors =                              ({-# LINE 43 "src-ag/SemHsTokens.ag" #-}                               Seq.empty-                              {-# LINE 414 "dist/build/SemHsTokens" #-}+                              {-# LINE 426 "dist/build/SemHsTokens" #-}                               )                          -- use rule "src-ag/SemHsTokens.ag"(line 88, column 40)                          _lhsOusedAttrs =                              ({-# LINE 88 "src-ag/SemHsTokens.ag" #-}                               []-                              {-# LINE 420 "dist/build/SemHsTokens" #-}+                              {-# LINE 432 "dist/build/SemHsTokens" #-}                               )-                         -- use rule "src-ag/SemHsTokens.ag"(line 100, column 40)+                         -- use rule "src-ag/SemHsTokens.ag"(line 96, column 40)                          _lhsOusedFields =-                             ({-# LINE 100 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 96 "src-ag/SemHsTokens.ag" #-}                               Seq.empty-                              {-# LINE 426 "dist/build/SemHsTokens" #-}+                              {-# LINE 438 "dist/build/SemHsTokens" #-}                               )                          -- use rule "src-ag/SemHsTokens.ag"(line 87, column 40)                          _lhsOusedLocals =                              ({-# LINE 87 "src-ag/SemHsTokens.ag" #-}                               []-                              {-# LINE 432 "dist/build/SemHsTokens" #-}+                              {-# LINE 444 "dist/build/SemHsTokens" #-}                               )                          -- self rule                          _output =-                             ({-# LINE 142 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 138 "src-ag/SemHsTokens.ag" #-}                               HsToken value_ pos_-                              {-# LINE 438 "dist/build/SemHsTokens" #-}+                              {-# LINE 450 "dist/build/SemHsTokens" #-}                               )                          -- self rule                          _lhsOoutput =-                             ({-# LINE 142 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 138 "src-ag/SemHsTokens.ag" #-}                               _output-                              {-# LINE 444 "dist/build/SemHsTokens" #-}+                              {-# LINE 456 "dist/build/SemHsTokens" #-}                               )+                         ___node =+                             (Syn_HsToken _lhsOerrors _lhsOoutput _lhsOtok _lhsOusedAttrs _lhsOusedFields _lhsOusedLocals)                      in  ( _lhsOerrors,_lhsOoutput,_lhsOtok,_lhsOusedAttrs,_lhsOusedFields,_lhsOusedLocals)))) sem_HsToken_StrToken :: String ->                         Pos ->@@ -459,48 +473,50 @@                          _lhsOusedFields :: (Seq Identifier)                          _lhsOusedLocals :: ([Identifier])                          _lhsOoutput :: HsToken-                         -- "src-ag/SemHsTokens.ag"(line 134, column 16)+                         -- "src-ag/SemHsTokens.ag"(line 130, column 16)                          _lhsOtok =-                             ({-# LINE 134 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 130 "src-ag/SemHsTokens.ag" #-}                               (pos_, showStrShort value_)-                              {-# LINE 467 "dist/build/SemHsTokens" #-}+                              {-# LINE 481 "dist/build/SemHsTokens" #-}                               )                          -- use rule "src-ag/SemHsTokens.ag"(line 43, column 37)                          _lhsOerrors =                              ({-# LINE 43 "src-ag/SemHsTokens.ag" #-}                               Seq.empty-                              {-# LINE 473 "dist/build/SemHsTokens" #-}+                              {-# LINE 487 "dist/build/SemHsTokens" #-}                               )                          -- use rule "src-ag/SemHsTokens.ag"(line 88, column 40)                          _lhsOusedAttrs =                              ({-# LINE 88 "src-ag/SemHsTokens.ag" #-}                               []-                              {-# LINE 479 "dist/build/SemHsTokens" #-}+                              {-# LINE 493 "dist/build/SemHsTokens" #-}                               )-                         -- use rule "src-ag/SemHsTokens.ag"(line 100, column 40)+                         -- use rule "src-ag/SemHsTokens.ag"(line 96, column 40)                          _lhsOusedFields =-                             ({-# LINE 100 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 96 "src-ag/SemHsTokens.ag" #-}                               Seq.empty-                              {-# LINE 485 "dist/build/SemHsTokens" #-}+                              {-# LINE 499 "dist/build/SemHsTokens" #-}                               )                          -- use rule "src-ag/SemHsTokens.ag"(line 87, column 40)                          _lhsOusedLocals =                              ({-# LINE 87 "src-ag/SemHsTokens.ag" #-}                               []-                              {-# LINE 491 "dist/build/SemHsTokens" #-}+                              {-# LINE 505 "dist/build/SemHsTokens" #-}                               )                          -- self rule                          _output =-                             ({-# LINE 142 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 138 "src-ag/SemHsTokens.ag" #-}                               StrToken value_ pos_-                              {-# LINE 497 "dist/build/SemHsTokens" #-}+                              {-# LINE 511 "dist/build/SemHsTokens" #-}                               )                          -- self rule                          _lhsOoutput =-                             ({-# LINE 142 "src-ag/SemHsTokens.ag" #-}+                             ({-# LINE 138 "src-ag/SemHsTokens.ag" #-}                               _output-                              {-# LINE 503 "dist/build/SemHsTokens" #-}+                              {-# LINE 517 "dist/build/SemHsTokens" #-}                               )+                         ___node =+                             (Syn_HsToken _lhsOerrors _lhsOoutput _lhsOtok _lhsOusedAttrs _lhsOusedFields _lhsOusedLocals)                      in  ( _lhsOerrors,_lhsOoutput,_lhsOtok,_lhsOusedAttrs,_lhsOusedFields,_lhsOusedLocals)))) -- HsTokens ---------------------------------------------------- {-@@ -590,124 +606,126 @@                           _tlIusedAttrs :: ([(Identifier,Identifier)])                           _tlIusedFields :: (Seq Identifier)                           _tlIusedLocals :: ([Identifier])-                          -- "src-ag/SemHsTokens.ag"(line 117, column 10)+                          -- "src-ag/SemHsTokens.ag"(line 113, column 10)                           _lhsOtks =-                              ({-# LINE 117 "src-ag/SemHsTokens.ag" #-}+                              ({-# LINE 113 "src-ag/SemHsTokens.ag" #-}                                _hdItok : _tlItks-                               {-# LINE 598 "dist/build/SemHsTokens" #-}+                               {-# LINE 614 "dist/build/SemHsTokens" #-}                                )                           -- use rule "src-ag/SemHsTokens.ag"(line 43, column 37)                           _lhsOerrors =                               ({-# LINE 43 "src-ag/SemHsTokens.ag" #-}                                _hdIerrors Seq.>< _tlIerrors-                               {-# LINE 604 "dist/build/SemHsTokens" #-}+                               {-# LINE 620 "dist/build/SemHsTokens" #-}                                )                           -- use rule "src-ag/SemHsTokens.ag"(line 88, column 40)                           _lhsOusedAttrs =                               ({-# LINE 88 "src-ag/SemHsTokens.ag" #-}                                _hdIusedAttrs ++ _tlIusedAttrs-                               {-# LINE 610 "dist/build/SemHsTokens" #-}+                               {-# LINE 626 "dist/build/SemHsTokens" #-}                                )-                          -- use rule "src-ag/SemHsTokens.ag"(line 100, column 40)+                          -- use rule "src-ag/SemHsTokens.ag"(line 96, column 40)                           _lhsOusedFields =-                              ({-# LINE 100 "src-ag/SemHsTokens.ag" #-}+                              ({-# LINE 96 "src-ag/SemHsTokens.ag" #-}                                _hdIusedFields Seq.>< _tlIusedFields-                               {-# LINE 616 "dist/build/SemHsTokens" #-}+                               {-# LINE 632 "dist/build/SemHsTokens" #-}                                )                           -- use rule "src-ag/SemHsTokens.ag"(line 87, column 40)                           _lhsOusedLocals =                               ({-# LINE 87 "src-ag/SemHsTokens.ag" #-}                                _hdIusedLocals ++ _tlIusedLocals-                               {-# LINE 622 "dist/build/SemHsTokens" #-}+                               {-# LINE 638 "dist/build/SemHsTokens" #-}                                )                           -- self rule                           _output =-                              ({-# LINE 142 "src-ag/SemHsTokens.ag" #-}+                              ({-# LINE 138 "src-ag/SemHsTokens.ag" #-}                                (:) _hdIoutput _tlIoutput-                               {-# LINE 628 "dist/build/SemHsTokens" #-}+                               {-# LINE 644 "dist/build/SemHsTokens" #-}                                )                           -- self rule                           _lhsOoutput =-                              ({-# LINE 142 "src-ag/SemHsTokens.ag" #-}+                              ({-# LINE 138 "src-ag/SemHsTokens.ag" #-}                                _output-                               {-# LINE 634 "dist/build/SemHsTokens" #-}+                               {-# LINE 650 "dist/build/SemHsTokens" #-}                                )                           -- copy rule (down)                           _hdOallfields =                               ({-# LINE 30 "src-ag/SemHsTokens.ag" #-}                                _lhsIallfields-                               {-# LINE 640 "dist/build/SemHsTokens" #-}+                               {-# LINE 656 "dist/build/SemHsTokens" #-}                                )                           -- copy rule (down)                           _hdOallnts =                               ({-# LINE 31 "src-ag/SemHsTokens.ag" #-}                                _lhsIallnts-                               {-# LINE 646 "dist/build/SemHsTokens" #-}+                               {-# LINE 662 "dist/build/SemHsTokens" #-}                                )                           -- copy rule (down)                           _hdOattrs =                               ({-# LINE 32 "src-ag/SemHsTokens.ag" #-}                                _lhsIattrs-                               {-# LINE 652 "dist/build/SemHsTokens" #-}+                               {-# LINE 668 "dist/build/SemHsTokens" #-}                                )                           -- copy rule (down)                           _hdOcon =                               ({-# LINE 29 "src-ag/SemHsTokens.ag" #-}                                _lhsIcon-                               {-# LINE 658 "dist/build/SemHsTokens" #-}+                               {-# LINE 674 "dist/build/SemHsTokens" #-}                                )                           -- copy rule (down)                           _hdOfieldnames =                               ({-# LINE 36 "src-ag/SemHsTokens.ag" #-}                                _lhsIfieldnames-                               {-# LINE 664 "dist/build/SemHsTokens" #-}+                               {-# LINE 680 "dist/build/SemHsTokens" #-}                                )                           -- copy rule (down)                           _hdOnt =                               ({-# LINE 29 "src-ag/SemHsTokens.ag" #-}                                _lhsInt-                               {-# LINE 670 "dist/build/SemHsTokens" #-}+                               {-# LINE 686 "dist/build/SemHsTokens" #-}                                )                           -- copy rule (down)                           _tlOallfields =                               ({-# LINE 30 "src-ag/SemHsTokens.ag" #-}                                _lhsIallfields-                               {-# LINE 676 "dist/build/SemHsTokens" #-}+                               {-# LINE 692 "dist/build/SemHsTokens" #-}                                )                           -- copy rule (down)                           _tlOallnts =                               ({-# LINE 31 "src-ag/SemHsTokens.ag" #-}                                _lhsIallnts-                               {-# LINE 682 "dist/build/SemHsTokens" #-}+                               {-# LINE 698 "dist/build/SemHsTokens" #-}                                )                           -- copy rule (down)                           _tlOattrs =                               ({-# LINE 32 "src-ag/SemHsTokens.ag" #-}                                _lhsIattrs-                               {-# LINE 688 "dist/build/SemHsTokens" #-}+                               {-# LINE 704 "dist/build/SemHsTokens" #-}                                )                           -- copy rule (down)                           _tlOcon =                               ({-# LINE 29 "src-ag/SemHsTokens.ag" #-}                                _lhsIcon-                               {-# LINE 694 "dist/build/SemHsTokens" #-}+                               {-# LINE 710 "dist/build/SemHsTokens" #-}                                )                           -- copy rule (down)                           _tlOfieldnames =                               ({-# LINE 36 "src-ag/SemHsTokens.ag" #-}                                _lhsIfieldnames-                               {-# LINE 700 "dist/build/SemHsTokens" #-}+                               {-# LINE 716 "dist/build/SemHsTokens" #-}                                )                           -- copy rule (down)                           _tlOnt =                               ({-# LINE 29 "src-ag/SemHsTokens.ag" #-}                                _lhsInt-                               {-# LINE 706 "dist/build/SemHsTokens" #-}+                               {-# LINE 722 "dist/build/SemHsTokens" #-}                                )                           ( _hdIerrors,_hdIoutput,_hdItok,_hdIusedAttrs,_hdIusedFields,_hdIusedLocals) =                               hd_ _hdOallfields _hdOallnts _hdOattrs _hdOcon _hdOfieldnames _hdOnt                           ( _tlIerrors,_tlIoutput,_tlItks,_tlIusedAttrs,_tlIusedFields,_tlIusedLocals) =                               tl_ _tlOallfields _tlOallnts _tlOattrs _tlOcon _tlOfieldnames _tlOnt+                          ___node =+                              (Syn_HsTokens _lhsOerrors _lhsOoutput _lhsOtks _lhsOusedAttrs _lhsOusedFields _lhsOusedLocals)                       in  ( _lhsOerrors,_lhsOoutput,_lhsOtks,_lhsOusedAttrs,_lhsOusedFields,_lhsOusedLocals)))) sem_HsTokens_Nil :: T_HsTokens sem_HsTokens_Nil =@@ -723,48 +741,50 @@                           _lhsOusedFields :: (Seq Identifier)                           _lhsOusedLocals :: ([Identifier])                           _lhsOoutput :: HsTokens-                          -- "src-ag/SemHsTokens.ag"(line 118, column 10)+                          -- "src-ag/SemHsTokens.ag"(line 114, column 10)                           _lhsOtks =-                              ({-# LINE 118 "src-ag/SemHsTokens.ag" #-}+                              ({-# LINE 114 "src-ag/SemHsTokens.ag" #-}                                []-                               {-# LINE 731 "dist/build/SemHsTokens" #-}+                               {-# LINE 749 "dist/build/SemHsTokens" #-}                                )                           -- use rule "src-ag/SemHsTokens.ag"(line 43, column 37)                           _lhsOerrors =                               ({-# LINE 43 "src-ag/SemHsTokens.ag" #-}                                Seq.empty-                               {-# LINE 737 "dist/build/SemHsTokens" #-}+                               {-# LINE 755 "dist/build/SemHsTokens" #-}                                )                           -- use rule "src-ag/SemHsTokens.ag"(line 88, column 40)                           _lhsOusedAttrs =                               ({-# LINE 88 "src-ag/SemHsTokens.ag" #-}                                []-                               {-# LINE 743 "dist/build/SemHsTokens" #-}+                               {-# LINE 761 "dist/build/SemHsTokens" #-}                                )-                          -- use rule "src-ag/SemHsTokens.ag"(line 100, column 40)+                          -- use rule "src-ag/SemHsTokens.ag"(line 96, column 40)                           _lhsOusedFields =-                              ({-# LINE 100 "src-ag/SemHsTokens.ag" #-}+                              ({-# LINE 96 "src-ag/SemHsTokens.ag" #-}                                Seq.empty-                               {-# LINE 749 "dist/build/SemHsTokens" #-}+                               {-# LINE 767 "dist/build/SemHsTokens" #-}                                )                           -- use rule "src-ag/SemHsTokens.ag"(line 87, column 40)                           _lhsOusedLocals =                               ({-# LINE 87 "src-ag/SemHsTokens.ag" #-}                                []-                               {-# LINE 755 "dist/build/SemHsTokens" #-}+                               {-# LINE 773 "dist/build/SemHsTokens" #-}                                )                           -- self rule                           _output =-                              ({-# LINE 142 "src-ag/SemHsTokens.ag" #-}+                              ({-# LINE 138 "src-ag/SemHsTokens.ag" #-}                                []-                               {-# LINE 761 "dist/build/SemHsTokens" #-}+                               {-# LINE 779 "dist/build/SemHsTokens" #-}                                )                           -- self rule                           _lhsOoutput =-                              ({-# LINE 142 "src-ag/SemHsTokens.ag" #-}+                              ({-# LINE 138 "src-ag/SemHsTokens.ag" #-}                                _output-                               {-# LINE 767 "dist/build/SemHsTokens" #-}+                               {-# LINE 785 "dist/build/SemHsTokens" #-}                                )+                          ___node =+                              (Syn_HsTokens _lhsOerrors _lhsOoutput _lhsOtks _lhsOusedAttrs _lhsOusedFields _lhsOusedLocals)                       in  ( _lhsOerrors,_lhsOoutput,_lhsOtks,_lhsOusedAttrs,_lhsOusedFields,_lhsOusedLocals)))) -- HsTokensRoot ------------------------------------------------ {-@@ -836,74 +856,76 @@                               _tokensOfieldnames =                                   ({-# LINE 38 "src-ag/SemHsTokens.ag" #-}                                    map (\(n,_,_) -> n) _lhsIallfields-                                   {-# LINE 840 "dist/build/SemHsTokens" #-}+                                   {-# LINE 860 "dist/build/SemHsTokens" #-}                                    )-                              -- "src-ag/SemHsTokens.ag"(line 107, column 18)+                              -- "src-ag/SemHsTokens.ag"(line 103, column 18)                               _lhsOusedFields =-                                  ({-# LINE 107 "src-ag/SemHsTokens.ag" #-}+                                  ({-# LINE 103 "src-ag/SemHsTokens.ag" #-}                                    toList _tokensIusedFields-                                   {-# LINE 846 "dist/build/SemHsTokens" #-}+                                   {-# LINE 866 "dist/build/SemHsTokens" #-}                                    )-                              -- "src-ag/SemHsTokens.ag"(line 114, column 18)+                              -- "src-ag/SemHsTokens.ag"(line 110, column 18)                               _lhsOtextLines =-                                  ({-# LINE 114 "src-ag/SemHsTokens.ag" #-}+                                  ({-# LINE 110 "src-ag/SemHsTokens.ag" #-}                                    showTokens _tokensItks-                                   {-# LINE 852 "dist/build/SemHsTokens" #-}+                                   {-# LINE 872 "dist/build/SemHsTokens" #-}                                    )                               -- use rule "src-ag/SemHsTokens.ag"(line 18, column 18)                               _lhsOerrors =                                   ({-# LINE 18 "src-ag/SemHsTokens.ag" #-}                                    _tokensIerrors-                                   {-# LINE 858 "dist/build/SemHsTokens" #-}+                                   {-# LINE 878 "dist/build/SemHsTokens" #-}                                    )                               -- copy rule (up)                               _lhsOoutput =-                                  ({-# LINE 141 "src-ag/SemHsTokens.ag" #-}+                                  ({-# LINE 137 "src-ag/SemHsTokens.ag" #-}                                    _tokensIoutput-                                   {-# LINE 864 "dist/build/SemHsTokens" #-}+                                   {-# LINE 884 "dist/build/SemHsTokens" #-}                                    )                               -- copy rule (up)                               _lhsOusedAttrs =                                   ({-# LINE 20 "src-ag/SemHsTokens.ag" #-}                                    _tokensIusedAttrs-                                   {-# LINE 870 "dist/build/SemHsTokens" #-}+                                   {-# LINE 890 "dist/build/SemHsTokens" #-}                                    )                               -- copy rule (up)                               _lhsOusedLocals =                                   ({-# LINE 19 "src-ag/SemHsTokens.ag" #-}                                    _tokensIusedLocals-                                   {-# LINE 876 "dist/build/SemHsTokens" #-}+                                   {-# LINE 896 "dist/build/SemHsTokens" #-}                                    )                               -- copy rule (down)                               _tokensOallfields =                                   ({-# LINE 30 "src-ag/SemHsTokens.ag" #-}                                    _lhsIallfields-                                   {-# LINE 882 "dist/build/SemHsTokens" #-}+                                   {-# LINE 902 "dist/build/SemHsTokens" #-}                                    )                               -- copy rule (down)                               _tokensOallnts =                                   ({-# LINE 31 "src-ag/SemHsTokens.ag" #-}                                    _lhsIallnts-                                   {-# LINE 888 "dist/build/SemHsTokens" #-}+                                   {-# LINE 908 "dist/build/SemHsTokens" #-}                                    )                               -- copy rule (down)                               _tokensOattrs =                                   ({-# LINE 32 "src-ag/SemHsTokens.ag" #-}                                    _lhsIattrs-                                   {-# LINE 894 "dist/build/SemHsTokens" #-}+                                   {-# LINE 914 "dist/build/SemHsTokens" #-}                                    )                               -- copy rule (down)                               _tokensOcon =                                   ({-# LINE 29 "src-ag/SemHsTokens.ag" #-}                                    _lhsIcon-                                   {-# LINE 900 "dist/build/SemHsTokens" #-}+                                   {-# LINE 920 "dist/build/SemHsTokens" #-}                                    )                               -- copy rule (down)                               _tokensOnt =                                   ({-# LINE 29 "src-ag/SemHsTokens.ag" #-}                                    _lhsInt-                                   {-# LINE 906 "dist/build/SemHsTokens" #-}+                                   {-# LINE 926 "dist/build/SemHsTokens" #-}                                    )                               ( _tokensIerrors,_tokensIoutput,_tokensItks,_tokensIusedAttrs,_tokensIusedFields,_tokensIusedLocals) =                                   tokens_ _tokensOallfields _tokensOallnts _tokensOattrs _tokensOcon _tokensOfieldnames _tokensOnt+                              ___node =+                                  (Syn_HsTokensRoot _lhsOerrors _lhsOoutput _lhsOtextLines _lhsOusedAttrs _lhsOusedFields _lhsOusedLocals)                           in  ( _lhsOerrors,_lhsOoutput,_lhsOtextLines,_lhsOusedAttrs,_lhsOusedFields,_lhsOusedLocals))))
src-derived/TfmToVisage.hs view
@@ -164,6 +164,8 @@                             Map.findWithDefault Map.empty _chnt     _lhsIsynMap                             {-# LINE 166 "dist/build/TfmToVisage" #-}                             )+                       ___node =+                           (Syn_Child _lhsOvchild)                    in  ( _lhsOvchild)))) -- Children ---------------------------------------------------- {-@@ -218,48 +220,50 @@                           _lhsOvchildren =                               ({-# LINE 117 "src-ag/TfmToVisage.ag" #-}                                _hdIvchild : _tlIvchildren-                               {-# LINE 222 "dist/build/TfmToVisage" #-}+                               {-# LINE 224 "dist/build/TfmToVisage" #-}                                )                           -- copy rule (down)                           _hdOinhMap =                               ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIinhMap-                               {-# LINE 228 "dist/build/TfmToVisage" #-}+                               {-# LINE 230 "dist/build/TfmToVisage" #-}                                )                           -- copy rule (down)                           _hdOrulemap =                               ({-# LINE 83 "src-ag/TfmToVisage.ag" #-}                                _lhsIrulemap-                               {-# LINE 234 "dist/build/TfmToVisage" #-}+                               {-# LINE 236 "dist/build/TfmToVisage" #-}                                )                           -- copy rule (down)                           _hdOsynMap =                               ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIsynMap-                               {-# LINE 240 "dist/build/TfmToVisage" #-}+                               {-# LINE 242 "dist/build/TfmToVisage" #-}                                )                           -- copy rule (down)                           _tlOinhMap =                               ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIinhMap-                               {-# LINE 246 "dist/build/TfmToVisage" #-}+                               {-# LINE 248 "dist/build/TfmToVisage" #-}                                )                           -- copy rule (down)                           _tlOrulemap =                               ({-# LINE 84 "src-ag/TfmToVisage.ag" #-}                                _lhsIrulemap-                               {-# LINE 252 "dist/build/TfmToVisage" #-}+                               {-# LINE 254 "dist/build/TfmToVisage" #-}                                )                           -- copy rule (down)                           _tlOsynMap =                               ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                _lhsIsynMap-                               {-# LINE 258 "dist/build/TfmToVisage" #-}+                               {-# LINE 260 "dist/build/TfmToVisage" #-}                                )                           ( _hdIvchild) =                               hd_ _hdOinhMap _hdOrulemap _hdOsynMap                           ( _tlIvchildren) =                               tl_ _tlOinhMap _tlOrulemap _tlOsynMap+                          ___node =+                              (Syn_Children _lhsOvchildren)                       in  ( _lhsOvchildren)))) sem_Children_Nil :: T_Children sem_Children_Nil =@@ -271,8 +275,10 @@                           _lhsOvchildren =                               ({-# LINE 118 "src-ag/TfmToVisage.ag" #-}                                []-                               {-# LINE 275 "dist/build/TfmToVisage" #-}+                               {-# LINE 279 "dist/build/TfmToVisage" #-}                                )+                          ___node =+                              (Syn_Children _lhsOvchildren)                       in  ( _lhsOvchildren)))) -- Expression -------------------------------------------------- {-@@ -310,14 +316,16 @@                        _self =                            ({-# LINE 74 "src-ag/TfmToVisage.ag" #-}                             Expression pos_ tks_-                            {-# LINE 314 "dist/build/TfmToVisage" #-}+                            {-# LINE 320 "dist/build/TfmToVisage" #-}                             )                        -- self rule                        _lhsOself =                            ({-# LINE 74 "src-ag/TfmToVisage.ag" #-}                             _self-                            {-# LINE 320 "dist/build/TfmToVisage" #-}+                            {-# LINE 326 "dist/build/TfmToVisage" #-}                             )+                       ___node =+                           (Syn_Expression _lhsOself)                    in  ( _lhsOself))) -- Grammar ----------------------------------------------------- {-@@ -382,22 +390,24 @@                     _lhsOvisage =                         ({-# LINE 90 "src-ag/TfmToVisage.ag" #-}                          VGrammar _nontsIvnonts-                         {-# LINE 386 "dist/build/TfmToVisage" #-}+                         {-# LINE 394 "dist/build/TfmToVisage" #-}                          )                     -- "src-ag/DistChildAttr.ag"(line 15, column 13)                     _nontsOinhMap =                         ({-# LINE 15 "src-ag/DistChildAttr.ag" #-}                          _nontsIinhMap'-                         {-# LINE 392 "dist/build/TfmToVisage" #-}+                         {-# LINE 400 "dist/build/TfmToVisage" #-}                          )                     -- "src-ag/DistChildAttr.ag"(line 16, column 13)                     _nontsOsynMap =                         ({-# LINE 16 "src-ag/DistChildAttr.ag" #-}                          _nontsIsynMap'-                         {-# LINE 398 "dist/build/TfmToVisage" #-}+                         {-# LINE 406 "dist/build/TfmToVisage" #-}                          )                     ( _nontsIinhMap',_nontsIsynMap',_nontsIvnonts) =                         nonts_ _nontsOinhMap _nontsOsynMap+                    ___node =+                        (Syn_Grammar _lhsOvisage)                 in  ( _lhsOvisage))) -- Nonterminal ------------------------------------------------- {-@@ -453,34 +463,36 @@                              _lhsOvnont =                                  ({-# LINE 100 "src-ag/TfmToVisage.ag" #-}                                   VNonterminal nt_ inh_ syn_ _prodsIvprods-                                  {-# LINE 457 "dist/build/TfmToVisage" #-}+                                  {-# LINE 467 "dist/build/TfmToVisage" #-}                                   )                              -- "src-ag/DistChildAttr.ag"(line 7, column 18)                              _lhsOinhMap' =                                  ({-# LINE 7 "src-ag/DistChildAttr.ag" #-}                                   Map.singleton nt_ inh_-                                  {-# LINE 463 "dist/build/TfmToVisage" #-}+                                  {-# LINE 473 "dist/build/TfmToVisage" #-}                                   )                              -- "src-ag/DistChildAttr.ag"(line 8, column 18)                              _lhsOsynMap' =                                  ({-# LINE 8 "src-ag/DistChildAttr.ag" #-}                                   Map.singleton nt_ syn_-                                  {-# LINE 469 "dist/build/TfmToVisage" #-}+                                  {-# LINE 479 "dist/build/TfmToVisage" #-}                                   )                              -- copy rule (down)                              _prodsOinhMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIinhMap-                                  {-# LINE 475 "dist/build/TfmToVisage" #-}+                                  {-# LINE 485 "dist/build/TfmToVisage" #-}                                   )                              -- copy rule (down)                              _prodsOsynMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIsynMap-                                  {-# LINE 481 "dist/build/TfmToVisage" #-}+                                  {-# LINE 491 "dist/build/TfmToVisage" #-}                                   )                              ( _prodsIvprods) =                                  prods_ _prodsOinhMap _prodsOsynMap+                             ___node =+                                 (Syn_Nonterminal _lhsOinhMap' _lhsOsynMap' _lhsOvnont)                          in  ( _lhsOinhMap',_lhsOsynMap',_lhsOvnont)))) -- Nonterminals ------------------------------------------------ {-@@ -538,48 +550,50 @@                               _lhsOvnonts =                                   ({-# LINE 94 "src-ag/TfmToVisage.ag" #-}                                    _hdIvnont : _tlIvnonts-                                   {-# LINE 542 "dist/build/TfmToVisage" #-}+                                   {-# LINE 554 "dist/build/TfmToVisage" #-}                                    )                               -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)                               _lhsOinhMap' =                                   ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                    _hdIinhMap' `Map.union` _tlIinhMap'-                                   {-# LINE 548 "dist/build/TfmToVisage" #-}+                                   {-# LINE 560 "dist/build/TfmToVisage" #-}                                    )                               -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)                               _lhsOsynMap' =                                   ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                    _hdIsynMap' `Map.union` _tlIsynMap'-                                   {-# LINE 554 "dist/build/TfmToVisage" #-}+                                   {-# LINE 566 "dist/build/TfmToVisage" #-}                                    )                               -- copy rule (down)                               _hdOinhMap =                                   ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                    _lhsIinhMap-                                   {-# LINE 560 "dist/build/TfmToVisage" #-}+                                   {-# LINE 572 "dist/build/TfmToVisage" #-}                                    )                               -- copy rule (down)                               _hdOsynMap =                                   ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                    _lhsIsynMap-                                   {-# LINE 566 "dist/build/TfmToVisage" #-}+                                   {-# LINE 578 "dist/build/TfmToVisage" #-}                                    )                               -- copy rule (down)                               _tlOinhMap =                                   ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                    _lhsIinhMap-                                   {-# LINE 572 "dist/build/TfmToVisage" #-}+                                   {-# LINE 584 "dist/build/TfmToVisage" #-}                                    )                               -- copy rule (down)                               _tlOsynMap =                                   ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                    _lhsIsynMap-                                   {-# LINE 578 "dist/build/TfmToVisage" #-}+                                   {-# LINE 590 "dist/build/TfmToVisage" #-}                                    )                               ( _hdIinhMap',_hdIsynMap',_hdIvnont) =                                   hd_ _hdOinhMap _hdOsynMap                               ( _tlIinhMap',_tlIsynMap',_tlIvnonts) =                                   tl_ _tlOinhMap _tlOsynMap+                              ___node =+                                  (Syn_Nonterminals _lhsOinhMap' _lhsOsynMap' _lhsOvnonts)                           in  ( _lhsOinhMap',_lhsOsynMap',_lhsOvnonts)))) sem_Nonterminals_Nil :: T_Nonterminals sem_Nonterminals_Nil =@@ -592,20 +606,22 @@                               _lhsOvnonts =                                   ({-# LINE 96 "src-ag/TfmToVisage.ag" #-}                                    []-                                   {-# LINE 596 "dist/build/TfmToVisage" #-}+                                   {-# LINE 610 "dist/build/TfmToVisage" #-}                                    )                               -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)                               _lhsOinhMap' =                                   ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                    Map.empty-                                   {-# LINE 602 "dist/build/TfmToVisage" #-}+                                   {-# LINE 616 "dist/build/TfmToVisage" #-}                                    )                               -- use rule "src-ag/DistChildAttr.ag"(line 4, column 53)                               _lhsOsynMap' =                                   ({-# LINE 4 "src-ag/DistChildAttr.ag" #-}                                    Map.empty-                                   {-# LINE 608 "dist/build/TfmToVisage" #-}+                                   {-# LINE 622 "dist/build/TfmToVisage" #-}                                    )+                              ___node =+                                  (Syn_Nonterminals _lhsOinhMap' _lhsOsynMap' _lhsOvnonts)                           in  ( _lhsOinhMap',_lhsOsynMap',_lhsOvnonts)))) -- Pattern ----------------------------------------------------- {-@@ -688,40 +704,42 @@                          if (isVar _self)                          then VVar field_ attr_                          else VAlias field_ attr_ _patIvpat-                         {-# LINE 692 "dist/build/TfmToVisage" #-}+                         {-# LINE 708 "dist/build/TfmToVisage" #-}                          )                     -- "src-ag/TfmToVisage.ag"(line 147, column 17)                     _lhsOfieldattrs =                         ({-# LINE 147 "src-ag/TfmToVisage.ag" #-}                          [(field_, attr_)]-                         {-# LINE 698 "dist/build/TfmToVisage" #-}+                         {-# LINE 714 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Alias field_ attr_ _patIcopy-                         {-# LINE 704 "dist/build/TfmToVisage" #-}+                         {-# LINE 720 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _self =                         ({-# LINE 74 "src-ag/TfmToVisage.ag" #-}                          Alias field_ attr_ _patIself-                         {-# LINE 710 "dist/build/TfmToVisage" #-}+                         {-# LINE 726 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 716 "dist/build/TfmToVisage" #-}+                         {-# LINE 732 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _lhsOself =                         ({-# LINE 74 "src-ag/TfmToVisage.ag" #-}                          _self-                         {-# LINE 722 "dist/build/TfmToVisage" #-}+                         {-# LINE 738 "dist/build/TfmToVisage" #-}                          )                     ( _patIcopy,_patIfieldattrs,_patIself,_patIvpat) =                         pat_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOfieldattrs _lhsOself _lhsOvpat)                 in  ( _lhsOcopy,_lhsOfieldattrs,_lhsOself,_lhsOvpat))) sem_Pattern_Constr :: ConstructorIdent ->                       T_Patterns ->@@ -739,40 +757,42 @@                     _lhsOvpat =                         ({-# LINE 136 "src-ag/TfmToVisage.ag" #-}                          VConstr name_ _patsIvpats-                         {-# LINE 743 "dist/build/TfmToVisage" #-}+                         {-# LINE 761 "dist/build/TfmToVisage" #-}                          )                     -- use rule "src-ag/TfmToVisage.ag"(line 144, column 43)                     _lhsOfieldattrs =                         ({-# LINE 144 "src-ag/TfmToVisage.ag" #-}                          _patsIfieldattrs-                         {-# LINE 749 "dist/build/TfmToVisage" #-}+                         {-# LINE 767 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Constr name_ _patsIcopy-                         {-# LINE 755 "dist/build/TfmToVisage" #-}+                         {-# LINE 773 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _self =                         ({-# LINE 74 "src-ag/TfmToVisage.ag" #-}                          Constr name_ _patsIself-                         {-# LINE 761 "dist/build/TfmToVisage" #-}+                         {-# LINE 779 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 767 "dist/build/TfmToVisage" #-}+                         {-# LINE 785 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _lhsOself =                         ({-# LINE 74 "src-ag/TfmToVisage.ag" #-}                          _self-                         {-# LINE 773 "dist/build/TfmToVisage" #-}+                         {-# LINE 791 "dist/build/TfmToVisage" #-}                          )                     ( _patsIcopy,_patsIfieldattrs,_patsIself,_patsIvpats) =                         pats_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOfieldattrs _lhsOself _lhsOvpat)                 in  ( _lhsOcopy,_lhsOfieldattrs,_lhsOself,_lhsOvpat))) sem_Pattern_Irrefutable :: T_Pattern ->                            T_Pattern@@ -789,40 +809,42 @@                     _lhsOfieldattrs =                         ({-# LINE 144 "src-ag/TfmToVisage.ag" #-}                          _patIfieldattrs-                         {-# LINE 793 "dist/build/TfmToVisage" #-}+                         {-# LINE 813 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Irrefutable _patIcopy-                         {-# LINE 799 "dist/build/TfmToVisage" #-}+                         {-# LINE 819 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _self =                         ({-# LINE 74 "src-ag/TfmToVisage.ag" #-}                          Irrefutable _patIself-                         {-# LINE 805 "dist/build/TfmToVisage" #-}+                         {-# LINE 825 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 811 "dist/build/TfmToVisage" #-}+                         {-# LINE 831 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _lhsOself =                         ({-# LINE 74 "src-ag/TfmToVisage.ag" #-}                          _self-                         {-# LINE 817 "dist/build/TfmToVisage" #-}+                         {-# LINE 837 "dist/build/TfmToVisage" #-}                          )                     -- copy rule (up)                     _lhsOvpat =                         ({-# LINE 85 "src-ag/TfmToVisage.ag" #-}                          _patIvpat-                         {-# LINE 823 "dist/build/TfmToVisage" #-}+                         {-# LINE 843 "dist/build/TfmToVisage" #-}                          )                     ( _patIcopy,_patIfieldattrs,_patIself,_patIvpat) =                         pat_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOfieldattrs _lhsOself _lhsOvpat)                 in  ( _lhsOcopy,_lhsOfieldattrs,_lhsOself,_lhsOvpat))) sem_Pattern_Product :: Pos ->                        T_Patterns ->@@ -840,40 +862,42 @@                     _lhsOvpat =                         ({-# LINE 137 "src-ag/TfmToVisage.ag" #-}                          VProduct pos_ _patsIvpats-                         {-# LINE 844 "dist/build/TfmToVisage" #-}+                         {-# LINE 866 "dist/build/TfmToVisage" #-}                          )                     -- use rule "src-ag/TfmToVisage.ag"(line 144, column 43)                     _lhsOfieldattrs =                         ({-# LINE 144 "src-ag/TfmToVisage.ag" #-}                          _patsIfieldattrs-                         {-# LINE 850 "dist/build/TfmToVisage" #-}+                         {-# LINE 872 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Product pos_ _patsIcopy-                         {-# LINE 856 "dist/build/TfmToVisage" #-}+                         {-# LINE 878 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _self =                         ({-# LINE 74 "src-ag/TfmToVisage.ag" #-}                          Product pos_ _patsIself-                         {-# LINE 862 "dist/build/TfmToVisage" #-}+                         {-# LINE 884 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 868 "dist/build/TfmToVisage" #-}+                         {-# LINE 890 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _lhsOself =                         ({-# LINE 74 "src-ag/TfmToVisage.ag" #-}                          _self-                         {-# LINE 874 "dist/build/TfmToVisage" #-}+                         {-# LINE 896 "dist/build/TfmToVisage" #-}                          )                     ( _patsIcopy,_patsIfieldattrs,_patsIself,_patsIvpats) =                         pats_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOfieldattrs _lhsOself _lhsOvpat)                 in  ( _lhsOcopy,_lhsOfieldattrs,_lhsOself,_lhsOvpat))) sem_Pattern_Underscore :: Pos ->                           T_Pattern@@ -886,38 +910,40 @@                     _lhsOvpat =                         ({-# LINE 141 "src-ag/TfmToVisage.ag" #-}                          VUnderscore pos_-                         {-# LINE 890 "dist/build/TfmToVisage" #-}+                         {-# LINE 914 "dist/build/TfmToVisage" #-}                          )                     -- use rule "src-ag/TfmToVisage.ag"(line 144, column 43)                     _lhsOfieldattrs =                         ({-# LINE 144 "src-ag/TfmToVisage.ag" #-}                          []-                         {-# LINE 896 "dist/build/TfmToVisage" #-}+                         {-# LINE 920 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _copy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          Underscore pos_-                         {-# LINE 902 "dist/build/TfmToVisage" #-}+                         {-# LINE 926 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _self =                         ({-# LINE 74 "src-ag/TfmToVisage.ag" #-}                          Underscore pos_-                         {-# LINE 908 "dist/build/TfmToVisage" #-}+                         {-# LINE 932 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _lhsOcopy =                         ({-# LINE 22 "src-ag/Patterns.ag" #-}                          _copy-                         {-# LINE 914 "dist/build/TfmToVisage" #-}+                         {-# LINE 938 "dist/build/TfmToVisage" #-}                          )                     -- self rule                     _lhsOself =                         ({-# LINE 74 "src-ag/TfmToVisage.ag" #-}                          _self-                         {-# LINE 920 "dist/build/TfmToVisage" #-}+                         {-# LINE 944 "dist/build/TfmToVisage" #-}                          )+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOfieldattrs _lhsOself _lhsOvpat)                 in  ( _lhsOcopy,_lhsOfieldattrs,_lhsOself,_lhsOvpat))) -- Patterns ---------------------------------------------------- {-@@ -974,42 +1000,44 @@                      _lhsOvpats =                          ({-# LINE 132 "src-ag/TfmToVisage.ag" #-}                           _hdIvpat : _tlIvpats-                          {-# LINE 978 "dist/build/TfmToVisage" #-}+                          {-# LINE 1004 "dist/build/TfmToVisage" #-}                           )                      -- use rule "src-ag/TfmToVisage.ag"(line 144, column 43)                      _lhsOfieldattrs =                          ({-# LINE 144 "src-ag/TfmToVisage.ag" #-}                           _hdIfieldattrs  ++  _tlIfieldattrs-                          {-# LINE 984 "dist/build/TfmToVisage" #-}+                          {-# LINE 1010 "dist/build/TfmToVisage" #-}                           )                      -- self rule                      _copy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           (:) _hdIcopy _tlIcopy-                          {-# LINE 990 "dist/build/TfmToVisage" #-}+                          {-# LINE 1016 "dist/build/TfmToVisage" #-}                           )                      -- self rule                      _self =                          ({-# LINE 74 "src-ag/TfmToVisage.ag" #-}                           (:) _hdIself _tlIself-                          {-# LINE 996 "dist/build/TfmToVisage" #-}+                          {-# LINE 1022 "dist/build/TfmToVisage" #-}                           )                      -- self rule                      _lhsOcopy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           _copy-                          {-# LINE 1002 "dist/build/TfmToVisage" #-}+                          {-# LINE 1028 "dist/build/TfmToVisage" #-}                           )                      -- self rule                      _lhsOself =                          ({-# LINE 74 "src-ag/TfmToVisage.ag" #-}                           _self-                          {-# LINE 1008 "dist/build/TfmToVisage" #-}+                          {-# LINE 1034 "dist/build/TfmToVisage" #-}                           )                      ( _hdIcopy,_hdIfieldattrs,_hdIself,_hdIvpat) =                          hd_                      ( _tlIcopy,_tlIfieldattrs,_tlIself,_tlIvpats) =                          tl_+                     ___node =+                         (Syn_Patterns _lhsOcopy _lhsOfieldattrs _lhsOself _lhsOvpats)                  in  ( _lhsOcopy,_lhsOfieldattrs,_lhsOself,_lhsOvpats))) sem_Patterns_Nil :: T_Patterns sem_Patterns_Nil =@@ -1021,38 +1049,40 @@                      _lhsOvpats =                          ({-# LINE 133 "src-ag/TfmToVisage.ag" #-}                           []-                          {-# LINE 1025 "dist/build/TfmToVisage" #-}+                          {-# LINE 1053 "dist/build/TfmToVisage" #-}                           )                      -- use rule "src-ag/TfmToVisage.ag"(line 144, column 43)                      _lhsOfieldattrs =                          ({-# LINE 144 "src-ag/TfmToVisage.ag" #-}                           []-                          {-# LINE 1031 "dist/build/TfmToVisage" #-}+                          {-# LINE 1059 "dist/build/TfmToVisage" #-}                           )                      -- self rule                      _copy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           []-                          {-# LINE 1037 "dist/build/TfmToVisage" #-}+                          {-# LINE 1065 "dist/build/TfmToVisage" #-}                           )                      -- self rule                      _self =                          ({-# LINE 74 "src-ag/TfmToVisage.ag" #-}                           []-                          {-# LINE 1043 "dist/build/TfmToVisage" #-}+                          {-# LINE 1071 "dist/build/TfmToVisage" #-}                           )                      -- self rule                      _lhsOcopy =                          ({-# LINE 22 "src-ag/Patterns.ag" #-}                           _copy-                          {-# LINE 1049 "dist/build/TfmToVisage" #-}+                          {-# LINE 1077 "dist/build/TfmToVisage" #-}                           )                      -- self rule                      _lhsOself =                          ({-# LINE 74 "src-ag/TfmToVisage.ag" #-}                           _self-                          {-# LINE 1055 "dist/build/TfmToVisage" #-}+                          {-# LINE 1083 "dist/build/TfmToVisage" #-}                           )+                     ___node =+                         (Syn_Patterns _lhsOcopy _lhsOfieldattrs _lhsOself _lhsOvpats)                  in  ( _lhsOcopy,_lhsOfieldattrs,_lhsOself,_lhsOvpats))) -- Production -------------------------------------------------- {-@@ -1114,48 +1144,50 @@                             _lhsOvprod =                                 ({-# LINE 110 "src-ag/TfmToVisage.ag" #-}                                  VProduction con_ _childrenIvchildren _lhsrules _locrules-                                 {-# LINE 1118 "dist/build/TfmToVisage" #-}+                                 {-# LINE 1148 "dist/build/TfmToVisage" #-}                                  )                             -- "src-ag/TfmToVisage.ag"(line 111, column 7)                             _splitVRules =                                 ({-# LINE 111 "src-ag/TfmToVisage.ag" #-}                                  splitVRules _rulesIvrules-                                 {-# LINE 1124 "dist/build/TfmToVisage" #-}+                                 {-# LINE 1154 "dist/build/TfmToVisage" #-}                                  )                             -- "src-ag/TfmToVisage.ag"(line 112, column 7)                             _locrules =                                 ({-# LINE 112 "src-ag/TfmToVisage.ag" #-}                                  getForField "loc" _splitVRules-                                 {-# LINE 1130 "dist/build/TfmToVisage" #-}+                                 {-# LINE 1160 "dist/build/TfmToVisage" #-}                                  )                             -- "src-ag/TfmToVisage.ag"(line 113, column 7)                             _lhsrules =                                 ({-# LINE 113 "src-ag/TfmToVisage.ag" #-}                                  getForField "lhs" _splitVRules-                                 {-# LINE 1136 "dist/build/TfmToVisage" #-}+                                 {-# LINE 1166 "dist/build/TfmToVisage" #-}                                  )                             -- "src-ag/TfmToVisage.ag"(line 114, column 7)                             _childrenOrulemap =                                 ({-# LINE 114 "src-ag/TfmToVisage.ag" #-}                                  _splitVRules-                                 {-# LINE 1142 "dist/build/TfmToVisage" #-}+                                 {-# LINE 1172 "dist/build/TfmToVisage" #-}                                  )                             -- copy rule (down)                             _childrenOinhMap =                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                  _lhsIinhMap-                                 {-# LINE 1148 "dist/build/TfmToVisage" #-}+                                 {-# LINE 1178 "dist/build/TfmToVisage" #-}                                  )                             -- copy rule (down)                             _childrenOsynMap =                                 ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                  _lhsIsynMap-                                 {-# LINE 1154 "dist/build/TfmToVisage" #-}+                                 {-# LINE 1184 "dist/build/TfmToVisage" #-}                                  )                             ( _childrenIvchildren) =                                 children_ _childrenOinhMap _childrenOrulemap _childrenOsynMap                             ( _rulesIvrules) =                                 rules_+                            ___node =+                                (Syn_Production _lhsOvprod)                         in  ( _lhsOvprod)))) -- Productions ------------------------------------------------- {-@@ -1205,36 +1237,38 @@                              _lhsOvprods =                                  ({-# LINE 104 "src-ag/TfmToVisage.ag" #-}                                   _hdIvprod : _tlIvprods-                                  {-# LINE 1209 "dist/build/TfmToVisage" #-}+                                  {-# LINE 1241 "dist/build/TfmToVisage" #-}                                   )                              -- copy rule (down)                              _hdOinhMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIinhMap-                                  {-# LINE 1215 "dist/build/TfmToVisage" #-}+                                  {-# LINE 1247 "dist/build/TfmToVisage" #-}                                   )                              -- copy rule (down)                              _hdOsynMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIsynMap-                                  {-# LINE 1221 "dist/build/TfmToVisage" #-}+                                  {-# LINE 1253 "dist/build/TfmToVisage" #-}                                   )                              -- copy rule (down)                              _tlOinhMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIinhMap-                                  {-# LINE 1227 "dist/build/TfmToVisage" #-}+                                  {-# LINE 1259 "dist/build/TfmToVisage" #-}                                   )                              -- copy rule (down)                              _tlOsynMap =                                  ({-# LINE 12 "src-ag/DistChildAttr.ag" #-}                                   _lhsIsynMap-                                  {-# LINE 1233 "dist/build/TfmToVisage" #-}+                                  {-# LINE 1265 "dist/build/TfmToVisage" #-}                                   )                              ( _hdIvprod) =                                  hd_ _hdOinhMap _hdOsynMap                              ( _tlIvprods) =                                  tl_ _tlOinhMap _tlOsynMap+                             ___node =+                                 (Syn_Productions _lhsOvprods)                          in  ( _lhsOvprods)))) sem_Productions_Nil :: T_Productions sem_Productions_Nil =@@ -1245,8 +1279,10 @@                              _lhsOvprods =                                  ({-# LINE 106 "src-ag/TfmToVisage.ag" #-}                                   []-                                  {-# LINE 1249 "dist/build/TfmToVisage" #-}+                                  {-# LINE 1283 "dist/build/TfmToVisage" #-}                                   )+                             ___node =+                                 (Syn_Productions _lhsOvprods)                          in  ( _lhsOvprods)))) -- Rule -------------------------------------------------------- {-@@ -1303,12 +1339,14 @@                  _lhsOvrule =                      ({-# LINE 129 "src-ag/TfmToVisage.ag" #-}                       VRule _patternIfieldattrs undefined _patternIvpat _rhsIself owrt_-                      {-# LINE 1307 "dist/build/TfmToVisage" #-}+                      {-# LINE 1343 "dist/build/TfmToVisage" #-}                       )                  ( _patternIcopy,_patternIfieldattrs,_patternIself,_patternIvpat) =                      pattern_                  ( _rhsIself) =                      rhs_+                 ___node =+                     (Syn_Rule _lhsOvrule)              in  ( _lhsOvrule))) -- Rules ------------------------------------------------------- {-@@ -1347,12 +1385,14 @@                   _lhsOvrules =                       ({-# LINE 124 "src-ag/TfmToVisage.ag" #-}                        _hdIvrule : _tlIvrules-                       {-# LINE 1351 "dist/build/TfmToVisage" #-}+                       {-# LINE 1389 "dist/build/TfmToVisage" #-}                        )                   ( _hdIvrule) =                       hd_                   ( _tlIvrules) =                       tl_+                  ___node =+                      (Syn_Rules _lhsOvrules)               in  ( _lhsOvrules))) sem_Rules_Nil :: T_Rules sem_Rules_Nil =@@ -1361,8 +1401,10 @@                   _lhsOvrules =                       ({-# LINE 125 "src-ag/TfmToVisage.ag" #-}                        []-                       {-# LINE 1365 "dist/build/TfmToVisage" #-}+                       {-# LINE 1405 "dist/build/TfmToVisage" #-}                        )+                  ___node =+                      (Syn_Rules _lhsOvrules)               in  ( _lhsOvrules))) -- TypeSig ----------------------------------------------------- {-@@ -1390,7 +1432,8 @@                        Type ->                        T_TypeSig sem_TypeSig_TypeSig name_ tp_ =-    (T_TypeSig (let+    (T_TypeSig (let ___node =+                        (Syn_TypeSig)                 in  ( ))) -- TypeSigs ---------------------------------------------------- {-@@ -1419,9 +1462,11 @@                      T_TypeSigs ->                      T_TypeSigs sem_TypeSigs_Cons (T_TypeSig hd_) (T_TypeSigs tl_) =-    (T_TypeSigs (let+    (T_TypeSigs (let ___node =+                         (Syn_TypeSigs)                  in  ( ))) sem_TypeSigs_Nil :: T_TypeSigs sem_TypeSigs_Nil =-    (T_TypeSigs (let+    (T_TypeSigs (let ___node =+                         (Syn_TypeSigs)                  in  ( )))
src-derived/Transform.hs view
@@ -1015,6989 +1015,7093 @@                          )                     ( _elemsIattrDecls,_elemsIattrOrderCollect,_elemsIattrs,_elemsIblocks,_elemsIcollectedArounds,_elemsIcollectedAugments,_elemsIcollectedConParams,_elemsIcollectedConstraints,_elemsIcollectedConstructorsMap,_elemsIcollectedFields,_elemsIcollectedInsts,_elemsIcollectedMacros,_elemsIcollectedMerges,_elemsIcollectedNames,_elemsIcollectedRules,_elemsIcollectedSetNames,_elemsIcollectedSigs,_elemsIcollectedUniques,_elemsIctxCollect,_elemsIdefSets,_elemsIderivings,_elemsIerrors,_elemsImoduleDecl,_elemsIparamsCollect,_elemsIpragmas,_elemsIquantCollect,_elemsIsemPragmasCollect,_elemsItypeSyns,_elemsIuseMap,_elemsIwrappers) =                         elems_ _elemsOallAttrDecls _elemsOallAttrs _elemsOallConstructors _elemsOallFields _elemsOallNonterminals _elemsOattrDecls _elemsOattrs _elemsOdefSets _elemsOdefinedSets _elemsOoptions-                in  ( _lhsOagi,_lhsOblocks,_lhsOerrors,_lhsOmoduleDecl,_lhsOoutput,_lhsOpragmas))))--- Alt ----------------------------------------------------------{--   visit 0:-      inherited attributes:-         allConstructors      : Map NontermIdent (Set ConstructorIdent)-         allNonterminals      : Set NontermIdent-         nts                  : Set NontermIdent-      synthesized attributes:-         collectedConParams   : [(NontermIdent, ConstructorIdent, Set Identifier)]-         collectedConstraints : [(NontermIdent, ConstructorIdent, [Type])]-         collectedConstructorNames : Set ConstructorIdent-         collectedFields      : [(NontermIdent, ConstructorIdent, FieldMap)]-         collectedMacros      : [(NontermIdent, ConstructorIdent, MaybeMacro)]-   alternatives:-      alternative Alt:-         child pos            : {Pos}-         child names          : ConstructorSet -         child tyvars         : {[Identifier]}-         child fields         : Fields -         child macro          : {MaybeMacro}--}--- cata-sem_Alt :: Alt ->-           T_Alt-sem_Alt (Alt _pos _names _tyvars _fields _macro) =-    (sem_Alt_Alt _pos (sem_ConstructorSet _names) _tyvars (sem_Fields _fields) _macro)--- semantic domain-newtype T_Alt = T_Alt ((Map NontermIdent (Set ConstructorIdent)) ->-                       (Set NontermIdent) ->-                       (Set NontermIdent) ->-                       ( ([(NontermIdent, ConstructorIdent, Set Identifier)]),([(NontermIdent, ConstructorIdent, [Type])]),(Set ConstructorIdent),([(NontermIdent, ConstructorIdent, FieldMap)]),([(NontermIdent, ConstructorIdent, MaybeMacro)])))-data Inh_Alt = Inh_Alt {allConstructors_Inh_Alt :: !((Map NontermIdent (Set ConstructorIdent))),allNonterminals_Inh_Alt :: !((Set NontermIdent)),nts_Inh_Alt :: !((Set NontermIdent))}-data Syn_Alt = Syn_Alt {collectedConParams_Syn_Alt :: !(([(NontermIdent, ConstructorIdent, Set Identifier)])),collectedConstraints_Syn_Alt :: !(([(NontermIdent, ConstructorIdent, [Type])])),collectedConstructorNames_Syn_Alt :: !((Set ConstructorIdent)),collectedFields_Syn_Alt :: !(([(NontermIdent, ConstructorIdent, FieldMap)])),collectedMacros_Syn_Alt :: !(([(NontermIdent, ConstructorIdent, MaybeMacro)]))}-wrap_Alt :: T_Alt ->-            Inh_Alt ->-            Syn_Alt-wrap_Alt (T_Alt sem) (Inh_Alt _lhsIallConstructors _lhsIallNonterminals _lhsInts) =-    (let ( _lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorNames,_lhsOcollectedFields,_lhsOcollectedMacros) = sem _lhsIallConstructors _lhsIallNonterminals _lhsInts-     in  (Syn_Alt _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorNames _lhsOcollectedFields _lhsOcollectedMacros))-sem_Alt_Alt :: Pos ->-               T_ConstructorSet ->-               ([Identifier]) ->-               T_Fields ->-               MaybeMacro ->-               T_Alt-sem_Alt_Alt pos_ (T_ConstructorSet names_) tyvars_ (T_Fields fields_) macro_ =-    (T_Alt (\ _lhsIallConstructors-              _lhsIallNonterminals-              _lhsInts ->-                (let _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                     _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                     _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                     _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                     _lhsOcollectedConstructorNames :: (Set ConstructorIdent)-                     _fieldsOallNonterminals :: (Set NontermIdent)-                     _namesIcollectedConstructorNames :: (Set ConstructorIdent)-                     _namesIconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))-                     _namesIerrors :: (Seq Error)-                     _fieldsIcollectedConstraints :: ([Type])-                     _fieldsIcollectedFields :: ([(Identifier, Type)])-                     -- "src-ag/Transform.ag"(line 241, column 10)-                     _lhsOcollectedFields =-                         ({-# LINE 241 "src-ag/Transform.ag" #-}-                          [ (nt, con, _fieldsIcollectedFields)-                          | nt  <- Set.toList _lhsInts-                          , con <- Set.toList (_namesIconstructors (Map.findWithDefault Set.empty nt _lhsIallConstructors))-                          ]-                          {-# LINE 1087 "dist/build/Transform" #-}-                          )-                     -- "src-ag/Transform.ag"(line 245, column 10)-                     _lhsOcollectedConstraints =-                         ({-# LINE 245 "src-ag/Transform.ag" #-}-                          [ (nt, con, _fieldsIcollectedConstraints)-                          | nt  <- Set.toList _lhsInts-                          , con <- Set.toList (_namesIconstructors (Map.findWithDefault Set.empty nt _lhsIallConstructors))-                          ]-                          {-# LINE 1096 "dist/build/Transform" #-}-                          )-                     -- "src-ag/Transform.ag"(line 249, column 10)-                     _lhsOcollectedConParams =-                         ({-# LINE 249 "src-ag/Transform.ag" #-}-                          [ (nt, con, Set.fromList tyvars_)-                          | nt  <- Set.toList _lhsInts-                          , con <- Set.toList (_namesIconstructors (Map.findWithDefault Set.empty nt _lhsIallConstructors))-                          ]-                          {-# LINE 1105 "dist/build/Transform" #-}-                          )-                     -- "src-ag/Transform.ag"(line 1287, column 10)-                     _lhsOcollectedMacros =-                         ({-# LINE 1287 "src-ag/Transform.ag" #-}-                          [ (nt, con, macro_)-                          | nt  <- Set.toList _lhsInts-                          , con <- Set.toList (_namesIconstructors (Map.findWithDefault Set.empty nt _lhsIallConstructors))-                          ]-                          {-# LINE 1114 "dist/build/Transform" #-}-                          )-                     -- use rule "src-ag/Transform.ag"(line 98, column 62)-                     _lhsOcollectedConstructorNames =-                         ({-# LINE 98 "src-ag/Transform.ag" #-}-                          _namesIcollectedConstructorNames-                          {-# LINE 1120 "dist/build/Transform" #-}-                          )-                     -- copy rule (down)-                     _fieldsOallNonterminals =-                         ({-# LINE 93 "src-ag/Transform.ag" #-}-                          _lhsIallNonterminals-                          {-# LINE 1126 "dist/build/Transform" #-}-                          )-                     ( _namesIcollectedConstructorNames,_namesIconstructors,_namesIerrors) =-                         names_-                     ( _fieldsIcollectedConstraints,_fieldsIcollectedFields) =-                         fields_ _fieldsOallNonterminals-                 in  ( _lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorNames,_lhsOcollectedFields,_lhsOcollectedMacros))))--- Alts ---------------------------------------------------------{--   visit 0:-      inherited attributes:-         allConstructors      : Map NontermIdent (Set ConstructorIdent)-         allNonterminals      : Set NontermIdent-         nts                  : Set NontermIdent-      synthesized attributes:-         collectedConParams   : [(NontermIdent, ConstructorIdent, Set Identifier)]-         collectedConstraints : [(NontermIdent, ConstructorIdent, [Type])]-         collectedConstructorNames : Set ConstructorIdent-         collectedFields      : [(NontermIdent, ConstructorIdent, FieldMap)]-         collectedMacros      : [(NontermIdent, ConstructorIdent, MaybeMacro)]-   alternatives:-      alternative Cons:-         child hd             : Alt -         child tl             : Alts -      alternative Nil:--}--- cata-sem_Alts :: Alts ->-            T_Alts-sem_Alts list =-    (Prelude.foldr sem_Alts_Cons sem_Alts_Nil (Prelude.map sem_Alt list))--- semantic domain-newtype T_Alts = T_Alts ((Map NontermIdent (Set ConstructorIdent)) ->-                         (Set NontermIdent) ->-                         (Set NontermIdent) ->-                         ( ([(NontermIdent, ConstructorIdent, Set Identifier)]),([(NontermIdent, ConstructorIdent, [Type])]),(Set ConstructorIdent),([(NontermIdent, ConstructorIdent, FieldMap)]),([(NontermIdent, ConstructorIdent, MaybeMacro)])))-data Inh_Alts = Inh_Alts {allConstructors_Inh_Alts :: !((Map NontermIdent (Set ConstructorIdent))),allNonterminals_Inh_Alts :: !((Set NontermIdent)),nts_Inh_Alts :: !((Set NontermIdent))}-data Syn_Alts = Syn_Alts {collectedConParams_Syn_Alts :: !(([(NontermIdent, ConstructorIdent, Set Identifier)])),collectedConstraints_Syn_Alts :: !(([(NontermIdent, ConstructorIdent, [Type])])),collectedConstructorNames_Syn_Alts :: !((Set ConstructorIdent)),collectedFields_Syn_Alts :: !(([(NontermIdent, ConstructorIdent, FieldMap)])),collectedMacros_Syn_Alts :: !(([(NontermIdent, ConstructorIdent, MaybeMacro)]))}-wrap_Alts :: T_Alts ->-             Inh_Alts ->-             Syn_Alts-wrap_Alts (T_Alts sem) (Inh_Alts _lhsIallConstructors _lhsIallNonterminals _lhsInts) =-    (let ( _lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorNames,_lhsOcollectedFields,_lhsOcollectedMacros) = sem _lhsIallConstructors _lhsIallNonterminals _lhsInts-     in  (Syn_Alts _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorNames _lhsOcollectedFields _lhsOcollectedMacros))-sem_Alts_Cons :: T_Alt ->-                 T_Alts ->-                 T_Alts-sem_Alts_Cons (T_Alt hd_) (T_Alts tl_) =-    (T_Alts (\ _lhsIallConstructors-               _lhsIallNonterminals-               _lhsInts ->-                 (let _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                      _lhsOcollectedConstructorNames :: (Set ConstructorIdent)-                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                      _hdOallConstructors :: (Map NontermIdent (Set ConstructorIdent))-                      _hdOallNonterminals :: (Set NontermIdent)-                      _hdOnts :: (Set NontermIdent)-                      _tlOallConstructors :: (Map NontermIdent (Set ConstructorIdent))-                      _tlOallNonterminals :: (Set NontermIdent)-                      _tlOnts :: (Set NontermIdent)-                      _hdIcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                      _hdIcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                      _hdIcollectedConstructorNames :: (Set ConstructorIdent)-                      _hdIcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                      _hdIcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                      _tlIcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                      _tlIcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                      _tlIcollectedConstructorNames :: (Set ConstructorIdent)-                      _tlIcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                      _tlIcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                      -- use rule "src-ag/Transform.ag"(line 132, column 31)-                      _lhsOcollectedConParams =-                          ({-# LINE 132 "src-ag/Transform.ag" #-}-                           _hdIcollectedConParams ++ _tlIcollectedConParams-                           {-# LINE 1202 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 131, column 33)-                      _lhsOcollectedConstraints =-                          ({-# LINE 131 "src-ag/Transform.ag" #-}-                           _hdIcollectedConstraints ++ _tlIcollectedConstraints-                           {-# LINE 1208 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 98, column 62)-                      _lhsOcollectedConstructorNames =-                          ({-# LINE 98 "src-ag/Transform.ag" #-}-                           _hdIcollectedConstructorNames `Set.union` _tlIcollectedConstructorNames-                           {-# LINE 1214 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 130, column 28)-                      _lhsOcollectedFields =-                          ({-# LINE 130 "src-ag/Transform.ag" #-}-                           _hdIcollectedFields ++ _tlIcollectedFields-                           {-# LINE 1220 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)-                      _lhsOcollectedMacros =-                          ({-# LINE 1283 "src-ag/Transform.ag" #-}-                           _hdIcollectedMacros ++ _tlIcollectedMacros-                           {-# LINE 1226 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _hdOallConstructors =-                          ({-# LINE 101 "src-ag/Transform.ag" #-}-                           _lhsIallConstructors-                           {-# LINE 1232 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _hdOallNonterminals =-                          ({-# LINE 93 "src-ag/Transform.ag" #-}-                           _lhsIallNonterminals-                           {-# LINE 1238 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _hdOnts =-                          ({-# LINE 175 "src-ag/Transform.ag" #-}-                           _lhsInts-                           {-# LINE 1244 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _tlOallConstructors =-                          ({-# LINE 101 "src-ag/Transform.ag" #-}-                           _lhsIallConstructors-                           {-# LINE 1250 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _tlOallNonterminals =-                          ({-# LINE 93 "src-ag/Transform.ag" #-}-                           _lhsIallNonterminals-                           {-# LINE 1256 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _tlOnts =-                          ({-# LINE 175 "src-ag/Transform.ag" #-}-                           _lhsInts-                           {-# LINE 1262 "dist/build/Transform" #-}-                           )-                      ( _hdIcollectedConParams,_hdIcollectedConstraints,_hdIcollectedConstructorNames,_hdIcollectedFields,_hdIcollectedMacros) =-                          hd_ _hdOallConstructors _hdOallNonterminals _hdOnts-                      ( _tlIcollectedConParams,_tlIcollectedConstraints,_tlIcollectedConstructorNames,_tlIcollectedFields,_tlIcollectedMacros) =-                          tl_ _tlOallConstructors _tlOallNonterminals _tlOnts-                  in  ( _lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorNames,_lhsOcollectedFields,_lhsOcollectedMacros))))-sem_Alts_Nil :: T_Alts-sem_Alts_Nil =-    (T_Alts (\ _lhsIallConstructors-               _lhsIallNonterminals-               _lhsInts ->-                 (let _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                      _lhsOcollectedConstructorNames :: (Set ConstructorIdent)-                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                      -- use rule "src-ag/Transform.ag"(line 132, column 31)-                      _lhsOcollectedConParams =-                          ({-# LINE 132 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 1283 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 131, column 33)-                      _lhsOcollectedConstraints =-                          ({-# LINE 131 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 1289 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 98, column 62)-                      _lhsOcollectedConstructorNames =-                          ({-# LINE 98 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 1295 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 130, column 28)-                      _lhsOcollectedFields =-                          ({-# LINE 130 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 1301 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)-                      _lhsOcollectedMacros =-                          ({-# LINE 1283 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 1307 "dist/build/Transform" #-}-                           )-                  in  ( _lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorNames,_lhsOcollectedFields,_lhsOcollectedMacros))))--- Attrs --------------------------------------------------------{--   visit 0:-      inherited attributes:-         allFields            : DataTypes-         allNonterminals      : Set NontermIdent-         nts                  : Set NontermIdent-         options              : Options-      chained attributes:-         attrDecls            : Map NontermIdent (Attributes, Attributes)-         attrs                : Map NontermIdent (Attributes, Attributes)-      synthesized attributes:-         errors               : Seq Error-         useMap               : Map NontermIdent (Map Identifier (String,String,String))-   alternatives:-      alternative Attrs:-         child pos            : {Pos}-         child inh            : {AttrNames}-         child chn            : {AttrNames}-         child syn            : {AttrNames}-         visit 0:-            local attrDecls   : _-            local errors      : _-            local inherited   : _-            local synthesized : _-            local useMap      : _-            local errors1     : _--}--- cata-sem_Attrs :: Attrs ->-             T_Attrs-sem_Attrs (Attrs _pos _inh _chn _syn) =-    (sem_Attrs_Attrs _pos _inh _chn _syn)--- semantic domain-newtype T_Attrs = T_Attrs (DataTypes ->-                           (Set NontermIdent) ->-                           (Map NontermIdent (Attributes, Attributes)) ->-                           (Map NontermIdent (Attributes, Attributes)) ->-                           (Set NontermIdent) ->-                           Options ->-                           ( (Map NontermIdent (Attributes, Attributes)),(Map NontermIdent (Attributes, Attributes)),(Seq Error),(Map NontermIdent (Map Identifier (String,String,String)))))-data Inh_Attrs = Inh_Attrs {allFields_Inh_Attrs :: !(DataTypes),allNonterminals_Inh_Attrs :: !((Set NontermIdent)),attrDecls_Inh_Attrs :: !((Map NontermIdent (Attributes, Attributes))),attrs_Inh_Attrs :: !((Map NontermIdent (Attributes, Attributes))),nts_Inh_Attrs :: !((Set NontermIdent)),options_Inh_Attrs :: !(Options)}-data Syn_Attrs = Syn_Attrs {attrDecls_Syn_Attrs :: !((Map NontermIdent (Attributes, Attributes))),attrs_Syn_Attrs :: !((Map NontermIdent (Attributes, Attributes))),errors_Syn_Attrs :: !((Seq Error)),useMap_Syn_Attrs :: !((Map NontermIdent (Map Identifier (String,String,String))))}-wrap_Attrs :: T_Attrs ->-              Inh_Attrs ->-              Syn_Attrs-wrap_Attrs (T_Attrs sem) (Inh_Attrs _lhsIallFields _lhsIallNonterminals _lhsIattrDecls _lhsIattrs _lhsInts _lhsIoptions) =-    (let ( _lhsOattrDecls,_lhsOattrs,_lhsOerrors,_lhsOuseMap) = sem _lhsIallFields _lhsIallNonterminals _lhsIattrDecls _lhsIattrs _lhsInts _lhsIoptions-     in  (Syn_Attrs _lhsOattrDecls _lhsOattrs _lhsOerrors _lhsOuseMap))-sem_Attrs_Attrs :: Pos ->-                   AttrNames ->-                   AttrNames ->-                   AttrNames ->-                   T_Attrs-sem_Attrs_Attrs pos_ inh_ chn_ syn_ =-    (T_Attrs (\ _lhsIallFields-                _lhsIallNonterminals-                _lhsIattrDecls-                _lhsIattrs-                _lhsInts-                _lhsIoptions ->-                  (let _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                       _lhsOerrors :: (Seq Error)-                       _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))-                       _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                       -- "src-ag/Transform.ag"(line 1018, column 15)-                       (_attrDecls,_errors) =-                           ({-# LINE 1018 "src-ag/Transform.ag" #-}-                            checkAttrs _lhsIallFields (Set.toList _lhsInts) _inherited _synthesized _lhsIattrDecls-                            {-# LINE 1379 "dist/build/Transform" #-}-                            )-                       -- "src-ag/Transform.ag"(line 1020, column 15)-                       (_inherited,_synthesized,_useMap) =-                           ({-# LINE 1020 "src-ag/Transform.ag" #-}-                            let splitAttrs xs = unzip [ ((n,makeType _lhsIallNonterminals t),(n,ud))-                                                      | (n,t,ud) <- xs-                                                      ]-                                (inh,_)     = splitAttrs inh_-                                (chn,uses1) = splitAttrs chn_-                                (syn,uses2) = splitAttrs syn_-                                isUse (n,(e1,e2,_)) = not (null e1 || null e2)-                            in (inh++chn,chn++syn, Map.fromList (Prelude.filter isUse (uses1++uses2)))-                            {-# LINE 1392 "dist/build/Transform" #-}-                            )-                       -- "src-ag/Transform.ag"(line 1028, column 11)-                       _lhsOuseMap =-                           ({-# LINE 1028 "src-ag/Transform.ag" #-}-                            Map.fromList (zip (Set.toList _lhsInts) (repeat _useMap))-                            {-# LINE 1398 "dist/build/Transform" #-}-                            )-                       -- "src-ag/Transform.ag"(line 1030, column 11)-                       _errors1 =-                           ({-# LINE 1030 "src-ag/Transform.ag" #-}-                            if checkParseTy _lhsIoptions-                            then let attrs  = inh_ ++ syn_ ++ chn_-                                     items = map (\(ident,tp,_) -> (getPos ident, tp)) attrs-                                     errs  = map check items-                                     check (pos,Haskell s) =-                                       let exp = Expression pos tks-                                           tks = [tk]-                                           tk  = HsToken s pos-                                       in Seq.fromList $ checkTy exp-                                     check _ = Seq.empty-                                 in foldr (Seq.><) Seq.empty errs-                            else Seq.empty-                            {-# LINE 1415 "dist/build/Transform" #-}-                            )-                       -- "src-ag/Transform.ag"(line 1042, column 11)-                       _lhsOerrors =-                           ({-# LINE 1042 "src-ag/Transform.ag" #-}-                            _errors     Seq.>< _errors1-                            {-# LINE 1421 "dist/build/Transform" #-}-                            )-                       -- "src-ag/Transform.ag"(line 1323, column 11)-                       _lhsOattrs =-                           ({-# LINE 1323 "src-ag/Transform.ag" #-}-                            let insert decls nt = if Map.member nt decls-                                                    then  Map.update (\(inh,syn) -> Just ( Map.union inh $ Map.fromList _inherited-                                                                                         , Map.union syn $ Map.fromList _synthesized)) nt decls-                                                    else  Map.insert nt (Map.fromList _inherited, Map.fromList _synthesized) decls-                            in  foldl insert _lhsIattrs (Set.toList _lhsInts)-                            {-# LINE 1431 "dist/build/Transform" #-}-                            )-                       -- copy rule (from local)-                       _lhsOattrDecls =-                           ({-# LINE 144 "src-ag/Transform.ag" #-}-                            _attrDecls-                            {-# LINE 1437 "dist/build/Transform" #-}-                            )-                   in  ( _lhsOattrDecls,_lhsOattrs,_lhsOerrors,_lhsOuseMap))))--- ConstructorSet -----------------------------------------------{--   visit 0:-      synthesized attributes:-         collectedConstructorNames : Set ConstructorIdent-         constructors         : (Set ConstructorIdent->Set ConstructorIdent)-         errors               : Seq Error-   alternatives:-      alternative CAll:-      alternative CDifference:-         child set1           : ConstructorSet -         child set2           : ConstructorSet -      alternative CName:-         child name           : {ConstructorIdent}-      alternative CUnion:-         child set1           : ConstructorSet -         child set2           : ConstructorSet --}--- cata-sem_ConstructorSet :: ConstructorSet ->-                      T_ConstructorSet-sem_ConstructorSet (CAll) =-    (sem_ConstructorSet_CAll)-sem_ConstructorSet (CDifference _set1 _set2) =-    (sem_ConstructorSet_CDifference (sem_ConstructorSet _set1) (sem_ConstructorSet _set2))-sem_ConstructorSet (CName _name) =-    (sem_ConstructorSet_CName _name)-sem_ConstructorSet (CUnion _set1 _set2) =-    (sem_ConstructorSet_CUnion (sem_ConstructorSet _set1) (sem_ConstructorSet _set2))--- semantic domain-newtype T_ConstructorSet = T_ConstructorSet (( (Set ConstructorIdent),((Set ConstructorIdent->Set ConstructorIdent)),(Seq Error)))-data Inh_ConstructorSet = Inh_ConstructorSet {}-data Syn_ConstructorSet = Syn_ConstructorSet {collectedConstructorNames_Syn_ConstructorSet :: !((Set ConstructorIdent)),constructors_Syn_ConstructorSet :: !(((Set ConstructorIdent->Set ConstructorIdent))),errors_Syn_ConstructorSet :: !((Seq Error))}-wrap_ConstructorSet :: T_ConstructorSet ->-                       Inh_ConstructorSet ->-                       Syn_ConstructorSet-wrap_ConstructorSet (T_ConstructorSet sem) (Inh_ConstructorSet) =-    (let ( _lhsOcollectedConstructorNames,_lhsOconstructors,_lhsOerrors) = sem-     in  (Syn_ConstructorSet _lhsOcollectedConstructorNames _lhsOconstructors _lhsOerrors))-sem_ConstructorSet_CAll :: T_ConstructorSet-sem_ConstructorSet_CAll =-    (T_ConstructorSet (let _lhsOconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))-                           _lhsOcollectedConstructorNames :: (Set ConstructorIdent)-                           _lhsOerrors :: (Seq Error)-                           -- "src-ag/Transform.ag"(line 765, column 17)-                           _lhsOconstructors =-                               ({-# LINE 765 "src-ag/Transform.ag" #-}-                                \ds -> ds-                                {-# LINE 1488 "dist/build/Transform" #-}-                                )-                           -- use rule "src-ag/Transform.ag"(line 98, column 62)-                           _lhsOcollectedConstructorNames =-                               ({-# LINE 98 "src-ag/Transform.ag" #-}-                                Set.empty-                                {-# LINE 1494 "dist/build/Transform" #-}-                                )-                           -- use rule "src-ag/Transform.ag"(line 44, column 19)-                           _lhsOerrors =-                               ({-# LINE 44 "src-ag/Transform.ag" #-}-                                Seq.empty-                                {-# LINE 1500 "dist/build/Transform" #-}-                                )-                       in  ( _lhsOcollectedConstructorNames,_lhsOconstructors,_lhsOerrors)))-sem_ConstructorSet_CDifference :: T_ConstructorSet ->-                                  T_ConstructorSet ->-                                  T_ConstructorSet-sem_ConstructorSet_CDifference (T_ConstructorSet set1_) (T_ConstructorSet set2_) =-    (T_ConstructorSet (let _lhsOconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))-                           _lhsOcollectedConstructorNames :: (Set ConstructorIdent)-                           _lhsOerrors :: (Seq Error)-                           _set1IcollectedConstructorNames :: (Set ConstructorIdent)-                           _set1Iconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))-                           _set1Ierrors :: (Seq Error)-                           _set2IcollectedConstructorNames :: (Set ConstructorIdent)-                           _set2Iconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))-                           _set2Ierrors :: (Seq Error)-                           -- "src-ag/Transform.ag"(line 764, column 17)-                           _lhsOconstructors =-                               ({-# LINE 764 "src-ag/Transform.ag" #-}-                                \ds -> _set1Iconstructors ds `Set.difference` _set2Iconstructors ds-                                {-# LINE 1520 "dist/build/Transform" #-}-                                )-                           -- use rule "src-ag/Transform.ag"(line 98, column 62)-                           _lhsOcollectedConstructorNames =-                               ({-# LINE 98 "src-ag/Transform.ag" #-}-                                _set1IcollectedConstructorNames `Set.union` _set2IcollectedConstructorNames-                                {-# LINE 1526 "dist/build/Transform" #-}-                                )-                           -- use rule "src-ag/Transform.ag"(line 44, column 19)-                           _lhsOerrors =-                               ({-# LINE 44 "src-ag/Transform.ag" #-}-                                _set1Ierrors Seq.>< _set2Ierrors-                                {-# LINE 1532 "dist/build/Transform" #-}-                                )-                           ( _set1IcollectedConstructorNames,_set1Iconstructors,_set1Ierrors) =-                               set1_-                           ( _set2IcollectedConstructorNames,_set2Iconstructors,_set2Ierrors) =-                               set2_-                       in  ( _lhsOcollectedConstructorNames,_lhsOconstructors,_lhsOerrors)))-sem_ConstructorSet_CName :: ConstructorIdent ->-                            T_ConstructorSet-sem_ConstructorSet_CName name_ =-    (T_ConstructorSet (let _lhsOcollectedConstructorNames :: (Set ConstructorIdent)-                           _lhsOconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))-                           _lhsOerrors :: (Seq Error)-                           -- "src-ag/Transform.ag"(line 599, column 11)-                           _lhsOcollectedConstructorNames =-                               ({-# LINE 599 "src-ag/Transform.ag" #-}-                                Set.singleton name_-                                {-# LINE 1549 "dist/build/Transform" #-}-                                )-                           -- "src-ag/Transform.ag"(line 762, column 17)-                           _lhsOconstructors =-                               ({-# LINE 762 "src-ag/Transform.ag" #-}-                                \ds -> Set.singleton name_-                                {-# LINE 1555 "dist/build/Transform" #-}-                                )-                           -- use rule "src-ag/Transform.ag"(line 44, column 19)-                           _lhsOerrors =-                               ({-# LINE 44 "src-ag/Transform.ag" #-}-                                Seq.empty-                                {-# LINE 1561 "dist/build/Transform" #-}-                                )-                       in  ( _lhsOcollectedConstructorNames,_lhsOconstructors,_lhsOerrors)))-sem_ConstructorSet_CUnion :: T_ConstructorSet ->-                             T_ConstructorSet ->-                             T_ConstructorSet-sem_ConstructorSet_CUnion (T_ConstructorSet set1_) (T_ConstructorSet set2_) =-    (T_ConstructorSet (let _lhsOconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))-                           _lhsOcollectedConstructorNames :: (Set ConstructorIdent)-                           _lhsOerrors :: (Seq Error)-                           _set1IcollectedConstructorNames :: (Set ConstructorIdent)-                           _set1Iconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))-                           _set1Ierrors :: (Seq Error)-                           _set2IcollectedConstructorNames :: (Set ConstructorIdent)-                           _set2Iconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))-                           _set2Ierrors :: (Seq Error)-                           -- "src-ag/Transform.ag"(line 763, column 17)-                           _lhsOconstructors =-                               ({-# LINE 763 "src-ag/Transform.ag" #-}-                                \ds -> _set1Iconstructors ds `Set.union`      _set2Iconstructors ds-                                {-# LINE 1581 "dist/build/Transform" #-}-                                )-                           -- use rule "src-ag/Transform.ag"(line 98, column 62)-                           _lhsOcollectedConstructorNames =-                               ({-# LINE 98 "src-ag/Transform.ag" #-}-                                _set1IcollectedConstructorNames `Set.union` _set2IcollectedConstructorNames-                                {-# LINE 1587 "dist/build/Transform" #-}-                                )-                           -- use rule "src-ag/Transform.ag"(line 44, column 19)-                           _lhsOerrors =-                               ({-# LINE 44 "src-ag/Transform.ag" #-}-                                _set1Ierrors Seq.>< _set2Ierrors-                                {-# LINE 1593 "dist/build/Transform" #-}-                                )-                           ( _set1IcollectedConstructorNames,_set1Iconstructors,_set1Ierrors) =-                               set1_-                           ( _set2IcollectedConstructorNames,_set2Iconstructors,_set2Ierrors) =-                               set2_-                       in  ( _lhsOcollectedConstructorNames,_lhsOconstructors,_lhsOerrors)))--- Elem ---------------------------------------------------------{--   visit 0:-      inherited attributes:-         allAttrDecls         : Map NontermIdent (Attributes, Attributes)-         allAttrs             : Map NontermIdent (Attributes, Attributes)-         allConstructors      : Map NontermIdent (Set ConstructorIdent)-         allFields            : DataTypes-         allNonterminals      : Set NontermIdent-         definedSets          : DefinedSets-         options              : Options-      chained attributes:-         attrDecls            : Map NontermIdent (Attributes, Attributes)-         attrs                : Map NontermIdent (Attributes, Attributes)-         defSets              : Map Identifier (Set NontermIdent,Set Identifier)-      synthesized attributes:-         attrOrderCollect     : AttrOrderMap-         blocks               : Blocks-         collectedArounds     : [ (NontermIdent, ConstructorIdent, [AroundInfo])  ]-         collectedAugments    : [ (NontermIdent, ConstructorIdent, [AugmentInfo]) ]-         collectedConParams   : [(NontermIdent, ConstructorIdent, Set Identifier)]-         collectedConstraints : [(NontermIdent, ConstructorIdent, [Type])]-         collectedConstructorsMap : Map NontermIdent (Set ConstructorIdent)-         collectedFields      : [(NontermIdent, ConstructorIdent, FieldMap)]-         collectedInsts       : [ (NontermIdent, ConstructorIdent, [Identifier]) ]-         collectedMacros      : [(NontermIdent, ConstructorIdent, MaybeMacro)]-         collectedMerges      : [ (NontermIdent, ConstructorIdent, [MergeInfo])   ]-         collectedNames       : Set Identifier-         collectedRules       : [ (NontermIdent, ConstructorIdent, RuleInfo)]-         collectedSetNames    : Set Identifier-         collectedSigs        : [ (NontermIdent, ConstructorIdent, SigInfo) ]-         collectedUniques     : [ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]-         ctxCollect           : ContextMap-         derivings            : Derivings-         errors               : Seq Error-         moduleDecl           : Maybe (String,String,String)-         paramsCollect        : ParamMap-         pragmas              : Options -> Options-         quantCollect         : QuantMap-         semPragmasCollect    : PragmaMap-         typeSyns             : TypeSyns-         useMap               : Map NontermIdent (Map Identifier (String,String,String))-         wrappers             : Set NontermIdent-   alternatives:-      alternative Attr:-         child pos            : {Pos}-         child ctx            : {ClassContext}-         child names          : NontSet -         child quants         : {[String]}-         child attrs          : Attrs -      alternative Data:-         child pos            : {Pos}-         child ctx            : {ClassContext}-         child names          : NontSet -         child params         : {[Identifier]}-         child attrs          : Attrs -         child alts           : Alts -         child ext            : {Bool}-      alternative Deriving:-         child pos            : {Pos}-         child set            : NontSet -         child classes        : {[NontermIdent]}-      alternative Module:-         child pos            : {Pos}-         child name           : {String}-         child exports        : {String}-         child imports        : {String}-      alternative Nocatas:-         child pos            : {Pos}-         child set            : NontSet -      alternative Pragma:-         child pos            : {Pos}-         child names          : {[NontermIdent]}-      alternative Sem:-         child pos            : {Pos}-         child ctx            : {ClassContext}-         child names          : NontSet -         child attrs          : Attrs -         child quants         : {[String]}-         child alts           : SemAlts -      alternative Set:-         child pos            : {Pos}-         child name           : {NontermIdent}-         child merge          : {Bool}-         child set            : NontSet -         visit 0:-            local defSets2    : _-            local errs        : _-      alternative Txt:-         child pos            : {Pos}-         child kind           : {BlockKind}-         child mbNt           : {Maybe NontermIdent}-         child lines          : {[String]}-         visit 0:-            local blockInfo   : _-            local blockValue  : _-      alternative Type:-         child pos            : {Pos}-         child ctx            : {ClassContext}-         child name           : {NontermIdent}-         child params         : {[Identifier]}-         child type           : {ComplexType}-         visit 0:-            local expanded    : _-            local argType     : _-      alternative Wrapper:-         child pos            : {Pos}-         child set            : NontSet --}--- cata-sem_Elem :: Elem ->-            T_Elem-sem_Elem (Attr _pos _ctx _names _quants _attrs) =-    (sem_Elem_Attr _pos _ctx (sem_NontSet _names) _quants (sem_Attrs _attrs))-sem_Elem (Data _pos _ctx _names _params _attrs _alts _ext) =-    (sem_Elem_Data _pos _ctx (sem_NontSet _names) _params (sem_Attrs _attrs) (sem_Alts _alts) _ext)-sem_Elem (Deriving _pos _set _classes) =-    (sem_Elem_Deriving _pos (sem_NontSet _set) _classes)-sem_Elem (Module _pos _name _exports _imports) =-    (sem_Elem_Module _pos _name _exports _imports)-sem_Elem (Nocatas _pos _set) =-    (sem_Elem_Nocatas _pos (sem_NontSet _set))-sem_Elem (Pragma _pos _names) =-    (sem_Elem_Pragma _pos _names)-sem_Elem (Sem _pos _ctx _names _attrs _quants _alts) =-    (sem_Elem_Sem _pos _ctx (sem_NontSet _names) (sem_Attrs _attrs) _quants (sem_SemAlts _alts))-sem_Elem (Set _pos _name _merge _set) =-    (sem_Elem_Set _pos _name _merge (sem_NontSet _set))-sem_Elem (Txt _pos _kind _mbNt _lines) =-    (sem_Elem_Txt _pos _kind _mbNt _lines)-sem_Elem (Type _pos _ctx _name _params _type) =-    (sem_Elem_Type _pos _ctx _name _params _type)-sem_Elem (Wrapper _pos _set) =-    (sem_Elem_Wrapper _pos (sem_NontSet _set))--- semantic domain-newtype T_Elem = T_Elem ((Map NontermIdent (Attributes, Attributes)) ->-                         (Map NontermIdent (Attributes, Attributes)) ->-                         (Map NontermIdent (Set ConstructorIdent)) ->-                         DataTypes ->-                         (Set NontermIdent) ->-                         (Map NontermIdent (Attributes, Attributes)) ->-                         (Map NontermIdent (Attributes, Attributes)) ->-                         (Map Identifier (Set NontermIdent,Set Identifier)) ->-                         DefinedSets ->-                         Options ->-                         ( (Map NontermIdent (Attributes, Attributes)),AttrOrderMap,(Map NontermIdent (Attributes, Attributes)),Blocks,([ (NontermIdent, ConstructorIdent, [AroundInfo])  ]),([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ]),([(NontermIdent, ConstructorIdent, Set Identifier)]),([(NontermIdent, ConstructorIdent, [Type])]),(Map NontermIdent (Set ConstructorIdent)),([(NontermIdent, ConstructorIdent, FieldMap)]),([ (NontermIdent, ConstructorIdent, [Identifier]) ]),([(NontermIdent, ConstructorIdent, MaybeMacro)]),([ (NontermIdent, ConstructorIdent, [MergeInfo])   ]),(Set Identifier),([ (NontermIdent, ConstructorIdent, RuleInfo)]),(Set Identifier),([ (NontermIdent, ConstructorIdent, SigInfo) ]),([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]),ContextMap,(Map Identifier (Set NontermIdent,Set Identifier)),Derivings,(Seq Error),(Maybe (String,String,String)),ParamMap,(Options -> Options),QuantMap,PragmaMap,TypeSyns,(Map NontermIdent (Map Identifier (String,String,String))),(Set NontermIdent)))-data Inh_Elem = Inh_Elem {allAttrDecls_Inh_Elem :: !((Map NontermIdent (Attributes, Attributes))),allAttrs_Inh_Elem :: !((Map NontermIdent (Attributes, Attributes))),allConstructors_Inh_Elem :: !((Map NontermIdent (Set ConstructorIdent))),allFields_Inh_Elem :: !(DataTypes),allNonterminals_Inh_Elem :: !((Set NontermIdent)),attrDecls_Inh_Elem :: !((Map NontermIdent (Attributes, Attributes))),attrs_Inh_Elem :: !((Map NontermIdent (Attributes, Attributes))),defSets_Inh_Elem :: !((Map Identifier (Set NontermIdent,Set Identifier))),definedSets_Inh_Elem :: !(DefinedSets),options_Inh_Elem :: !(Options)}-data Syn_Elem = Syn_Elem {attrDecls_Syn_Elem :: !((Map NontermIdent (Attributes, Attributes))),attrOrderCollect_Syn_Elem :: !(AttrOrderMap),attrs_Syn_Elem :: !((Map NontermIdent (Attributes, Attributes))),blocks_Syn_Elem :: !(Blocks),collectedArounds_Syn_Elem :: !(([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])),collectedAugments_Syn_Elem :: !(([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])),collectedConParams_Syn_Elem :: !(([(NontermIdent, ConstructorIdent, Set Identifier)])),collectedConstraints_Syn_Elem :: !(([(NontermIdent, ConstructorIdent, [Type])])),collectedConstructorsMap_Syn_Elem :: !((Map NontermIdent (Set ConstructorIdent))),collectedFields_Syn_Elem :: !(([(NontermIdent, ConstructorIdent, FieldMap)])),collectedInsts_Syn_Elem :: !(([ (NontermIdent, ConstructorIdent, [Identifier]) ])),collectedMacros_Syn_Elem :: !(([(NontermIdent, ConstructorIdent, MaybeMacro)])),collectedMerges_Syn_Elem :: !(([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])),collectedNames_Syn_Elem :: !((Set Identifier)),collectedRules_Syn_Elem :: !(([ (NontermIdent, ConstructorIdent, RuleInfo)])),collectedSetNames_Syn_Elem :: !((Set Identifier)),collectedSigs_Syn_Elem :: !(([ (NontermIdent, ConstructorIdent, SigInfo) ])),collectedUniques_Syn_Elem :: !(([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])),ctxCollect_Syn_Elem :: !(ContextMap),defSets_Syn_Elem :: !((Map Identifier (Set NontermIdent,Set Identifier))),derivings_Syn_Elem :: !(Derivings),errors_Syn_Elem :: !((Seq Error)),moduleDecl_Syn_Elem :: !((Maybe (String,String,String))),paramsCollect_Syn_Elem :: !(ParamMap),pragmas_Syn_Elem :: !((Options -> Options)),quantCollect_Syn_Elem :: !(QuantMap),semPragmasCollect_Syn_Elem :: !(PragmaMap),typeSyns_Syn_Elem :: !(TypeSyns),useMap_Syn_Elem :: !((Map NontermIdent (Map Identifier (String,String,String)))),wrappers_Syn_Elem :: !((Set NontermIdent))}-wrap_Elem :: T_Elem ->-             Inh_Elem ->-             Syn_Elem-wrap_Elem (T_Elem sem) (Inh_Elem _lhsIallAttrDecls _lhsIallAttrs _lhsIallConstructors _lhsIallFields _lhsIallNonterminals _lhsIattrDecls _lhsIattrs _lhsIdefSets _lhsIdefinedSets _lhsIoptions) =-    (let ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers) = sem _lhsIallAttrDecls _lhsIallAttrs _lhsIallConstructors _lhsIallFields _lhsIallNonterminals _lhsIattrDecls _lhsIattrs _lhsIdefSets _lhsIdefinedSets _lhsIoptions-     in  (Syn_Elem _lhsOattrDecls _lhsOattrOrderCollect _lhsOattrs _lhsOblocks _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorsMap _lhsOcollectedFields _lhsOcollectedInsts _lhsOcollectedMacros _lhsOcollectedMerges _lhsOcollectedNames _lhsOcollectedRules _lhsOcollectedSetNames _lhsOcollectedSigs _lhsOcollectedUniques _lhsOctxCollect _lhsOdefSets _lhsOderivings _lhsOerrors _lhsOmoduleDecl _lhsOparamsCollect _lhsOpragmas _lhsOquantCollect _lhsOsemPragmasCollect _lhsOtypeSyns _lhsOuseMap _lhsOwrappers))-sem_Elem_Attr :: Pos ->-                 ClassContext ->-                 T_NontSet ->-                 ([String]) ->-                 T_Attrs ->-                 T_Elem-sem_Elem_Attr pos_ ctx_ (T_NontSet names_) quants_ (T_Attrs attrs_) =-    (T_Elem (\ _lhsIallAttrDecls-               _lhsIallAttrs-               _lhsIallConstructors-               _lhsIallFields-               _lhsIallNonterminals-               _lhsIattrDecls-               _lhsIattrs-               _lhsIdefSets-               _lhsIdefinedSets-               _lhsIoptions ->-                 (let _lhsOctxCollect :: ContextMap-                      _lhsOquantCollect :: QuantMap-                      _attrsOnts :: (Set NontermIdent)-                      _lhsOattrOrderCollect :: AttrOrderMap-                      _lhsOblocks :: Blocks-                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))-                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                      _lhsOcollectedNames :: (Set Identifier)-                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                      _lhsOcollectedSetNames :: (Set Identifier)-                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                      _lhsOderivings :: Derivings-                      _lhsOerrors :: (Seq Error)-                      _lhsOmoduleDecl :: (Maybe (String,String,String))-                      _lhsOparamsCollect :: ParamMap-                      _lhsOpragmas :: (Options -> Options)-                      _lhsOsemPragmasCollect :: PragmaMap-                      _lhsOtypeSyns :: TypeSyns-                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                      _lhsOwrappers :: (Set NontermIdent)-                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))-                      _namesOallFields :: DataTypes-                      _namesOallNonterminals :: (Set NontermIdent)-                      _namesOdefinedSets :: DefinedSets-                      _attrsOallFields :: DataTypes-                      _attrsOallNonterminals :: (Set NontermIdent)-                      _attrsOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _attrsOattrs :: (Map NontermIdent (Attributes, Attributes))-                      _attrsOoptions :: Options-                      _namesIcollectedNames :: (Set Identifier)-                      _namesIerrors :: (Seq Error)-                      _namesInontSet :: (Set NontermIdent)-                      _attrsIattrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _attrsIattrs :: (Map NontermIdent (Attributes, Attributes))-                      _attrsIerrors :: (Seq Error)-                      _attrsIuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                      -- "src-ag/Transform.ag"(line 952, column 7)-                      _lhsOctxCollect =-                          ({-# LINE 952 "src-ag/Transform.ag" #-}-                           if null ctx_-                           then Map.empty-                           else Map.fromList [(nt, ctx_) | nt <- Set.toList _namesInontSet]-                           {-# LINE 1823 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 977, column 7)-                      _lhsOquantCollect =-                          ({-# LINE 977 "src-ag/Transform.ag" #-}-                           if null quants_-                           then Map.empty-                           else Map.fromList [(nt, quants_) | nt <- Set.toList _namesInontSet]-                           {-# LINE 1831 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 1013, column 10)-                      _attrsOnts =-                          ({-# LINE 1013 "src-ag/Transform.ag" #-}-                           _namesInontSet-                           {-# LINE 1837 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 893, column 55)-                      _lhsOattrOrderCollect =-                          ({-# LINE 893 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 1843 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 46, column 19)-                      _lhsOblocks =-                          ({-# LINE 46 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 1849 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 164, column 32)-                      _lhsOcollectedArounds =-                          ({-# LINE 164 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 1855 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 163, column 32)-                      _lhsOcollectedAugments =-                          ({-# LINE 163 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 1861 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 132, column 31)-                      _lhsOcollectedConParams =-                          ({-# LINE 132 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 1867 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 131, column 33)-                      _lhsOcollectedConstraints =-                          ({-# LINE 131 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 1873 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 99, column 48)-                      _lhsOcollectedConstructorsMap =-                          ({-# LINE 99 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 1879 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 130, column 28)-                      _lhsOcollectedFields =-                          ({-# LINE 130 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 1885 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 161, column 32)-                      _lhsOcollectedInsts =-                          ({-# LINE 161 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 1891 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)-                      _lhsOcollectedMacros =-                          ({-# LINE 1283 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 1897 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 165, column 32)-                      _lhsOcollectedMerges =-                          ({-# LINE 165 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 1903 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 91, column 50)-                      _lhsOcollectedNames =-                          ({-# LINE 91 "src-ag/Transform.ag" #-}-                           _namesIcollectedNames-                           {-# LINE 1909 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 159, column 32)-                      _lhsOcollectedRules =-                          ({-# LINE 159 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 1915 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 90, column 50)-                      _lhsOcollectedSetNames =-                          ({-# LINE 90 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 1921 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 160, column 32)-                      _lhsOcollectedSigs =-                          ({-# LINE 160 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 1927 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 162, column 32)-                      _lhsOcollectedUniques =-                          ({-# LINE 162 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 1933 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 990, column 33)-                      _lhsOderivings =-                          ({-# LINE 990 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 1939 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 44, column 19)-                      _lhsOerrors =-                          ({-# LINE 44 "src-ag/Transform.ag" #-}-                           _namesIerrors Seq.>< _attrsIerrors-                           {-# LINE 1945 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)-                      _lhsOmoduleDecl =-                          ({-# LINE 1187 "src-ag/Transform.ag" #-}-                           mzero-                           {-# LINE 1951 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 925, column 37)-                      _lhsOparamsCollect =-                          ({-# LINE 925 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 1957 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 787, column 34)-                      _lhsOpragmas =-                          ({-# LINE 787 "src-ag/Transform.ag" #-}-                           id-                           {-# LINE 1963 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 865, column 56)-                      _lhsOsemPragmasCollect =-                          ({-# LINE 865 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 1969 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 626, column 32)-                      _lhsOtypeSyns =-                          ({-# LINE 626 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 1975 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 145, column 15)-                      _lhsOuseMap =-                          ({-# LINE 145 "src-ag/Transform.ag" #-}-                           _attrsIuseMap-                           {-# LINE 1981 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 771, column 32)-                      _lhsOwrappers =-                          ({-# LINE 771 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 1987 "dist/build/Transform" #-}-                           )-                      -- copy rule (up)-                      _lhsOattrDecls =-                          ({-# LINE 144 "src-ag/Transform.ag" #-}-                           _attrsIattrDecls-                           {-# LINE 1993 "dist/build/Transform" #-}-                           )-                      -- copy rule (up)-                      _lhsOattrs =-                          ({-# LINE 1316 "src-ag/Transform.ag" #-}-                           _attrsIattrs-                           {-# LINE 1999 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOdefSets =-                          ({-# LINE 109 "src-ag/Transform.ag" #-}-                           _lhsIdefSets-                           {-# LINE 2005 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _namesOallFields =-                          ({-# LINE 136 "src-ag/Transform.ag" #-}-                           _lhsIallFields-                           {-# LINE 2011 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _namesOallNonterminals =-                          ({-# LINE 93 "src-ag/Transform.ag" #-}-                           _lhsIallNonterminals-                           {-# LINE 2017 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _namesOdefinedSets =-                          ({-# LINE 112 "src-ag/Transform.ag" #-}-                           _lhsIdefinedSets-                           {-# LINE 2023 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _attrsOallFields =-                          ({-# LINE 136 "src-ag/Transform.ag" #-}-                           _lhsIallFields-                           {-# LINE 2029 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _attrsOallNonterminals =-                          ({-# LINE 93 "src-ag/Transform.ag" #-}-                           _lhsIallNonterminals-                           {-# LINE 2035 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _attrsOattrDecls =-                          ({-# LINE 144 "src-ag/Transform.ag" #-}-                           _lhsIattrDecls-                           {-# LINE 2041 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _attrsOattrs =-                          ({-# LINE 1316 "src-ag/Transform.ag" #-}-                           _lhsIattrs-                           {-# LINE 2047 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _attrsOoptions =-                          ({-# LINE 40 "src-ag/Transform.ag" #-}-                           _lhsIoptions-                           {-# LINE 2053 "dist/build/Transform" #-}-                           )-                      ( _namesIcollectedNames,_namesIerrors,_namesInontSet) =-                          names_ _namesOallFields _namesOallNonterminals _namesOdefinedSets-                      ( _attrsIattrDecls,_attrsIattrs,_attrsIerrors,_attrsIuseMap) =-                          attrs_ _attrsOallFields _attrsOallNonterminals _attrsOattrDecls _attrsOattrs _attrsOnts _attrsOoptions-                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))-sem_Elem_Data :: Pos ->-                 ClassContext ->-                 T_NontSet ->-                 ([Identifier]) ->-                 T_Attrs ->-                 T_Alts ->-                 Bool ->-                 T_Elem-sem_Elem_Data pos_ ctx_ (T_NontSet names_) params_ (T_Attrs attrs_) (T_Alts alts_) ext_ =-    (T_Elem (\ _lhsIallAttrDecls-               _lhsIallAttrs-               _lhsIallConstructors-               _lhsIallFields-               _lhsIallNonterminals-               _lhsIattrDecls-               _lhsIattrs-               _lhsIdefSets-               _lhsIdefinedSets-               _lhsIoptions ->-                 (let _altsOnts :: (Set NontermIdent)-                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))-                      _lhsOparamsCollect :: ParamMap-                      _lhsOctxCollect :: ContextMap-                      _attrsOnts :: (Set NontermIdent)-                      _lhsOattrOrderCollect :: AttrOrderMap-                      _lhsOblocks :: Blocks-                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                      _lhsOcollectedNames :: (Set Identifier)-                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                      _lhsOcollectedSetNames :: (Set Identifier)-                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                      _lhsOderivings :: Derivings-                      _lhsOerrors :: (Seq Error)-                      _lhsOmoduleDecl :: (Maybe (String,String,String))-                      _lhsOpragmas :: (Options -> Options)-                      _lhsOquantCollect :: QuantMap-                      _lhsOsemPragmasCollect :: PragmaMap-                      _lhsOtypeSyns :: TypeSyns-                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                      _lhsOwrappers :: (Set NontermIdent)-                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))-                      _namesOallFields :: DataTypes-                      _namesOallNonterminals :: (Set NontermIdent)-                      _namesOdefinedSets :: DefinedSets-                      _attrsOallFields :: DataTypes-                      _attrsOallNonterminals :: (Set NontermIdent)-                      _attrsOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _attrsOattrs :: (Map NontermIdent (Attributes, Attributes))-                      _attrsOoptions :: Options-                      _altsOallConstructors :: (Map NontermIdent (Set ConstructorIdent))-                      _altsOallNonterminals :: (Set NontermIdent)-                      _namesIcollectedNames :: (Set Identifier)-                      _namesIerrors :: (Seq Error)-                      _namesInontSet :: (Set NontermIdent)-                      _attrsIattrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _attrsIattrs :: (Map NontermIdent (Attributes, Attributes))-                      _attrsIerrors :: (Seq Error)-                      _attrsIuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                      _altsIcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                      _altsIcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                      _altsIcollectedConstructorNames :: (Set ConstructorIdent)-                      _altsIcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                      _altsIcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                      -- "src-ag/Transform.ag"(line 178, column 10)-                      _altsOnts =-                          ({-# LINE 178 "src-ag/Transform.ag" #-}-                           _namesInontSet-                           {-# LINE 2137 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 605, column 11)-                      _lhsOcollectedConstructorsMap =-                          ({-# LINE 605 "src-ag/Transform.ag" #-}-                           Map.fromList-                           [ (n, _altsIcollectedConstructorNames)-                           | n <- Set.toList _namesInontSet-                           ]-                           {-# LINE 2146 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 929, column 7)-                      _lhsOparamsCollect =-                          ({-# LINE 929 "src-ag/Transform.ag" #-}-                           if null params_-                           then Map.empty-                           else Map.fromList [(nt, params_) | nt <- Set.toList _namesInontSet]-                           {-# LINE 2154 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 952, column 7)-                      _lhsOctxCollect =-                          ({-# LINE 952 "src-ag/Transform.ag" #-}-                           if null ctx_-                           then Map.empty-                           else Map.fromList [(nt, ctx_) | nt <- Set.toList _namesInontSet]-                           {-# LINE 2162 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 1012, column 10)-                      _attrsOnts =-                          ({-# LINE 1012 "src-ag/Transform.ag" #-}-                           _namesInontSet-                           {-# LINE 2168 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 893, column 55)-                      _lhsOattrOrderCollect =-                          ({-# LINE 893 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2174 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 46, column 19)-                      _lhsOblocks =-                          ({-# LINE 46 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2180 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 164, column 32)-                      _lhsOcollectedArounds =-                          ({-# LINE 164 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2186 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 163, column 32)-                      _lhsOcollectedAugments =-                          ({-# LINE 163 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2192 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 132, column 31)-                      _lhsOcollectedConParams =-                          ({-# LINE 132 "src-ag/Transform.ag" #-}-                           _altsIcollectedConParams-                           {-# LINE 2198 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 131, column 33)-                      _lhsOcollectedConstraints =-                          ({-# LINE 131 "src-ag/Transform.ag" #-}-                           _altsIcollectedConstraints-                           {-# LINE 2204 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 130, column 28)-                      _lhsOcollectedFields =-                          ({-# LINE 130 "src-ag/Transform.ag" #-}-                           _altsIcollectedFields-                           {-# LINE 2210 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 161, column 32)-                      _lhsOcollectedInsts =-                          ({-# LINE 161 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2216 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)-                      _lhsOcollectedMacros =-                          ({-# LINE 1283 "src-ag/Transform.ag" #-}-                           _altsIcollectedMacros-                           {-# LINE 2222 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 165, column 32)-                      _lhsOcollectedMerges =-                          ({-# LINE 165 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2228 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 91, column 50)-                      _lhsOcollectedNames =-                          ({-# LINE 91 "src-ag/Transform.ag" #-}-                           _namesIcollectedNames-                           {-# LINE 2234 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 159, column 32)-                      _lhsOcollectedRules =-                          ({-# LINE 159 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2240 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 90, column 50)-                      _lhsOcollectedSetNames =-                          ({-# LINE 90 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 2246 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 160, column 32)-                      _lhsOcollectedSigs =-                          ({-# LINE 160 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2252 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 162, column 32)-                      _lhsOcollectedUniques =-                          ({-# LINE 162 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2258 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 990, column 33)-                      _lhsOderivings =-                          ({-# LINE 990 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2264 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 44, column 19)-                      _lhsOerrors =-                          ({-# LINE 44 "src-ag/Transform.ag" #-}-                           _namesIerrors Seq.>< _attrsIerrors-                           {-# LINE 2270 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)-                      _lhsOmoduleDecl =-                          ({-# LINE 1187 "src-ag/Transform.ag" #-}-                           mzero-                           {-# LINE 2276 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 787, column 34)-                      _lhsOpragmas =-                          ({-# LINE 787 "src-ag/Transform.ag" #-}-                           id-                           {-# LINE 2282 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 973, column 36)-                      _lhsOquantCollect =-                          ({-# LINE 973 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2288 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 865, column 56)-                      _lhsOsemPragmasCollect =-                          ({-# LINE 865 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2294 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 626, column 32)-                      _lhsOtypeSyns =-                          ({-# LINE 626 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2300 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 145, column 15)-                      _lhsOuseMap =-                          ({-# LINE 145 "src-ag/Transform.ag" #-}-                           _attrsIuseMap-                           {-# LINE 2306 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 771, column 32)-                      _lhsOwrappers =-                          ({-# LINE 771 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 2312 "dist/build/Transform" #-}-                           )-                      -- copy rule (up)-                      _lhsOattrDecls =-                          ({-# LINE 144 "src-ag/Transform.ag" #-}-                           _attrsIattrDecls-                           {-# LINE 2318 "dist/build/Transform" #-}-                           )-                      -- copy rule (up)-                      _lhsOattrs =-                          ({-# LINE 1316 "src-ag/Transform.ag" #-}-                           _attrsIattrs-                           {-# LINE 2324 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOdefSets =-                          ({-# LINE 109 "src-ag/Transform.ag" #-}-                           _lhsIdefSets-                           {-# LINE 2330 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _namesOallFields =-                          ({-# LINE 136 "src-ag/Transform.ag" #-}-                           _lhsIallFields-                           {-# LINE 2336 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _namesOallNonterminals =-                          ({-# LINE 93 "src-ag/Transform.ag" #-}-                           _lhsIallNonterminals-                           {-# LINE 2342 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _namesOdefinedSets =-                          ({-# LINE 112 "src-ag/Transform.ag" #-}-                           _lhsIdefinedSets-                           {-# LINE 2348 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _attrsOallFields =-                          ({-# LINE 136 "src-ag/Transform.ag" #-}-                           _lhsIallFields-                           {-# LINE 2354 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _attrsOallNonterminals =-                          ({-# LINE 93 "src-ag/Transform.ag" #-}-                           _lhsIallNonterminals-                           {-# LINE 2360 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _attrsOattrDecls =-                          ({-# LINE 144 "src-ag/Transform.ag" #-}-                           _lhsIattrDecls-                           {-# LINE 2366 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _attrsOattrs =-                          ({-# LINE 1316 "src-ag/Transform.ag" #-}-                           _lhsIattrs-                           {-# LINE 2372 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _attrsOoptions =-                          ({-# LINE 40 "src-ag/Transform.ag" #-}-                           _lhsIoptions-                           {-# LINE 2378 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _altsOallConstructors =-                          ({-# LINE 101 "src-ag/Transform.ag" #-}-                           _lhsIallConstructors-                           {-# LINE 2384 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _altsOallNonterminals =-                          ({-# LINE 93 "src-ag/Transform.ag" #-}-                           _lhsIallNonterminals-                           {-# LINE 2390 "dist/build/Transform" #-}-                           )-                      ( _namesIcollectedNames,_namesIerrors,_namesInontSet) =-                          names_ _namesOallFields _namesOallNonterminals _namesOdefinedSets-                      ( _attrsIattrDecls,_attrsIattrs,_attrsIerrors,_attrsIuseMap) =-                          attrs_ _attrsOallFields _attrsOallNonterminals _attrsOattrDecls _attrsOattrs _attrsOnts _attrsOoptions-                      ( _altsIcollectedConParams,_altsIcollectedConstraints,_altsIcollectedConstructorNames,_altsIcollectedFields,_altsIcollectedMacros) =-                          alts_ _altsOallConstructors _altsOallNonterminals _altsOnts-                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))-sem_Elem_Deriving :: Pos ->-                     T_NontSet ->-                     ([NontermIdent]) ->-                     T_Elem-sem_Elem_Deriving pos_ (T_NontSet set_) classes_ =-    (T_Elem (\ _lhsIallAttrDecls-               _lhsIallAttrs-               _lhsIallConstructors-               _lhsIallFields-               _lhsIallNonterminals-               _lhsIattrDecls-               _lhsIattrs-               _lhsIdefSets-               _lhsIdefinedSets-               _lhsIoptions ->-                 (let _lhsOderivings :: Derivings-                      _lhsOattrOrderCollect :: AttrOrderMap-                      _lhsOblocks :: Blocks-                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))-                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                      _lhsOcollectedNames :: (Set Identifier)-                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                      _lhsOcollectedSetNames :: (Set Identifier)-                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                      _lhsOctxCollect :: ContextMap-                      _lhsOerrors :: (Seq Error)-                      _lhsOmoduleDecl :: (Maybe (String,String,String))-                      _lhsOparamsCollect :: ParamMap-                      _lhsOpragmas :: (Options -> Options)-                      _lhsOquantCollect :: QuantMap-                      _lhsOsemPragmasCollect :: PragmaMap-                      _lhsOtypeSyns :: TypeSyns-                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                      _lhsOwrappers :: (Set NontermIdent)-                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))-                      _setOallFields :: DataTypes-                      _setOallNonterminals :: (Set NontermIdent)-                      _setOdefinedSets :: DefinedSets-                      _setIcollectedNames :: (Set Identifier)-                      _setIerrors :: (Seq Error)-                      _setInontSet :: (Set NontermIdent)-                      -- "src-ag/Transform.ag"(line 997, column 14)-                      _lhsOderivings =-                          ({-# LINE 997 "src-ag/Transform.ag" #-}-                           Map.fromList [(nt,Set.fromList classes_) | nt <- Set.toList _setInontSet]-                           {-# LINE 2454 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 893, column 55)-                      _lhsOattrOrderCollect =-                          ({-# LINE 893 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2460 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 46, column 19)-                      _lhsOblocks =-                          ({-# LINE 46 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2466 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 164, column 32)-                      _lhsOcollectedArounds =-                          ({-# LINE 164 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2472 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 163, column 32)-                      _lhsOcollectedAugments =-                          ({-# LINE 163 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2478 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 132, column 31)-                      _lhsOcollectedConParams =-                          ({-# LINE 132 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2484 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 131, column 33)-                      _lhsOcollectedConstraints =-                          ({-# LINE 131 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2490 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 99, column 48)-                      _lhsOcollectedConstructorsMap =-                          ({-# LINE 99 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2496 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 130, column 28)-                      _lhsOcollectedFields =-                          ({-# LINE 130 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2502 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 161, column 32)-                      _lhsOcollectedInsts =-                          ({-# LINE 161 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2508 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)-                      _lhsOcollectedMacros =-                          ({-# LINE 1283 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2514 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 165, column 32)-                      _lhsOcollectedMerges =-                          ({-# LINE 165 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2520 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 91, column 50)-                      _lhsOcollectedNames =-                          ({-# LINE 91 "src-ag/Transform.ag" #-}-                           _setIcollectedNames-                           {-# LINE 2526 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 159, column 32)-                      _lhsOcollectedRules =-                          ({-# LINE 159 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2532 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 90, column 50)-                      _lhsOcollectedSetNames =-                          ({-# LINE 90 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 2538 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 160, column 32)-                      _lhsOcollectedSigs =-                          ({-# LINE 160 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2544 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 162, column 32)-                      _lhsOcollectedUniques =-                          ({-# LINE 162 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2550 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 948, column 34)-                      _lhsOctxCollect =-                          ({-# LINE 948 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2556 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 44, column 19)-                      _lhsOerrors =-                          ({-# LINE 44 "src-ag/Transform.ag" #-}-                           _setIerrors-                           {-# LINE 2562 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)-                      _lhsOmoduleDecl =-                          ({-# LINE 1187 "src-ag/Transform.ag" #-}-                           mzero-                           {-# LINE 2568 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 925, column 37)-                      _lhsOparamsCollect =-                          ({-# LINE 925 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2574 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 787, column 34)-                      _lhsOpragmas =-                          ({-# LINE 787 "src-ag/Transform.ag" #-}-                           id-                           {-# LINE 2580 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 973, column 36)-                      _lhsOquantCollect =-                          ({-# LINE 973 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2586 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 865, column 56)-                      _lhsOsemPragmasCollect =-                          ({-# LINE 865 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2592 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 626, column 32)-                      _lhsOtypeSyns =-                          ({-# LINE 626 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2598 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 145, column 15)-                      _lhsOuseMap =-                          ({-# LINE 145 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2604 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 771, column 32)-                      _lhsOwrappers =-                          ({-# LINE 771 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 2610 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOattrDecls =-                          ({-# LINE 144 "src-ag/Transform.ag" #-}-                           _lhsIattrDecls-                           {-# LINE 2616 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOattrs =-                          ({-# LINE 1316 "src-ag/Transform.ag" #-}-                           _lhsIattrs-                           {-# LINE 2622 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOdefSets =-                          ({-# LINE 109 "src-ag/Transform.ag" #-}-                           _lhsIdefSets-                           {-# LINE 2628 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _setOallFields =-                          ({-# LINE 136 "src-ag/Transform.ag" #-}-                           _lhsIallFields-                           {-# LINE 2634 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _setOallNonterminals =-                          ({-# LINE 93 "src-ag/Transform.ag" #-}-                           _lhsIallNonterminals-                           {-# LINE 2640 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _setOdefinedSets =-                          ({-# LINE 112 "src-ag/Transform.ag" #-}-                           _lhsIdefinedSets-                           {-# LINE 2646 "dist/build/Transform" #-}-                           )-                      ( _setIcollectedNames,_setIerrors,_setInontSet) =-                          set_ _setOallFields _setOallNonterminals _setOdefinedSets-                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))-sem_Elem_Module :: Pos ->-                   String ->-                   String ->-                   String ->-                   T_Elem-sem_Elem_Module pos_ name_ exports_ imports_ =-    (T_Elem (\ _lhsIallAttrDecls-               _lhsIallAttrs-               _lhsIallConstructors-               _lhsIallFields-               _lhsIallNonterminals-               _lhsIattrDecls-               _lhsIattrs-               _lhsIdefSets-               _lhsIdefinedSets-               _lhsIoptions ->-                 (let _lhsOmoduleDecl :: (Maybe (String,String,String))-                      _lhsOattrOrderCollect :: AttrOrderMap-                      _lhsOblocks :: Blocks-                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))-                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                      _lhsOcollectedNames :: (Set Identifier)-                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                      _lhsOcollectedSetNames :: (Set Identifier)-                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                      _lhsOctxCollect :: ContextMap-                      _lhsOderivings :: Derivings-                      _lhsOerrors :: (Seq Error)-                      _lhsOparamsCollect :: ParamMap-                      _lhsOpragmas :: (Options -> Options)-                      _lhsOquantCollect :: QuantMap-                      _lhsOsemPragmasCollect :: PragmaMap-                      _lhsOtypeSyns :: TypeSyns-                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                      _lhsOwrappers :: (Set NontermIdent)-                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))-                      -- "src-ag/Transform.ag"(line 1191, column 7)-                      _lhsOmoduleDecl =-                          ({-# LINE 1191 "src-ag/Transform.ag" #-}-                           Just (name_, exports_, imports_)-                           {-# LINE 2701 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 893, column 55)-                      _lhsOattrOrderCollect =-                          ({-# LINE 893 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2707 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 46, column 19)-                      _lhsOblocks =-                          ({-# LINE 46 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2713 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 164, column 32)-                      _lhsOcollectedArounds =-                          ({-# LINE 164 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2719 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 163, column 32)-                      _lhsOcollectedAugments =-                          ({-# LINE 163 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2725 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 132, column 31)-                      _lhsOcollectedConParams =-                          ({-# LINE 132 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2731 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 131, column 33)-                      _lhsOcollectedConstraints =-                          ({-# LINE 131 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2737 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 99, column 48)-                      _lhsOcollectedConstructorsMap =-                          ({-# LINE 99 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2743 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 130, column 28)-                      _lhsOcollectedFields =-                          ({-# LINE 130 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2749 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 161, column 32)-                      _lhsOcollectedInsts =-                          ({-# LINE 161 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2755 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)-                      _lhsOcollectedMacros =-                          ({-# LINE 1283 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2761 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 165, column 32)-                      _lhsOcollectedMerges =-                          ({-# LINE 165 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2767 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 91, column 50)-                      _lhsOcollectedNames =-                          ({-# LINE 91 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 2773 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 159, column 32)-                      _lhsOcollectedRules =-                          ({-# LINE 159 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2779 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 90, column 50)-                      _lhsOcollectedSetNames =-                          ({-# LINE 90 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 2785 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 160, column 32)-                      _lhsOcollectedSigs =-                          ({-# LINE 160 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2791 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 162, column 32)-                      _lhsOcollectedUniques =-                          ({-# LINE 162 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2797 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 948, column 34)-                      _lhsOctxCollect =-                          ({-# LINE 948 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2803 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 990, column 33)-                      _lhsOderivings =-                          ({-# LINE 990 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2809 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 44, column 19)-                      _lhsOerrors =-                          ({-# LINE 44 "src-ag/Transform.ag" #-}-                           Seq.empty-                           {-# LINE 2815 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 925, column 37)-                      _lhsOparamsCollect =-                          ({-# LINE 925 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2821 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 787, column 34)-                      _lhsOpragmas =-                          ({-# LINE 787 "src-ag/Transform.ag" #-}-                           id-                           {-# LINE 2827 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 973, column 36)-                      _lhsOquantCollect =-                          ({-# LINE 973 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2833 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 865, column 56)-                      _lhsOsemPragmasCollect =-                          ({-# LINE 865 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2839 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 626, column 32)-                      _lhsOtypeSyns =-                          ({-# LINE 626 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2845 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 145, column 15)-                      _lhsOuseMap =-                          ({-# LINE 145 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2851 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 771, column 32)-                      _lhsOwrappers =-                          ({-# LINE 771 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 2857 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOattrDecls =-                          ({-# LINE 144 "src-ag/Transform.ag" #-}-                           _lhsIattrDecls-                           {-# LINE 2863 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOattrs =-                          ({-# LINE 1316 "src-ag/Transform.ag" #-}-                           _lhsIattrs-                           {-# LINE 2869 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOdefSets =-                          ({-# LINE 109 "src-ag/Transform.ag" #-}-                           _lhsIdefSets-                           {-# LINE 2875 "dist/build/Transform" #-}-                           )-                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))-sem_Elem_Nocatas :: Pos ->-                    T_NontSet ->-                    T_Elem-sem_Elem_Nocatas pos_ (T_NontSet set_) =-    (T_Elem (\ _lhsIallAttrDecls-               _lhsIallAttrs-               _lhsIallConstructors-               _lhsIallFields-               _lhsIallNonterminals-               _lhsIattrDecls-               _lhsIattrs-               _lhsIdefSets-               _lhsIdefinedSets-               _lhsIoptions ->-                 (let _lhsOpragmas :: (Options -> Options)-                      _lhsOattrOrderCollect :: AttrOrderMap-                      _lhsOblocks :: Blocks-                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))-                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                      _lhsOcollectedNames :: (Set Identifier)-                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                      _lhsOcollectedSetNames :: (Set Identifier)-                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                      _lhsOctxCollect :: ContextMap-                      _lhsOderivings :: Derivings-                      _lhsOerrors :: (Seq Error)-                      _lhsOmoduleDecl :: (Maybe (String,String,String))-                      _lhsOparamsCollect :: ParamMap-                      _lhsOquantCollect :: QuantMap-                      _lhsOsemPragmasCollect :: PragmaMap-                      _lhsOtypeSyns :: TypeSyns-                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                      _lhsOwrappers :: (Set NontermIdent)-                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))-                      _setOallFields :: DataTypes-                      _setOallNonterminals :: (Set NontermIdent)-                      _setOdefinedSets :: DefinedSets-                      _setIcollectedNames :: (Set Identifier)-                      _setIerrors :: (Seq Error)-                      _setInontSet :: (Set NontermIdent)-                      -- "src-ag/Transform.ag"(line 781, column 14)-                      _lhsOpragmas =-                          ({-# LINE 781 "src-ag/Transform.ag" #-}-                           \o -> o { nocatas = _setInontSet `Set.union` nocatas o }-                           {-# LINE 2932 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 893, column 55)-                      _lhsOattrOrderCollect =-                          ({-# LINE 893 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2938 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 46, column 19)-                      _lhsOblocks =-                          ({-# LINE 46 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2944 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 164, column 32)-                      _lhsOcollectedArounds =-                          ({-# LINE 164 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2950 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 163, column 32)-                      _lhsOcollectedAugments =-                          ({-# LINE 163 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2956 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 132, column 31)-                      _lhsOcollectedConParams =-                          ({-# LINE 132 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2962 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 131, column 33)-                      _lhsOcollectedConstraints =-                          ({-# LINE 131 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2968 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 99, column 48)-                      _lhsOcollectedConstructorsMap =-                          ({-# LINE 99 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 2974 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 130, column 28)-                      _lhsOcollectedFields =-                          ({-# LINE 130 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2980 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 161, column 32)-                      _lhsOcollectedInsts =-                          ({-# LINE 161 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2986 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)-                      _lhsOcollectedMacros =-                          ({-# LINE 1283 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2992 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 165, column 32)-                      _lhsOcollectedMerges =-                          ({-# LINE 165 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 2998 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 91, column 50)-                      _lhsOcollectedNames =-                          ({-# LINE 91 "src-ag/Transform.ag" #-}-                           _setIcollectedNames-                           {-# LINE 3004 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 159, column 32)-                      _lhsOcollectedRules =-                          ({-# LINE 159 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3010 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 90, column 50)-                      _lhsOcollectedSetNames =-                          ({-# LINE 90 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 3016 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 160, column 32)-                      _lhsOcollectedSigs =-                          ({-# LINE 160 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3022 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 162, column 32)-                      _lhsOcollectedUniques =-                          ({-# LINE 162 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3028 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 948, column 34)-                      _lhsOctxCollect =-                          ({-# LINE 948 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3034 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 990, column 33)-                      _lhsOderivings =-                          ({-# LINE 990 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3040 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 44, column 19)-                      _lhsOerrors =-                          ({-# LINE 44 "src-ag/Transform.ag" #-}-                           _setIerrors-                           {-# LINE 3046 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)-                      _lhsOmoduleDecl =-                          ({-# LINE 1187 "src-ag/Transform.ag" #-}-                           mzero-                           {-# LINE 3052 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 925, column 37)-                      _lhsOparamsCollect =-                          ({-# LINE 925 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3058 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 973, column 36)-                      _lhsOquantCollect =-                          ({-# LINE 973 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3064 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 865, column 56)-                      _lhsOsemPragmasCollect =-                          ({-# LINE 865 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3070 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 626, column 32)-                      _lhsOtypeSyns =-                          ({-# LINE 626 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3076 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 145, column 15)-                      _lhsOuseMap =-                          ({-# LINE 145 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3082 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 771, column 32)-                      _lhsOwrappers =-                          ({-# LINE 771 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 3088 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOattrDecls =-                          ({-# LINE 144 "src-ag/Transform.ag" #-}-                           _lhsIattrDecls-                           {-# LINE 3094 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOattrs =-                          ({-# LINE 1316 "src-ag/Transform.ag" #-}-                           _lhsIattrs-                           {-# LINE 3100 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOdefSets =-                          ({-# LINE 109 "src-ag/Transform.ag" #-}-                           _lhsIdefSets-                           {-# LINE 3106 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _setOallFields =-                          ({-# LINE 136 "src-ag/Transform.ag" #-}-                           _lhsIallFields-                           {-# LINE 3112 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _setOallNonterminals =-                          ({-# LINE 93 "src-ag/Transform.ag" #-}-                           _lhsIallNonterminals-                           {-# LINE 3118 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _setOdefinedSets =-                          ({-# LINE 112 "src-ag/Transform.ag" #-}-                           _lhsIdefinedSets-                           {-# LINE 3124 "dist/build/Transform" #-}-                           )-                      ( _setIcollectedNames,_setIerrors,_setInontSet) =-                          set_ _setOallFields _setOallNonterminals _setOdefinedSets-                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))-sem_Elem_Pragma :: Pos ->-                   ([NontermIdent]) ->-                   T_Elem-sem_Elem_Pragma pos_ names_ =-    (T_Elem (\ _lhsIallAttrDecls-               _lhsIallAttrs-               _lhsIallConstructors-               _lhsIallFields-               _lhsIallNonterminals-               _lhsIattrDecls-               _lhsIattrs-               _lhsIdefSets-               _lhsIdefinedSets-               _lhsIoptions ->-                 (let _lhsOpragmas :: (Options -> Options)-                      _lhsOattrOrderCollect :: AttrOrderMap-                      _lhsOblocks :: Blocks-                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))-                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                      _lhsOcollectedNames :: (Set Identifier)-                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                      _lhsOcollectedSetNames :: (Set Identifier)-                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                      _lhsOctxCollect :: ContextMap-                      _lhsOderivings :: Derivings-                      _lhsOerrors :: (Seq Error)-                      _lhsOmoduleDecl :: (Maybe (String,String,String))-                      _lhsOparamsCollect :: ParamMap-                      _lhsOquantCollect :: QuantMap-                      _lhsOsemPragmasCollect :: PragmaMap-                      _lhsOtypeSyns :: TypeSyns-                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                      _lhsOwrappers :: (Set NontermIdent)-                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))-                      -- "src-ag/Transform.ag"(line 790, column 13)-                      _lhsOpragmas =-                          ({-# LINE 790 "src-ag/Transform.ag" #-}-                           let mk n o = case getName n of-                                          "gencatas"     -> o { folds       = True  }-                                          "nogencatas"   -> o { folds       = False }-                                          "gendatas"     -> o { dataTypes   = True  }-                                          "datarecords"  -> o { dataRecords = True  }-                                          "nogendatas"   -> o { dataTypes   = False }-                                          "gensems"      -> o { semfuns     = True  }-                                          "nogensems"    -> o { semfuns     = False }-                                          "gentypesigs"  -> o { typeSigs    = True  }-                                          "nogentypesigs"-> o { typeSigs    = False }-                                          "nocycle"      -> o { withCycle   = False }-                                          "cycle"        -> o { withCycle   = True  }-                                          "nostrictdata" -> o { strictData  = False }-                                          "strictdata"   -> o { strictData  = True  }-                                          "nostrictcase" -> o { strictCases = False }-                                          "strictcase"   -> o { strictCases = True  }-                                          "strictercase" -> o { strictCases = True, stricterCases = True }-                                          "nostrictwrap" -> o { strictWrap  = False }-                                          "strictwrap"   -> o { strictWrap  = True  }-                                          "novisit"      -> o { visit       = False }-                                          "visit"        -> o { visit       = True  }-                                          "nocase"       -> o { cases       = False }-                                          "case"         -> o { cases       = True  }-                                          "noseq"        -> o { withSeq     = False }-                                          "seq"          -> o { withSeq     = True  }-                                          "nounbox"      -> o { unbox       = False }-                                          "unbox"        -> o { unbox       = True  }-                                          "bangpats"     -> o { bangpats    = True  }-                                          "breadthfirst" -> o { breadthFirst = True }-                                          "breadthfirstStrict" -> o { breadthFirstStrict = True }-                                          "nooptimize"   -> o { cases = False , visit = False }-                                          "optimize"     -> o { cases = True  , visit = True  }-                                          "strictsem"    -> o { strictSems = True }-                                          "gentraces"    -> o { genTraces = True }-                                          "genusetraces" -> o { genUseTraces = True }-                                          "splitsems"    -> o { splitSems = True }-                                          "gencostcentres" -> o { genCostCentres = True }-                                          "sepsemmods"   -> o { sepSemMods = True }-                                          "genlinepragmas" -> o { genLinePragmas = True }-                                          "newtypes"       -> o { newtypes = True }-                                          "nonewtypes"     -> o { newtypes = False }-                                          "nooptimizations" -> o { noOptimizations = True }-                                          "kennedywarren"   -> o { kennedyWarren = True }-                                          "aspectag"        -> o { genAspectAG = True }-                                          'n':'o':'g':'r':'o':'u':'p':'_':atts-                                                            -> o { noGroup =  extract atts  ++ noGroup o }-                                          "rename"          -> o { rename = True }-                                          "parallel"        -> o { parallelInvoke = True }-                                          "monadicwrappers" -> o { monadicWrappers = True }-                                          "dummytokenvisit" -> o { dummyTokenVisit = True }-                                          "tupleasdummytoken" -> o { tupleAsDummyToken = True }-                                          "stateasdummytoken" -> o { tupleAsDummyToken = False }-                                          "strictdummytoken" -> o { strictDummyToken = True }-                                          "noperruletypesigs" -> o { noPerRuleTypeSigs = True }-                                          "noperstatetypesigs" -> o { noPerStateTypeSigs = True }-                                          "noeagerblackholing" -> o { noEagerBlackholing = True }-                                          "noperrulecostcentres" -> o { noPerRuleCostCentres = True }-                                          "nopervisitcostcentres" -> o { noPerVisitCostCentres = True }-                                          "helpinlining" -> o { helpInlining = True }-                                          "noinlinepragmas" -> o { noInlinePragmas = True }-                                          "aggressiveinlinepragmas" -> o { aggressiveInlinePragmas = True }-                                          "latehigherorderbindings" -> o { lateHigherOrderBinding = True }-                                          s              -> trace ("uuagc: ignoring unknown pragma: " ++ s) o-                           in \o -> foldr mk o names_-                           {-# LINE 3240 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 893, column 55)-                      _lhsOattrOrderCollect =-                          ({-# LINE 893 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3246 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 46, column 19)-                      _lhsOblocks =-                          ({-# LINE 46 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3252 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 164, column 32)-                      _lhsOcollectedArounds =-                          ({-# LINE 164 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3258 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 163, column 32)-                      _lhsOcollectedAugments =-                          ({-# LINE 163 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3264 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 132, column 31)-                      _lhsOcollectedConParams =-                          ({-# LINE 132 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3270 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 131, column 33)-                      _lhsOcollectedConstraints =-                          ({-# LINE 131 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3276 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 99, column 48)-                      _lhsOcollectedConstructorsMap =-                          ({-# LINE 99 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3282 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 130, column 28)-                      _lhsOcollectedFields =-                          ({-# LINE 130 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3288 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 161, column 32)-                      _lhsOcollectedInsts =-                          ({-# LINE 161 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3294 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)-                      _lhsOcollectedMacros =-                          ({-# LINE 1283 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3300 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 165, column 32)-                      _lhsOcollectedMerges =-                          ({-# LINE 165 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3306 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 91, column 50)-                      _lhsOcollectedNames =-                          ({-# LINE 91 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 3312 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 159, column 32)-                      _lhsOcollectedRules =-                          ({-# LINE 159 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3318 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 90, column 50)-                      _lhsOcollectedSetNames =-                          ({-# LINE 90 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 3324 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 160, column 32)-                      _lhsOcollectedSigs =-                          ({-# LINE 160 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3330 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 162, column 32)-                      _lhsOcollectedUniques =-                          ({-# LINE 162 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3336 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 948, column 34)-                      _lhsOctxCollect =-                          ({-# LINE 948 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3342 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 990, column 33)-                      _lhsOderivings =-                          ({-# LINE 990 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3348 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 44, column 19)-                      _lhsOerrors =-                          ({-# LINE 44 "src-ag/Transform.ag" #-}-                           Seq.empty-                           {-# LINE 3354 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)-                      _lhsOmoduleDecl =-                          ({-# LINE 1187 "src-ag/Transform.ag" #-}-                           mzero-                           {-# LINE 3360 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 925, column 37)-                      _lhsOparamsCollect =-                          ({-# LINE 925 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3366 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 973, column 36)-                      _lhsOquantCollect =-                          ({-# LINE 973 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3372 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 865, column 56)-                      _lhsOsemPragmasCollect =-                          ({-# LINE 865 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3378 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 626, column 32)-                      _lhsOtypeSyns =-                          ({-# LINE 626 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3384 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 145, column 15)-                      _lhsOuseMap =-                          ({-# LINE 145 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3390 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 771, column 32)-                      _lhsOwrappers =-                          ({-# LINE 771 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 3396 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOattrDecls =-                          ({-# LINE 144 "src-ag/Transform.ag" #-}-                           _lhsIattrDecls-                           {-# LINE 3402 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOattrs =-                          ({-# LINE 1316 "src-ag/Transform.ag" #-}-                           _lhsIattrs-                           {-# LINE 3408 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOdefSets =-                          ({-# LINE 109 "src-ag/Transform.ag" #-}-                           _lhsIdefSets-                           {-# LINE 3414 "dist/build/Transform" #-}-                           )-                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))-sem_Elem_Sem :: Pos ->-                ClassContext ->-                T_NontSet ->-                T_Attrs ->-                ([String]) ->-                T_SemAlts ->-                T_Elem-sem_Elem_Sem pos_ ctx_ (T_NontSet names_) (T_Attrs attrs_) quants_ (T_SemAlts alts_) =-    (T_Elem (\ _lhsIallAttrDecls-               _lhsIallAttrs-               _lhsIallConstructors-               _lhsIallFields-               _lhsIallNonterminals-               _lhsIattrDecls-               _lhsIattrs-               _lhsIdefSets-               _lhsIdefinedSets-               _lhsIoptions ->-                 (let _altsOnts :: (Set NontermIdent)-                      _lhsOctxCollect :: ContextMap-                      _lhsOquantCollect :: QuantMap-                      _attrsOnts :: (Set NontermIdent)-                      _lhsOattrOrderCollect :: AttrOrderMap-                      _lhsOblocks :: Blocks-                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))-                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                      _lhsOcollectedNames :: (Set Identifier)-                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                      _lhsOcollectedSetNames :: (Set Identifier)-                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                      _lhsOderivings :: Derivings-                      _lhsOerrors :: (Seq Error)-                      _lhsOmoduleDecl :: (Maybe (String,String,String))-                      _lhsOparamsCollect :: ParamMap-                      _lhsOpragmas :: (Options -> Options)-                      _lhsOsemPragmasCollect :: PragmaMap-                      _lhsOtypeSyns :: TypeSyns-                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                      _lhsOwrappers :: (Set NontermIdent)-                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))-                      _namesOallFields :: DataTypes-                      _namesOallNonterminals :: (Set NontermIdent)-                      _namesOdefinedSets :: DefinedSets-                      _attrsOallFields :: DataTypes-                      _attrsOallNonterminals :: (Set NontermIdent)-                      _attrsOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _attrsOattrs :: (Map NontermIdent (Attributes, Attributes))-                      _attrsOoptions :: Options-                      _altsOallAttrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _altsOallAttrs :: (Map NontermIdent (Attributes, Attributes))-                      _altsOallFields :: DataTypes-                      _altsOoptions :: Options-                      _namesIcollectedNames :: (Set Identifier)-                      _namesIerrors :: (Seq Error)-                      _namesInontSet :: (Set NontermIdent)-                      _attrsIattrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _attrsIattrs :: (Map NontermIdent (Attributes, Attributes))-                      _attrsIerrors :: (Seq Error)-                      _attrsIuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                      _altsIattrOrderCollect :: AttrOrderMap-                      _altsIcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                      _altsIcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                      _altsIcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                      _altsIcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                      _altsIcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                      _altsIcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                      _altsIcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                      _altsIerrors :: (Seq Error)-                      _altsIsemPragmasCollect :: PragmaMap-                      -- "src-ag/Transform.ag"(line 179, column 10)-                      _altsOnts =-                          ({-# LINE 179 "src-ag/Transform.ag" #-}-                           _namesInontSet-                           {-# LINE 3500 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 952, column 7)-                      _lhsOctxCollect =-                          ({-# LINE 952 "src-ag/Transform.ag" #-}-                           if null ctx_-                           then Map.empty-                           else Map.fromList [(nt, ctx_) | nt <- Set.toList _namesInontSet]-                           {-# LINE 3508 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 977, column 7)-                      _lhsOquantCollect =-                          ({-# LINE 977 "src-ag/Transform.ag" #-}-                           if null quants_-                           then Map.empty-                           else Map.fromList [(nt, quants_) | nt <- Set.toList _namesInontSet]-                           {-# LINE 3516 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 1014, column 10)-                      _attrsOnts =-                          ({-# LINE 1014 "src-ag/Transform.ag" #-}-                           _namesInontSet-                           {-# LINE 3522 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 893, column 55)-                      _lhsOattrOrderCollect =-                          ({-# LINE 893 "src-ag/Transform.ag" #-}-                           _altsIattrOrderCollect-                           {-# LINE 3528 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 46, column 19)-                      _lhsOblocks =-                          ({-# LINE 46 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3534 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 164, column 32)-                      _lhsOcollectedArounds =-                          ({-# LINE 164 "src-ag/Transform.ag" #-}-                           _altsIcollectedArounds-                           {-# LINE 3540 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 163, column 32)-                      _lhsOcollectedAugments =-                          ({-# LINE 163 "src-ag/Transform.ag" #-}-                           _altsIcollectedAugments-                           {-# LINE 3546 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 132, column 31)-                      _lhsOcollectedConParams =-                          ({-# LINE 132 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3552 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 131, column 33)-                      _lhsOcollectedConstraints =-                          ({-# LINE 131 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3558 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 99, column 48)-                      _lhsOcollectedConstructorsMap =-                          ({-# LINE 99 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3564 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 130, column 28)-                      _lhsOcollectedFields =-                          ({-# LINE 130 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3570 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 161, column 32)-                      _lhsOcollectedInsts =-                          ({-# LINE 161 "src-ag/Transform.ag" #-}-                           _altsIcollectedInsts-                           {-# LINE 3576 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)-                      _lhsOcollectedMacros =-                          ({-# LINE 1283 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3582 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 165, column 32)-                      _lhsOcollectedMerges =-                          ({-# LINE 165 "src-ag/Transform.ag" #-}-                           _altsIcollectedMerges-                           {-# LINE 3588 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 91, column 50)-                      _lhsOcollectedNames =-                          ({-# LINE 91 "src-ag/Transform.ag" #-}-                           _namesIcollectedNames-                           {-# LINE 3594 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 159, column 32)-                      _lhsOcollectedRules =-                          ({-# LINE 159 "src-ag/Transform.ag" #-}-                           _altsIcollectedRules-                           {-# LINE 3600 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 90, column 50)-                      _lhsOcollectedSetNames =-                          ({-# LINE 90 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 3606 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 160, column 32)-                      _lhsOcollectedSigs =-                          ({-# LINE 160 "src-ag/Transform.ag" #-}-                           _altsIcollectedSigs-                           {-# LINE 3612 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 162, column 32)-                      _lhsOcollectedUniques =-                          ({-# LINE 162 "src-ag/Transform.ag" #-}-                           _altsIcollectedUniques-                           {-# LINE 3618 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 990, column 33)-                      _lhsOderivings =-                          ({-# LINE 990 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3624 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 44, column 19)-                      _lhsOerrors =-                          ({-# LINE 44 "src-ag/Transform.ag" #-}-                           _namesIerrors Seq.>< _attrsIerrors Seq.>< _altsIerrors-                           {-# LINE 3630 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)-                      _lhsOmoduleDecl =-                          ({-# LINE 1187 "src-ag/Transform.ag" #-}-                           mzero-                           {-# LINE 3636 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 925, column 37)-                      _lhsOparamsCollect =-                          ({-# LINE 925 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3642 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 787, column 34)-                      _lhsOpragmas =-                          ({-# LINE 787 "src-ag/Transform.ag" #-}-                           id-                           {-# LINE 3648 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 865, column 56)-                      _lhsOsemPragmasCollect =-                          ({-# LINE 865 "src-ag/Transform.ag" #-}-                           _altsIsemPragmasCollect-                           {-# LINE 3654 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 626, column 32)-                      _lhsOtypeSyns =-                          ({-# LINE 626 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3660 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 145, column 15)-                      _lhsOuseMap =-                          ({-# LINE 145 "src-ag/Transform.ag" #-}-                           _attrsIuseMap-                           {-# LINE 3666 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 771, column 32)-                      _lhsOwrappers =-                          ({-# LINE 771 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 3672 "dist/build/Transform" #-}-                           )-                      -- copy rule (up)-                      _lhsOattrDecls =-                          ({-# LINE 144 "src-ag/Transform.ag" #-}-                           _attrsIattrDecls-                           {-# LINE 3678 "dist/build/Transform" #-}-                           )-                      -- copy rule (up)-                      _lhsOattrs =-                          ({-# LINE 1316 "src-ag/Transform.ag" #-}-                           _attrsIattrs-                           {-# LINE 3684 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOdefSets =-                          ({-# LINE 109 "src-ag/Transform.ag" #-}-                           _lhsIdefSets-                           {-# LINE 3690 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _namesOallFields =-                          ({-# LINE 136 "src-ag/Transform.ag" #-}-                           _lhsIallFields-                           {-# LINE 3696 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _namesOallNonterminals =-                          ({-# LINE 93 "src-ag/Transform.ag" #-}-                           _lhsIallNonterminals-                           {-# LINE 3702 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _namesOdefinedSets =-                          ({-# LINE 112 "src-ag/Transform.ag" #-}-                           _lhsIdefinedSets-                           {-# LINE 3708 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _attrsOallFields =-                          ({-# LINE 136 "src-ag/Transform.ag" #-}-                           _lhsIallFields-                           {-# LINE 3714 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _attrsOallNonterminals =-                          ({-# LINE 93 "src-ag/Transform.ag" #-}-                           _lhsIallNonterminals-                           {-# LINE 3720 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _attrsOattrDecls =-                          ({-# LINE 144 "src-ag/Transform.ag" #-}-                           _lhsIattrDecls-                           {-# LINE 3726 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _attrsOattrs =-                          ({-# LINE 1316 "src-ag/Transform.ag" #-}-                           _lhsIattrs-                           {-# LINE 3732 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _attrsOoptions =-                          ({-# LINE 40 "src-ag/Transform.ag" #-}-                           _lhsIoptions-                           {-# LINE 3738 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _altsOallAttrDecls =-                          ({-# LINE 894 "src-ag/Transform.ag" #-}-                           _lhsIallAttrDecls-                           {-# LINE 3744 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _altsOallAttrs =-                          ({-# LINE 1306 "src-ag/Transform.ag" #-}-                           _lhsIallAttrs-                           {-# LINE 3750 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _altsOallFields =-                          ({-# LINE 136 "src-ag/Transform.ag" #-}-                           _lhsIallFields-                           {-# LINE 3756 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _altsOoptions =-                          ({-# LINE 40 "src-ag/Transform.ag" #-}-                           _lhsIoptions-                           {-# LINE 3762 "dist/build/Transform" #-}-                           )-                      ( _namesIcollectedNames,_namesIerrors,_namesInontSet) =-                          names_ _namesOallFields _namesOallNonterminals _namesOdefinedSets-                      ( _attrsIattrDecls,_attrsIattrs,_attrsIerrors,_attrsIuseMap) =-                          attrs_ _attrsOallFields _attrsOallNonterminals _attrsOattrDecls _attrsOattrs _attrsOnts _attrsOoptions-                      ( _altsIattrOrderCollect,_altsIcollectedArounds,_altsIcollectedAugments,_altsIcollectedInsts,_altsIcollectedMerges,_altsIcollectedRules,_altsIcollectedSigs,_altsIcollectedUniques,_altsIerrors,_altsIsemPragmasCollect) =-                          alts_ _altsOallAttrDecls _altsOallAttrs _altsOallFields _altsOnts _altsOoptions-                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))-sem_Elem_Set :: Pos ->-                NontermIdent ->-                Bool ->-                T_NontSet ->-                T_Elem-sem_Elem_Set pos_ name_ merge_ (T_NontSet set_) =-    (T_Elem (\ _lhsIallAttrDecls-               _lhsIallAttrs-               _lhsIallConstructors-               _lhsIallFields-               _lhsIallNonterminals-               _lhsIattrDecls-               _lhsIattrs-               _lhsIdefSets-               _lhsIdefinedSets-               _lhsIoptions ->-                 (let _lhsOcollectedSetNames :: (Set Identifier)-                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))-                      _lhsOerrors :: (Seq Error)-                      _lhsOattrOrderCollect :: AttrOrderMap-                      _lhsOblocks :: Blocks-                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))-                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                      _lhsOcollectedNames :: (Set Identifier)-                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                      _lhsOctxCollect :: ContextMap-                      _lhsOderivings :: Derivings-                      _lhsOmoduleDecl :: (Maybe (String,String,String))-                      _lhsOparamsCollect :: ParamMap-                      _lhsOpragmas :: (Options -> Options)-                      _lhsOquantCollect :: QuantMap-                      _lhsOsemPragmasCollect :: PragmaMap-                      _lhsOtypeSyns :: TypeSyns-                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                      _lhsOwrappers :: (Set NontermIdent)-                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))-                      _setOallFields :: DataTypes-                      _setOallNonterminals :: (Set NontermIdent)-                      _setOdefinedSets :: DefinedSets-                      _setIcollectedNames :: (Set Identifier)-                      _setIerrors :: (Seq Error)-                      _setInontSet :: (Set NontermIdent)-                      -- "src-ag/Transform.ag"(line 582, column 10)-                      _lhsOcollectedSetNames =-                          ({-# LINE 582 "src-ag/Transform.ag" #-}-                           Set.singleton name_-                           {-# LINE 3827 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 699, column 13)-                      (_defSets2,_errs) =-                          ({-# LINE 699 "src-ag/Transform.ag" #-}-                           let allUsedNames = Set.unions [ maybe (Set.singleton n)-                                                                 snd-                                                                 (Map.lookup n _lhsIdefSets)-                                                         | n <- Set.toList _setIcollectedNames-                                                         ]-                               (nontSet,e1) | Set.member name_ allUsedNames-                                                        = (Set.empty, Seq.singleton(CyclicSet name_))-                                            | otherwise = (_setInontSet, Seq.empty)-                               (res, e2) = let toAdd = (nontSet,Set.insert name_ allUsedNames)-                                               union (a,b) (c,d) = (a `Set.union` c, b `Set.union` d)-                                           in if Set.member name_ _lhsIallNonterminals || not merge_-                                              then checkDuplicate DupSet name_ toAdd _lhsIdefSets-                                              else (Map.insertWith union name_ toAdd _lhsIdefSets, Seq.empty)-                           in (res, e1 Seq.>< e2)-                           {-# LINE 3846 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 713, column 9)-                      _lhsOdefSets =-                          ({-# LINE 713 "src-ag/Transform.ag" #-}-                           _defSets2-                           {-# LINE 3852 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 713, column 9)-                      _lhsOerrors =-                          ({-# LINE 714 "src-ag/Transform.ag" #-}-                           _errs >< _setIerrors-                           {-# LINE 3858 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 893, column 55)-                      _lhsOattrOrderCollect =-                          ({-# LINE 893 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3864 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 46, column 19)-                      _lhsOblocks =-                          ({-# LINE 46 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3870 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 164, column 32)-                      _lhsOcollectedArounds =-                          ({-# LINE 164 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3876 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 163, column 32)-                      _lhsOcollectedAugments =-                          ({-# LINE 163 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3882 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 132, column 31)-                      _lhsOcollectedConParams =-                          ({-# LINE 132 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3888 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 131, column 33)-                      _lhsOcollectedConstraints =-                          ({-# LINE 131 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3894 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 99, column 48)-                      _lhsOcollectedConstructorsMap =-                          ({-# LINE 99 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3900 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 130, column 28)-                      _lhsOcollectedFields =-                          ({-# LINE 130 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3906 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 161, column 32)-                      _lhsOcollectedInsts =-                          ({-# LINE 161 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3912 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)-                      _lhsOcollectedMacros =-                          ({-# LINE 1283 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3918 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 165, column 32)-                      _lhsOcollectedMerges =-                          ({-# LINE 165 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3924 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 91, column 50)-                      _lhsOcollectedNames =-                          ({-# LINE 91 "src-ag/Transform.ag" #-}-                           _setIcollectedNames-                           {-# LINE 3930 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 159, column 32)-                      _lhsOcollectedRules =-                          ({-# LINE 159 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3936 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 160, column 32)-                      _lhsOcollectedSigs =-                          ({-# LINE 160 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3942 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 162, column 32)-                      _lhsOcollectedUniques =-                          ({-# LINE 162 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3948 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 948, column 34)-                      _lhsOctxCollect =-                          ({-# LINE 948 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3954 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 990, column 33)-                      _lhsOderivings =-                          ({-# LINE 990 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3960 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)-                      _lhsOmoduleDecl =-                          ({-# LINE 1187 "src-ag/Transform.ag" #-}-                           mzero-                           {-# LINE 3966 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 925, column 37)-                      _lhsOparamsCollect =-                          ({-# LINE 925 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3972 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 787, column 34)-                      _lhsOpragmas =-                          ({-# LINE 787 "src-ag/Transform.ag" #-}-                           id-                           {-# LINE 3978 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 973, column 36)-                      _lhsOquantCollect =-                          ({-# LINE 973 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3984 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 865, column 56)-                      _lhsOsemPragmasCollect =-                          ({-# LINE 865 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 3990 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 626, column 32)-                      _lhsOtypeSyns =-                          ({-# LINE 626 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 3996 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 145, column 15)-                      _lhsOuseMap =-                          ({-# LINE 145 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4002 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 771, column 32)-                      _lhsOwrappers =-                          ({-# LINE 771 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 4008 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOattrDecls =-                          ({-# LINE 144 "src-ag/Transform.ag" #-}-                           _lhsIattrDecls-                           {-# LINE 4014 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOattrs =-                          ({-# LINE 1316 "src-ag/Transform.ag" #-}-                           _lhsIattrs-                           {-# LINE 4020 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _setOallFields =-                          ({-# LINE 136 "src-ag/Transform.ag" #-}-                           _lhsIallFields-                           {-# LINE 4026 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _setOallNonterminals =-                          ({-# LINE 93 "src-ag/Transform.ag" #-}-                           _lhsIallNonterminals-                           {-# LINE 4032 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _setOdefinedSets =-                          ({-# LINE 112 "src-ag/Transform.ag" #-}-                           _lhsIdefinedSets-                           {-# LINE 4038 "dist/build/Transform" #-}-                           )-                      ( _setIcollectedNames,_setIerrors,_setInontSet) =-                          set_ _setOallFields _setOallNonterminals _setOdefinedSets-                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))-sem_Elem_Txt :: Pos ->-                BlockKind ->-                (Maybe NontermIdent) ->-                ([String]) ->-                T_Elem-sem_Elem_Txt pos_ kind_ mbNt_ lines_ =-    (T_Elem (\ _lhsIallAttrDecls-               _lhsIallAttrs-               _lhsIallConstructors-               _lhsIallFields-               _lhsIallNonterminals-               _lhsIattrDecls-               _lhsIattrs-               _lhsIdefSets-               _lhsIdefinedSets-               _lhsIoptions ->-                 (let _lhsOblocks :: Blocks-                      _lhsOerrors :: (Seq Error)-                      _lhsOattrOrderCollect :: AttrOrderMap-                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))-                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                      _lhsOcollectedNames :: (Set Identifier)-                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                      _lhsOcollectedSetNames :: (Set Identifier)-                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                      _lhsOctxCollect :: ContextMap-                      _lhsOderivings :: Derivings-                      _lhsOmoduleDecl :: (Maybe (String,String,String))-                      _lhsOparamsCollect :: ParamMap-                      _lhsOpragmas :: (Options -> Options)-                      _lhsOquantCollect :: QuantMap-                      _lhsOsemPragmasCollect :: PragmaMap-                      _lhsOtypeSyns :: TypeSyns-                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                      _lhsOwrappers :: (Set NontermIdent)-                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))-                      -- "src-ag/Transform.ag"(line 188, column 10)-                      _blockInfo =-                          ({-# LINE 188 "src-ag/Transform.ag" #-}-                           ( kind_-                           , mbNt_-                           )-                           {-# LINE 4095 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 191, column 10)-                      _blockValue =-                          ({-# LINE 191 "src-ag/Transform.ag" #-}-                           [(lines_, pos_)]-                           {-# LINE 4101 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 192, column 10)-                      _lhsOblocks =-                          ({-# LINE 192 "src-ag/Transform.ag" #-}-                           Map.singleton _blockInfo     _blockValue-                           {-# LINE 4107 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 193, column 10)-                      _lhsOerrors =-                          ({-# LINE 193 "src-ag/Transform.ag" #-}-                           if checkParseBlock _lhsIoptions-                           then let exp = Expression pos_ tks-                                    tks = [tk]-                                    tk  = HsToken (unlines lines_) pos_-                                in Seq.fromList $ checkBlock $ exp-                           else Seq.empty-                           {-# LINE 4118 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 893, column 55)-                      _lhsOattrOrderCollect =-                          ({-# LINE 893 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4124 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 164, column 32)-                      _lhsOcollectedArounds =-                          ({-# LINE 164 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4130 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 163, column 32)-                      _lhsOcollectedAugments =-                          ({-# LINE 163 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4136 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 132, column 31)-                      _lhsOcollectedConParams =-                          ({-# LINE 132 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4142 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 131, column 33)-                      _lhsOcollectedConstraints =-                          ({-# LINE 131 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4148 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 99, column 48)-                      _lhsOcollectedConstructorsMap =-                          ({-# LINE 99 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4154 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 130, column 28)-                      _lhsOcollectedFields =-                          ({-# LINE 130 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4160 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 161, column 32)-                      _lhsOcollectedInsts =-                          ({-# LINE 161 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4166 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)-                      _lhsOcollectedMacros =-                          ({-# LINE 1283 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4172 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 165, column 32)-                      _lhsOcollectedMerges =-                          ({-# LINE 165 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4178 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 91, column 50)-                      _lhsOcollectedNames =-                          ({-# LINE 91 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 4184 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 159, column 32)-                      _lhsOcollectedRules =-                          ({-# LINE 159 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4190 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 90, column 50)-                      _lhsOcollectedSetNames =-                          ({-# LINE 90 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 4196 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 160, column 32)-                      _lhsOcollectedSigs =-                          ({-# LINE 160 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4202 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 162, column 32)-                      _lhsOcollectedUniques =-                          ({-# LINE 162 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4208 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 948, column 34)-                      _lhsOctxCollect =-                          ({-# LINE 948 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4214 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 990, column 33)-                      _lhsOderivings =-                          ({-# LINE 990 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4220 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)-                      _lhsOmoduleDecl =-                          ({-# LINE 1187 "src-ag/Transform.ag" #-}-                           mzero-                           {-# LINE 4226 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 925, column 37)-                      _lhsOparamsCollect =-                          ({-# LINE 925 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4232 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 787, column 34)-                      _lhsOpragmas =-                          ({-# LINE 787 "src-ag/Transform.ag" #-}-                           id-                           {-# LINE 4238 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 973, column 36)-                      _lhsOquantCollect =-                          ({-# LINE 973 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4244 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 865, column 56)-                      _lhsOsemPragmasCollect =-                          ({-# LINE 865 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4250 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 626, column 32)-                      _lhsOtypeSyns =-                          ({-# LINE 626 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4256 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 145, column 15)-                      _lhsOuseMap =-                          ({-# LINE 145 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4262 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 771, column 32)-                      _lhsOwrappers =-                          ({-# LINE 771 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 4268 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOattrDecls =-                          ({-# LINE 144 "src-ag/Transform.ag" #-}-                           _lhsIattrDecls-                           {-# LINE 4274 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOattrs =-                          ({-# LINE 1316 "src-ag/Transform.ag" #-}-                           _lhsIattrs-                           {-# LINE 4280 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOdefSets =-                          ({-# LINE 109 "src-ag/Transform.ag" #-}-                           _lhsIdefSets-                           {-# LINE 4286 "dist/build/Transform" #-}-                           )-                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))-sem_Elem_Type :: Pos ->-                 ClassContext ->-                 NontermIdent ->-                 ([Identifier]) ->-                 ComplexType ->-                 T_Elem-sem_Elem_Type pos_ ctx_ name_ params_ type_ =-    (T_Elem (\ _lhsIallAttrDecls-               _lhsIallAttrs-               _lhsIallConstructors-               _lhsIallFields-               _lhsIallNonterminals-               _lhsIattrDecls-               _lhsIattrs-               _lhsIdefSets-               _lhsIdefinedSets-               _lhsIoptions ->-                 (let _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                      _lhsOcollectedNames :: (Set Identifier)-                      _lhsOtypeSyns :: TypeSyns-                      _lhsOparamsCollect :: ParamMap-                      _lhsOctxCollect :: ContextMap-                      _lhsOattrOrderCollect :: AttrOrderMap-                      _lhsOblocks :: Blocks-                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))-                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                      _lhsOcollectedSetNames :: (Set Identifier)-                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                      _lhsOderivings :: Derivings-                      _lhsOerrors :: (Seq Error)-                      _lhsOmoduleDecl :: (Maybe (String,String,String))-                      _lhsOpragmas :: (Options -> Options)-                      _lhsOquantCollect :: QuantMap-                      _lhsOsemPragmasCollect :: PragmaMap-                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                      _lhsOwrappers :: (Set NontermIdent)-                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))-                      -- "src-ag/Transform.ag"(line 255, column 10)-                      _lhsOcollectedFields =-                          ({-# LINE 255 "src-ag/Transform.ag" #-}-                           map (\(x,y)->(name_, x, y)) _expanded-                           {-# LINE 4340 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 585, column 11)-                      _lhsOcollectedNames =-                          ({-# LINE 585 "src-ag/Transform.ag" #-}-                           Set.singleton name_-                           {-# LINE 4346 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 639, column 11)-                      _expanded =-                          ({-# LINE 639 "src-ag/Transform.ag" #-}-                           case _argType of-                                   List tp -> [(Ident "Cons" pos_, [(Ident "hd" pos_, tp)-                                                                   ,(Ident "tl" pos_, NT name_ (map getName params_) False)-                                                                   ]-                                               )-                                              ,(Ident "Nil" pos_,  [])-                                              ]-                                   Maybe tp -> [(Ident "Just" pos_, [(Ident "just" pos_, tp)-                                                                   ]-                                               )-                                              ,(Ident "Nothing" pos_,  [])-                                              ]-                                   Either tp1 tp2 -> [-                                                (Ident "Left"    pos_,  [(Ident "left"  pos_, tp1) ])-                                              , (Ident "Right"   pos_,  [(Ident "right" pos_, tp2) ])-                                              ]-                                   Map tp1 tp2 -> [ (Ident "Entry" pos_, [ (Ident "key" pos_, tp1)-                                                                         , (Ident "val" pos_, tp2)-                                                                         , (Ident "tl" pos_, NT name_ (map getName params_) False)-                                                                         ])-                                                  , (Ident "Nil" pos_, [])-                                                  ]-                                   IntMap tp   -> [ (Ident "Entry" pos_, [ (Ident "key" pos_, Haskell "Int")-                                                                         , (Ident "val" pos_, tp)-                                                                         , (Ident "tl" pos_, NT name_ (map getName params_) False)-                                                                         ])-                                                  , (Ident "Nil" pos_, [])-                                                  ]-                                   OrdSet tp   -> [ (Ident "Entry" pos_, [ (Ident "val" pos_, tp)-                                                                         , (Ident "tl" pos_, NT name_ (map getName params_) False) ])-                                                  , (Ident "Nil" pos_, [])-                                                  ]-                                   IntSet      -> [ (Ident "Entry" pos_, [ (Ident "val" pos_, Haskell "Int")-                                                                         , (Ident "tl" pos_, NT name_ (map getName params_) False) ])-                                                  , (Ident "Nil" pos_, [])-                                                  ]-                                   Tuple xs -> [(Ident "Tuple" pos_, xs)]-                           {-# LINE 4388 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 676, column 11)-                      _argType =-                          ({-# LINE 676 "src-ag/Transform.ag" #-}-                           case type_ of-                            Maybe tp       -> Maybe  (  makeType _lhsIallNonterminals tp)-                            Either tp1 tp2 -> Either (  makeType _lhsIallNonterminals tp1) (makeType _lhsIallNonterminals tp2)-                            List tp        -> List   (  makeType _lhsIallNonterminals tp)-                            Tuple xs       -> Tuple [(f,makeType _lhsIallNonterminals tp) | (f,tp) <- xs]-                            Map tp1 tp2    -> Map    (  makeType _lhsIallNonterminals tp1) (makeType _lhsIallNonterminals tp2)-                            IntMap tp      -> IntMap (  makeType _lhsIallNonterminals tp)-                            OrdSet tp      -> OrdSet (  makeType _lhsIallNonterminals tp)-                            IntSet         -> IntSet-                           {-# LINE 4402 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 685, column 11)-                      _lhsOtypeSyns =-                          ({-# LINE 685 "src-ag/Transform.ag" #-}-                           [(name_,_argType)]-                           {-# LINE 4408 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 935, column 7)-                      _lhsOparamsCollect =-                          ({-# LINE 935 "src-ag/Transform.ag" #-}-                           if null params_-                           then Map.empty-                           else Map.singleton name_ params_-                           {-# LINE 4416 "dist/build/Transform" #-}-                           )-                      -- "src-ag/Transform.ag"(line 958, column 7)-                      _lhsOctxCollect =-                          ({-# LINE 958 "src-ag/Transform.ag" #-}-                           if null ctx_-                           then Map.empty-                           else Map.singleton name_ ctx_-                           {-# LINE 4424 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 893, column 55)-                      _lhsOattrOrderCollect =-                          ({-# LINE 893 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4430 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 46, column 19)-                      _lhsOblocks =-                          ({-# LINE 46 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4436 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 164, column 32)-                      _lhsOcollectedArounds =-                          ({-# LINE 164 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4442 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 163, column 32)-                      _lhsOcollectedAugments =-                          ({-# LINE 163 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4448 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 132, column 31)-                      _lhsOcollectedConParams =-                          ({-# LINE 132 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4454 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 131, column 33)-                      _lhsOcollectedConstraints =-                          ({-# LINE 131 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4460 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 99, column 48)-                      _lhsOcollectedConstructorsMap =-                          ({-# LINE 99 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4466 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 161, column 32)-                      _lhsOcollectedInsts =-                          ({-# LINE 161 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4472 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)-                      _lhsOcollectedMacros =-                          ({-# LINE 1283 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4478 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 165, column 32)-                      _lhsOcollectedMerges =-                          ({-# LINE 165 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4484 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 159, column 32)-                      _lhsOcollectedRules =-                          ({-# LINE 159 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4490 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 90, column 50)-                      _lhsOcollectedSetNames =-                          ({-# LINE 90 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 4496 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 160, column 32)-                      _lhsOcollectedSigs =-                          ({-# LINE 160 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4502 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 162, column 32)-                      _lhsOcollectedUniques =-                          ({-# LINE 162 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4508 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 990, column 33)-                      _lhsOderivings =-                          ({-# LINE 990 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4514 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 44, column 19)-                      _lhsOerrors =-                          ({-# LINE 44 "src-ag/Transform.ag" #-}-                           Seq.empty-                           {-# LINE 4520 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)-                      _lhsOmoduleDecl =-                          ({-# LINE 1187 "src-ag/Transform.ag" #-}-                           mzero-                           {-# LINE 4526 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 787, column 34)-                      _lhsOpragmas =-                          ({-# LINE 787 "src-ag/Transform.ag" #-}-                           id-                           {-# LINE 4532 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 973, column 36)-                      _lhsOquantCollect =-                          ({-# LINE 973 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4538 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 865, column 56)-                      _lhsOsemPragmasCollect =-                          ({-# LINE 865 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4544 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 145, column 15)-                      _lhsOuseMap =-                          ({-# LINE 145 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4550 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 771, column 32)-                      _lhsOwrappers =-                          ({-# LINE 771 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 4556 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOattrDecls =-                          ({-# LINE 144 "src-ag/Transform.ag" #-}-                           _lhsIattrDecls-                           {-# LINE 4562 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOattrs =-                          ({-# LINE 1316 "src-ag/Transform.ag" #-}-                           _lhsIattrs-                           {-# LINE 4568 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOdefSets =-                          ({-# LINE 109 "src-ag/Transform.ag" #-}-                           _lhsIdefSets-                           {-# LINE 4574 "dist/build/Transform" #-}-                           )-                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))-sem_Elem_Wrapper :: Pos ->-                    T_NontSet ->-                    T_Elem-sem_Elem_Wrapper pos_ (T_NontSet set_) =-    (T_Elem (\ _lhsIallAttrDecls-               _lhsIallAttrs-               _lhsIallConstructors-               _lhsIallFields-               _lhsIallNonterminals-               _lhsIattrDecls-               _lhsIattrs-               _lhsIdefSets-               _lhsIdefinedSets-               _lhsIoptions ->-                 (let _lhsOwrappers :: (Set NontermIdent)-                      _lhsOattrOrderCollect :: AttrOrderMap-                      _lhsOblocks :: Blocks-                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))-                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                      _lhsOcollectedNames :: (Set Identifier)-                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                      _lhsOcollectedSetNames :: (Set Identifier)-                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                      _lhsOctxCollect :: ContextMap-                      _lhsOderivings :: Derivings-                      _lhsOerrors :: (Seq Error)-                      _lhsOmoduleDecl :: (Maybe (String,String,String))-                      _lhsOparamsCollect :: ParamMap-                      _lhsOpragmas :: (Options -> Options)-                      _lhsOquantCollect :: QuantMap-                      _lhsOsemPragmasCollect :: PragmaMap-                      _lhsOtypeSyns :: TypeSyns-                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))-                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))-                      _setOallFields :: DataTypes-                      _setOallNonterminals :: (Set NontermIdent)-                      _setOdefinedSets :: DefinedSets-                      _setIcollectedNames :: (Set Identifier)-                      _setIerrors :: (Seq Error)-                      _setInontSet :: (Set NontermIdent)-                      -- "src-ag/Transform.ag"(line 774, column 13)-                      _lhsOwrappers =-                          ({-# LINE 774 "src-ag/Transform.ag" #-}-                           _setInontSet-                           {-# LINE 4631 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 893, column 55)-                      _lhsOattrOrderCollect =-                          ({-# LINE 893 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4637 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 46, column 19)-                      _lhsOblocks =-                          ({-# LINE 46 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4643 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 164, column 32)-                      _lhsOcollectedArounds =-                          ({-# LINE 164 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4649 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 163, column 32)-                      _lhsOcollectedAugments =-                          ({-# LINE 163 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4655 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 132, column 31)-                      _lhsOcollectedConParams =-                          ({-# LINE 132 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4661 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 131, column 33)-                      _lhsOcollectedConstraints =-                          ({-# LINE 131 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4667 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 99, column 48)-                      _lhsOcollectedConstructorsMap =-                          ({-# LINE 99 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4673 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 130, column 28)-                      _lhsOcollectedFields =-                          ({-# LINE 130 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4679 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 161, column 32)-                      _lhsOcollectedInsts =-                          ({-# LINE 161 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4685 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)-                      _lhsOcollectedMacros =-                          ({-# LINE 1283 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4691 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 165, column 32)-                      _lhsOcollectedMerges =-                          ({-# LINE 165 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4697 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 91, column 50)-                      _lhsOcollectedNames =-                          ({-# LINE 91 "src-ag/Transform.ag" #-}-                           _setIcollectedNames-                           {-# LINE 4703 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 159, column 32)-                      _lhsOcollectedRules =-                          ({-# LINE 159 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4709 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 90, column 50)-                      _lhsOcollectedSetNames =-                          ({-# LINE 90 "src-ag/Transform.ag" #-}-                           Set.empty-                           {-# LINE 4715 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 160, column 32)-                      _lhsOcollectedSigs =-                          ({-# LINE 160 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4721 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 162, column 32)-                      _lhsOcollectedUniques =-                          ({-# LINE 162 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4727 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 948, column 34)-                      _lhsOctxCollect =-                          ({-# LINE 948 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4733 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 990, column 33)-                      _lhsOderivings =-                          ({-# LINE 990 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4739 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 44, column 19)-                      _lhsOerrors =-                          ({-# LINE 44 "src-ag/Transform.ag" #-}-                           _setIerrors-                           {-# LINE 4745 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)-                      _lhsOmoduleDecl =-                          ({-# LINE 1187 "src-ag/Transform.ag" #-}-                           mzero-                           {-# LINE 4751 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 925, column 37)-                      _lhsOparamsCollect =-                          ({-# LINE 925 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4757 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 787, column 34)-                      _lhsOpragmas =-                          ({-# LINE 787 "src-ag/Transform.ag" #-}-                           id-                           {-# LINE 4763 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 973, column 36)-                      _lhsOquantCollect =-                          ({-# LINE 973 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4769 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 865, column 56)-                      _lhsOsemPragmasCollect =-                          ({-# LINE 865 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4775 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 626, column 32)-                      _lhsOtypeSyns =-                          ({-# LINE 626 "src-ag/Transform.ag" #-}-                           []-                           {-# LINE 4781 "dist/build/Transform" #-}-                           )-                      -- use rule "src-ag/Transform.ag"(line 145, column 15)-                      _lhsOuseMap =-                          ({-# LINE 145 "src-ag/Transform.ag" #-}-                           Map.empty-                           {-# LINE 4787 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOattrDecls =-                          ({-# LINE 144 "src-ag/Transform.ag" #-}-                           _lhsIattrDecls-                           {-# LINE 4793 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOattrs =-                          ({-# LINE 1316 "src-ag/Transform.ag" #-}-                           _lhsIattrs-                           {-# LINE 4799 "dist/build/Transform" #-}-                           )-                      -- copy rule (chain)-                      _lhsOdefSets =-                          ({-# LINE 109 "src-ag/Transform.ag" #-}-                           _lhsIdefSets-                           {-# LINE 4805 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _setOallFields =-                          ({-# LINE 136 "src-ag/Transform.ag" #-}-                           _lhsIallFields-                           {-# LINE 4811 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _setOallNonterminals =-                          ({-# LINE 93 "src-ag/Transform.ag" #-}-                           _lhsIallNonterminals-                           {-# LINE 4817 "dist/build/Transform" #-}-                           )-                      -- copy rule (down)-                      _setOdefinedSets =-                          ({-# LINE 112 "src-ag/Transform.ag" #-}-                           _lhsIdefinedSets-                           {-# LINE 4823 "dist/build/Transform" #-}-                           )-                      ( _setIcollectedNames,_setIerrors,_setInontSet) =-                          set_ _setOallFields _setOallNonterminals _setOdefinedSets-                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))--- Elems --------------------------------------------------------{--   visit 0:-      inherited attributes:-         allAttrDecls         : Map NontermIdent (Attributes, Attributes)-         allAttrs             : Map NontermIdent (Attributes, Attributes)-         allConstructors      : Map NontermIdent (Set ConstructorIdent)-         allFields            : DataTypes-         allNonterminals      : Set NontermIdent-         definedSets          : DefinedSets-         options              : Options-      chained attributes:-         attrDecls            : Map NontermIdent (Attributes, Attributes)-         attrs                : Map NontermIdent (Attributes, Attributes)-         defSets              : Map Identifier (Set NontermIdent,Set Identifier)-      synthesized attributes:-         attrOrderCollect     : AttrOrderMap-         blocks               : Blocks-         collectedArounds     : [ (NontermIdent, ConstructorIdent, [AroundInfo])  ]-         collectedAugments    : [ (NontermIdent, ConstructorIdent, [AugmentInfo]) ]-         collectedConParams   : [(NontermIdent, ConstructorIdent, Set Identifier)]-         collectedConstraints : [(NontermIdent, ConstructorIdent, [Type])]-         collectedConstructorsMap : Map NontermIdent (Set ConstructorIdent)-         collectedFields      : [(NontermIdent, ConstructorIdent, FieldMap)]-         collectedInsts       : [ (NontermIdent, ConstructorIdent, [Identifier]) ]-         collectedMacros      : [(NontermIdent, ConstructorIdent, MaybeMacro)]-         collectedMerges      : [ (NontermIdent, ConstructorIdent, [MergeInfo])   ]-         collectedNames       : Set Identifier-         collectedRules       : [ (NontermIdent, ConstructorIdent, RuleInfo)]-         collectedSetNames    : Set Identifier-         collectedSigs        : [ (NontermIdent, ConstructorIdent, SigInfo) ]-         collectedUniques     : [ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]-         ctxCollect           : ContextMap-         derivings            : Derivings-         errors               : Seq Error-         moduleDecl           : Maybe (String,String,String)-         paramsCollect        : ParamMap-         pragmas              : Options -> Options-         quantCollect         : QuantMap-         semPragmasCollect    : PragmaMap-         typeSyns             : TypeSyns-         useMap               : Map NontermIdent (Map Identifier (String,String,String))-         wrappers             : Set NontermIdent-   alternatives:-      alternative Cons:-         child hd             : Elem -         child tl             : Elems -      alternative Nil:--}--- cata-sem_Elems :: Elems ->-             T_Elems-sem_Elems list =-    (Prelude.foldr sem_Elems_Cons sem_Elems_Nil (Prelude.map sem_Elem list))--- semantic domain-newtype T_Elems = T_Elems ((Map NontermIdent (Attributes, Attributes)) ->-                           (Map NontermIdent (Attributes, Attributes)) ->-                           (Map NontermIdent (Set ConstructorIdent)) ->-                           DataTypes ->-                           (Set NontermIdent) ->-                           (Map NontermIdent (Attributes, Attributes)) ->-                           (Map NontermIdent (Attributes, Attributes)) ->-                           (Map Identifier (Set NontermIdent,Set Identifier)) ->-                           DefinedSets ->-                           Options ->-                           ( (Map NontermIdent (Attributes, Attributes)),AttrOrderMap,(Map NontermIdent (Attributes, Attributes)),Blocks,([ (NontermIdent, ConstructorIdent, [AroundInfo])  ]),([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ]),([(NontermIdent, ConstructorIdent, Set Identifier)]),([(NontermIdent, ConstructorIdent, [Type])]),(Map NontermIdent (Set ConstructorIdent)),([(NontermIdent, ConstructorIdent, FieldMap)]),([ (NontermIdent, ConstructorIdent, [Identifier]) ]),([(NontermIdent, ConstructorIdent, MaybeMacro)]),([ (NontermIdent, ConstructorIdent, [MergeInfo])   ]),(Set Identifier),([ (NontermIdent, ConstructorIdent, RuleInfo)]),(Set Identifier),([ (NontermIdent, ConstructorIdent, SigInfo) ]),([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]),ContextMap,(Map Identifier (Set NontermIdent,Set Identifier)),Derivings,(Seq Error),(Maybe (String,String,String)),ParamMap,(Options -> Options),QuantMap,PragmaMap,TypeSyns,(Map NontermIdent (Map Identifier (String,String,String))),(Set NontermIdent)))-data Inh_Elems = Inh_Elems {allAttrDecls_Inh_Elems :: !((Map NontermIdent (Attributes, Attributes))),allAttrs_Inh_Elems :: !((Map NontermIdent (Attributes, Attributes))),allConstructors_Inh_Elems :: !((Map NontermIdent (Set ConstructorIdent))),allFields_Inh_Elems :: !(DataTypes),allNonterminals_Inh_Elems :: !((Set NontermIdent)),attrDecls_Inh_Elems :: !((Map NontermIdent (Attributes, Attributes))),attrs_Inh_Elems :: !((Map NontermIdent (Attributes, Attributes))),defSets_Inh_Elems :: !((Map Identifier (Set NontermIdent,Set Identifier))),definedSets_Inh_Elems :: !(DefinedSets),options_Inh_Elems :: !(Options)}-data Syn_Elems = Syn_Elems {attrDecls_Syn_Elems :: !((Map NontermIdent (Attributes, Attributes))),attrOrderCollect_Syn_Elems :: !(AttrOrderMap),attrs_Syn_Elems :: !((Map NontermIdent (Attributes, Attributes))),blocks_Syn_Elems :: !(Blocks),collectedArounds_Syn_Elems :: !(([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])),collectedAugments_Syn_Elems :: !(([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])),collectedConParams_Syn_Elems :: !(([(NontermIdent, ConstructorIdent, Set Identifier)])),collectedConstraints_Syn_Elems :: !(([(NontermIdent, ConstructorIdent, [Type])])),collectedConstructorsMap_Syn_Elems :: !((Map NontermIdent (Set ConstructorIdent))),collectedFields_Syn_Elems :: !(([(NontermIdent, ConstructorIdent, FieldMap)])),collectedInsts_Syn_Elems :: !(([ (NontermIdent, ConstructorIdent, [Identifier]) ])),collectedMacros_Syn_Elems :: !(([(NontermIdent, ConstructorIdent, MaybeMacro)])),collectedMerges_Syn_Elems :: !(([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])),collectedNames_Syn_Elems :: !((Set Identifier)),collectedRules_Syn_Elems :: !(([ (NontermIdent, ConstructorIdent, RuleInfo)])),collectedSetNames_Syn_Elems :: !((Set Identifier)),collectedSigs_Syn_Elems :: !(([ (NontermIdent, ConstructorIdent, SigInfo) ])),collectedUniques_Syn_Elems :: !(([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])),ctxCollect_Syn_Elems :: !(ContextMap),defSets_Syn_Elems :: !((Map Identifier (Set NontermIdent,Set Identifier))),derivings_Syn_Elems :: !(Derivings),errors_Syn_Elems :: !((Seq Error)),moduleDecl_Syn_Elems :: !((Maybe (String,String,String))),paramsCollect_Syn_Elems :: !(ParamMap),pragmas_Syn_Elems :: !((Options -> Options)),quantCollect_Syn_Elems :: !(QuantMap),semPragmasCollect_Syn_Elems :: !(PragmaMap),typeSyns_Syn_Elems :: !(TypeSyns),useMap_Syn_Elems :: !((Map NontermIdent (Map Identifier (String,String,String)))),wrappers_Syn_Elems :: !((Set NontermIdent))}-wrap_Elems :: T_Elems ->-              Inh_Elems ->-              Syn_Elems-wrap_Elems (T_Elems sem) (Inh_Elems _lhsIallAttrDecls _lhsIallAttrs _lhsIallConstructors _lhsIallFields _lhsIallNonterminals _lhsIattrDecls _lhsIattrs _lhsIdefSets _lhsIdefinedSets _lhsIoptions) =-    (let ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers) = sem _lhsIallAttrDecls _lhsIallAttrs _lhsIallConstructors _lhsIallFields _lhsIallNonterminals _lhsIattrDecls _lhsIattrs _lhsIdefSets _lhsIdefinedSets _lhsIoptions-     in  (Syn_Elems _lhsOattrDecls _lhsOattrOrderCollect _lhsOattrs _lhsOblocks _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorsMap _lhsOcollectedFields _lhsOcollectedInsts _lhsOcollectedMacros _lhsOcollectedMerges _lhsOcollectedNames _lhsOcollectedRules _lhsOcollectedSetNames _lhsOcollectedSigs _lhsOcollectedUniques _lhsOctxCollect _lhsOdefSets _lhsOderivings _lhsOerrors _lhsOmoduleDecl _lhsOparamsCollect _lhsOpragmas _lhsOquantCollect _lhsOsemPragmasCollect _lhsOtypeSyns _lhsOuseMap _lhsOwrappers))-sem_Elems_Cons :: T_Elem ->-                  T_Elems ->-                  T_Elems-sem_Elems_Cons (T_Elem hd_) (T_Elems tl_) =-    (T_Elems (\ _lhsIallAttrDecls-                _lhsIallAttrs-                _lhsIallConstructors-                _lhsIallFields-                _lhsIallNonterminals-                _lhsIattrDecls-                _lhsIattrs-                _lhsIdefSets-                _lhsIdefinedSets-                _lhsIoptions ->-                  (let _lhsOattrOrderCollect :: AttrOrderMap-                       _lhsOblocks :: Blocks-                       _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                       _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                       _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                       _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                       _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))-                       _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                       _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                       _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                       _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                       _lhsOcollectedNames :: (Set Identifier)-                       _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                       _lhsOcollectedSetNames :: (Set Identifier)-                       _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                       _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                       _lhsOctxCollect :: ContextMap-                       _lhsOderivings :: Derivings-                       _lhsOerrors :: (Seq Error)-                       _lhsOmoduleDecl :: (Maybe (String,String,String))-                       _lhsOparamsCollect :: ParamMap-                       _lhsOpragmas :: (Options -> Options)-                       _lhsOquantCollect :: QuantMap-                       _lhsOsemPragmasCollect :: PragmaMap-                       _lhsOtypeSyns :: TypeSyns-                       _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                       _lhsOwrappers :: (Set NontermIdent)-                       _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                       _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))-                       _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))-                       _hdOallAttrDecls :: (Map NontermIdent (Attributes, Attributes))-                       _hdOallAttrs :: (Map NontermIdent (Attributes, Attributes))-                       _hdOallConstructors :: (Map NontermIdent (Set ConstructorIdent))-                       _hdOallFields :: DataTypes-                       _hdOallNonterminals :: (Set NontermIdent)-                       _hdOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                       _hdOattrs :: (Map NontermIdent (Attributes, Attributes))-                       _hdOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))-                       _hdOdefinedSets :: DefinedSets-                       _hdOoptions :: Options-                       _tlOallAttrDecls :: (Map NontermIdent (Attributes, Attributes))-                       _tlOallAttrs :: (Map NontermIdent (Attributes, Attributes))-                       _tlOallConstructors :: (Map NontermIdent (Set ConstructorIdent))-                       _tlOallFields :: DataTypes-                       _tlOallNonterminals :: (Set NontermIdent)-                       _tlOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                       _tlOattrs :: (Map NontermIdent (Attributes, Attributes))-                       _tlOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))-                       _tlOdefinedSets :: DefinedSets-                       _tlOoptions :: Options-                       _hdIattrDecls :: (Map NontermIdent (Attributes, Attributes))-                       _hdIattrOrderCollect :: AttrOrderMap-                       _hdIattrs :: (Map NontermIdent (Attributes, Attributes))-                       _hdIblocks :: Blocks-                       _hdIcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                       _hdIcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                       _hdIcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                       _hdIcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                       _hdIcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))-                       _hdIcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                       _hdIcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                       _hdIcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                       _hdIcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                       _hdIcollectedNames :: (Set Identifier)-                       _hdIcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                       _hdIcollectedSetNames :: (Set Identifier)-                       _hdIcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                       _hdIcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                       _hdIctxCollect :: ContextMap-                       _hdIdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))-                       _hdIderivings :: Derivings-                       _hdIerrors :: (Seq Error)-                       _hdImoduleDecl :: (Maybe (String,String,String))-                       _hdIparamsCollect :: ParamMap-                       _hdIpragmas :: (Options -> Options)-                       _hdIquantCollect :: QuantMap-                       _hdIsemPragmasCollect :: PragmaMap-                       _hdItypeSyns :: TypeSyns-                       _hdIuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                       _hdIwrappers :: (Set NontermIdent)-                       _tlIattrDecls :: (Map NontermIdent (Attributes, Attributes))-                       _tlIattrOrderCollect :: AttrOrderMap-                       _tlIattrs :: (Map NontermIdent (Attributes, Attributes))-                       _tlIblocks :: Blocks-                       _tlIcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                       _tlIcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                       _tlIcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                       _tlIcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                       _tlIcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))-                       _tlIcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                       _tlIcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                       _tlIcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                       _tlIcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                       _tlIcollectedNames :: (Set Identifier)-                       _tlIcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                       _tlIcollectedSetNames :: (Set Identifier)-                       _tlIcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                       _tlIcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                       _tlIctxCollect :: ContextMap-                       _tlIdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))-                       _tlIderivings :: Derivings-                       _tlIerrors :: (Seq Error)-                       _tlImoduleDecl :: (Maybe (String,String,String))-                       _tlIparamsCollect :: ParamMap-                       _tlIpragmas :: (Options -> Options)-                       _tlIquantCollect :: QuantMap-                       _tlIsemPragmasCollect :: PragmaMap-                       _tlItypeSyns :: TypeSyns-                       _tlIuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                       _tlIwrappers :: (Set NontermIdent)-                       -- use rule "src-ag/Transform.ag"(line 893, column 55)-                       _lhsOattrOrderCollect =-                           ({-# LINE 893 "src-ag/Transform.ag" #-}-                            _hdIattrOrderCollect `orderMapUnion` _tlIattrOrderCollect-                            {-# LINE 5030 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 46, column 19)-                       _lhsOblocks =-                           ({-# LINE 46 "src-ag/Transform.ag" #-}-                            _hdIblocks `mapUnionWithPlusPlus` _tlIblocks-                            {-# LINE 5036 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 164, column 32)-                       _lhsOcollectedArounds =-                           ({-# LINE 164 "src-ag/Transform.ag" #-}-                            _hdIcollectedArounds ++ _tlIcollectedArounds-                            {-# LINE 5042 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 163, column 32)-                       _lhsOcollectedAugments =-                           ({-# LINE 163 "src-ag/Transform.ag" #-}-                            _hdIcollectedAugments ++ _tlIcollectedAugments-                            {-# LINE 5048 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 132, column 31)-                       _lhsOcollectedConParams =-                           ({-# LINE 132 "src-ag/Transform.ag" #-}-                            _hdIcollectedConParams ++ _tlIcollectedConParams-                            {-# LINE 5054 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 131, column 33)-                       _lhsOcollectedConstraints =-                           ({-# LINE 131 "src-ag/Transform.ag" #-}-                            _hdIcollectedConstraints ++ _tlIcollectedConstraints-                            {-# LINE 5060 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 99, column 48)-                       _lhsOcollectedConstructorsMap =-                           ({-# LINE 99 "src-ag/Transform.ag" #-}-                            _hdIcollectedConstructorsMap `mapUnionWithSetUnion` _tlIcollectedConstructorsMap-                            {-# LINE 5066 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 130, column 28)-                       _lhsOcollectedFields =-                           ({-# LINE 130 "src-ag/Transform.ag" #-}-                            _hdIcollectedFields ++ _tlIcollectedFields-                            {-# LINE 5072 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 161, column 32)-                       _lhsOcollectedInsts =-                           ({-# LINE 161 "src-ag/Transform.ag" #-}-                            _hdIcollectedInsts ++ _tlIcollectedInsts-                            {-# LINE 5078 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 1283, column 28)-                       _lhsOcollectedMacros =-                           ({-# LINE 1283 "src-ag/Transform.ag" #-}-                            _hdIcollectedMacros ++ _tlIcollectedMacros-                            {-# LINE 5084 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 165, column 32)-                       _lhsOcollectedMerges =-                           ({-# LINE 165 "src-ag/Transform.ag" #-}-                            _hdIcollectedMerges ++ _tlIcollectedMerges-                            {-# LINE 5090 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 91, column 50)-                       _lhsOcollectedNames =-                           ({-# LINE 91 "src-ag/Transform.ag" #-}-                            _hdIcollectedNames `Set.union` _tlIcollectedNames-                            {-# LINE 5096 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 159, column 32)-                       _lhsOcollectedRules =-                           ({-# LINE 159 "src-ag/Transform.ag" #-}-                            _hdIcollectedRules ++ _tlIcollectedRules-                            {-# LINE 5102 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 90, column 50)-                       _lhsOcollectedSetNames =-                           ({-# LINE 90 "src-ag/Transform.ag" #-}-                            _hdIcollectedSetNames `Set.union` _tlIcollectedSetNames-                            {-# LINE 5108 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 160, column 32)-                       _lhsOcollectedSigs =-                           ({-# LINE 160 "src-ag/Transform.ag" #-}-                            _hdIcollectedSigs ++ _tlIcollectedSigs-                            {-# LINE 5114 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 162, column 32)-                       _lhsOcollectedUniques =-                           ({-# LINE 162 "src-ag/Transform.ag" #-}-                            _hdIcollectedUniques ++ _tlIcollectedUniques-                            {-# LINE 5120 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 948, column 34)-                       _lhsOctxCollect =-                           ({-# LINE 948 "src-ag/Transform.ag" #-}-                            _hdIctxCollect `mergeCtx` _tlIctxCollect-                            {-# LINE 5126 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 990, column 33)-                       _lhsOderivings =-                           ({-# LINE 990 "src-ag/Transform.ag" #-}-                            _hdIderivings `mergeDerivings` _tlIderivings-                            {-# LINE 5132 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 44, column 19)-                       _lhsOerrors =-                           ({-# LINE 44 "src-ag/Transform.ag" #-}-                            _hdIerrors Seq.>< _tlIerrors-                            {-# LINE 5138 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 1187, column 37)-                       _lhsOmoduleDecl =-                           ({-# LINE 1187 "src-ag/Transform.ag" #-}-                            _hdImoduleDecl `mplus` _tlImoduleDecl-                            {-# LINE 5144 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 925, column 37)-                       _lhsOparamsCollect =-                           ({-# LINE 925 "src-ag/Transform.ag" #-}-                            _hdIparamsCollect `mergeParams` _tlIparamsCollect-                            {-# LINE 5150 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 787, column 34)-                       _lhsOpragmas =-                           ({-# LINE 787 "src-ag/Transform.ag" #-}-                            _hdIpragmas . _tlIpragmas-                            {-# LINE 5156 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 973, column 36)-                       _lhsOquantCollect =-                           ({-# LINE 973 "src-ag/Transform.ag" #-}-                            _hdIquantCollect `mergeQuant` _tlIquantCollect-                            {-# LINE 5162 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 865, column 56)-                       _lhsOsemPragmasCollect =-                           ({-# LINE 865 "src-ag/Transform.ag" #-}-                            _hdIsemPragmasCollect `pragmaMapUnion` _tlIsemPragmasCollect-                            {-# LINE 5168 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 626, column 32)-                       _lhsOtypeSyns =-                           ({-# LINE 626 "src-ag/Transform.ag" #-}-                            _hdItypeSyns ++ _tlItypeSyns-                            {-# LINE 5174 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 145, column 15)-                       _lhsOuseMap =-                           ({-# LINE 145 "src-ag/Transform.ag" #-}-                            _hdIuseMap `merge` _tlIuseMap-                            {-# LINE 5180 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 771, column 32)-                       _lhsOwrappers =-                           ({-# LINE 771 "src-ag/Transform.ag" #-}-                            _hdIwrappers `Set.union` _tlIwrappers-                            {-# LINE 5186 "dist/build/Transform" #-}-                            )-                       -- copy rule (up)-                       _lhsOattrDecls =-                           ({-# LINE 144 "src-ag/Transform.ag" #-}-                            _tlIattrDecls-                            {-# LINE 5192 "dist/build/Transform" #-}-                            )-                       -- copy rule (up)-                       _lhsOattrs =-                           ({-# LINE 1316 "src-ag/Transform.ag" #-}-                            _tlIattrs-                            {-# LINE 5198 "dist/build/Transform" #-}-                            )-                       -- copy rule (up)-                       _lhsOdefSets =-                           ({-# LINE 109 "src-ag/Transform.ag" #-}-                            _tlIdefSets-                            {-# LINE 5204 "dist/build/Transform" #-}-                            )-                       -- copy rule (down)-                       _hdOallAttrDecls =-                           ({-# LINE 894 "src-ag/Transform.ag" #-}-                            _lhsIallAttrDecls-                            {-# LINE 5210 "dist/build/Transform" #-}-                            )-                       -- copy rule (down)-                       _hdOallAttrs =-                           ({-# LINE 1306 "src-ag/Transform.ag" #-}-                            _lhsIallAttrs-                            {-# LINE 5216 "dist/build/Transform" #-}-                            )-                       -- copy rule (down)-                       _hdOallConstructors =-                           ({-# LINE 101 "src-ag/Transform.ag" #-}-                            _lhsIallConstructors-                            {-# LINE 5222 "dist/build/Transform" #-}-                            )-                       -- copy rule (down)-                       _hdOallFields =-                           ({-# LINE 136 "src-ag/Transform.ag" #-}-                            _lhsIallFields-                            {-# LINE 5228 "dist/build/Transform" #-}-                            )-                       -- copy rule (down)-                       _hdOallNonterminals =-                           ({-# LINE 93 "src-ag/Transform.ag" #-}-                            _lhsIallNonterminals-                            {-# LINE 5234 "dist/build/Transform" #-}-                            )-                       -- copy rule (down)-                       _hdOattrDecls =-                           ({-# LINE 144 "src-ag/Transform.ag" #-}-                            _lhsIattrDecls-                            {-# LINE 5240 "dist/build/Transform" #-}-                            )-                       -- copy rule (down)-                       _hdOattrs =-                           ({-# LINE 1316 "src-ag/Transform.ag" #-}-                            _lhsIattrs-                            {-# LINE 5246 "dist/build/Transform" #-}-                            )-                       -- copy rule (down)-                       _hdOdefSets =-                           ({-# LINE 109 "src-ag/Transform.ag" #-}-                            _lhsIdefSets-                            {-# LINE 5252 "dist/build/Transform" #-}-                            )-                       -- copy rule (down)-                       _hdOdefinedSets =-                           ({-# LINE 112 "src-ag/Transform.ag" #-}-                            _lhsIdefinedSets-                            {-# LINE 5258 "dist/build/Transform" #-}-                            )-                       -- copy rule (down)-                       _hdOoptions =-                           ({-# LINE 40 "src-ag/Transform.ag" #-}-                            _lhsIoptions-                            {-# LINE 5264 "dist/build/Transform" #-}-                            )-                       -- copy rule (down)-                       _tlOallAttrDecls =-                           ({-# LINE 894 "src-ag/Transform.ag" #-}-                            _lhsIallAttrDecls-                            {-# LINE 5270 "dist/build/Transform" #-}-                            )-                       -- copy rule (down)-                       _tlOallAttrs =-                           ({-# LINE 1306 "src-ag/Transform.ag" #-}-                            _lhsIallAttrs-                            {-# LINE 5276 "dist/build/Transform" #-}-                            )-                       -- copy rule (down)-                       _tlOallConstructors =-                           ({-# LINE 101 "src-ag/Transform.ag" #-}-                            _lhsIallConstructors-                            {-# LINE 5282 "dist/build/Transform" #-}-                            )-                       -- copy rule (down)-                       _tlOallFields =-                           ({-# LINE 136 "src-ag/Transform.ag" #-}-                            _lhsIallFields-                            {-# LINE 5288 "dist/build/Transform" #-}-                            )-                       -- copy rule (down)-                       _tlOallNonterminals =-                           ({-# LINE 93 "src-ag/Transform.ag" #-}-                            _lhsIallNonterminals-                            {-# LINE 5294 "dist/build/Transform" #-}-                            )-                       -- copy rule (chain)-                       _tlOattrDecls =-                           ({-# LINE 144 "src-ag/Transform.ag" #-}-                            _hdIattrDecls-                            {-# LINE 5300 "dist/build/Transform" #-}-                            )-                       -- copy rule (chain)-                       _tlOattrs =-                           ({-# LINE 1316 "src-ag/Transform.ag" #-}-                            _hdIattrs-                            {-# LINE 5306 "dist/build/Transform" #-}-                            )-                       -- copy rule (chain)-                       _tlOdefSets =-                           ({-# LINE 109 "src-ag/Transform.ag" #-}-                            _hdIdefSets-                            {-# LINE 5312 "dist/build/Transform" #-}-                            )-                       -- copy rule (down)-                       _tlOdefinedSets =-                           ({-# LINE 112 "src-ag/Transform.ag" #-}-                            _lhsIdefinedSets-                            {-# LINE 5318 "dist/build/Transform" #-}-                            )-                       -- copy rule (down)-                       _tlOoptions =-                           ({-# LINE 40 "src-ag/Transform.ag" #-}-                            _lhsIoptions-                            {-# LINE 5324 "dist/build/Transform" #-}-                            )-                       ( _hdIattrDecls,_hdIattrOrderCollect,_hdIattrs,_hdIblocks,_hdIcollectedArounds,_hdIcollectedAugments,_hdIcollectedConParams,_hdIcollectedConstraints,_hdIcollectedConstructorsMap,_hdIcollectedFields,_hdIcollectedInsts,_hdIcollectedMacros,_hdIcollectedMerges,_hdIcollectedNames,_hdIcollectedRules,_hdIcollectedSetNames,_hdIcollectedSigs,_hdIcollectedUniques,_hdIctxCollect,_hdIdefSets,_hdIderivings,_hdIerrors,_hdImoduleDecl,_hdIparamsCollect,_hdIpragmas,_hdIquantCollect,_hdIsemPragmasCollect,_hdItypeSyns,_hdIuseMap,_hdIwrappers) =-                           hd_ _hdOallAttrDecls _hdOallAttrs _hdOallConstructors _hdOallFields _hdOallNonterminals _hdOattrDecls _hdOattrs _hdOdefSets _hdOdefinedSets _hdOoptions-                       ( _tlIattrDecls,_tlIattrOrderCollect,_tlIattrs,_tlIblocks,_tlIcollectedArounds,_tlIcollectedAugments,_tlIcollectedConParams,_tlIcollectedConstraints,_tlIcollectedConstructorsMap,_tlIcollectedFields,_tlIcollectedInsts,_tlIcollectedMacros,_tlIcollectedMerges,_tlIcollectedNames,_tlIcollectedRules,_tlIcollectedSetNames,_tlIcollectedSigs,_tlIcollectedUniques,_tlIctxCollect,_tlIdefSets,_tlIderivings,_tlIerrors,_tlImoduleDecl,_tlIparamsCollect,_tlIpragmas,_tlIquantCollect,_tlIsemPragmasCollect,_tlItypeSyns,_tlIuseMap,_tlIwrappers) =-                           tl_ _tlOallAttrDecls _tlOallAttrs _tlOallConstructors _tlOallFields _tlOallNonterminals _tlOattrDecls _tlOattrs _tlOdefSets _tlOdefinedSets _tlOoptions-                   in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))-sem_Elems_Nil :: T_Elems-sem_Elems_Nil =-    (T_Elems (\ _lhsIallAttrDecls-                _lhsIallAttrs-                _lhsIallConstructors-                _lhsIallFields-                _lhsIallNonterminals-                _lhsIattrDecls-                _lhsIattrs-                _lhsIdefSets-                _lhsIdefinedSets-                _lhsIoptions ->-                  (let _lhsOattrOrderCollect :: AttrOrderMap-                       _lhsOblocks :: Blocks-                       _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                       _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                       _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])-                       _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])-                       _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))-                       _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])-                       _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                       _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])-                       _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                       _lhsOcollectedNames :: (Set Identifier)-                       _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                       _lhsOcollectedSetNames :: (Set Identifier)-                       _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                       _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                       _lhsOctxCollect :: ContextMap-                       _lhsOderivings :: Derivings-                       _lhsOerrors :: (Seq Error)-                       _lhsOmoduleDecl :: (Maybe (String,String,String))-                       _lhsOparamsCollect :: ParamMap-                       _lhsOpragmas :: (Options -> Options)-                       _lhsOquantCollect :: QuantMap-                       _lhsOsemPragmasCollect :: PragmaMap-                       _lhsOtypeSyns :: TypeSyns-                       _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))-                       _lhsOwrappers :: (Set NontermIdent)-                       _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))-                       _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))-                       _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))-                       -- use rule "src-ag/Transform.ag"(line 893, column 55)-                       _lhsOattrOrderCollect =-                           ({-# LINE 893 "src-ag/Transform.ag" #-}-                            Map.empty-                            {-# LINE 5377 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 46, column 19)-                       _lhsOblocks =-                           ({-# LINE 46 "src-ag/Transform.ag" #-}-                            Map.empty-                            {-# LINE 5383 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 164, column 32)-                       _lhsOcollectedArounds =-                           ({-# LINE 164 "src-ag/Transform.ag" #-}-                            []-                            {-# LINE 5389 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 163, column 32)-                       _lhsOcollectedAugments =-                           ({-# LINE 163 "src-ag/Transform.ag" #-}-                            []-                            {-# LINE 5395 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 132, column 31)-                       _lhsOcollectedConParams =-                           ({-# LINE 132 "src-ag/Transform.ag" #-}-                            []-                            {-# LINE 5401 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 131, column 33)-                       _lhsOcollectedConstraints =-                           ({-# LINE 131 "src-ag/Transform.ag" #-}-                            []-                            {-# LINE 5407 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 99, column 48)-                       _lhsOcollectedConstructorsMap =-                           ({-# LINE 99 "src-ag/Transform.ag" #-}-                            Map.empty-                            {-# LINE 5413 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 130, column 28)-                       _lhsOcollectedFields =-                           ({-# LINE 130 "src-ag/Transform.ag" #-}-                            []-                            {-# LINE 5419 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 161, column 32)-                       _lhsOcollectedInsts =-                           ({-# LINE 161 "src-ag/Transform.ag" #-}-                            []-                            {-# LINE 5425 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 1283, column 28)-                       _lhsOcollectedMacros =-                           ({-# LINE 1283 "src-ag/Transform.ag" #-}-                            []-                            {-# LINE 5431 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 165, column 32)-                       _lhsOcollectedMerges =-                           ({-# LINE 165 "src-ag/Transform.ag" #-}-                            []-                            {-# LINE 5437 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 91, column 50)-                       _lhsOcollectedNames =-                           ({-# LINE 91 "src-ag/Transform.ag" #-}-                            Set.empty-                            {-# LINE 5443 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 159, column 32)-                       _lhsOcollectedRules =-                           ({-# LINE 159 "src-ag/Transform.ag" #-}-                            []-                            {-# LINE 5449 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 90, column 50)-                       _lhsOcollectedSetNames =-                           ({-# LINE 90 "src-ag/Transform.ag" #-}-                            Set.empty-                            {-# LINE 5455 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 160, column 32)-                       _lhsOcollectedSigs =-                           ({-# LINE 160 "src-ag/Transform.ag" #-}-                            []-                            {-# LINE 5461 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 162, column 32)-                       _lhsOcollectedUniques =-                           ({-# LINE 162 "src-ag/Transform.ag" #-}-                            []-                            {-# LINE 5467 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 948, column 34)-                       _lhsOctxCollect =-                           ({-# LINE 948 "src-ag/Transform.ag" #-}-                            Map.empty-                            {-# LINE 5473 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 990, column 33)-                       _lhsOderivings =-                           ({-# LINE 990 "src-ag/Transform.ag" #-}-                            Map.empty-                            {-# LINE 5479 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 44, column 19)-                       _lhsOerrors =-                           ({-# LINE 44 "src-ag/Transform.ag" #-}-                            Seq.empty-                            {-# LINE 5485 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 1187, column 37)-                       _lhsOmoduleDecl =-                           ({-# LINE 1187 "src-ag/Transform.ag" #-}-                            mzero-                            {-# LINE 5491 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 925, column 37)-                       _lhsOparamsCollect =-                           ({-# LINE 925 "src-ag/Transform.ag" #-}-                            Map.empty-                            {-# LINE 5497 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 787, column 34)-                       _lhsOpragmas =-                           ({-# LINE 787 "src-ag/Transform.ag" #-}-                            id-                            {-# LINE 5503 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 973, column 36)-                       _lhsOquantCollect =-                           ({-# LINE 973 "src-ag/Transform.ag" #-}-                            Map.empty-                            {-# LINE 5509 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 865, column 56)-                       _lhsOsemPragmasCollect =-                           ({-# LINE 865 "src-ag/Transform.ag" #-}-                            Map.empty-                            {-# LINE 5515 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 626, column 32)-                       _lhsOtypeSyns =-                           ({-# LINE 626 "src-ag/Transform.ag" #-}-                            []-                            {-# LINE 5521 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 145, column 15)-                       _lhsOuseMap =-                           ({-# LINE 145 "src-ag/Transform.ag" #-}-                            Map.empty-                            {-# LINE 5527 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 771, column 32)-                       _lhsOwrappers =-                           ({-# LINE 771 "src-ag/Transform.ag" #-}-                            Set.empty-                            {-# LINE 5533 "dist/build/Transform" #-}-                            )-                       -- copy rule (chain)-                       _lhsOattrDecls =-                           ({-# LINE 144 "src-ag/Transform.ag" #-}-                            _lhsIattrDecls-                            {-# LINE 5539 "dist/build/Transform" #-}-                            )-                       -- copy rule (chain)-                       _lhsOattrs =-                           ({-# LINE 1316 "src-ag/Transform.ag" #-}-                            _lhsIattrs-                            {-# LINE 5545 "dist/build/Transform" #-}-                            )-                       -- copy rule (chain)-                       _lhsOdefSets =-                           ({-# LINE 109 "src-ag/Transform.ag" #-}-                            _lhsIdefSets-                            {-# LINE 5551 "dist/build/Transform" #-}-                            )-                   in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))--- Field --------------------------------------------------------{--   visit 0:-      inherited attribute:-         allNonterminals      : Set NontermIdent-      synthesized attributes:-         collectedConstraints : [Type]-         collectedFields      : [(Identifier, Type)]-   alternatives:-      alternative FChild:-         child name           : {Identifier}-         child tp             : {Type}-      alternative FCtx:-         child tps            : {[Type]}--}--- cata-sem_Field :: Field ->-             T_Field-sem_Field (FChild _name _tp) =-    (sem_Field_FChild _name _tp)-sem_Field (FCtx _tps) =-    (sem_Field_FCtx _tps)--- semantic domain-newtype T_Field = T_Field ((Set NontermIdent) ->-                           ( ([Type]),([(Identifier, Type)])))-data Inh_Field = Inh_Field {allNonterminals_Inh_Field :: !((Set NontermIdent))}-data Syn_Field = Syn_Field {collectedConstraints_Syn_Field :: !(([Type])),collectedFields_Syn_Field :: !(([(Identifier, Type)]))}-wrap_Field :: T_Field ->-              Inh_Field ->-              Syn_Field-wrap_Field (T_Field sem) (Inh_Field _lhsIallNonterminals) =-    (let ( _lhsOcollectedConstraints,_lhsOcollectedFields) = sem _lhsIallNonterminals-     in  (Syn_Field _lhsOcollectedConstraints _lhsOcollectedFields))-sem_Field_FChild :: Identifier ->-                    Type ->-                    T_Field-sem_Field_FChild name_ tp_ =-    (T_Field (\ _lhsIallNonterminals ->-                  (let _lhsOcollectedFields :: ([(Identifier, Type)])-                       _lhsOcollectedConstraints :: ([Type])-                       -- "src-ag/Transform.ag"(line 564, column 3)-                       _lhsOcollectedFields =-                           ({-# LINE 564 "src-ag/Transform.ag" #-}-                            [(name_, makeType _lhsIallNonterminals tp_)]-                            {-# LINE 5598 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 570, column 46)-                       _lhsOcollectedConstraints =-                           ({-# LINE 570 "src-ag/Transform.ag" #-}-                            []-                            {-# LINE 5604 "dist/build/Transform" #-}-                            )-                   in  ( _lhsOcollectedConstraints,_lhsOcollectedFields))))-sem_Field_FCtx :: ([Type]) ->-                  T_Field-sem_Field_FCtx tps_ =-    (T_Field (\ _lhsIallNonterminals ->-                  (let _lhsOcollectedConstraints :: ([Type])-                       _lhsOcollectedFields :: ([(Identifier, Type)])-                       -- "src-ag/Transform.ag"(line 573, column 3)-                       _lhsOcollectedConstraints =-                           ({-# LINE 573 "src-ag/Transform.ag" #-}-                            tps_-                            {-# LINE 5617 "dist/build/Transform" #-}-                            )-                       -- use rule "src-ag/Transform.ag"(line 561, column 41)-                       _lhsOcollectedFields =-                           ({-# LINE 561 "src-ag/Transform.ag" #-}-                            []-                            {-# LINE 5623 "dist/build/Transform" #-}-                            )-                   in  ( _lhsOcollectedConstraints,_lhsOcollectedFields))))--- Fields -------------------------------------------------------{--   visit 0:-      inherited attribute:-         allNonterminals      : Set NontermIdent-      synthesized attributes:-         collectedConstraints : [Type]-         collectedFields      : [(Identifier, Type)]-   alternatives:-      alternative Cons:-         child hd             : Field -         child tl             : Fields -      alternative Nil:--}--- cata-sem_Fields :: Fields ->-              T_Fields-sem_Fields list =-    (Prelude.foldr sem_Fields_Cons sem_Fields_Nil (Prelude.map sem_Field list))--- semantic domain-newtype T_Fields = T_Fields ((Set NontermIdent) ->-                             ( ([Type]),([(Identifier, Type)])))-data Inh_Fields = Inh_Fields {allNonterminals_Inh_Fields :: !((Set NontermIdent))}-data Syn_Fields = Syn_Fields {collectedConstraints_Syn_Fields :: !(([Type])),collectedFields_Syn_Fields :: !(([(Identifier, Type)]))}-wrap_Fields :: T_Fields ->-               Inh_Fields ->-               Syn_Fields-wrap_Fields (T_Fields sem) (Inh_Fields _lhsIallNonterminals) =-    (let ( _lhsOcollectedConstraints,_lhsOcollectedFields) = sem _lhsIallNonterminals-     in  (Syn_Fields _lhsOcollectedConstraints _lhsOcollectedFields))-sem_Fields_Cons :: T_Field ->-                   T_Fields ->-                   T_Fields-sem_Fields_Cons (T_Field hd_) (T_Fields tl_) =-    (T_Fields (\ _lhsIallNonterminals ->-                   (let _lhsOcollectedConstraints :: ([Type])-                        _lhsOcollectedFields :: ([(Identifier, Type)])-                        _hdOallNonterminals :: (Set NontermIdent)-                        _tlOallNonterminals :: (Set NontermIdent)-                        _hdIcollectedConstraints :: ([Type])-                        _hdIcollectedFields :: ([(Identifier, Type)])-                        _tlIcollectedConstraints :: ([Type])-                        _tlIcollectedFields :: ([(Identifier, Type)])-                        -- use rule "src-ag/Transform.ag"(line 570, column 46)-                        _lhsOcollectedConstraints =-                            ({-# LINE 570 "src-ag/Transform.ag" #-}-                             _hdIcollectedConstraints ++ _tlIcollectedConstraints-                             {-# LINE 5673 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 561, column 41)-                        _lhsOcollectedFields =-                            ({-# LINE 561 "src-ag/Transform.ag" #-}-                             _hdIcollectedFields ++ _tlIcollectedFields-                             {-# LINE 5679 "dist/build/Transform" #-}-                             )-                        -- copy rule (down)-                        _hdOallNonterminals =-                            ({-# LINE 93 "src-ag/Transform.ag" #-}-                             _lhsIallNonterminals-                             {-# LINE 5685 "dist/build/Transform" #-}-                             )-                        -- copy rule (down)-                        _tlOallNonterminals =-                            ({-# LINE 93 "src-ag/Transform.ag" #-}-                             _lhsIallNonterminals-                             {-# LINE 5691 "dist/build/Transform" #-}-                             )-                        ( _hdIcollectedConstraints,_hdIcollectedFields) =-                            hd_ _hdOallNonterminals-                        ( _tlIcollectedConstraints,_tlIcollectedFields) =-                            tl_ _tlOallNonterminals-                    in  ( _lhsOcollectedConstraints,_lhsOcollectedFields))))-sem_Fields_Nil :: T_Fields-sem_Fields_Nil =-    (T_Fields (\ _lhsIallNonterminals ->-                   (let _lhsOcollectedConstraints :: ([Type])-                        _lhsOcollectedFields :: ([(Identifier, Type)])-                        -- use rule "src-ag/Transform.ag"(line 570, column 46)-                        _lhsOcollectedConstraints =-                            ({-# LINE 570 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 5707 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 561, column 41)-                        _lhsOcollectedFields =-                            ({-# LINE 561 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 5713 "dist/build/Transform" #-}-                             )-                    in  ( _lhsOcollectedConstraints,_lhsOcollectedFields))))--- NontSet ------------------------------------------------------{--   visit 0:-      inherited attributes:-         allFields            : DataTypes-         allNonterminals      : Set NontermIdent-         definedSets          : DefinedSets-      synthesized attributes:-         collectedNames       : Set Identifier-         errors               : Seq Error-         nontSet              : Set NontermIdent-   alternatives:-      alternative All:-      alternative Difference:-         child set1           : NontSet -         child set2           : NontSet -      alternative Intersect:-         child set1           : NontSet -         child set2           : NontSet -      alternative NamedSet:-         child name           : {NontermIdent}-         visit 0:-            local nontSet     : _-            local errors      : _-      alternative Path:-         child from           : {NontermIdent}-         child to             : {NontermIdent}-      alternative Union:-         child set1           : NontSet -         child set2           : NontSet --}--- cata-sem_NontSet :: NontSet ->-               T_NontSet-sem_NontSet (All) =-    (sem_NontSet_All)-sem_NontSet (Difference _set1 _set2) =-    (sem_NontSet_Difference (sem_NontSet _set1) (sem_NontSet _set2))-sem_NontSet (Intersect _set1 _set2) =-    (sem_NontSet_Intersect (sem_NontSet _set1) (sem_NontSet _set2))-sem_NontSet (NamedSet _name) =-    (sem_NontSet_NamedSet _name)-sem_NontSet (Path _from _to) =-    (sem_NontSet_Path _from _to)-sem_NontSet (Union _set1 _set2) =-    (sem_NontSet_Union (sem_NontSet _set1) (sem_NontSet _set2))--- semantic domain-newtype T_NontSet = T_NontSet (DataTypes ->-                               (Set NontermIdent) ->-                               DefinedSets ->-                               ( (Set Identifier),(Seq Error),(Set NontermIdent)))-data Inh_NontSet = Inh_NontSet {allFields_Inh_NontSet :: !(DataTypes),allNonterminals_Inh_NontSet :: !((Set NontermIdent)),definedSets_Inh_NontSet :: !(DefinedSets)}-data Syn_NontSet = Syn_NontSet {collectedNames_Syn_NontSet :: !((Set Identifier)),errors_Syn_NontSet :: !((Seq Error)),nontSet_Syn_NontSet :: !((Set NontermIdent))}-wrap_NontSet :: T_NontSet ->-                Inh_NontSet ->-                Syn_NontSet-wrap_NontSet (T_NontSet sem) (Inh_NontSet _lhsIallFields _lhsIallNonterminals _lhsIdefinedSets) =-    (let ( _lhsOcollectedNames,_lhsOerrors,_lhsOnontSet) = sem _lhsIallFields _lhsIallNonterminals _lhsIdefinedSets-     in  (Syn_NontSet _lhsOcollectedNames _lhsOerrors _lhsOnontSet))-sem_NontSet_All :: T_NontSet-sem_NontSet_All =-    (T_NontSet (\ _lhsIallFields-                  _lhsIallNonterminals-                  _lhsIdefinedSets ->-                    (let _lhsOnontSet :: (Set NontermIdent)-                         _lhsOcollectedNames :: (Set Identifier)-                         _lhsOerrors :: (Seq Error)-                         -- "src-ag/Transform.ag"(line 717, column 16)-                         _lhsOnontSet =-                             ({-# LINE 717 "src-ag/Transform.ag" #-}-                              _lhsIallNonterminals-                              {-# LINE 5787 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 91, column 50)-                         _lhsOcollectedNames =-                             ({-# LINE 91 "src-ag/Transform.ag" #-}-                              Set.empty-                              {-# LINE 5793 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 44, column 19)-                         _lhsOerrors =-                             ({-# LINE 44 "src-ag/Transform.ag" #-}-                              Seq.empty-                              {-# LINE 5799 "dist/build/Transform" #-}-                              )-                     in  ( _lhsOcollectedNames,_lhsOerrors,_lhsOnontSet))))-sem_NontSet_Difference :: T_NontSet ->-                          T_NontSet ->-                          T_NontSet-sem_NontSet_Difference (T_NontSet set1_) (T_NontSet set2_) =-    (T_NontSet (\ _lhsIallFields-                  _lhsIallNonterminals-                  _lhsIdefinedSets ->-                    (let _lhsOnontSet :: (Set NontermIdent)-                         _lhsOcollectedNames :: (Set Identifier)-                         _lhsOerrors :: (Seq Error)-                         _set1OallFields :: DataTypes-                         _set1OallNonterminals :: (Set NontermIdent)-                         _set1OdefinedSets :: DefinedSets-                         _set2OallFields :: DataTypes-                         _set2OallNonterminals :: (Set NontermIdent)-                         _set2OdefinedSets :: DefinedSets-                         _set1IcollectedNames :: (Set Identifier)-                         _set1Ierrors :: (Seq Error)-                         _set1InontSet :: (Set NontermIdent)-                         _set2IcollectedNames :: (Set Identifier)-                         _set2Ierrors :: (Seq Error)-                         _set2InontSet :: (Set NontermIdent)-                         -- "src-ag/Transform.ag"(line 723, column 16)-                         _lhsOnontSet =-                             ({-# LINE 723 "src-ag/Transform.ag" #-}-                              Set.difference    _set1InontSet _set2InontSet-                              {-# LINE 5828 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 91, column 50)-                         _lhsOcollectedNames =-                             ({-# LINE 91 "src-ag/Transform.ag" #-}-                              _set1IcollectedNames `Set.union` _set2IcollectedNames-                              {-# LINE 5834 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 44, column 19)-                         _lhsOerrors =-                             ({-# LINE 44 "src-ag/Transform.ag" #-}-                              _set1Ierrors Seq.>< _set2Ierrors-                              {-# LINE 5840 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set1OallFields =-                             ({-# LINE 136 "src-ag/Transform.ag" #-}-                              _lhsIallFields-                              {-# LINE 5846 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set1OallNonterminals =-                             ({-# LINE 93 "src-ag/Transform.ag" #-}-                              _lhsIallNonterminals-                              {-# LINE 5852 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set1OdefinedSets =-                             ({-# LINE 112 "src-ag/Transform.ag" #-}-                              _lhsIdefinedSets-                              {-# LINE 5858 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set2OallFields =-                             ({-# LINE 136 "src-ag/Transform.ag" #-}-                              _lhsIallFields-                              {-# LINE 5864 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set2OallNonterminals =-                             ({-# LINE 93 "src-ag/Transform.ag" #-}-                              _lhsIallNonterminals-                              {-# LINE 5870 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set2OdefinedSets =-                             ({-# LINE 112 "src-ag/Transform.ag" #-}-                              _lhsIdefinedSets-                              {-# LINE 5876 "dist/build/Transform" #-}-                              )-                         ( _set1IcollectedNames,_set1Ierrors,_set1InontSet) =-                             set1_ _set1OallFields _set1OallNonterminals _set1OdefinedSets-                         ( _set2IcollectedNames,_set2Ierrors,_set2InontSet) =-                             set2_ _set2OallFields _set2OallNonterminals _set2OdefinedSets-                     in  ( _lhsOcollectedNames,_lhsOerrors,_lhsOnontSet))))-sem_NontSet_Intersect :: T_NontSet ->-                         T_NontSet ->-                         T_NontSet-sem_NontSet_Intersect (T_NontSet set1_) (T_NontSet set2_) =-    (T_NontSet (\ _lhsIallFields-                  _lhsIallNonterminals-                  _lhsIdefinedSets ->-                    (let _lhsOnontSet :: (Set NontermIdent)-                         _lhsOcollectedNames :: (Set Identifier)-                         _lhsOerrors :: (Seq Error)-                         _set1OallFields :: DataTypes-                         _set1OallNonterminals :: (Set NontermIdent)-                         _set1OdefinedSets :: DefinedSets-                         _set2OallFields :: DataTypes-                         _set2OallNonterminals :: (Set NontermIdent)-                         _set2OdefinedSets :: DefinedSets-                         _set1IcollectedNames :: (Set Identifier)-                         _set1Ierrors :: (Seq Error)-                         _set1InontSet :: (Set NontermIdent)-                         _set2IcollectedNames :: (Set Identifier)-                         _set2Ierrors :: (Seq Error)-                         _set2InontSet :: (Set NontermIdent)-                         -- "src-ag/Transform.ag"(line 722, column 16)-                         _lhsOnontSet =-                             ({-# LINE 722 "src-ag/Transform.ag" #-}-                              Set.intersection  _set1InontSet _set2InontSet-                              {-# LINE 5909 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 91, column 50)-                         _lhsOcollectedNames =-                             ({-# LINE 91 "src-ag/Transform.ag" #-}-                              _set1IcollectedNames `Set.union` _set2IcollectedNames-                              {-# LINE 5915 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 44, column 19)-                         _lhsOerrors =-                             ({-# LINE 44 "src-ag/Transform.ag" #-}-                              _set1Ierrors Seq.>< _set2Ierrors-                              {-# LINE 5921 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set1OallFields =-                             ({-# LINE 136 "src-ag/Transform.ag" #-}-                              _lhsIallFields-                              {-# LINE 5927 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set1OallNonterminals =-                             ({-# LINE 93 "src-ag/Transform.ag" #-}-                              _lhsIallNonterminals-                              {-# LINE 5933 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set1OdefinedSets =-                             ({-# LINE 112 "src-ag/Transform.ag" #-}-                              _lhsIdefinedSets-                              {-# LINE 5939 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set2OallFields =-                             ({-# LINE 136 "src-ag/Transform.ag" #-}-                              _lhsIallFields-                              {-# LINE 5945 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set2OallNonterminals =-                             ({-# LINE 93 "src-ag/Transform.ag" #-}-                              _lhsIallNonterminals-                              {-# LINE 5951 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set2OdefinedSets =-                             ({-# LINE 112 "src-ag/Transform.ag" #-}-                              _lhsIdefinedSets-                              {-# LINE 5957 "dist/build/Transform" #-}-                              )-                         ( _set1IcollectedNames,_set1Ierrors,_set1InontSet) =-                             set1_ _set1OallFields _set1OallNonterminals _set1OdefinedSets-                         ( _set2IcollectedNames,_set2Ierrors,_set2InontSet) =-                             set2_ _set2OallFields _set2OallNonterminals _set2OdefinedSets-                     in  ( _lhsOcollectedNames,_lhsOerrors,_lhsOnontSet))))-sem_NontSet_NamedSet :: NontermIdent ->-                        T_NontSet-sem_NontSet_NamedSet name_ =-    (T_NontSet (\ _lhsIallFields-                  _lhsIallNonterminals-                  _lhsIdefinedSets ->-                    (let _lhsOcollectedNames :: (Set Identifier)-                         _lhsOerrors :: (Seq Error)-                         _lhsOnontSet :: (Set NontermIdent)-                         -- "src-ag/Transform.ag"(line 588, column 14)-                         _lhsOcollectedNames =-                             ({-# LINE 588 "src-ag/Transform.ag" #-}-                              Set.singleton name_-                              {-# LINE 5977 "dist/build/Transform" #-}-                              )-                         -- "src-ag/Transform.ag"(line 718, column 20)-                         (_nontSet,_errors) =-                             ({-# LINE 718 "src-ag/Transform.ag" #-}-                              case Map.lookup name_ _lhsIdefinedSets of-                                           Nothing  -> (Set.empty, Seq.singleton (UndefNont name_))-                                           Just set -> (set, Seq.empty)-                              {-# LINE 5985 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 44, column 19)-                         _lhsOerrors =-                             ({-# LINE 44 "src-ag/Transform.ag" #-}-                              _errors-                              {-# LINE 5991 "dist/build/Transform" #-}-                              )-                         -- copy rule (from local)-                         _lhsOnontSet =-                             ({-# LINE 117 "src-ag/Transform.ag" #-}-                              _nontSet-                              {-# LINE 5997 "dist/build/Transform" #-}-                              )-                     in  ( _lhsOcollectedNames,_lhsOerrors,_lhsOnontSet))))-sem_NontSet_Path :: NontermIdent ->-                    NontermIdent ->-                    T_NontSet-sem_NontSet_Path from_ to_ =-    (T_NontSet (\ _lhsIallFields-                  _lhsIallNonterminals-                  _lhsIdefinedSets ->-                    (let _lhsOnontSet :: (Set NontermIdent)-                         _lhsOerrors :: (Seq Error)-                         _lhsOcollectedNames :: (Set Identifier)-                         -- "src-ag/Transform.ag"(line 724, column 16)-                         _lhsOnontSet =-                             ({-# LINE 724 "src-ag/Transform.ag" #-}-                              let table = flattenDatas _lhsIallFields-                              in path table from_ to_-                              {-# LINE 6015 "dist/build/Transform" #-}-                              )-                         -- "src-ag/Transform.ag"(line 726, column 16)-                         _lhsOerrors =-                             ({-# LINE 726 "src-ag/Transform.ag" #-}-                              let check name | Set.member name _lhsIallNonterminals-                                                         = Seq.empty-                                             | otherwise = Seq.singleton (UndefNont name)-                              in check from_ >< check to_-                              {-# LINE 6024 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 91, column 50)-                         _lhsOcollectedNames =-                             ({-# LINE 91 "src-ag/Transform.ag" #-}-                              Set.empty-                              {-# LINE 6030 "dist/build/Transform" #-}-                              )-                     in  ( _lhsOcollectedNames,_lhsOerrors,_lhsOnontSet))))-sem_NontSet_Union :: T_NontSet ->-                     T_NontSet ->-                     T_NontSet-sem_NontSet_Union (T_NontSet set1_) (T_NontSet set2_) =-    (T_NontSet (\ _lhsIallFields-                  _lhsIallNonterminals-                  _lhsIdefinedSets ->-                    (let _lhsOnontSet :: (Set NontermIdent)-                         _lhsOcollectedNames :: (Set Identifier)-                         _lhsOerrors :: (Seq Error)-                         _set1OallFields :: DataTypes-                         _set1OallNonterminals :: (Set NontermIdent)-                         _set1OdefinedSets :: DefinedSets-                         _set2OallFields :: DataTypes-                         _set2OallNonterminals :: (Set NontermIdent)-                         _set2OdefinedSets :: DefinedSets-                         _set1IcollectedNames :: (Set Identifier)-                         _set1Ierrors :: (Seq Error)-                         _set1InontSet :: (Set NontermIdent)-                         _set2IcollectedNames :: (Set Identifier)-                         _set2Ierrors :: (Seq Error)-                         _set2InontSet :: (Set NontermIdent)-                         -- "src-ag/Transform.ag"(line 721, column 16)-                         _lhsOnontSet =-                             ({-# LINE 721 "src-ag/Transform.ag" #-}-                              Set.union         _set1InontSet _set2InontSet-                              {-# LINE 6059 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 91, column 50)-                         _lhsOcollectedNames =-                             ({-# LINE 91 "src-ag/Transform.ag" #-}-                              _set1IcollectedNames `Set.union` _set2IcollectedNames-                              {-# LINE 6065 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 44, column 19)-                         _lhsOerrors =-                             ({-# LINE 44 "src-ag/Transform.ag" #-}-                              _set1Ierrors Seq.>< _set2Ierrors-                              {-# LINE 6071 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set1OallFields =-                             ({-# LINE 136 "src-ag/Transform.ag" #-}-                              _lhsIallFields-                              {-# LINE 6077 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set1OallNonterminals =-                             ({-# LINE 93 "src-ag/Transform.ag" #-}-                              _lhsIallNonterminals-                              {-# LINE 6083 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set1OdefinedSets =-                             ({-# LINE 112 "src-ag/Transform.ag" #-}-                              _lhsIdefinedSets-                              {-# LINE 6089 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set2OallFields =-                             ({-# LINE 136 "src-ag/Transform.ag" #-}-                              _lhsIallFields-                              {-# LINE 6095 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set2OallNonterminals =-                             ({-# LINE 93 "src-ag/Transform.ag" #-}-                              _lhsIallNonterminals-                              {-# LINE 6101 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _set2OdefinedSets =-                             ({-# LINE 112 "src-ag/Transform.ag" #-}-                              _lhsIdefinedSets-                              {-# LINE 6107 "dist/build/Transform" #-}-                              )-                         ( _set1IcollectedNames,_set1Ierrors,_set1InontSet) =-                             set1_ _set1OallFields _set1OallNonterminals _set1OdefinedSets-                         ( _set2IcollectedNames,_set2Ierrors,_set2InontSet) =-                             set2_ _set2OallFields _set2OallNonterminals _set2OdefinedSets-                     in  ( _lhsOcollectedNames,_lhsOerrors,_lhsOnontSet))))--- Pattern ------------------------------------------------------{--   visit 0:-      synthesized attributes:-         copy                 : Pattern -         definedAttrs         : [AttrName]-         definedInsts         : [Identifier]-         patunder             : [AttrName]->Pattern-         stpos                : Pos-   alternatives:-      alternative Alias:-         child field          : {Identifier}-         child attr           : {Identifier}-         child pat            : Pattern -         visit 0:-            local copy        : _-      alternative Constr:-         child name           : {ConstructorIdent}-         child pats           : Patterns -         visit 0:-            local copy        : _-      alternative Irrefutable:-         child pat            : Pattern -         visit 0:-            local copy        : _-      alternative Product:-         child pos            : {Pos}-         child pats           : Patterns -         visit 0:-            local copy        : _-      alternative Underscore:-         child pos            : {Pos}-         visit 0:-            local copy        : _--}--- cata-sem_Pattern :: Pattern ->-               T_Pattern-sem_Pattern (Alias _field _attr _pat) =-    (sem_Pattern_Alias _field _attr (sem_Pattern _pat))-sem_Pattern (Constr _name _pats) =-    (sem_Pattern_Constr _name (sem_Patterns _pats))-sem_Pattern (Irrefutable _pat) =-    (sem_Pattern_Irrefutable (sem_Pattern _pat))-sem_Pattern (Product _pos _pats) =-    (sem_Pattern_Product _pos (sem_Patterns _pats))-sem_Pattern (Underscore _pos) =-    (sem_Pattern_Underscore _pos)--- semantic domain-newtype T_Pattern = T_Pattern (( Pattern,([AttrName]),([Identifier]),([AttrName]->Pattern),Pos))-data Inh_Pattern = Inh_Pattern {}-data Syn_Pattern = Syn_Pattern {copy_Syn_Pattern :: !(Pattern),definedAttrs_Syn_Pattern :: !(([AttrName])),definedInsts_Syn_Pattern :: !(([Identifier])),patunder_Syn_Pattern :: !(([AttrName]->Pattern)),stpos_Syn_Pattern :: !(Pos)}-wrap_Pattern :: T_Pattern ->-                Inh_Pattern ->-                Syn_Pattern-wrap_Pattern (T_Pattern sem) (Inh_Pattern) =-    (let ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder,_lhsOstpos) = sem-     in  (Syn_Pattern _lhsOcopy _lhsOdefinedAttrs _lhsOdefinedInsts _lhsOpatunder _lhsOstpos))-sem_Pattern_Alias :: Identifier ->-                     Identifier ->-                     T_Pattern ->-                     T_Pattern-sem_Pattern_Alias field_ attr_ (T_Pattern pat_) =-    (T_Pattern (let _lhsOdefinedAttrs :: ([AttrName])-                    _lhsOpatunder :: ([AttrName]->Pattern)-                    _lhsOdefinedInsts :: ([Identifier])-                    _lhsOstpos :: Pos-                    _lhsOcopy :: Pattern-                    _patIcopy :: Pattern-                    _patIdefinedAttrs :: ([AttrName])-                    _patIdefinedInsts :: ([Identifier])-                    _patIpatunder :: ([AttrName]->Pattern)-                    _patIstpos :: Pos-                    -- "src-ag/Transform.ag"(line 1163, column 11)-                    _lhsOdefinedAttrs =-                        ({-# LINE 1163 "src-ag/Transform.ag" #-}-                         (field_, attr_) : _patIdefinedAttrs-                         {-# LINE 6191 "dist/build/Transform" #-}-                         )-                    -- "src-ag/Transform.ag"(line 1164, column 11)-                    _lhsOpatunder =-                        ({-# LINE 1164 "src-ag/Transform.ag" #-}-                         \us -> if ((field_,attr_) `elem` us) then Underscore noPos else _copy-                         {-# LINE 6197 "dist/build/Transform" #-}-                         )-                    -- "src-ag/Transform.ag"(line 1165, column 11)-                    _lhsOdefinedInsts =-                        ({-# LINE 1165 "src-ag/Transform.ag" #-}-                         (if field_ == _INST then [attr_] else []) ++ _patIdefinedInsts-                         {-# LINE 6203 "dist/build/Transform" #-}-                         )-                    -- "src-ag/Transform.ag"(line 1180, column 16)-                    _lhsOstpos =-                        ({-# LINE 1180 "src-ag/Transform.ag" #-}-                         getPos field_-                         {-# LINE 6209 "dist/build/Transform" #-}-                         )-                    -- self rule-                    _copy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         Alias field_ attr_ _patIcopy-                         {-# LINE 6215 "dist/build/Transform" #-}-                         )-                    -- self rule-                    _lhsOcopy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         _copy-                         {-# LINE 6221 "dist/build/Transform" #-}-                         )-                    ( _patIcopy,_patIdefinedAttrs,_patIdefinedInsts,_patIpatunder,_patIstpos) =-                        pat_-                in  ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder,_lhsOstpos)))-sem_Pattern_Constr :: ConstructorIdent ->-                      T_Patterns ->-                      T_Pattern-sem_Pattern_Constr name_ (T_Patterns pats_) =-    (T_Pattern (let _lhsOpatunder :: ([AttrName]->Pattern)-                    _lhsOstpos :: Pos-                    _lhsOdefinedAttrs :: ([AttrName])-                    _lhsOdefinedInsts :: ([Identifier])-                    _lhsOcopy :: Pattern-                    _patsIcopy :: Patterns-                    _patsIdefinedAttrs :: ([AttrName])-                    _patsIdefinedInsts :: ([Identifier])-                    _patsIpatunder :: ([AttrName]->Patterns)-                    -- "src-ag/Transform.ag"(line 1167, column 12)-                    _lhsOpatunder =-                        ({-# LINE 1167 "src-ag/Transform.ag" #-}-                         \us -> Constr name_ (_patsIpatunder us)-                         {-# LINE 6243 "dist/build/Transform" #-}-                         )-                    -- "src-ag/Transform.ag"(line 1178, column 16)-                    _lhsOstpos =-                        ({-# LINE 1178 "src-ag/Transform.ag" #-}-                         getPos name_-                         {-# LINE 6249 "dist/build/Transform" #-}-                         )-                    -- use rule "src-ag/Transform.ag"(line 1158, column 42)-                    _lhsOdefinedAttrs =-                        ({-# LINE 1158 "src-ag/Transform.ag" #-}-                         _patsIdefinedAttrs-                         {-# LINE 6255 "dist/build/Transform" #-}-                         )-                    -- use rule "src-ag/Transform.ag"(line 1157, column 55)-                    _lhsOdefinedInsts =-                        ({-# LINE 1157 "src-ag/Transform.ag" #-}-                         _patsIdefinedInsts-                         {-# LINE 6261 "dist/build/Transform" #-}-                         )-                    -- self rule-                    _copy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         Constr name_ _patsIcopy-                         {-# LINE 6267 "dist/build/Transform" #-}-                         )-                    -- self rule-                    _lhsOcopy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         _copy-                         {-# LINE 6273 "dist/build/Transform" #-}-                         )-                    ( _patsIcopy,_patsIdefinedAttrs,_patsIdefinedInsts,_patsIpatunder) =-                        pats_-                in  ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder,_lhsOstpos)))-sem_Pattern_Irrefutable :: T_Pattern ->-                           T_Pattern-sem_Pattern_Irrefutable (T_Pattern pat_) =-    (T_Pattern (let _lhsOpatunder :: ([AttrName]->Pattern)-                    _lhsOdefinedAttrs :: ([AttrName])-                    _lhsOdefinedInsts :: ([Identifier])-                    _lhsOcopy :: Pattern-                    _lhsOstpos :: Pos-                    _patIcopy :: Pattern-                    _patIdefinedAttrs :: ([AttrName])-                    _patIdefinedInsts :: ([Identifier])-                    _patIpatunder :: ([AttrName]->Pattern)-                    _patIstpos :: Pos-                    -- "src-ag/Transform.ag"(line 1169, column 17)-                    _lhsOpatunder =-                        ({-# LINE 1169 "src-ag/Transform.ag" #-}-                         \us -> Irrefutable (_patIpatunder us)-                         {-# LINE 6295 "dist/build/Transform" #-}-                         )-                    -- use rule "src-ag/Transform.ag"(line 1158, column 42)-                    _lhsOdefinedAttrs =-                        ({-# LINE 1158 "src-ag/Transform.ag" #-}-                         _patIdefinedAttrs-                         {-# LINE 6301 "dist/build/Transform" #-}-                         )-                    -- use rule "src-ag/Transform.ag"(line 1157, column 55)-                    _lhsOdefinedInsts =-                        ({-# LINE 1157 "src-ag/Transform.ag" #-}-                         _patIdefinedInsts-                         {-# LINE 6307 "dist/build/Transform" #-}-                         )-                    -- self rule-                    _copy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         Irrefutable _patIcopy-                         {-# LINE 6313 "dist/build/Transform" #-}-                         )-                    -- self rule-                    _lhsOcopy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         _copy-                         {-# LINE 6319 "dist/build/Transform" #-}-                         )-                    -- copy rule (up)-                    _lhsOstpos =-                        ({-# LINE 1175 "src-ag/Transform.ag" #-}-                         _patIstpos-                         {-# LINE 6325 "dist/build/Transform" #-}-                         )-                    ( _patIcopy,_patIdefinedAttrs,_patIdefinedInsts,_patIpatunder,_patIstpos) =-                        pat_-                in  ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder,_lhsOstpos)))-sem_Pattern_Product :: Pos ->-                       T_Patterns ->-                       T_Pattern-sem_Pattern_Product pos_ (T_Patterns pats_) =-    (T_Pattern (let _lhsOpatunder :: ([AttrName]->Pattern)-                    _lhsOstpos :: Pos-                    _lhsOdefinedAttrs :: ([AttrName])-                    _lhsOdefinedInsts :: ([Identifier])-                    _lhsOcopy :: Pattern-                    _patsIcopy :: Patterns-                    _patsIdefinedAttrs :: ([AttrName])-                    _patsIdefinedInsts :: ([Identifier])-                    _patsIpatunder :: ([AttrName]->Patterns)-                    -- "src-ag/Transform.ag"(line 1168, column 13)-                    _lhsOpatunder =-                        ({-# LINE 1168 "src-ag/Transform.ag" #-}-                         \us -> Product pos_ (_patsIpatunder us)-                         {-# LINE 6347 "dist/build/Transform" #-}-                         )-                    -- "src-ag/Transform.ag"(line 1179, column 16)-                    _lhsOstpos =-                        ({-# LINE 1179 "src-ag/Transform.ag" #-}-                         pos_-                         {-# LINE 6353 "dist/build/Transform" #-}-                         )-                    -- use rule "src-ag/Transform.ag"(line 1158, column 42)-                    _lhsOdefinedAttrs =-                        ({-# LINE 1158 "src-ag/Transform.ag" #-}-                         _patsIdefinedAttrs-                         {-# LINE 6359 "dist/build/Transform" #-}-                         )-                    -- use rule "src-ag/Transform.ag"(line 1157, column 55)-                    _lhsOdefinedInsts =-                        ({-# LINE 1157 "src-ag/Transform.ag" #-}-                         _patsIdefinedInsts-                         {-# LINE 6365 "dist/build/Transform" #-}-                         )-                    -- self rule-                    _copy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         Product pos_ _patsIcopy-                         {-# LINE 6371 "dist/build/Transform" #-}-                         )-                    -- self rule-                    _lhsOcopy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         _copy-                         {-# LINE 6377 "dist/build/Transform" #-}-                         )-                    ( _patsIcopy,_patsIdefinedAttrs,_patsIdefinedInsts,_patsIpatunder) =-                        pats_-                in  ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder,_lhsOstpos)))-sem_Pattern_Underscore :: Pos ->-                          T_Pattern-sem_Pattern_Underscore pos_ =-    (T_Pattern (let _lhsOpatunder :: ([AttrName]->Pattern)-                    _lhsOstpos :: Pos-                    _lhsOdefinedAttrs :: ([AttrName])-                    _lhsOdefinedInsts :: ([Identifier])-                    _lhsOcopy :: Pattern-                    -- "src-ag/Transform.ag"(line 1166, column 16)-                    _lhsOpatunder =-                        ({-# LINE 1166 "src-ag/Transform.ag" #-}-                         \us -> _copy-                         {-# LINE 6394 "dist/build/Transform" #-}-                         )-                    -- "src-ag/Transform.ag"(line 1181, column 16)-                    _lhsOstpos =-                        ({-# LINE 1181 "src-ag/Transform.ag" #-}-                         pos_-                         {-# LINE 6400 "dist/build/Transform" #-}-                         )-                    -- use rule "src-ag/Transform.ag"(line 1158, column 42)-                    _lhsOdefinedAttrs =-                        ({-# LINE 1158 "src-ag/Transform.ag" #-}-                         []-                         {-# LINE 6406 "dist/build/Transform" #-}-                         )-                    -- use rule "src-ag/Transform.ag"(line 1157, column 55)-                    _lhsOdefinedInsts =-                        ({-# LINE 1157 "src-ag/Transform.ag" #-}-                         []-                         {-# LINE 6412 "dist/build/Transform" #-}-                         )-                    -- self rule-                    _copy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         Underscore pos_-                         {-# LINE 6418 "dist/build/Transform" #-}-                         )-                    -- self rule-                    _lhsOcopy =-                        ({-# LINE 22 "src-ag/Patterns.ag" #-}-                         _copy-                         {-# LINE 6424 "dist/build/Transform" #-}-                         )-                in  ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder,_lhsOstpos)))--- Patterns -----------------------------------------------------{--   visit 0:-      synthesized attributes:-         copy                 : Patterns -         definedAttrs         : [AttrName]-         definedInsts         : [Identifier]-         patunder             : [AttrName]->Patterns-   alternatives:-      alternative Cons:-         child hd             : Pattern -         child tl             : Patterns -         visit 0:-            local copy        : _-      alternative Nil:-         visit 0:-            local copy        : _--}--- cata-sem_Patterns :: Patterns ->-                T_Patterns-sem_Patterns list =-    (Prelude.foldr sem_Patterns_Cons sem_Patterns_Nil (Prelude.map sem_Pattern list))--- semantic domain-newtype T_Patterns = T_Patterns (( Patterns,([AttrName]),([Identifier]),([AttrName]->Patterns)))-data Inh_Patterns = Inh_Patterns {}-data Syn_Patterns = Syn_Patterns {copy_Syn_Patterns :: !(Patterns),definedAttrs_Syn_Patterns :: !(([AttrName])),definedInsts_Syn_Patterns :: !(([Identifier])),patunder_Syn_Patterns :: !(([AttrName]->Patterns))}-wrap_Patterns :: T_Patterns ->-                 Inh_Patterns ->-                 Syn_Patterns-wrap_Patterns (T_Patterns sem) (Inh_Patterns) =-    (let ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder) = sem-     in  (Syn_Patterns _lhsOcopy _lhsOdefinedAttrs _lhsOdefinedInsts _lhsOpatunder))-sem_Patterns_Cons :: T_Pattern ->-                     T_Patterns ->-                     T_Patterns-sem_Patterns_Cons (T_Pattern hd_) (T_Patterns tl_) =-    (T_Patterns (let _lhsOpatunder :: ([AttrName]->Patterns)-                     _lhsOdefinedAttrs :: ([AttrName])-                     _lhsOdefinedInsts :: ([Identifier])-                     _lhsOcopy :: Patterns-                     _hdIcopy :: Pattern-                     _hdIdefinedAttrs :: ([AttrName])-                     _hdIdefinedInsts :: ([Identifier])-                     _hdIpatunder :: ([AttrName]->Pattern)-                     _hdIstpos :: Pos-                     _tlIcopy :: Patterns-                     _tlIdefinedAttrs :: ([AttrName])-                     _tlIdefinedInsts :: ([Identifier])-                     _tlIpatunder :: ([AttrName]->Patterns)-                     -- "src-ag/Transform.ag"(line 1173, column 10)-                     _lhsOpatunder =-                         ({-# LINE 1173 "src-ag/Transform.ag" #-}-                          \us -> (_hdIpatunder us) : (_tlIpatunder us)-                          {-# LINE 6481 "dist/build/Transform" #-}-                          )-                     -- use rule "src-ag/Transform.ag"(line 1158, column 42)-                     _lhsOdefinedAttrs =-                         ({-# LINE 1158 "src-ag/Transform.ag" #-}-                          _hdIdefinedAttrs ++ _tlIdefinedAttrs-                          {-# LINE 6487 "dist/build/Transform" #-}-                          )-                     -- use rule "src-ag/Transform.ag"(line 1157, column 55)-                     _lhsOdefinedInsts =-                         ({-# LINE 1157 "src-ag/Transform.ag" #-}-                          _hdIdefinedInsts ++ _tlIdefinedInsts-                          {-# LINE 6493 "dist/build/Transform" #-}-                          )-                     -- self rule-                     _copy =-                         ({-# LINE 22 "src-ag/Patterns.ag" #-}-                          (:) _hdIcopy _tlIcopy-                          {-# LINE 6499 "dist/build/Transform" #-}-                          )-                     -- self rule-                     _lhsOcopy =-                         ({-# LINE 22 "src-ag/Patterns.ag" #-}-                          _copy-                          {-# LINE 6505 "dist/build/Transform" #-}-                          )-                     ( _hdIcopy,_hdIdefinedAttrs,_hdIdefinedInsts,_hdIpatunder,_hdIstpos) =-                         hd_-                     ( _tlIcopy,_tlIdefinedAttrs,_tlIdefinedInsts,_tlIpatunder) =-                         tl_-                 in  ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder)))-sem_Patterns_Nil :: T_Patterns-sem_Patterns_Nil =-    (T_Patterns (let _lhsOpatunder :: ([AttrName]->Patterns)-                     _lhsOdefinedAttrs :: ([AttrName])-                     _lhsOdefinedInsts :: ([Identifier])-                     _lhsOcopy :: Patterns-                     -- "src-ag/Transform.ag"(line 1172, column 9)-                     _lhsOpatunder =-                         ({-# LINE 1172 "src-ag/Transform.ag" #-}-                          \us ->  []-                          {-# LINE 6522 "dist/build/Transform" #-}-                          )-                     -- use rule "src-ag/Transform.ag"(line 1158, column 42)-                     _lhsOdefinedAttrs =-                         ({-# LINE 1158 "src-ag/Transform.ag" #-}-                          []-                          {-# LINE 6528 "dist/build/Transform" #-}-                          )-                     -- use rule "src-ag/Transform.ag"(line 1157, column 55)-                     _lhsOdefinedInsts =-                         ({-# LINE 1157 "src-ag/Transform.ag" #-}-                          []-                          {-# LINE 6534 "dist/build/Transform" #-}-                          )-                     -- self rule-                     _copy =-                         ({-# LINE 22 "src-ag/Patterns.ag" #-}-                          []-                          {-# LINE 6540 "dist/build/Transform" #-}-                          )-                     -- self rule-                     _lhsOcopy =-                         ({-# LINE 22 "src-ag/Patterns.ag" #-}-                          _copy-                          {-# LINE 6546 "dist/build/Transform" #-}-                          )-                 in  ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder)))--- SemAlt -------------------------------------------------------{--   visit 0:-      inherited attributes:-         allAttrDecls         : Map NontermIdent (Attributes, Attributes)-         allAttrs             : Map NontermIdent (Attributes, Attributes)-         allFields            : DataTypes-         nts                  : Set NontermIdent-         options              : Options-      synthesized attributes:-         attrOrderCollect     : AttrOrderMap-         collectedArounds     : [ (NontermIdent, ConstructorIdent, [AroundInfo])  ]-         collectedAugments    : [ (NontermIdent, ConstructorIdent, [AugmentInfo]) ]-         collectedInsts       : [ (NontermIdent, ConstructorIdent, [Identifier]) ]-         collectedMerges      : [ (NontermIdent, ConstructorIdent, [MergeInfo])   ]-         collectedRules       : [ (NontermIdent, ConstructorIdent, RuleInfo)]-         collectedSigs        : [ (NontermIdent, ConstructorIdent, SigInfo) ]-         collectedUniques     : [ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]-         errors               : Seq Error-         semPragmasCollect    : PragmaMap-   alternatives:-      alternative SemAlt:-         child pos            : {Pos}-         child constructorSet : ConstructorSet -         child rules          : SemDefs -         visit 0:-            local pragmaNames : _-            local attrOrders  : _-            local coninfo     : _--}--- cata-sem_SemAlt :: SemAlt ->-              T_SemAlt-sem_SemAlt (SemAlt _pos _constructorSet _rules) =-    (sem_SemAlt_SemAlt _pos (sem_ConstructorSet _constructorSet) (sem_SemDefs _rules))--- semantic domain-newtype T_SemAlt = T_SemAlt ((Map NontermIdent (Attributes, Attributes)) ->-                             (Map NontermIdent (Attributes, Attributes)) ->-                             DataTypes ->-                             (Set NontermIdent) ->-                             Options ->-                             ( AttrOrderMap,([ (NontermIdent, ConstructorIdent, [AroundInfo])  ]),([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ]),([ (NontermIdent, ConstructorIdent, [Identifier]) ]),([ (NontermIdent, ConstructorIdent, [MergeInfo])   ]),([ (NontermIdent, ConstructorIdent, RuleInfo)]),([ (NontermIdent, ConstructorIdent, SigInfo) ]),([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]),(Seq Error),PragmaMap))-data Inh_SemAlt = Inh_SemAlt {allAttrDecls_Inh_SemAlt :: !((Map NontermIdent (Attributes, Attributes))),allAttrs_Inh_SemAlt :: !((Map NontermIdent (Attributes, Attributes))),allFields_Inh_SemAlt :: !(DataTypes),nts_Inh_SemAlt :: !((Set NontermIdent)),options_Inh_SemAlt :: !(Options)}-data Syn_SemAlt = Syn_SemAlt {attrOrderCollect_Syn_SemAlt :: !(AttrOrderMap),collectedArounds_Syn_SemAlt :: !(([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])),collectedAugments_Syn_SemAlt :: !(([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])),collectedInsts_Syn_SemAlt :: !(([ (NontermIdent, ConstructorIdent, [Identifier]) ])),collectedMerges_Syn_SemAlt :: !(([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])),collectedRules_Syn_SemAlt :: !(([ (NontermIdent, ConstructorIdent, RuleInfo)])),collectedSigs_Syn_SemAlt :: !(([ (NontermIdent, ConstructorIdent, SigInfo) ])),collectedUniques_Syn_SemAlt :: !(([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])),errors_Syn_SemAlt :: !((Seq Error)),semPragmasCollect_Syn_SemAlt :: !(PragmaMap)}-wrap_SemAlt :: T_SemAlt ->-               Inh_SemAlt ->-               Syn_SemAlt-wrap_SemAlt (T_SemAlt sem) (Inh_SemAlt _lhsIallAttrDecls _lhsIallAttrs _lhsIallFields _lhsInts _lhsIoptions) =-    (let ( _lhsOattrOrderCollect,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedInsts,_lhsOcollectedMerges,_lhsOcollectedRules,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOerrors,_lhsOsemPragmasCollect) = sem _lhsIallAttrDecls _lhsIallAttrs _lhsIallFields _lhsInts _lhsIoptions-     in  (Syn_SemAlt _lhsOattrOrderCollect _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedInsts _lhsOcollectedMerges _lhsOcollectedRules _lhsOcollectedSigs _lhsOcollectedUniques _lhsOerrors _lhsOsemPragmasCollect))-sem_SemAlt_SemAlt :: Pos ->-                     T_ConstructorSet ->-                     T_SemDefs ->-                     T_SemAlt-sem_SemAlt_SemAlt pos_ (T_ConstructorSet constructorSet_) (T_SemDefs rules_) =-    (T_SemAlt (\ _lhsIallAttrDecls-                 _lhsIallAttrs-                 _lhsIallFields-                 _lhsInts-                 _lhsIoptions ->-                   (let _lhsOsemPragmasCollect :: PragmaMap-                        _lhsOattrOrderCollect :: AttrOrderMap-                        _lhsOerrors :: (Seq Error)-                        _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                        _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                        _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                        _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                        _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                        _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                        _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                        _rulesOoptions :: Options-                        _constructorSetIcollectedConstructorNames :: (Set ConstructorIdent)-                        _constructorSetIconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))-                        _constructorSetIerrors :: (Seq Error)-                        _rulesIaroundInfos :: ([AroundInfo])-                        _rulesIaugmentInfos :: ([AugmentInfo])-                        _rulesIdefinedInsts :: ([Identifier])-                        _rulesIerrors :: (Seq Error)-                        _rulesImergeInfos :: ([MergeInfo])-                        _rulesIorderDepsCollect :: (Set Dependency)-                        _rulesIpragmaNamesCollect :: ([Identifier])-                        _rulesIruleInfos :: ([RuleInfo])-                        _rulesIsigInfos :: ([SigInfo])-                        _rulesIuniqueInfos :: ([UniqueInfo])-                        -- "src-ag/Transform.ag"(line 869, column 7)-                        _pragmaNames =-                            ({-# LINE 869 "src-ag/Transform.ag" #-}-                             Set.fromList _rulesIpragmaNamesCollect-                             {-# LINE 6637 "dist/build/Transform" #-}-                             )-                        -- "src-ag/Transform.ag"(line 870, column 7)-                        _lhsOsemPragmasCollect =-                            ({-# LINE 870 "src-ag/Transform.ag" #-}-                             foldr pragmaMapUnion Map.empty [ pragmaMapSingle nt con _pragmaNames-                                                            | (nt, conset, _) <- _coninfo-                                                            , con <- Set.toList conset-                                                            ]-                             {-# LINE 6646 "dist/build/Transform" #-}-                             )-                        -- "src-ag/Transform.ag"(line 898, column 7)-                        _attrOrders =-                            ({-# LINE 898 "src-ag/Transform.ag" #-}-                             [ orderMapSingle nt con _rulesIorderDepsCollect-                             | (nt, conset, _) <- _coninfo-                             , con <- Set.toList conset-                             ]-                             {-# LINE 6655 "dist/build/Transform" #-}-                             )-                        -- "src-ag/Transform.ag"(line 904, column 7)-                        _lhsOattrOrderCollect =-                            ({-# LINE 904 "src-ag/Transform.ag" #-}-                             foldr orderMapUnion Map.empty _attrOrders-                             {-# LINE 6661 "dist/build/Transform" #-}-                             )-                        -- "src-ag/Transform.ag"(line 1082, column 12)-                        _coninfo =-                            ({-# LINE 1082 "src-ag/Transform.ag" #-}-                             [ (nt, conset, conkeys)-                             | nt  <- Set.toList _lhsInts-                             , let conmap = Map.findWithDefault Map.empty nt _lhsIallFields-                             , let conkeys = Set.fromList (Map.keys conmap)-                             , let conset  = _constructorSetIconstructors conkeys-                             ]-                             {-# LINE 6672 "dist/build/Transform" #-}-                             )-                        -- "src-ag/Transform.ag"(line 1089, column 12)-                        _lhsOerrors =-                            ({-# LINE 1089 "src-ag/Transform.ag" #-}-                             Seq.fromList-                                [ UndefAlt nt con-                                | (nt, conset, conkeys) <- _coninfo-                                , con <- Set.toList (Set.difference conset conkeys)-                                ]-                             Seq.>< _rulesIerrors-                             {-# LINE 6683 "dist/build/Transform" #-}-                             )-                        -- "src-ag/Transform.ag"(line 1095, column 12)-                        _lhsOcollectedRules =-                            ({-# LINE 1095 "src-ag/Transform.ag" #-}-                             [ (nt,con,r)-                             | (nt, conset, _) <- _coninfo-                             , con <- Set.toList conset-                             , r <- _rulesIruleInfos-                             ]-                             {-# LINE 6693 "dist/build/Transform" #-}-                             )-                        -- "src-ag/Transform.ag"(line 1101, column 12)-                        _lhsOcollectedSigs =-                            ({-# LINE 1101 "src-ag/Transform.ag" #-}-                             [ (nt,con,ts)-                             | (nt, conset, _) <- _coninfo-                             , con <- Set.toList conset-                             , ts <- _rulesIsigInfos-                             ]-                             {-# LINE 6703 "dist/build/Transform" #-}-                             )-                        -- "src-ag/Transform.ag"(line 1108, column 12)-                        _lhsOcollectedInsts =-                            ({-# LINE 1108 "src-ag/Transform.ag" #-}-                             [ (nt,con,_rulesIdefinedInsts)-                             | (nt, conset, _) <- _coninfo-                             , con <- Set.toList conset-                             ]-                             {-# LINE 6712 "dist/build/Transform" #-}-                             )-                        -- "src-ag/Transform.ag"(line 1114, column 12)-                        _lhsOcollectedUniques =-                            ({-# LINE 1114 "src-ag/Transform.ag" #-}-                             [ (nt,con,_rulesIuniqueInfos)-                             | (nt, conset, _) <- _coninfo-                             , con <- Set.toList conset-                             ]-                             {-# LINE 6721 "dist/build/Transform" #-}-                             )-                        -- "src-ag/Transform.ag"(line 1120, column 12)-                        _lhsOcollectedAugments =-                            ({-# LINE 1120 "src-ag/Transform.ag" #-}-                             [ (nt, con, _rulesIaugmentInfos)-                             | (nt, conset, _) <- _coninfo-                             , con <- Set.toList conset-                             ]-                             {-# LINE 6730 "dist/build/Transform" #-}-                             )-                        -- "src-ag/Transform.ag"(line 1126, column 12)-                        _lhsOcollectedArounds =-                            ({-# LINE 1126 "src-ag/Transform.ag" #-}-                             [ (nt, con, _rulesIaroundInfos)-                             | (nt, conset, _) <- _coninfo-                             , con <- Set.toList conset-                             ]-                             {-# LINE 6739 "dist/build/Transform" #-}-                             )-                        -- "src-ag/Transform.ag"(line 1132, column 12)-                        _lhsOcollectedMerges =-                            ({-# LINE 1132 "src-ag/Transform.ag" #-}-                             [ (nt, con, _rulesImergeInfos)-                             | (nt, conset, _) <- _coninfo-                             , con <- Set.toList conset-                             ]-                             {-# LINE 6748 "dist/build/Transform" #-}-                             )-                        -- copy rule (down)-                        _rulesOoptions =-                            ({-# LINE 40 "src-ag/Transform.ag" #-}-                             _lhsIoptions-                             {-# LINE 6754 "dist/build/Transform" #-}-                             )-                        ( _constructorSetIcollectedConstructorNames,_constructorSetIconstructors,_constructorSetIerrors) =-                            constructorSet_-                        ( _rulesIaroundInfos,_rulesIaugmentInfos,_rulesIdefinedInsts,_rulesIerrors,_rulesImergeInfos,_rulesIorderDepsCollect,_rulesIpragmaNamesCollect,_rulesIruleInfos,_rulesIsigInfos,_rulesIuniqueInfos) =-                            rules_ _rulesOoptions-                    in  ( _lhsOattrOrderCollect,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedInsts,_lhsOcollectedMerges,_lhsOcollectedRules,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOerrors,_lhsOsemPragmasCollect))))--- SemAlts ------------------------------------------------------{--   visit 0:-      inherited attributes:-         allAttrDecls         : Map NontermIdent (Attributes, Attributes)-         allAttrs             : Map NontermIdent (Attributes, Attributes)-         allFields            : DataTypes-         nts                  : Set NontermIdent-         options              : Options-      synthesized attributes:-         attrOrderCollect     : AttrOrderMap-         collectedArounds     : [ (NontermIdent, ConstructorIdent, [AroundInfo])  ]-         collectedAugments    : [ (NontermIdent, ConstructorIdent, [AugmentInfo]) ]-         collectedInsts       : [ (NontermIdent, ConstructorIdent, [Identifier]) ]-         collectedMerges      : [ (NontermIdent, ConstructorIdent, [MergeInfo])   ]-         collectedRules       : [ (NontermIdent, ConstructorIdent, RuleInfo)]-         collectedSigs        : [ (NontermIdent, ConstructorIdent, SigInfo) ]-         collectedUniques     : [ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]-         errors               : Seq Error-         semPragmasCollect    : PragmaMap-   alternatives:-      alternative Cons:-         child hd             : SemAlt -         child tl             : SemAlts -      alternative Nil:--}--- cata-sem_SemAlts :: SemAlts ->-               T_SemAlts-sem_SemAlts list =-    (Prelude.foldr sem_SemAlts_Cons sem_SemAlts_Nil (Prelude.map sem_SemAlt list))--- semantic domain-newtype T_SemAlts = T_SemAlts ((Map NontermIdent (Attributes, Attributes)) ->-                               (Map NontermIdent (Attributes, Attributes)) ->-                               DataTypes ->-                               (Set NontermIdent) ->-                               Options ->-                               ( AttrOrderMap,([ (NontermIdent, ConstructorIdent, [AroundInfo])  ]),([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ]),([ (NontermIdent, ConstructorIdent, [Identifier]) ]),([ (NontermIdent, ConstructorIdent, [MergeInfo])   ]),([ (NontermIdent, ConstructorIdent, RuleInfo)]),([ (NontermIdent, ConstructorIdent, SigInfo) ]),([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]),(Seq Error),PragmaMap))-data Inh_SemAlts = Inh_SemAlts {allAttrDecls_Inh_SemAlts :: !((Map NontermIdent (Attributes, Attributes))),allAttrs_Inh_SemAlts :: !((Map NontermIdent (Attributes, Attributes))),allFields_Inh_SemAlts :: !(DataTypes),nts_Inh_SemAlts :: !((Set NontermIdent)),options_Inh_SemAlts :: !(Options)}-data Syn_SemAlts = Syn_SemAlts {attrOrderCollect_Syn_SemAlts :: !(AttrOrderMap),collectedArounds_Syn_SemAlts :: !(([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])),collectedAugments_Syn_SemAlts :: !(([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])),collectedInsts_Syn_SemAlts :: !(([ (NontermIdent, ConstructorIdent, [Identifier]) ])),collectedMerges_Syn_SemAlts :: !(([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])),collectedRules_Syn_SemAlts :: !(([ (NontermIdent, ConstructorIdent, RuleInfo)])),collectedSigs_Syn_SemAlts :: !(([ (NontermIdent, ConstructorIdent, SigInfo) ])),collectedUniques_Syn_SemAlts :: !(([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])),errors_Syn_SemAlts :: !((Seq Error)),semPragmasCollect_Syn_SemAlts :: !(PragmaMap)}-wrap_SemAlts :: T_SemAlts ->-                Inh_SemAlts ->-                Syn_SemAlts-wrap_SemAlts (T_SemAlts sem) (Inh_SemAlts _lhsIallAttrDecls _lhsIallAttrs _lhsIallFields _lhsInts _lhsIoptions) =-    (let ( _lhsOattrOrderCollect,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedInsts,_lhsOcollectedMerges,_lhsOcollectedRules,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOerrors,_lhsOsemPragmasCollect) = sem _lhsIallAttrDecls _lhsIallAttrs _lhsIallFields _lhsInts _lhsIoptions-     in  (Syn_SemAlts _lhsOattrOrderCollect _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedInsts _lhsOcollectedMerges _lhsOcollectedRules _lhsOcollectedSigs _lhsOcollectedUniques _lhsOerrors _lhsOsemPragmasCollect))-sem_SemAlts_Cons :: T_SemAlt ->-                    T_SemAlts ->-                    T_SemAlts-sem_SemAlts_Cons (T_SemAlt hd_) (T_SemAlts tl_) =-    (T_SemAlts (\ _lhsIallAttrDecls-                  _lhsIallAttrs-                  _lhsIallFields-                  _lhsInts-                  _lhsIoptions ->-                    (let _lhsOattrOrderCollect :: AttrOrderMap-                         _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                         _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                         _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                         _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                         _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                         _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                         _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                         _lhsOerrors :: (Seq Error)-                         _lhsOsemPragmasCollect :: PragmaMap-                         _hdOallAttrDecls :: (Map NontermIdent (Attributes, Attributes))-                         _hdOallAttrs :: (Map NontermIdent (Attributes, Attributes))-                         _hdOallFields :: DataTypes-                         _hdOnts :: (Set NontermIdent)-                         _hdOoptions :: Options-                         _tlOallAttrDecls :: (Map NontermIdent (Attributes, Attributes))-                         _tlOallAttrs :: (Map NontermIdent (Attributes, Attributes))-                         _tlOallFields :: DataTypes-                         _tlOnts :: (Set NontermIdent)-                         _tlOoptions :: Options-                         _hdIattrOrderCollect :: AttrOrderMap-                         _hdIcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                         _hdIcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                         _hdIcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                         _hdIcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                         _hdIcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                         _hdIcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                         _hdIcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                         _hdIerrors :: (Seq Error)-                         _hdIsemPragmasCollect :: PragmaMap-                         _tlIattrOrderCollect :: AttrOrderMap-                         _tlIcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                         _tlIcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                         _tlIcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                         _tlIcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                         _tlIcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                         _tlIcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                         _tlIcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                         _tlIerrors :: (Seq Error)-                         _tlIsemPragmasCollect :: PragmaMap-                         -- use rule "src-ag/Transform.ag"(line 893, column 55)-                         _lhsOattrOrderCollect =-                             ({-# LINE 893 "src-ag/Transform.ag" #-}-                              _hdIattrOrderCollect `orderMapUnion` _tlIattrOrderCollect-                              {-# LINE 6860 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 164, column 32)-                         _lhsOcollectedArounds =-                             ({-# LINE 164 "src-ag/Transform.ag" #-}-                              _hdIcollectedArounds ++ _tlIcollectedArounds-                              {-# LINE 6866 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 163, column 32)-                         _lhsOcollectedAugments =-                             ({-# LINE 163 "src-ag/Transform.ag" #-}-                              _hdIcollectedAugments ++ _tlIcollectedAugments-                              {-# LINE 6872 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 161, column 32)-                         _lhsOcollectedInsts =-                             ({-# LINE 161 "src-ag/Transform.ag" #-}-                              _hdIcollectedInsts ++ _tlIcollectedInsts-                              {-# LINE 6878 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 165, column 32)-                         _lhsOcollectedMerges =-                             ({-# LINE 165 "src-ag/Transform.ag" #-}-                              _hdIcollectedMerges ++ _tlIcollectedMerges-                              {-# LINE 6884 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 159, column 32)-                         _lhsOcollectedRules =-                             ({-# LINE 159 "src-ag/Transform.ag" #-}-                              _hdIcollectedRules ++ _tlIcollectedRules-                              {-# LINE 6890 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 160, column 32)-                         _lhsOcollectedSigs =-                             ({-# LINE 160 "src-ag/Transform.ag" #-}-                              _hdIcollectedSigs ++ _tlIcollectedSigs-                              {-# LINE 6896 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 162, column 32)-                         _lhsOcollectedUniques =-                             ({-# LINE 162 "src-ag/Transform.ag" #-}-                              _hdIcollectedUniques ++ _tlIcollectedUniques-                              {-# LINE 6902 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 44, column 19)-                         _lhsOerrors =-                             ({-# LINE 44 "src-ag/Transform.ag" #-}-                              _hdIerrors Seq.>< _tlIerrors-                              {-# LINE 6908 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 865, column 56)-                         _lhsOsemPragmasCollect =-                             ({-# LINE 865 "src-ag/Transform.ag" #-}-                              _hdIsemPragmasCollect `pragmaMapUnion` _tlIsemPragmasCollect-                              {-# LINE 6914 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _hdOallAttrDecls =-                             ({-# LINE 894 "src-ag/Transform.ag" #-}-                              _lhsIallAttrDecls-                              {-# LINE 6920 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _hdOallAttrs =-                             ({-# LINE 1306 "src-ag/Transform.ag" #-}-                              _lhsIallAttrs-                              {-# LINE 6926 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _hdOallFields =-                             ({-# LINE 136 "src-ag/Transform.ag" #-}-                              _lhsIallFields-                              {-# LINE 6932 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _hdOnts =-                             ({-# LINE 175 "src-ag/Transform.ag" #-}-                              _lhsInts-                              {-# LINE 6938 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _hdOoptions =-                             ({-# LINE 40 "src-ag/Transform.ag" #-}-                              _lhsIoptions-                              {-# LINE 6944 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _tlOallAttrDecls =-                             ({-# LINE 894 "src-ag/Transform.ag" #-}-                              _lhsIallAttrDecls-                              {-# LINE 6950 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _tlOallAttrs =-                             ({-# LINE 1306 "src-ag/Transform.ag" #-}-                              _lhsIallAttrs-                              {-# LINE 6956 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _tlOallFields =-                             ({-# LINE 136 "src-ag/Transform.ag" #-}-                              _lhsIallFields-                              {-# LINE 6962 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _tlOnts =-                             ({-# LINE 175 "src-ag/Transform.ag" #-}-                              _lhsInts-                              {-# LINE 6968 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _tlOoptions =-                             ({-# LINE 40 "src-ag/Transform.ag" #-}-                              _lhsIoptions-                              {-# LINE 6974 "dist/build/Transform" #-}-                              )-                         ( _hdIattrOrderCollect,_hdIcollectedArounds,_hdIcollectedAugments,_hdIcollectedInsts,_hdIcollectedMerges,_hdIcollectedRules,_hdIcollectedSigs,_hdIcollectedUniques,_hdIerrors,_hdIsemPragmasCollect) =-                             hd_ _hdOallAttrDecls _hdOallAttrs _hdOallFields _hdOnts _hdOoptions-                         ( _tlIattrOrderCollect,_tlIcollectedArounds,_tlIcollectedAugments,_tlIcollectedInsts,_tlIcollectedMerges,_tlIcollectedRules,_tlIcollectedSigs,_tlIcollectedUniques,_tlIerrors,_tlIsemPragmasCollect) =-                             tl_ _tlOallAttrDecls _tlOallAttrs _tlOallFields _tlOnts _tlOoptions-                     in  ( _lhsOattrOrderCollect,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedInsts,_lhsOcollectedMerges,_lhsOcollectedRules,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOerrors,_lhsOsemPragmasCollect))))-sem_SemAlts_Nil :: T_SemAlts-sem_SemAlts_Nil =-    (T_SemAlts (\ _lhsIallAttrDecls-                  _lhsIallAttrs-                  _lhsIallFields-                  _lhsInts-                  _lhsIoptions ->-                    (let _lhsOattrOrderCollect :: AttrOrderMap-                         _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])-                         _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])-                         _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])-                         _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])-                         _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])-                         _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])-                         _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])-                         _lhsOerrors :: (Seq Error)-                         _lhsOsemPragmasCollect :: PragmaMap-                         -- use rule "src-ag/Transform.ag"(line 893, column 55)-                         _lhsOattrOrderCollect =-                             ({-# LINE 893 "src-ag/Transform.ag" #-}-                              Map.empty-                              {-# LINE 7002 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 164, column 32)-                         _lhsOcollectedArounds =-                             ({-# LINE 164 "src-ag/Transform.ag" #-}-                              []-                              {-# LINE 7008 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 163, column 32)-                         _lhsOcollectedAugments =-                             ({-# LINE 163 "src-ag/Transform.ag" #-}-                              []-                              {-# LINE 7014 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 161, column 32)-                         _lhsOcollectedInsts =-                             ({-# LINE 161 "src-ag/Transform.ag" #-}-                              []-                              {-# LINE 7020 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 165, column 32)-                         _lhsOcollectedMerges =-                             ({-# LINE 165 "src-ag/Transform.ag" #-}-                              []-                              {-# LINE 7026 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 159, column 32)-                         _lhsOcollectedRules =-                             ({-# LINE 159 "src-ag/Transform.ag" #-}-                              []-                              {-# LINE 7032 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 160, column 32)-                         _lhsOcollectedSigs =-                             ({-# LINE 160 "src-ag/Transform.ag" #-}-                              []-                              {-# LINE 7038 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 162, column 32)-                         _lhsOcollectedUniques =-                             ({-# LINE 162 "src-ag/Transform.ag" #-}-                              []-                              {-# LINE 7044 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 44, column 19)-                         _lhsOerrors =-                             ({-# LINE 44 "src-ag/Transform.ag" #-}-                              Seq.empty-                              {-# LINE 7050 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 865, column 56)-                         _lhsOsemPragmasCollect =-                             ({-# LINE 865 "src-ag/Transform.ag" #-}-                              Map.empty-                              {-# LINE 7056 "dist/build/Transform" #-}-                              )-                     in  ( _lhsOattrOrderCollect,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedInsts,_lhsOcollectedMerges,_lhsOcollectedRules,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOerrors,_lhsOsemPragmasCollect))))--- SemDef -------------------------------------------------------{--   visit 0:-      inherited attribute:-         options              : Options-      synthesized attributes:-         aroundInfos          : [AroundInfo]-         augmentInfos         : [AugmentInfo]-         definedInsts         : [Identifier]-         errors               : Seq Error-         mergeInfos           : [MergeInfo]-         orderDepsCollect     : Set Dependency-         pragmaNamesCollect   : [Identifier]-         ruleInfos            : [RuleInfo]-         sigInfos             : [SigInfo]-         uniqueInfos          : [UniqueInfo]-   alternatives:-      alternative AroundDef:-         child ident          : {Identifier}-         child rhs            : {Expression}-      alternative AttrOrderBefore:-         child before         : {[Occurrence]}-         child after          : {[Occurrence]}-         visit 0:-            local dependency  : _-      alternative AugmentDef:-         child ident          : {Identifier}-         child rhs            : {Expression}-      alternative Def:-         child pos            : {Pos}-         child mbName         : {Maybe Identifier}-         child pattern        : Pattern -         child rhs            : {Expression}-         child owrt           : {Bool}-         child pure           : {Bool}-         child eager          : {Bool}-      alternative MergeDef:-         child target         : {Identifier}-         child nt             : {Identifier}-         child sources        : {[Identifier]}-         child rhs            : {Expression}-      alternative SemPragma:-         child names          : {[NontermIdent]}-      alternative TypeDef:-         child pos            : {Pos}-         child ident          : {Identifier}-         child tp             : {Type}-      alternative UniqueDef:-         child ident          : {Identifier}-         child ref            : {Identifier}--}--- cata-sem_SemDef :: SemDef ->-              T_SemDef-sem_SemDef (AroundDef _ident _rhs) =-    (sem_SemDef_AroundDef _ident _rhs)-sem_SemDef (AttrOrderBefore _before _after) =-    (sem_SemDef_AttrOrderBefore _before _after)-sem_SemDef (AugmentDef _ident _rhs) =-    (sem_SemDef_AugmentDef _ident _rhs)-sem_SemDef (Def _pos _mbName _pattern _rhs _owrt _pure _eager) =-    (sem_SemDef_Def _pos _mbName (sem_Pattern _pattern) _rhs _owrt _pure _eager)-sem_SemDef (MergeDef _target _nt _sources _rhs) =-    (sem_SemDef_MergeDef _target _nt _sources _rhs)-sem_SemDef (SemPragma _names) =-    (sem_SemDef_SemPragma _names)-sem_SemDef (TypeDef _pos _ident _tp) =-    (sem_SemDef_TypeDef _pos _ident _tp)-sem_SemDef (UniqueDef _ident _ref) =-    (sem_SemDef_UniqueDef _ident _ref)--- semantic domain-newtype T_SemDef = T_SemDef (Options ->-                             ( ([AroundInfo]),([AugmentInfo]),([Identifier]),(Seq Error),([MergeInfo]),(Set Dependency),([Identifier]),([RuleInfo]),([SigInfo]),([UniqueInfo])))-data Inh_SemDef = Inh_SemDef {options_Inh_SemDef :: !(Options)}-data Syn_SemDef = Syn_SemDef {aroundInfos_Syn_SemDef :: !(([AroundInfo])),augmentInfos_Syn_SemDef :: !(([AugmentInfo])),definedInsts_Syn_SemDef :: !(([Identifier])),errors_Syn_SemDef :: !((Seq Error)),mergeInfos_Syn_SemDef :: !(([MergeInfo])),orderDepsCollect_Syn_SemDef :: !((Set Dependency)),pragmaNamesCollect_Syn_SemDef :: !(([Identifier])),ruleInfos_Syn_SemDef :: !(([RuleInfo])),sigInfos_Syn_SemDef :: !(([SigInfo])),uniqueInfos_Syn_SemDef :: !(([UniqueInfo]))}-wrap_SemDef :: T_SemDef ->-               Inh_SemDef ->-               Syn_SemDef-wrap_SemDef (T_SemDef sem) (Inh_SemDef _lhsIoptions) =-    (let ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos) = sem _lhsIoptions-     in  (Syn_SemDef _lhsOaroundInfos _lhsOaugmentInfos _lhsOdefinedInsts _lhsOerrors _lhsOmergeInfos _lhsOorderDepsCollect _lhsOpragmaNamesCollect _lhsOruleInfos _lhsOsigInfos _lhsOuniqueInfos))-sem_SemDef_AroundDef :: Identifier ->-                        Expression ->-                        T_SemDef-sem_SemDef_AroundDef ident_ rhs_ =-    (T_SemDef (\ _lhsIoptions ->-                   (let _lhsOaroundInfos :: ([AroundInfo])-                        _lhsOaugmentInfos :: ([AugmentInfo])-                        _lhsOdefinedInsts :: ([Identifier])-                        _lhsOerrors :: (Seq Error)-                        _lhsOmergeInfos :: ([MergeInfo])-                        _lhsOorderDepsCollect :: (Set Dependency)-                        _lhsOpragmaNamesCollect :: ([Identifier])-                        _lhsOruleInfos :: ([RuleInfo])-                        _lhsOsigInfos :: ([SigInfo])-                        _lhsOuniqueInfos :: ([UniqueInfo])-                        -- "src-ag/Transform.ag"(line 1151, column 17)-                        _lhsOaroundInfos =-                            ({-# LINE 1151 "src-ag/Transform.ag" #-}-                             [ (ident_, rhs_) ]-                             {-# LINE 7159 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1075, column 40)-                        _lhsOaugmentInfos =-                            ({-# LINE 1075 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7165 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1157, column 55)-                        _lhsOdefinedInsts =-                            ({-# LINE 1157 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7171 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 44, column 19)-                        _lhsOerrors =-                            ({-# LINE 44 "src-ag/Transform.ag" #-}-                             Seq.empty-                             {-# LINE 7177 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1077, column 40)-                        _lhsOmergeInfos =-                            ({-# LINE 1077 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7183 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 906, column 44)-                        _lhsOorderDepsCollect =-                            ({-# LINE 906 "src-ag/Transform.ag" #-}-                             Set.empty-                             {-# LINE 7189 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 875, column 46)-                        _lhsOpragmaNamesCollect =-                            ({-# LINE 875 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7195 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1072, column 40)-                        _lhsOruleInfos =-                            ({-# LINE 1072 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7201 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1073, column 40)-                        _lhsOsigInfos =-                            ({-# LINE 1073 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7207 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1074, column 40)-                        _lhsOuniqueInfos =-                            ({-# LINE 1074 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7213 "dist/build/Transform" #-}-                             )-                    in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))-sem_SemDef_AttrOrderBefore :: ([Occurrence]) ->-                              ([Occurrence]) ->-                              T_SemDef-sem_SemDef_AttrOrderBefore before_ after_ =-    (T_SemDef (\ _lhsIoptions ->-                   (let _lhsOorderDepsCollect :: (Set Dependency)-                        _lhsOaroundInfos :: ([AroundInfo])-                        _lhsOaugmentInfos :: ([AugmentInfo])-                        _lhsOdefinedInsts :: ([Identifier])-                        _lhsOerrors :: (Seq Error)-                        _lhsOmergeInfos :: ([MergeInfo])-                        _lhsOpragmaNamesCollect :: ([Identifier])-                        _lhsOruleInfos :: ([RuleInfo])-                        _lhsOsigInfos :: ([SigInfo])-                        _lhsOuniqueInfos :: ([UniqueInfo])-                        -- "src-ag/Transform.ag"(line 910, column 7)-                        _dependency =-                            ({-# LINE 910 "src-ag/Transform.ag" #-}-                             [ Dependency b a | b <- before_, a <- after_ ]-                             {-# LINE 7235 "dist/build/Transform" #-}-                             )-                        -- "src-ag/Transform.ag"(line 911, column 7)-                        _lhsOorderDepsCollect =-                            ({-# LINE 911 "src-ag/Transform.ag" #-}-                             Set.fromList _dependency-                             {-# LINE 7241 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1076, column 40)-                        _lhsOaroundInfos =-                            ({-# LINE 1076 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7247 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1075, column 40)-                        _lhsOaugmentInfos =-                            ({-# LINE 1075 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7253 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1157, column 55)-                        _lhsOdefinedInsts =-                            ({-# LINE 1157 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7259 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 44, column 19)-                        _lhsOerrors =-                            ({-# LINE 44 "src-ag/Transform.ag" #-}-                             Seq.empty-                             {-# LINE 7265 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1077, column 40)-                        _lhsOmergeInfos =-                            ({-# LINE 1077 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7271 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 875, column 46)-                        _lhsOpragmaNamesCollect =-                            ({-# LINE 875 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7277 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1072, column 40)-                        _lhsOruleInfos =-                            ({-# LINE 1072 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7283 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1073, column 40)-                        _lhsOsigInfos =-                            ({-# LINE 1073 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7289 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1074, column 40)-                        _lhsOuniqueInfos =-                            ({-# LINE 1074 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7295 "dist/build/Transform" #-}-                             )-                    in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))-sem_SemDef_AugmentDef :: Identifier ->-                         Expression ->-                         T_SemDef-sem_SemDef_AugmentDef ident_ rhs_ =-    (T_SemDef (\ _lhsIoptions ->-                   (let _lhsOaugmentInfos :: ([AugmentInfo])-                        _lhsOaroundInfos :: ([AroundInfo])-                        _lhsOdefinedInsts :: ([Identifier])-                        _lhsOerrors :: (Seq Error)-                        _lhsOmergeInfos :: ([MergeInfo])-                        _lhsOorderDepsCollect :: (Set Dependency)-                        _lhsOpragmaNamesCollect :: ([Identifier])-                        _lhsOruleInfos :: ([RuleInfo])-                        _lhsOsigInfos :: ([SigInfo])-                        _lhsOuniqueInfos :: ([UniqueInfo])-                        -- "src-ag/Transform.ag"(line 1148, column 17)-                        _lhsOaugmentInfos =-                            ({-# LINE 1148 "src-ag/Transform.ag" #-}-                             [ (ident_, rhs_) ]-                             {-# LINE 7317 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1076, column 40)-                        _lhsOaroundInfos =-                            ({-# LINE 1076 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7323 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1157, column 55)-                        _lhsOdefinedInsts =-                            ({-# LINE 1157 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7329 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 44, column 19)-                        _lhsOerrors =-                            ({-# LINE 44 "src-ag/Transform.ag" #-}-                             Seq.empty-                             {-# LINE 7335 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1077, column 40)-                        _lhsOmergeInfos =-                            ({-# LINE 1077 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7341 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 906, column 44)-                        _lhsOorderDepsCollect =-                            ({-# LINE 906 "src-ag/Transform.ag" #-}-                             Set.empty-                             {-# LINE 7347 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 875, column 46)-                        _lhsOpragmaNamesCollect =-                            ({-# LINE 875 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7353 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1072, column 40)-                        _lhsOruleInfos =-                            ({-# LINE 1072 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7359 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1073, column 40)-                        _lhsOsigInfos =-                            ({-# LINE 1073 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7365 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1074, column 40)-                        _lhsOuniqueInfos =-                            ({-# LINE 1074 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7371 "dist/build/Transform" #-}-                             )-                    in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))-sem_SemDef_Def :: Pos ->-                  (Maybe Identifier) ->-                  T_Pattern ->-                  Expression ->-                  Bool ->-                  Bool ->-                  Bool ->-                  T_SemDef-sem_SemDef_Def pos_ mbName_ (T_Pattern pattern_) rhs_ owrt_ pure_ eager_ =-    (T_SemDef (\ _lhsIoptions ->-                   (let _lhsOerrors :: (Seq Error)-                        _lhsOruleInfos :: ([RuleInfo])-                        _lhsOaroundInfos :: ([AroundInfo])-                        _lhsOaugmentInfos :: ([AugmentInfo])-                        _lhsOdefinedInsts :: ([Identifier])-                        _lhsOmergeInfos :: ([MergeInfo])-                        _lhsOorderDepsCollect :: (Set Dependency)-                        _lhsOpragmaNamesCollect :: ([Identifier])-                        _lhsOsigInfos :: ([SigInfo])-                        _lhsOuniqueInfos :: ([UniqueInfo])-                        _patternIcopy :: Pattern-                        _patternIdefinedAttrs :: ([AttrName])-                        _patternIdefinedInsts :: ([Identifier])-                        _patternIpatunder :: ([AttrName]->Pattern)-                        _patternIstpos :: Pos-                        -- "src-ag/Transform.ag"(line 541, column 3)-                        _lhsOerrors =-                            ({-# LINE 541 "src-ag/Transform.ag" #-}-                             if checkParseRhs _lhsIoptions-                             then Seq.fromList $ checkRhs rhs_-                             else Seq.empty-                             {-# LINE 7405 "dist/build/Transform" #-}-                             )-                        -- "src-ag/Transform.ag"(line 1139, column 10)-                        _lhsOruleInfos =-                            ({-# LINE 1139 "src-ag/Transform.ag" #-}-                             [ (mbName_, _patternIpatunder, rhs_, _patternIdefinedAttrs, owrt_, show _patternIstpos, pure_, eager_) ]-                             {-# LINE 7411 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1076, column 40)-                        _lhsOaroundInfos =-                            ({-# LINE 1076 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7417 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1075, column 40)-                        _lhsOaugmentInfos =-                            ({-# LINE 1075 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7423 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1157, column 55)-                        _lhsOdefinedInsts =-                            ({-# LINE 1157 "src-ag/Transform.ag" #-}-                             _patternIdefinedInsts-                             {-# LINE 7429 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1077, column 40)-                        _lhsOmergeInfos =-                            ({-# LINE 1077 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7435 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 906, column 44)-                        _lhsOorderDepsCollect =-                            ({-# LINE 906 "src-ag/Transform.ag" #-}-                             Set.empty-                             {-# LINE 7441 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 875, column 46)-                        _lhsOpragmaNamesCollect =-                            ({-# LINE 875 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7447 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1073, column 40)-                        _lhsOsigInfos =-                            ({-# LINE 1073 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7453 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1074, column 40)-                        _lhsOuniqueInfos =-                            ({-# LINE 1074 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7459 "dist/build/Transform" #-}-                             )-                        ( _patternIcopy,_patternIdefinedAttrs,_patternIdefinedInsts,_patternIpatunder,_patternIstpos) =-                            pattern_-                    in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))-sem_SemDef_MergeDef :: Identifier ->-                       Identifier ->-                       ([Identifier]) ->-                       Expression ->-                       T_SemDef-sem_SemDef_MergeDef target_ nt_ sources_ rhs_ =-    (T_SemDef (\ _lhsIoptions ->-                   (let _lhsOerrors :: (Seq Error)-                        _lhsOmergeInfos :: ([MergeInfo])-                        _lhsOaroundInfos :: ([AroundInfo])-                        _lhsOaugmentInfos :: ([AugmentInfo])-                        _lhsOdefinedInsts :: ([Identifier])-                        _lhsOorderDepsCollect :: (Set Dependency)-                        _lhsOpragmaNamesCollect :: ([Identifier])-                        _lhsOruleInfos :: ([RuleInfo])-                        _lhsOsigInfos :: ([SigInfo])-                        _lhsOuniqueInfos :: ([UniqueInfo])-                        -- "src-ag/Transform.ag"(line 541, column 3)-                        _lhsOerrors =-                            ({-# LINE 541 "src-ag/Transform.ag" #-}-                             if checkParseRhs _lhsIoptions-                             then Seq.fromList $ checkRhs rhs_-                             else Seq.empty-                             {-# LINE 7487 "dist/build/Transform" #-}-                             )-                        -- "src-ag/Transform.ag"(line 1154, column 17)-                        _lhsOmergeInfos =-                            ({-# LINE 1154 "src-ag/Transform.ag" #-}-                             [ (target_, nt_, sources_, rhs_) ]-                             {-# LINE 7493 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1076, column 40)-                        _lhsOaroundInfos =-                            ({-# LINE 1076 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7499 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1075, column 40)-                        _lhsOaugmentInfos =-                            ({-# LINE 1075 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7505 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1157, column 55)-                        _lhsOdefinedInsts =-                            ({-# LINE 1157 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7511 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 906, column 44)-                        _lhsOorderDepsCollect =-                            ({-# LINE 906 "src-ag/Transform.ag" #-}-                             Set.empty-                             {-# LINE 7517 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 875, column 46)-                        _lhsOpragmaNamesCollect =-                            ({-# LINE 875 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7523 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1072, column 40)-                        _lhsOruleInfos =-                            ({-# LINE 1072 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7529 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1073, column 40)-                        _lhsOsigInfos =-                            ({-# LINE 1073 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7535 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1074, column 40)-                        _lhsOuniqueInfos =-                            ({-# LINE 1074 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7541 "dist/build/Transform" #-}-                             )-                    in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))-sem_SemDef_SemPragma :: ([NontermIdent]) ->-                        T_SemDef-sem_SemDef_SemPragma names_ =-    (T_SemDef (\ _lhsIoptions ->-                   (let _lhsOpragmaNamesCollect :: ([Identifier])-                        _lhsOaroundInfos :: ([AroundInfo])-                        _lhsOaugmentInfos :: ([AugmentInfo])-                        _lhsOdefinedInsts :: ([Identifier])-                        _lhsOerrors :: (Seq Error)-                        _lhsOmergeInfos :: ([MergeInfo])-                        _lhsOorderDepsCollect :: (Set Dependency)-                        _lhsOruleInfos :: ([RuleInfo])-                        _lhsOsigInfos :: ([SigInfo])-                        _lhsOuniqueInfos :: ([UniqueInfo])-                        -- "src-ag/Transform.ag"(line 879, column 7)-                        _lhsOpragmaNamesCollect =-                            ({-# LINE 879 "src-ag/Transform.ag" #-}-                             names_-                             {-# LINE 7562 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1076, column 40)-                        _lhsOaroundInfos =-                            ({-# LINE 1076 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7568 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1075, column 40)-                        _lhsOaugmentInfos =-                            ({-# LINE 1075 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7574 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1157, column 55)-                        _lhsOdefinedInsts =-                            ({-# LINE 1157 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7580 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 44, column 19)-                        _lhsOerrors =-                            ({-# LINE 44 "src-ag/Transform.ag" #-}-                             Seq.empty-                             {-# LINE 7586 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1077, column 40)-                        _lhsOmergeInfos =-                            ({-# LINE 1077 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7592 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 906, column 44)-                        _lhsOorderDepsCollect =-                            ({-# LINE 906 "src-ag/Transform.ag" #-}-                             Set.empty-                             {-# LINE 7598 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1072, column 40)-                        _lhsOruleInfos =-                            ({-# LINE 1072 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7604 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1073, column 40)-                        _lhsOsigInfos =-                            ({-# LINE 1073 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7610 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1074, column 40)-                        _lhsOuniqueInfos =-                            ({-# LINE 1074 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7616 "dist/build/Transform" #-}-                             )-                    in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))-sem_SemDef_TypeDef :: Pos ->-                      Identifier ->-                      Type ->-                      T_SemDef-sem_SemDef_TypeDef pos_ ident_ tp_ =-    (T_SemDef (\ _lhsIoptions ->-                   (let _lhsOerrors :: (Seq Error)-                        _lhsOsigInfos :: ([SigInfo])-                        _lhsOaroundInfos :: ([AroundInfo])-                        _lhsOaugmentInfos :: ([AugmentInfo])-                        _lhsOdefinedInsts :: ([Identifier])-                        _lhsOmergeInfos :: ([MergeInfo])-                        _lhsOorderDepsCollect :: (Set Dependency)-                        _lhsOpragmaNamesCollect :: ([Identifier])-                        _lhsOruleInfos :: ([RuleInfo])-                        _lhsOuniqueInfos :: ([UniqueInfo])-                        -- "src-ag/Transform.ag"(line 548, column 3)-                        _lhsOerrors =-                            ({-# LINE 548 "src-ag/Transform.ag" #-}-                             if checkParseTy _lhsIoptions-                             then case tp_ of-                                    Haskell s -> let exp = Expression pos_ tks-                                                     tks = [tk]-                                                     tk  = HsToken s pos_-                                                 in Seq.fromList $ checkTy exp-                                    _ -> Seq.empty-                             else Seq.empty-                             {-# LINE 7646 "dist/build/Transform" #-}-                             )-                        -- "src-ag/Transform.ag"(line 1142, column 14)-                        _lhsOsigInfos =-                            ({-# LINE 1142 "src-ag/Transform.ag" #-}-                             [ (ident_, tp_) ]-                             {-# LINE 7652 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1076, column 40)-                        _lhsOaroundInfos =-                            ({-# LINE 1076 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7658 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1075, column 40)-                        _lhsOaugmentInfos =-                            ({-# LINE 1075 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7664 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1157, column 55)-                        _lhsOdefinedInsts =-                            ({-# LINE 1157 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7670 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1077, column 40)-                        _lhsOmergeInfos =-                            ({-# LINE 1077 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7676 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 906, column 44)-                        _lhsOorderDepsCollect =-                            ({-# LINE 906 "src-ag/Transform.ag" #-}-                             Set.empty-                             {-# LINE 7682 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 875, column 46)-                        _lhsOpragmaNamesCollect =-                            ({-# LINE 875 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7688 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1072, column 40)-                        _lhsOruleInfos =-                            ({-# LINE 1072 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7694 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1074, column 40)-                        _lhsOuniqueInfos =-                            ({-# LINE 1074 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7700 "dist/build/Transform" #-}-                             )-                    in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))-sem_SemDef_UniqueDef :: Identifier ->-                        Identifier ->-                        T_SemDef-sem_SemDef_UniqueDef ident_ ref_ =-    (T_SemDef (\ _lhsIoptions ->-                   (let _lhsOuniqueInfos :: ([UniqueInfo])-                        _lhsOaroundInfos :: ([AroundInfo])-                        _lhsOaugmentInfos :: ([AugmentInfo])-                        _lhsOdefinedInsts :: ([Identifier])-                        _lhsOerrors :: (Seq Error)-                        _lhsOmergeInfos :: ([MergeInfo])-                        _lhsOorderDepsCollect :: (Set Dependency)-                        _lhsOpragmaNamesCollect :: ([Identifier])-                        _lhsOruleInfos :: ([RuleInfo])-                        _lhsOsigInfos :: ([SigInfo])-                        -- "src-ag/Transform.ag"(line 1145, column 16)-                        _lhsOuniqueInfos =-                            ({-# LINE 1145 "src-ag/Transform.ag" #-}-                             [ (ident_, ref_) ]-                             {-# LINE 7722 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1076, column 40)-                        _lhsOaroundInfos =-                            ({-# LINE 1076 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7728 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1075, column 40)-                        _lhsOaugmentInfos =-                            ({-# LINE 1075 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7734 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1157, column 55)-                        _lhsOdefinedInsts =-                            ({-# LINE 1157 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7740 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 44, column 19)-                        _lhsOerrors =-                            ({-# LINE 44 "src-ag/Transform.ag" #-}-                             Seq.empty-                             {-# LINE 7746 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1077, column 40)-                        _lhsOmergeInfos =-                            ({-# LINE 1077 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7752 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 906, column 44)-                        _lhsOorderDepsCollect =-                            ({-# LINE 906 "src-ag/Transform.ag" #-}-                             Set.empty-                             {-# LINE 7758 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 875, column 46)-                        _lhsOpragmaNamesCollect =-                            ({-# LINE 875 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7764 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1072, column 40)-                        _lhsOruleInfos =-                            ({-# LINE 1072 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7770 "dist/build/Transform" #-}-                             )-                        -- use rule "src-ag/Transform.ag"(line 1073, column 40)-                        _lhsOsigInfos =-                            ({-# LINE 1073 "src-ag/Transform.ag" #-}-                             []-                             {-# LINE 7776 "dist/build/Transform" #-}-                             )-                    in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))--- SemDefs ------------------------------------------------------{--   visit 0:-      inherited attribute:-         options              : Options-      synthesized attributes:-         aroundInfos          : [AroundInfo]-         augmentInfos         : [AugmentInfo]-         definedInsts         : [Identifier]-         errors               : Seq Error-         mergeInfos           : [MergeInfo]-         orderDepsCollect     : Set Dependency-         pragmaNamesCollect   : [Identifier]-         ruleInfos            : [RuleInfo]-         sigInfos             : [SigInfo]-         uniqueInfos          : [UniqueInfo]-   alternatives:-      alternative Cons:-         child hd             : SemDef -         child tl             : SemDefs -      alternative Nil:--}--- cata-sem_SemDefs :: SemDefs ->-               T_SemDefs-sem_SemDefs list =-    (Prelude.foldr sem_SemDefs_Cons sem_SemDefs_Nil (Prelude.map sem_SemDef list))--- semantic domain-newtype T_SemDefs = T_SemDefs (Options ->-                               ( ([AroundInfo]),([AugmentInfo]),([Identifier]),(Seq Error),([MergeInfo]),(Set Dependency),([Identifier]),([RuleInfo]),([SigInfo]),([UniqueInfo])))-data Inh_SemDefs = Inh_SemDefs {options_Inh_SemDefs :: !(Options)}-data Syn_SemDefs = Syn_SemDefs {aroundInfos_Syn_SemDefs :: !(([AroundInfo])),augmentInfos_Syn_SemDefs :: !(([AugmentInfo])),definedInsts_Syn_SemDefs :: !(([Identifier])),errors_Syn_SemDefs :: !((Seq Error)),mergeInfos_Syn_SemDefs :: !(([MergeInfo])),orderDepsCollect_Syn_SemDefs :: !((Set Dependency)),pragmaNamesCollect_Syn_SemDefs :: !(([Identifier])),ruleInfos_Syn_SemDefs :: !(([RuleInfo])),sigInfos_Syn_SemDefs :: !(([SigInfo])),uniqueInfos_Syn_SemDefs :: !(([UniqueInfo]))}-wrap_SemDefs :: T_SemDefs ->-                Inh_SemDefs ->-                Syn_SemDefs-wrap_SemDefs (T_SemDefs sem) (Inh_SemDefs _lhsIoptions) =-    (let ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos) = sem _lhsIoptions-     in  (Syn_SemDefs _lhsOaroundInfos _lhsOaugmentInfos _lhsOdefinedInsts _lhsOerrors _lhsOmergeInfos _lhsOorderDepsCollect _lhsOpragmaNamesCollect _lhsOruleInfos _lhsOsigInfos _lhsOuniqueInfos))-sem_SemDefs_Cons :: T_SemDef ->-                    T_SemDefs ->-                    T_SemDefs-sem_SemDefs_Cons (T_SemDef hd_) (T_SemDefs tl_) =-    (T_SemDefs (\ _lhsIoptions ->-                    (let _lhsOaroundInfos :: ([AroundInfo])-                         _lhsOaugmentInfos :: ([AugmentInfo])-                         _lhsOdefinedInsts :: ([Identifier])-                         _lhsOerrors :: (Seq Error)-                         _lhsOmergeInfos :: ([MergeInfo])-                         _lhsOorderDepsCollect :: (Set Dependency)-                         _lhsOpragmaNamesCollect :: ([Identifier])-                         _lhsOruleInfos :: ([RuleInfo])-                         _lhsOsigInfos :: ([SigInfo])-                         _lhsOuniqueInfos :: ([UniqueInfo])-                         _hdOoptions :: Options-                         _tlOoptions :: Options-                         _hdIaroundInfos :: ([AroundInfo])-                         _hdIaugmentInfos :: ([AugmentInfo])-                         _hdIdefinedInsts :: ([Identifier])-                         _hdIerrors :: (Seq Error)-                         _hdImergeInfos :: ([MergeInfo])-                         _hdIorderDepsCollect :: (Set Dependency)-                         _hdIpragmaNamesCollect :: ([Identifier])-                         _hdIruleInfos :: ([RuleInfo])-                         _hdIsigInfos :: ([SigInfo])-                         _hdIuniqueInfos :: ([UniqueInfo])-                         _tlIaroundInfos :: ([AroundInfo])-                         _tlIaugmentInfos :: ([AugmentInfo])-                         _tlIdefinedInsts :: ([Identifier])-                         _tlIerrors :: (Seq Error)-                         _tlImergeInfos :: ([MergeInfo])-                         _tlIorderDepsCollect :: (Set Dependency)-                         _tlIpragmaNamesCollect :: ([Identifier])-                         _tlIruleInfos :: ([RuleInfo])-                         _tlIsigInfos :: ([SigInfo])-                         _tlIuniqueInfos :: ([UniqueInfo])-                         -- use rule "src-ag/Transform.ag"(line 1076, column 40)-                         _lhsOaroundInfos =-                             ({-# LINE 1076 "src-ag/Transform.ag" #-}-                              _hdIaroundInfos ++ _tlIaroundInfos-                              {-# LINE 7858 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 1075, column 40)-                         _lhsOaugmentInfos =-                             ({-# LINE 1075 "src-ag/Transform.ag" #-}-                              _hdIaugmentInfos ++ _tlIaugmentInfos-                              {-# LINE 7864 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 1157, column 55)-                         _lhsOdefinedInsts =-                             ({-# LINE 1157 "src-ag/Transform.ag" #-}-                              _hdIdefinedInsts ++ _tlIdefinedInsts-                              {-# LINE 7870 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 44, column 19)-                         _lhsOerrors =-                             ({-# LINE 44 "src-ag/Transform.ag" #-}-                              _hdIerrors Seq.>< _tlIerrors-                              {-# LINE 7876 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 1077, column 40)-                         _lhsOmergeInfos =-                             ({-# LINE 1077 "src-ag/Transform.ag" #-}-                              _hdImergeInfos ++ _tlImergeInfos-                              {-# LINE 7882 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 906, column 44)-                         _lhsOorderDepsCollect =-                             ({-# LINE 906 "src-ag/Transform.ag" #-}-                              _hdIorderDepsCollect `Set.union` _tlIorderDepsCollect-                              {-# LINE 7888 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 875, column 46)-                         _lhsOpragmaNamesCollect =-                             ({-# LINE 875 "src-ag/Transform.ag" #-}-                              _hdIpragmaNamesCollect ++ _tlIpragmaNamesCollect-                              {-# LINE 7894 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 1072, column 40)-                         _lhsOruleInfos =-                             ({-# LINE 1072 "src-ag/Transform.ag" #-}-                              _hdIruleInfos ++ _tlIruleInfos-                              {-# LINE 7900 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 1073, column 40)-                         _lhsOsigInfos =-                             ({-# LINE 1073 "src-ag/Transform.ag" #-}-                              _hdIsigInfos ++ _tlIsigInfos-                              {-# LINE 7906 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 1074, column 40)-                         _lhsOuniqueInfos =-                             ({-# LINE 1074 "src-ag/Transform.ag" #-}-                              _hdIuniqueInfos ++ _tlIuniqueInfos-                              {-# LINE 7912 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _hdOoptions =-                             ({-# LINE 40 "src-ag/Transform.ag" #-}-                              _lhsIoptions-                              {-# LINE 7918 "dist/build/Transform" #-}-                              )-                         -- copy rule (down)-                         _tlOoptions =-                             ({-# LINE 40 "src-ag/Transform.ag" #-}-                              _lhsIoptions-                              {-# LINE 7924 "dist/build/Transform" #-}-                              )-                         ( _hdIaroundInfos,_hdIaugmentInfos,_hdIdefinedInsts,_hdIerrors,_hdImergeInfos,_hdIorderDepsCollect,_hdIpragmaNamesCollect,_hdIruleInfos,_hdIsigInfos,_hdIuniqueInfos) =-                             hd_ _hdOoptions-                         ( _tlIaroundInfos,_tlIaugmentInfos,_tlIdefinedInsts,_tlIerrors,_tlImergeInfos,_tlIorderDepsCollect,_tlIpragmaNamesCollect,_tlIruleInfos,_tlIsigInfos,_tlIuniqueInfos) =-                             tl_ _tlOoptions-                     in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))-sem_SemDefs_Nil :: T_SemDefs-sem_SemDefs_Nil =-    (T_SemDefs (\ _lhsIoptions ->-                    (let _lhsOaroundInfos :: ([AroundInfo])-                         _lhsOaugmentInfos :: ([AugmentInfo])-                         _lhsOdefinedInsts :: ([Identifier])-                         _lhsOerrors :: (Seq Error)-                         _lhsOmergeInfos :: ([MergeInfo])-                         _lhsOorderDepsCollect :: (Set Dependency)-                         _lhsOpragmaNamesCollect :: ([Identifier])-                         _lhsOruleInfos :: ([RuleInfo])-                         _lhsOsigInfos :: ([SigInfo])-                         _lhsOuniqueInfos :: ([UniqueInfo])-                         -- use rule "src-ag/Transform.ag"(line 1076, column 40)-                         _lhsOaroundInfos =-                             ({-# LINE 1076 "src-ag/Transform.ag" #-}-                              []-                              {-# LINE 7948 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 1075, column 40)-                         _lhsOaugmentInfos =-                             ({-# LINE 1075 "src-ag/Transform.ag" #-}-                              []-                              {-# LINE 7954 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 1157, column 55)-                         _lhsOdefinedInsts =-                             ({-# LINE 1157 "src-ag/Transform.ag" #-}-                              []-                              {-# LINE 7960 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 44, column 19)-                         _lhsOerrors =-                             ({-# LINE 44 "src-ag/Transform.ag" #-}-                              Seq.empty-                              {-# LINE 7966 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 1077, column 40)-                         _lhsOmergeInfos =-                             ({-# LINE 1077 "src-ag/Transform.ag" #-}-                              []-                              {-# LINE 7972 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 906, column 44)-                         _lhsOorderDepsCollect =-                             ({-# LINE 906 "src-ag/Transform.ag" #-}-                              Set.empty-                              {-# LINE 7978 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 875, column 46)-                         _lhsOpragmaNamesCollect =-                             ({-# LINE 875 "src-ag/Transform.ag" #-}-                              []-                              {-# LINE 7984 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 1072, column 40)-                         _lhsOruleInfos =-                             ({-# LINE 1072 "src-ag/Transform.ag" #-}-                              []-                              {-# LINE 7990 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 1073, column 40)-                         _lhsOsigInfos =-                             ({-# LINE 1073 "src-ag/Transform.ag" #-}-                              []-                              {-# LINE 7996 "dist/build/Transform" #-}-                              )-                         -- use rule "src-ag/Transform.ag"(line 1074, column 40)-                         _lhsOuniqueInfos =-                             ({-# LINE 1074 "src-ag/Transform.ag" #-}-                              []-                              {-# LINE 8002 "dist/build/Transform" #-}-                              )+                    ___node =+                        (Syn_AG _lhsOagi _lhsOblocks _lhsOerrors _lhsOmoduleDecl _lhsOoutput _lhsOpragmas)+                in  ( _lhsOagi,_lhsOblocks,_lhsOerrors,_lhsOmoduleDecl,_lhsOoutput,_lhsOpragmas))))+-- Alt ---------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allConstructors      : Map NontermIdent (Set ConstructorIdent)+         allNonterminals      : Set NontermIdent+         nts                  : Set NontermIdent+      synthesized attributes:+         collectedConParams   : [(NontermIdent, ConstructorIdent, Set Identifier)]+         collectedConstraints : [(NontermIdent, ConstructorIdent, [Type])]+         collectedConstructorNames : Set ConstructorIdent+         collectedFields      : [(NontermIdent, ConstructorIdent, FieldMap)]+         collectedMacros      : [(NontermIdent, ConstructorIdent, MaybeMacro)]+   alternatives:+      alternative Alt:+         child pos            : {Pos}+         child names          : ConstructorSet +         child tyvars         : {[Identifier]}+         child fields         : Fields +         child macro          : {MaybeMacro}+-}+-- cata+sem_Alt :: Alt ->+           T_Alt+sem_Alt (Alt _pos _names _tyvars _fields _macro) =+    (sem_Alt_Alt _pos (sem_ConstructorSet _names) _tyvars (sem_Fields _fields) _macro)+-- semantic domain+newtype T_Alt = T_Alt ((Map NontermIdent (Set ConstructorIdent)) ->+                       (Set NontermIdent) ->+                       (Set NontermIdent) ->+                       ( ([(NontermIdent, ConstructorIdent, Set Identifier)]),([(NontermIdent, ConstructorIdent, [Type])]),(Set ConstructorIdent),([(NontermIdent, ConstructorIdent, FieldMap)]),([(NontermIdent, ConstructorIdent, MaybeMacro)])))+data Inh_Alt = Inh_Alt {allConstructors_Inh_Alt :: !((Map NontermIdent (Set ConstructorIdent))),allNonterminals_Inh_Alt :: !((Set NontermIdent)),nts_Inh_Alt :: !((Set NontermIdent))}+data Syn_Alt = Syn_Alt {collectedConParams_Syn_Alt :: !(([(NontermIdent, ConstructorIdent, Set Identifier)])),collectedConstraints_Syn_Alt :: !(([(NontermIdent, ConstructorIdent, [Type])])),collectedConstructorNames_Syn_Alt :: !((Set ConstructorIdent)),collectedFields_Syn_Alt :: !(([(NontermIdent, ConstructorIdent, FieldMap)])),collectedMacros_Syn_Alt :: !(([(NontermIdent, ConstructorIdent, MaybeMacro)]))}+wrap_Alt :: T_Alt ->+            Inh_Alt ->+            Syn_Alt+wrap_Alt (T_Alt sem) (Inh_Alt _lhsIallConstructors _lhsIallNonterminals _lhsInts) =+    (let ( _lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorNames,_lhsOcollectedFields,_lhsOcollectedMacros) = sem _lhsIallConstructors _lhsIallNonterminals _lhsInts+     in  (Syn_Alt _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorNames _lhsOcollectedFields _lhsOcollectedMacros))+sem_Alt_Alt :: Pos ->+               T_ConstructorSet ->+               ([Identifier]) ->+               T_Fields ->+               MaybeMacro ->+               T_Alt+sem_Alt_Alt pos_ (T_ConstructorSet names_) tyvars_ (T_Fields fields_) macro_ =+    (T_Alt (\ _lhsIallConstructors+              _lhsIallNonterminals+              _lhsInts ->+                (let _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                     _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                     _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                     _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                     _lhsOcollectedConstructorNames :: (Set ConstructorIdent)+                     _fieldsOallNonterminals :: (Set NontermIdent)+                     _namesIcollectedConstructorNames :: (Set ConstructorIdent)+                     _namesIconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))+                     _namesIerrors :: (Seq Error)+                     _fieldsIcollectedConstraints :: ([Type])+                     _fieldsIcollectedFields :: ([(Identifier, Type)])+                     -- "src-ag/Transform.ag"(line 241, column 10)+                     _lhsOcollectedFields =+                         ({-# LINE 241 "src-ag/Transform.ag" #-}+                          [ (nt, con, _fieldsIcollectedFields)+                          | nt  <- Set.toList _lhsInts+                          , con <- Set.toList (_namesIconstructors (Map.findWithDefault Set.empty nt _lhsIallConstructors))+                          ]+                          {-# LINE 1089 "dist/build/Transform" #-}+                          )+                     -- "src-ag/Transform.ag"(line 245, column 10)+                     _lhsOcollectedConstraints =+                         ({-# LINE 245 "src-ag/Transform.ag" #-}+                          [ (nt, con, _fieldsIcollectedConstraints)+                          | nt  <- Set.toList _lhsInts+                          , con <- Set.toList (_namesIconstructors (Map.findWithDefault Set.empty nt _lhsIallConstructors))+                          ]+                          {-# LINE 1098 "dist/build/Transform" #-}+                          )+                     -- "src-ag/Transform.ag"(line 249, column 10)+                     _lhsOcollectedConParams =+                         ({-# LINE 249 "src-ag/Transform.ag" #-}+                          [ (nt, con, Set.fromList tyvars_)+                          | nt  <- Set.toList _lhsInts+                          , con <- Set.toList (_namesIconstructors (Map.findWithDefault Set.empty nt _lhsIallConstructors))+                          ]+                          {-# LINE 1107 "dist/build/Transform" #-}+                          )+                     -- "src-ag/Transform.ag"(line 1287, column 10)+                     _lhsOcollectedMacros =+                         ({-# LINE 1287 "src-ag/Transform.ag" #-}+                          [ (nt, con, macro_)+                          | nt  <- Set.toList _lhsInts+                          , con <- Set.toList (_namesIconstructors (Map.findWithDefault Set.empty nt _lhsIallConstructors))+                          ]+                          {-# LINE 1116 "dist/build/Transform" #-}+                          )+                     -- use rule "src-ag/Transform.ag"(line 98, column 62)+                     _lhsOcollectedConstructorNames =+                         ({-# LINE 98 "src-ag/Transform.ag" #-}+                          _namesIcollectedConstructorNames+                          {-# LINE 1122 "dist/build/Transform" #-}+                          )+                     -- copy rule (down)+                     _fieldsOallNonterminals =+                         ({-# LINE 93 "src-ag/Transform.ag" #-}+                          _lhsIallNonterminals+                          {-# LINE 1128 "dist/build/Transform" #-}+                          )+                     ( _namesIcollectedConstructorNames,_namesIconstructors,_namesIerrors) =+                         names_+                     ( _fieldsIcollectedConstraints,_fieldsIcollectedFields) =+                         fields_ _fieldsOallNonterminals+                     ___node =+                         (Syn_Alt _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorNames _lhsOcollectedFields _lhsOcollectedMacros)+                 in  ( _lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorNames,_lhsOcollectedFields,_lhsOcollectedMacros))))+-- Alts --------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allConstructors      : Map NontermIdent (Set ConstructorIdent)+         allNonterminals      : Set NontermIdent+         nts                  : Set NontermIdent+      synthesized attributes:+         collectedConParams   : [(NontermIdent, ConstructorIdent, Set Identifier)]+         collectedConstraints : [(NontermIdent, ConstructorIdent, [Type])]+         collectedConstructorNames : Set ConstructorIdent+         collectedFields      : [(NontermIdent, ConstructorIdent, FieldMap)]+         collectedMacros      : [(NontermIdent, ConstructorIdent, MaybeMacro)]+   alternatives:+      alternative Cons:+         child hd             : Alt +         child tl             : Alts +      alternative Nil:+-}+-- cata+sem_Alts :: Alts ->+            T_Alts+sem_Alts list =+    (Prelude.foldr sem_Alts_Cons sem_Alts_Nil (Prelude.map sem_Alt list))+-- semantic domain+newtype T_Alts = T_Alts ((Map NontermIdent (Set ConstructorIdent)) ->+                         (Set NontermIdent) ->+                         (Set NontermIdent) ->+                         ( ([(NontermIdent, ConstructorIdent, Set Identifier)]),([(NontermIdent, ConstructorIdent, [Type])]),(Set ConstructorIdent),([(NontermIdent, ConstructorIdent, FieldMap)]),([(NontermIdent, ConstructorIdent, MaybeMacro)])))+data Inh_Alts = Inh_Alts {allConstructors_Inh_Alts :: !((Map NontermIdent (Set ConstructorIdent))),allNonterminals_Inh_Alts :: !((Set NontermIdent)),nts_Inh_Alts :: !((Set NontermIdent))}+data Syn_Alts = Syn_Alts {collectedConParams_Syn_Alts :: !(([(NontermIdent, ConstructorIdent, Set Identifier)])),collectedConstraints_Syn_Alts :: !(([(NontermIdent, ConstructorIdent, [Type])])),collectedConstructorNames_Syn_Alts :: !((Set ConstructorIdent)),collectedFields_Syn_Alts :: !(([(NontermIdent, ConstructorIdent, FieldMap)])),collectedMacros_Syn_Alts :: !(([(NontermIdent, ConstructorIdent, MaybeMacro)]))}+wrap_Alts :: T_Alts ->+             Inh_Alts ->+             Syn_Alts+wrap_Alts (T_Alts sem) (Inh_Alts _lhsIallConstructors _lhsIallNonterminals _lhsInts) =+    (let ( _lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorNames,_lhsOcollectedFields,_lhsOcollectedMacros) = sem _lhsIallConstructors _lhsIallNonterminals _lhsInts+     in  (Syn_Alts _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorNames _lhsOcollectedFields _lhsOcollectedMacros))+sem_Alts_Cons :: T_Alt ->+                 T_Alts ->+                 T_Alts+sem_Alts_Cons (T_Alt hd_) (T_Alts tl_) =+    (T_Alts (\ _lhsIallConstructors+               _lhsIallNonterminals+               _lhsInts ->+                 (let _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                      _lhsOcollectedConstructorNames :: (Set ConstructorIdent)+                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                      _hdOallConstructors :: (Map NontermIdent (Set ConstructorIdent))+                      _hdOallNonterminals :: (Set NontermIdent)+                      _hdOnts :: (Set NontermIdent)+                      _tlOallConstructors :: (Map NontermIdent (Set ConstructorIdent))+                      _tlOallNonterminals :: (Set NontermIdent)+                      _tlOnts :: (Set NontermIdent)+                      _hdIcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                      _hdIcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                      _hdIcollectedConstructorNames :: (Set ConstructorIdent)+                      _hdIcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                      _hdIcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                      _tlIcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                      _tlIcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                      _tlIcollectedConstructorNames :: (Set ConstructorIdent)+                      _tlIcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                      _tlIcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                      -- use rule "src-ag/Transform.ag"(line 132, column 31)+                      _lhsOcollectedConParams =+                          ({-# LINE 132 "src-ag/Transform.ag" #-}+                           _hdIcollectedConParams ++ _tlIcollectedConParams+                           {-# LINE 1206 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 131, column 33)+                      _lhsOcollectedConstraints =+                          ({-# LINE 131 "src-ag/Transform.ag" #-}+                           _hdIcollectedConstraints ++ _tlIcollectedConstraints+                           {-# LINE 1212 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 98, column 62)+                      _lhsOcollectedConstructorNames =+                          ({-# LINE 98 "src-ag/Transform.ag" #-}+                           _hdIcollectedConstructorNames `Set.union` _tlIcollectedConstructorNames+                           {-# LINE 1218 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 130, column 28)+                      _lhsOcollectedFields =+                          ({-# LINE 130 "src-ag/Transform.ag" #-}+                           _hdIcollectedFields ++ _tlIcollectedFields+                           {-# LINE 1224 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)+                      _lhsOcollectedMacros =+                          ({-# LINE 1283 "src-ag/Transform.ag" #-}+                           _hdIcollectedMacros ++ _tlIcollectedMacros+                           {-# LINE 1230 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _hdOallConstructors =+                          ({-# LINE 101 "src-ag/Transform.ag" #-}+                           _lhsIallConstructors+                           {-# LINE 1236 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _hdOallNonterminals =+                          ({-# LINE 93 "src-ag/Transform.ag" #-}+                           _lhsIallNonterminals+                           {-# LINE 1242 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _hdOnts =+                          ({-# LINE 175 "src-ag/Transform.ag" #-}+                           _lhsInts+                           {-# LINE 1248 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _tlOallConstructors =+                          ({-# LINE 101 "src-ag/Transform.ag" #-}+                           _lhsIallConstructors+                           {-# LINE 1254 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _tlOallNonterminals =+                          ({-# LINE 93 "src-ag/Transform.ag" #-}+                           _lhsIallNonterminals+                           {-# LINE 1260 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _tlOnts =+                          ({-# LINE 175 "src-ag/Transform.ag" #-}+                           _lhsInts+                           {-# LINE 1266 "dist/build/Transform" #-}+                           )+                      ( _hdIcollectedConParams,_hdIcollectedConstraints,_hdIcollectedConstructorNames,_hdIcollectedFields,_hdIcollectedMacros) =+                          hd_ _hdOallConstructors _hdOallNonterminals _hdOnts+                      ( _tlIcollectedConParams,_tlIcollectedConstraints,_tlIcollectedConstructorNames,_tlIcollectedFields,_tlIcollectedMacros) =+                          tl_ _tlOallConstructors _tlOallNonterminals _tlOnts+                      ___node =+                          (Syn_Alts _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorNames _lhsOcollectedFields _lhsOcollectedMacros)+                  in  ( _lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorNames,_lhsOcollectedFields,_lhsOcollectedMacros))))+sem_Alts_Nil :: T_Alts+sem_Alts_Nil =+    (T_Alts (\ _lhsIallConstructors+               _lhsIallNonterminals+               _lhsInts ->+                 (let _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                      _lhsOcollectedConstructorNames :: (Set ConstructorIdent)+                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                      -- use rule "src-ag/Transform.ag"(line 132, column 31)+                      _lhsOcollectedConParams =+                          ({-# LINE 132 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 1289 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 131, column 33)+                      _lhsOcollectedConstraints =+                          ({-# LINE 131 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 1295 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 98, column 62)+                      _lhsOcollectedConstructorNames =+                          ({-# LINE 98 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 1301 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 130, column 28)+                      _lhsOcollectedFields =+                          ({-# LINE 130 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 1307 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)+                      _lhsOcollectedMacros =+                          ({-# LINE 1283 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 1313 "dist/build/Transform" #-}+                           )+                      ___node =+                          (Syn_Alts _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorNames _lhsOcollectedFields _lhsOcollectedMacros)+                  in  ( _lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorNames,_lhsOcollectedFields,_lhsOcollectedMacros))))+-- Attrs -------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allFields            : DataTypes+         allNonterminals      : Set NontermIdent+         nts                  : Set NontermIdent+         options              : Options+      chained attributes:+         attrDecls            : Map NontermIdent (Attributes, Attributes)+         attrs                : Map NontermIdent (Attributes, Attributes)+      synthesized attributes:+         errors               : Seq Error+         useMap               : Map NontermIdent (Map Identifier (String,String,String))+   alternatives:+      alternative Attrs:+         child pos            : {Pos}+         child inh            : {AttrNames}+         child chn            : {AttrNames}+         child syn            : {AttrNames}+         visit 0:+            local attrDecls   : _+            local errors      : _+            local inherited   : _+            local synthesized : _+            local useMap      : _+            local errors1     : _+-}+-- cata+sem_Attrs :: Attrs ->+             T_Attrs+sem_Attrs (Attrs _pos _inh _chn _syn) =+    (sem_Attrs_Attrs _pos _inh _chn _syn)+-- semantic domain+newtype T_Attrs = T_Attrs (DataTypes ->+                           (Set NontermIdent) ->+                           (Map NontermIdent (Attributes, Attributes)) ->+                           (Map NontermIdent (Attributes, Attributes)) ->+                           (Set NontermIdent) ->+                           Options ->+                           ( (Map NontermIdent (Attributes, Attributes)),(Map NontermIdent (Attributes, Attributes)),(Seq Error),(Map NontermIdent (Map Identifier (String,String,String)))))+data Inh_Attrs = Inh_Attrs {allFields_Inh_Attrs :: !(DataTypes),allNonterminals_Inh_Attrs :: !((Set NontermIdent)),attrDecls_Inh_Attrs :: !((Map NontermIdent (Attributes, Attributes))),attrs_Inh_Attrs :: !((Map NontermIdent (Attributes, Attributes))),nts_Inh_Attrs :: !((Set NontermIdent)),options_Inh_Attrs :: !(Options)}+data Syn_Attrs = Syn_Attrs {attrDecls_Syn_Attrs :: !((Map NontermIdent (Attributes, Attributes))),attrs_Syn_Attrs :: !((Map NontermIdent (Attributes, Attributes))),errors_Syn_Attrs :: !((Seq Error)),useMap_Syn_Attrs :: !((Map NontermIdent (Map Identifier (String,String,String))))}+wrap_Attrs :: T_Attrs ->+              Inh_Attrs ->+              Syn_Attrs+wrap_Attrs (T_Attrs sem) (Inh_Attrs _lhsIallFields _lhsIallNonterminals _lhsIattrDecls _lhsIattrs _lhsInts _lhsIoptions) =+    (let ( _lhsOattrDecls,_lhsOattrs,_lhsOerrors,_lhsOuseMap) = sem _lhsIallFields _lhsIallNonterminals _lhsIattrDecls _lhsIattrs _lhsInts _lhsIoptions+     in  (Syn_Attrs _lhsOattrDecls _lhsOattrs _lhsOerrors _lhsOuseMap))+sem_Attrs_Attrs :: Pos ->+                   AttrNames ->+                   AttrNames ->+                   AttrNames ->+                   T_Attrs+sem_Attrs_Attrs pos_ inh_ chn_ syn_ =+    (T_Attrs (\ _lhsIallFields+                _lhsIallNonterminals+                _lhsIattrDecls+                _lhsIattrs+                _lhsInts+                _lhsIoptions ->+                  (let _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                       _lhsOerrors :: (Seq Error)+                       _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))+                       _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                       -- "src-ag/Transform.ag"(line 1018, column 15)+                       (_attrDecls,_errors) =+                           ({-# LINE 1018 "src-ag/Transform.ag" #-}+                            checkAttrs _lhsIallFields (Set.toList _lhsInts) _inherited _synthesized _lhsIattrDecls+                            {-# LINE 1387 "dist/build/Transform" #-}+                            )+                       -- "src-ag/Transform.ag"(line 1020, column 15)+                       (_inherited,_synthesized,_useMap) =+                           ({-# LINE 1020 "src-ag/Transform.ag" #-}+                            let splitAttrs xs = unzip [ ((n,makeType _lhsIallNonterminals t),(n,ud))+                                                      | (n,t,ud) <- xs+                                                      ]+                                (inh,_)     = splitAttrs inh_+                                (chn,uses1) = splitAttrs chn_+                                (syn,uses2) = splitAttrs syn_+                                isUse (n,(e1,e2,_)) = not (null e1 || null e2)+                            in (inh++chn,chn++syn, Map.fromList (Prelude.filter isUse (uses1++uses2)))+                            {-# LINE 1400 "dist/build/Transform" #-}+                            )+                       -- "src-ag/Transform.ag"(line 1028, column 11)+                       _lhsOuseMap =+                           ({-# LINE 1028 "src-ag/Transform.ag" #-}+                            Map.fromList (zip (Set.toList _lhsInts) (repeat _useMap))+                            {-# LINE 1406 "dist/build/Transform" #-}+                            )+                       -- "src-ag/Transform.ag"(line 1030, column 11)+                       _errors1 =+                           ({-# LINE 1030 "src-ag/Transform.ag" #-}+                            if checkParseTy _lhsIoptions+                            then let attrs  = inh_ ++ syn_ ++ chn_+                                     items = map (\(ident,tp,_) -> (getPos ident, tp)) attrs+                                     errs  = map check items+                                     check (pos,Haskell s) =+                                       let exp = Expression pos tks+                                           tks = [tk]+                                           tk  = HsToken s pos+                                       in Seq.fromList $ checkTy exp+                                     check _ = Seq.empty+                                 in foldr (Seq.><) Seq.empty errs+                            else Seq.empty+                            {-# LINE 1423 "dist/build/Transform" #-}+                            )+                       -- "src-ag/Transform.ag"(line 1042, column 11)+                       _lhsOerrors =+                           ({-# LINE 1042 "src-ag/Transform.ag" #-}+                            _errors     Seq.>< _errors1+                            {-# LINE 1429 "dist/build/Transform" #-}+                            )+                       -- "src-ag/Transform.ag"(line 1323, column 11)+                       _lhsOattrs =+                           ({-# LINE 1323 "src-ag/Transform.ag" #-}+                            let insert decls nt = if Map.member nt decls+                                                    then  Map.update (\(inh,syn) -> Just ( Map.union inh $ Map.fromList _inherited+                                                                                         , Map.union syn $ Map.fromList _synthesized)) nt decls+                                                    else  Map.insert nt (Map.fromList _inherited, Map.fromList _synthesized) decls+                            in  foldl insert _lhsIattrs (Set.toList _lhsInts)+                            {-# LINE 1439 "dist/build/Transform" #-}+                            )+                       -- copy rule (from local)+                       _lhsOattrDecls =+                           ({-# LINE 144 "src-ag/Transform.ag" #-}+                            _attrDecls+                            {-# LINE 1445 "dist/build/Transform" #-}+                            )+                       ___node =+                           (Syn_Attrs _lhsOattrDecls _lhsOattrs _lhsOerrors _lhsOuseMap)+                   in  ( _lhsOattrDecls,_lhsOattrs,_lhsOerrors,_lhsOuseMap))))+-- ConstructorSet ----------------------------------------------+{-+   visit 0:+      synthesized attributes:+         collectedConstructorNames : Set ConstructorIdent+         constructors         : (Set ConstructorIdent->Set ConstructorIdent)+         errors               : Seq Error+   alternatives:+      alternative CAll:+      alternative CDifference:+         child set1           : ConstructorSet +         child set2           : ConstructorSet +      alternative CName:+         child name           : {ConstructorIdent}+      alternative CUnion:+         child set1           : ConstructorSet +         child set2           : ConstructorSet +-}+-- cata+sem_ConstructorSet :: ConstructorSet ->+                      T_ConstructorSet+sem_ConstructorSet (CAll) =+    (sem_ConstructorSet_CAll)+sem_ConstructorSet (CDifference _set1 _set2) =+    (sem_ConstructorSet_CDifference (sem_ConstructorSet _set1) (sem_ConstructorSet _set2))+sem_ConstructorSet (CName _name) =+    (sem_ConstructorSet_CName _name)+sem_ConstructorSet (CUnion _set1 _set2) =+    (sem_ConstructorSet_CUnion (sem_ConstructorSet _set1) (sem_ConstructorSet _set2))+-- semantic domain+newtype T_ConstructorSet = T_ConstructorSet (( (Set ConstructorIdent),((Set ConstructorIdent->Set ConstructorIdent)),(Seq Error)))+data Inh_ConstructorSet = Inh_ConstructorSet {}+data Syn_ConstructorSet = Syn_ConstructorSet {collectedConstructorNames_Syn_ConstructorSet :: !((Set ConstructorIdent)),constructors_Syn_ConstructorSet :: !(((Set ConstructorIdent->Set ConstructorIdent))),errors_Syn_ConstructorSet :: !((Seq Error))}+wrap_ConstructorSet :: T_ConstructorSet ->+                       Inh_ConstructorSet ->+                       Syn_ConstructorSet+wrap_ConstructorSet (T_ConstructorSet sem) (Inh_ConstructorSet) =+    (let ( _lhsOcollectedConstructorNames,_lhsOconstructors,_lhsOerrors) = sem+     in  (Syn_ConstructorSet _lhsOcollectedConstructorNames _lhsOconstructors _lhsOerrors))+sem_ConstructorSet_CAll :: T_ConstructorSet+sem_ConstructorSet_CAll =+    (T_ConstructorSet (let _lhsOconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))+                           _lhsOcollectedConstructorNames :: (Set ConstructorIdent)+                           _lhsOerrors :: (Seq Error)+                           -- "src-ag/Transform.ag"(line 765, column 17)+                           _lhsOconstructors =+                               ({-# LINE 765 "src-ag/Transform.ag" #-}+                                \ds -> ds+                                {-# LINE 1498 "dist/build/Transform" #-}+                                )+                           -- use rule "src-ag/Transform.ag"(line 98, column 62)+                           _lhsOcollectedConstructorNames =+                               ({-# LINE 98 "src-ag/Transform.ag" #-}+                                Set.empty+                                {-# LINE 1504 "dist/build/Transform" #-}+                                )+                           -- use rule "src-ag/Transform.ag"(line 44, column 19)+                           _lhsOerrors =+                               ({-# LINE 44 "src-ag/Transform.ag" #-}+                                Seq.empty+                                {-# LINE 1510 "dist/build/Transform" #-}+                                )+                           ___node =+                               (Syn_ConstructorSet _lhsOcollectedConstructorNames _lhsOconstructors _lhsOerrors)+                       in  ( _lhsOcollectedConstructorNames,_lhsOconstructors,_lhsOerrors)))+sem_ConstructorSet_CDifference :: T_ConstructorSet ->+                                  T_ConstructorSet ->+                                  T_ConstructorSet+sem_ConstructorSet_CDifference (T_ConstructorSet set1_) (T_ConstructorSet set2_) =+    (T_ConstructorSet (let _lhsOconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))+                           _lhsOcollectedConstructorNames :: (Set ConstructorIdent)+                           _lhsOerrors :: (Seq Error)+                           _set1IcollectedConstructorNames :: (Set ConstructorIdent)+                           _set1Iconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))+                           _set1Ierrors :: (Seq Error)+                           _set2IcollectedConstructorNames :: (Set ConstructorIdent)+                           _set2Iconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))+                           _set2Ierrors :: (Seq Error)+                           -- "src-ag/Transform.ag"(line 764, column 17)+                           _lhsOconstructors =+                               ({-# LINE 764 "src-ag/Transform.ag" #-}+                                \ds -> _set1Iconstructors ds `Set.difference` _set2Iconstructors ds+                                {-# LINE 1532 "dist/build/Transform" #-}+                                )+                           -- use rule "src-ag/Transform.ag"(line 98, column 62)+                           _lhsOcollectedConstructorNames =+                               ({-# LINE 98 "src-ag/Transform.ag" #-}+                                _set1IcollectedConstructorNames `Set.union` _set2IcollectedConstructorNames+                                {-# LINE 1538 "dist/build/Transform" #-}+                                )+                           -- use rule "src-ag/Transform.ag"(line 44, column 19)+                           _lhsOerrors =+                               ({-# LINE 44 "src-ag/Transform.ag" #-}+                                _set1Ierrors Seq.>< _set2Ierrors+                                {-# LINE 1544 "dist/build/Transform" #-}+                                )+                           ( _set1IcollectedConstructorNames,_set1Iconstructors,_set1Ierrors) =+                               set1_+                           ( _set2IcollectedConstructorNames,_set2Iconstructors,_set2Ierrors) =+                               set2_+                           ___node =+                               (Syn_ConstructorSet _lhsOcollectedConstructorNames _lhsOconstructors _lhsOerrors)+                       in  ( _lhsOcollectedConstructorNames,_lhsOconstructors,_lhsOerrors)))+sem_ConstructorSet_CName :: ConstructorIdent ->+                            T_ConstructorSet+sem_ConstructorSet_CName name_ =+    (T_ConstructorSet (let _lhsOcollectedConstructorNames :: (Set ConstructorIdent)+                           _lhsOconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))+                           _lhsOerrors :: (Seq Error)+                           -- "src-ag/Transform.ag"(line 599, column 11)+                           _lhsOcollectedConstructorNames =+                               ({-# LINE 599 "src-ag/Transform.ag" #-}+                                Set.singleton name_+                                {-# LINE 1563 "dist/build/Transform" #-}+                                )+                           -- "src-ag/Transform.ag"(line 762, column 17)+                           _lhsOconstructors =+                               ({-# LINE 762 "src-ag/Transform.ag" #-}+                                \ds -> Set.singleton name_+                                {-# LINE 1569 "dist/build/Transform" #-}+                                )+                           -- use rule "src-ag/Transform.ag"(line 44, column 19)+                           _lhsOerrors =+                               ({-# LINE 44 "src-ag/Transform.ag" #-}+                                Seq.empty+                                {-# LINE 1575 "dist/build/Transform" #-}+                                )+                           ___node =+                               (Syn_ConstructorSet _lhsOcollectedConstructorNames _lhsOconstructors _lhsOerrors)+                       in  ( _lhsOcollectedConstructorNames,_lhsOconstructors,_lhsOerrors)))+sem_ConstructorSet_CUnion :: T_ConstructorSet ->+                             T_ConstructorSet ->+                             T_ConstructorSet+sem_ConstructorSet_CUnion (T_ConstructorSet set1_) (T_ConstructorSet set2_) =+    (T_ConstructorSet (let _lhsOconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))+                           _lhsOcollectedConstructorNames :: (Set ConstructorIdent)+                           _lhsOerrors :: (Seq Error)+                           _set1IcollectedConstructorNames :: (Set ConstructorIdent)+                           _set1Iconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))+                           _set1Ierrors :: (Seq Error)+                           _set2IcollectedConstructorNames :: (Set ConstructorIdent)+                           _set2Iconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))+                           _set2Ierrors :: (Seq Error)+                           -- "src-ag/Transform.ag"(line 763, column 17)+                           _lhsOconstructors =+                               ({-# LINE 763 "src-ag/Transform.ag" #-}+                                \ds -> _set1Iconstructors ds `Set.union`      _set2Iconstructors ds+                                {-# LINE 1597 "dist/build/Transform" #-}+                                )+                           -- use rule "src-ag/Transform.ag"(line 98, column 62)+                           _lhsOcollectedConstructorNames =+                               ({-# LINE 98 "src-ag/Transform.ag" #-}+                                _set1IcollectedConstructorNames `Set.union` _set2IcollectedConstructorNames+                                {-# LINE 1603 "dist/build/Transform" #-}+                                )+                           -- use rule "src-ag/Transform.ag"(line 44, column 19)+                           _lhsOerrors =+                               ({-# LINE 44 "src-ag/Transform.ag" #-}+                                _set1Ierrors Seq.>< _set2Ierrors+                                {-# LINE 1609 "dist/build/Transform" #-}+                                )+                           ( _set1IcollectedConstructorNames,_set1Iconstructors,_set1Ierrors) =+                               set1_+                           ( _set2IcollectedConstructorNames,_set2Iconstructors,_set2Ierrors) =+                               set2_+                           ___node =+                               (Syn_ConstructorSet _lhsOcollectedConstructorNames _lhsOconstructors _lhsOerrors)+                       in  ( _lhsOcollectedConstructorNames,_lhsOconstructors,_lhsOerrors)))+-- Elem --------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allAttrDecls         : Map NontermIdent (Attributes, Attributes)+         allAttrs             : Map NontermIdent (Attributes, Attributes)+         allConstructors      : Map NontermIdent (Set ConstructorIdent)+         allFields            : DataTypes+         allNonterminals      : Set NontermIdent+         definedSets          : DefinedSets+         options              : Options+      chained attributes:+         attrDecls            : Map NontermIdent (Attributes, Attributes)+         attrs                : Map NontermIdent (Attributes, Attributes)+         defSets              : Map Identifier (Set NontermIdent,Set Identifier)+      synthesized attributes:+         attrOrderCollect     : AttrOrderMap+         blocks               : Blocks+         collectedArounds     : [ (NontermIdent, ConstructorIdent, [AroundInfo])  ]+         collectedAugments    : [ (NontermIdent, ConstructorIdent, [AugmentInfo]) ]+         collectedConParams   : [(NontermIdent, ConstructorIdent, Set Identifier)]+         collectedConstraints : [(NontermIdent, ConstructorIdent, [Type])]+         collectedConstructorsMap : Map NontermIdent (Set ConstructorIdent)+         collectedFields      : [(NontermIdent, ConstructorIdent, FieldMap)]+         collectedInsts       : [ (NontermIdent, ConstructorIdent, [Identifier]) ]+         collectedMacros      : [(NontermIdent, ConstructorIdent, MaybeMacro)]+         collectedMerges      : [ (NontermIdent, ConstructorIdent, [MergeInfo])   ]+         collectedNames       : Set Identifier+         collectedRules       : [ (NontermIdent, ConstructorIdent, RuleInfo)]+         collectedSetNames    : Set Identifier+         collectedSigs        : [ (NontermIdent, ConstructorIdent, SigInfo) ]+         collectedUniques     : [ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]+         ctxCollect           : ContextMap+         derivings            : Derivings+         errors               : Seq Error+         moduleDecl           : Maybe (String,String,String)+         paramsCollect        : ParamMap+         pragmas              : Options -> Options+         quantCollect         : QuantMap+         semPragmasCollect    : PragmaMap+         typeSyns             : TypeSyns+         useMap               : Map NontermIdent (Map Identifier (String,String,String))+         wrappers             : Set NontermIdent+   alternatives:+      alternative Attr:+         child pos            : {Pos}+         child ctx            : {ClassContext}+         child names          : NontSet +         child quants         : {[String]}+         child attrs          : Attrs +      alternative Data:+         child pos            : {Pos}+         child ctx            : {ClassContext}+         child names          : NontSet +         child params         : {[Identifier]}+         child attrs          : Attrs +         child alts           : Alts +         child ext            : {Bool}+      alternative Deriving:+         child pos            : {Pos}+         child set            : NontSet +         child classes        : {[NontermIdent]}+      alternative Module:+         child pos            : {Pos}+         child name           : {String}+         child exports        : {String}+         child imports        : {String}+      alternative Nocatas:+         child pos            : {Pos}+         child set            : NontSet +      alternative Pragma:+         child pos            : {Pos}+         child names          : {[NontermIdent]}+      alternative Sem:+         child pos            : {Pos}+         child ctx            : {ClassContext}+         child names          : NontSet +         child attrs          : Attrs +         child quants         : {[String]}+         child alts           : SemAlts +      alternative Set:+         child pos            : {Pos}+         child name           : {NontermIdent}+         child merge          : {Bool}+         child set            : NontSet +         visit 0:+            local defSets2    : _+            local errs        : _+      alternative Txt:+         child pos            : {Pos}+         child kind           : {BlockKind}+         child mbNt           : {Maybe NontermIdent}+         child lines          : {[String]}+         visit 0:+            local blockInfo   : _+            local blockValue  : _+      alternative Type:+         child pos            : {Pos}+         child ctx            : {ClassContext}+         child name           : {NontermIdent}+         child params         : {[Identifier]}+         child type           : {ComplexType}+         visit 0:+            local expanded    : _+            local argType     : _+      alternative Wrapper:+         child pos            : {Pos}+         child set            : NontSet +-}+-- cata+sem_Elem :: Elem ->+            T_Elem+sem_Elem (Attr _pos _ctx _names _quants _attrs) =+    (sem_Elem_Attr _pos _ctx (sem_NontSet _names) _quants (sem_Attrs _attrs))+sem_Elem (Data _pos _ctx _names _params _attrs _alts _ext) =+    (sem_Elem_Data _pos _ctx (sem_NontSet _names) _params (sem_Attrs _attrs) (sem_Alts _alts) _ext)+sem_Elem (Deriving _pos _set _classes) =+    (sem_Elem_Deriving _pos (sem_NontSet _set) _classes)+sem_Elem (Module _pos _name _exports _imports) =+    (sem_Elem_Module _pos _name _exports _imports)+sem_Elem (Nocatas _pos _set) =+    (sem_Elem_Nocatas _pos (sem_NontSet _set))+sem_Elem (Pragma _pos _names) =+    (sem_Elem_Pragma _pos _names)+sem_Elem (Sem _pos _ctx _names _attrs _quants _alts) =+    (sem_Elem_Sem _pos _ctx (sem_NontSet _names) (sem_Attrs _attrs) _quants (sem_SemAlts _alts))+sem_Elem (Set _pos _name _merge _set) =+    (sem_Elem_Set _pos _name _merge (sem_NontSet _set))+sem_Elem (Txt _pos _kind _mbNt _lines) =+    (sem_Elem_Txt _pos _kind _mbNt _lines)+sem_Elem (Type _pos _ctx _name _params _type) =+    (sem_Elem_Type _pos _ctx _name _params _type)+sem_Elem (Wrapper _pos _set) =+    (sem_Elem_Wrapper _pos (sem_NontSet _set))+-- semantic domain+newtype T_Elem = T_Elem ((Map NontermIdent (Attributes, Attributes)) ->+                         (Map NontermIdent (Attributes, Attributes)) ->+                         (Map NontermIdent (Set ConstructorIdent)) ->+                         DataTypes ->+                         (Set NontermIdent) ->+                         (Map NontermIdent (Attributes, Attributes)) ->+                         (Map NontermIdent (Attributes, Attributes)) ->+                         (Map Identifier (Set NontermIdent,Set Identifier)) ->+                         DefinedSets ->+                         Options ->+                         ( (Map NontermIdent (Attributes, Attributes)),AttrOrderMap,(Map NontermIdent (Attributes, Attributes)),Blocks,([ (NontermIdent, ConstructorIdent, [AroundInfo])  ]),([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ]),([(NontermIdent, ConstructorIdent, Set Identifier)]),([(NontermIdent, ConstructorIdent, [Type])]),(Map NontermIdent (Set ConstructorIdent)),([(NontermIdent, ConstructorIdent, FieldMap)]),([ (NontermIdent, ConstructorIdent, [Identifier]) ]),([(NontermIdent, ConstructorIdent, MaybeMacro)]),([ (NontermIdent, ConstructorIdent, [MergeInfo])   ]),(Set Identifier),([ (NontermIdent, ConstructorIdent, RuleInfo)]),(Set Identifier),([ (NontermIdent, ConstructorIdent, SigInfo) ]),([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]),ContextMap,(Map Identifier (Set NontermIdent,Set Identifier)),Derivings,(Seq Error),(Maybe (String,String,String)),ParamMap,(Options -> Options),QuantMap,PragmaMap,TypeSyns,(Map NontermIdent (Map Identifier (String,String,String))),(Set NontermIdent)))+data Inh_Elem = Inh_Elem {allAttrDecls_Inh_Elem :: !((Map NontermIdent (Attributes, Attributes))),allAttrs_Inh_Elem :: !((Map NontermIdent (Attributes, Attributes))),allConstructors_Inh_Elem :: !((Map NontermIdent (Set ConstructorIdent))),allFields_Inh_Elem :: !(DataTypes),allNonterminals_Inh_Elem :: !((Set NontermIdent)),attrDecls_Inh_Elem :: !((Map NontermIdent (Attributes, Attributes))),attrs_Inh_Elem :: !((Map NontermIdent (Attributes, Attributes))),defSets_Inh_Elem :: !((Map Identifier (Set NontermIdent,Set Identifier))),definedSets_Inh_Elem :: !(DefinedSets),options_Inh_Elem :: !(Options)}+data Syn_Elem = Syn_Elem {attrDecls_Syn_Elem :: !((Map NontermIdent (Attributes, Attributes))),attrOrderCollect_Syn_Elem :: !(AttrOrderMap),attrs_Syn_Elem :: !((Map NontermIdent (Attributes, Attributes))),blocks_Syn_Elem :: !(Blocks),collectedArounds_Syn_Elem :: !(([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])),collectedAugments_Syn_Elem :: !(([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])),collectedConParams_Syn_Elem :: !(([(NontermIdent, ConstructorIdent, Set Identifier)])),collectedConstraints_Syn_Elem :: !(([(NontermIdent, ConstructorIdent, [Type])])),collectedConstructorsMap_Syn_Elem :: !((Map NontermIdent (Set ConstructorIdent))),collectedFields_Syn_Elem :: !(([(NontermIdent, ConstructorIdent, FieldMap)])),collectedInsts_Syn_Elem :: !(([ (NontermIdent, ConstructorIdent, [Identifier]) ])),collectedMacros_Syn_Elem :: !(([(NontermIdent, ConstructorIdent, MaybeMacro)])),collectedMerges_Syn_Elem :: !(([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])),collectedNames_Syn_Elem :: !((Set Identifier)),collectedRules_Syn_Elem :: !(([ (NontermIdent, ConstructorIdent, RuleInfo)])),collectedSetNames_Syn_Elem :: !((Set Identifier)),collectedSigs_Syn_Elem :: !(([ (NontermIdent, ConstructorIdent, SigInfo) ])),collectedUniques_Syn_Elem :: !(([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])),ctxCollect_Syn_Elem :: !(ContextMap),defSets_Syn_Elem :: !((Map Identifier (Set NontermIdent,Set Identifier))),derivings_Syn_Elem :: !(Derivings),errors_Syn_Elem :: !((Seq Error)),moduleDecl_Syn_Elem :: !((Maybe (String,String,String))),paramsCollect_Syn_Elem :: !(ParamMap),pragmas_Syn_Elem :: !((Options -> Options)),quantCollect_Syn_Elem :: !(QuantMap),semPragmasCollect_Syn_Elem :: !(PragmaMap),typeSyns_Syn_Elem :: !(TypeSyns),useMap_Syn_Elem :: !((Map NontermIdent (Map Identifier (String,String,String)))),wrappers_Syn_Elem :: !((Set NontermIdent))}+wrap_Elem :: T_Elem ->+             Inh_Elem ->+             Syn_Elem+wrap_Elem (T_Elem sem) (Inh_Elem _lhsIallAttrDecls _lhsIallAttrs _lhsIallConstructors _lhsIallFields _lhsIallNonterminals _lhsIattrDecls _lhsIattrs _lhsIdefSets _lhsIdefinedSets _lhsIoptions) =+    (let ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers) = sem _lhsIallAttrDecls _lhsIallAttrs _lhsIallConstructors _lhsIallFields _lhsIallNonterminals _lhsIattrDecls _lhsIattrs _lhsIdefSets _lhsIdefinedSets _lhsIoptions+     in  (Syn_Elem _lhsOattrDecls _lhsOattrOrderCollect _lhsOattrs _lhsOblocks _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorsMap _lhsOcollectedFields _lhsOcollectedInsts _lhsOcollectedMacros _lhsOcollectedMerges _lhsOcollectedNames _lhsOcollectedRules _lhsOcollectedSetNames _lhsOcollectedSigs _lhsOcollectedUniques _lhsOctxCollect _lhsOdefSets _lhsOderivings _lhsOerrors _lhsOmoduleDecl _lhsOparamsCollect _lhsOpragmas _lhsOquantCollect _lhsOsemPragmasCollect _lhsOtypeSyns _lhsOuseMap _lhsOwrappers))+sem_Elem_Attr :: Pos ->+                 ClassContext ->+                 T_NontSet ->+                 ([String]) ->+                 T_Attrs ->+                 T_Elem+sem_Elem_Attr pos_ ctx_ (T_NontSet names_) quants_ (T_Attrs attrs_) =+    (T_Elem (\ _lhsIallAttrDecls+               _lhsIallAttrs+               _lhsIallConstructors+               _lhsIallFields+               _lhsIallNonterminals+               _lhsIattrDecls+               _lhsIattrs+               _lhsIdefSets+               _lhsIdefinedSets+               _lhsIoptions ->+                 (let _lhsOctxCollect :: ContextMap+                      _lhsOquantCollect :: QuantMap+                      _attrsOnts :: (Set NontermIdent)+                      _lhsOattrOrderCollect :: AttrOrderMap+                      _lhsOblocks :: Blocks+                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))+                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                      _lhsOcollectedNames :: (Set Identifier)+                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                      _lhsOcollectedSetNames :: (Set Identifier)+                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                      _lhsOderivings :: Derivings+                      _lhsOerrors :: (Seq Error)+                      _lhsOmoduleDecl :: (Maybe (String,String,String))+                      _lhsOparamsCollect :: ParamMap+                      _lhsOpragmas :: (Options -> Options)+                      _lhsOsemPragmasCollect :: PragmaMap+                      _lhsOtypeSyns :: TypeSyns+                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                      _lhsOwrappers :: (Set NontermIdent)+                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))+                      _namesOallFields :: DataTypes+                      _namesOallNonterminals :: (Set NontermIdent)+                      _namesOdefinedSets :: DefinedSets+                      _attrsOallFields :: DataTypes+                      _attrsOallNonterminals :: (Set NontermIdent)+                      _attrsOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _attrsOattrs :: (Map NontermIdent (Attributes, Attributes))+                      _attrsOoptions :: Options+                      _namesIcollectedNames :: (Set Identifier)+                      _namesIerrors :: (Seq Error)+                      _namesInontSet :: (Set NontermIdent)+                      _attrsIattrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _attrsIattrs :: (Map NontermIdent (Attributes, Attributes))+                      _attrsIerrors :: (Seq Error)+                      _attrsIuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                      -- "src-ag/Transform.ag"(line 952, column 7)+                      _lhsOctxCollect =+                          ({-# LINE 952 "src-ag/Transform.ag" #-}+                           if null ctx_+                           then Map.empty+                           else Map.fromList [(nt, ctx_) | nt <- Set.toList _namesInontSet]+                           {-# LINE 1841 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 977, column 7)+                      _lhsOquantCollect =+                          ({-# LINE 977 "src-ag/Transform.ag" #-}+                           if null quants_+                           then Map.empty+                           else Map.fromList [(nt, quants_) | nt <- Set.toList _namesInontSet]+                           {-# LINE 1849 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 1013, column 10)+                      _attrsOnts =+                          ({-# LINE 1013 "src-ag/Transform.ag" #-}+                           _namesInontSet+                           {-# LINE 1855 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 893, column 55)+                      _lhsOattrOrderCollect =+                          ({-# LINE 893 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 1861 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 46, column 19)+                      _lhsOblocks =+                          ({-# LINE 46 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 1867 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 164, column 32)+                      _lhsOcollectedArounds =+                          ({-# LINE 164 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 1873 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 163, column 32)+                      _lhsOcollectedAugments =+                          ({-# LINE 163 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 1879 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 132, column 31)+                      _lhsOcollectedConParams =+                          ({-# LINE 132 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 1885 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 131, column 33)+                      _lhsOcollectedConstraints =+                          ({-# LINE 131 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 1891 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 99, column 48)+                      _lhsOcollectedConstructorsMap =+                          ({-# LINE 99 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 1897 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 130, column 28)+                      _lhsOcollectedFields =+                          ({-# LINE 130 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 1903 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 161, column 32)+                      _lhsOcollectedInsts =+                          ({-# LINE 161 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 1909 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)+                      _lhsOcollectedMacros =+                          ({-# LINE 1283 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 1915 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 165, column 32)+                      _lhsOcollectedMerges =+                          ({-# LINE 165 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 1921 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 91, column 50)+                      _lhsOcollectedNames =+                          ({-# LINE 91 "src-ag/Transform.ag" #-}+                           _namesIcollectedNames+                           {-# LINE 1927 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 159, column 32)+                      _lhsOcollectedRules =+                          ({-# LINE 159 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 1933 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 90, column 50)+                      _lhsOcollectedSetNames =+                          ({-# LINE 90 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 1939 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 160, column 32)+                      _lhsOcollectedSigs =+                          ({-# LINE 160 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 1945 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 162, column 32)+                      _lhsOcollectedUniques =+                          ({-# LINE 162 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 1951 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 990, column 33)+                      _lhsOderivings =+                          ({-# LINE 990 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 1957 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 44, column 19)+                      _lhsOerrors =+                          ({-# LINE 44 "src-ag/Transform.ag" #-}+                           _namesIerrors Seq.>< _attrsIerrors+                           {-# LINE 1963 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)+                      _lhsOmoduleDecl =+                          ({-# LINE 1187 "src-ag/Transform.ag" #-}+                           mzero+                           {-# LINE 1969 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 925, column 37)+                      _lhsOparamsCollect =+                          ({-# LINE 925 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 1975 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 787, column 34)+                      _lhsOpragmas =+                          ({-# LINE 787 "src-ag/Transform.ag" #-}+                           id+                           {-# LINE 1981 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 865, column 56)+                      _lhsOsemPragmasCollect =+                          ({-# LINE 865 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 1987 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 626, column 32)+                      _lhsOtypeSyns =+                          ({-# LINE 626 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 1993 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 145, column 15)+                      _lhsOuseMap =+                          ({-# LINE 145 "src-ag/Transform.ag" #-}+                           _attrsIuseMap+                           {-# LINE 1999 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 771, column 32)+                      _lhsOwrappers =+                          ({-# LINE 771 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 2005 "dist/build/Transform" #-}+                           )+                      -- copy rule (up)+                      _lhsOattrDecls =+                          ({-# LINE 144 "src-ag/Transform.ag" #-}+                           _attrsIattrDecls+                           {-# LINE 2011 "dist/build/Transform" #-}+                           )+                      -- copy rule (up)+                      _lhsOattrs =+                          ({-# LINE 1316 "src-ag/Transform.ag" #-}+                           _attrsIattrs+                           {-# LINE 2017 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOdefSets =+                          ({-# LINE 109 "src-ag/Transform.ag" #-}+                           _lhsIdefSets+                           {-# LINE 2023 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _namesOallFields =+                          ({-# LINE 136 "src-ag/Transform.ag" #-}+                           _lhsIallFields+                           {-# LINE 2029 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _namesOallNonterminals =+                          ({-# LINE 93 "src-ag/Transform.ag" #-}+                           _lhsIallNonterminals+                           {-# LINE 2035 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _namesOdefinedSets =+                          ({-# LINE 112 "src-ag/Transform.ag" #-}+                           _lhsIdefinedSets+                           {-# LINE 2041 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _attrsOallFields =+                          ({-# LINE 136 "src-ag/Transform.ag" #-}+                           _lhsIallFields+                           {-# LINE 2047 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _attrsOallNonterminals =+                          ({-# LINE 93 "src-ag/Transform.ag" #-}+                           _lhsIallNonterminals+                           {-# LINE 2053 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _attrsOattrDecls =+                          ({-# LINE 144 "src-ag/Transform.ag" #-}+                           _lhsIattrDecls+                           {-# LINE 2059 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _attrsOattrs =+                          ({-# LINE 1316 "src-ag/Transform.ag" #-}+                           _lhsIattrs+                           {-# LINE 2065 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _attrsOoptions =+                          ({-# LINE 40 "src-ag/Transform.ag" #-}+                           _lhsIoptions+                           {-# LINE 2071 "dist/build/Transform" #-}+                           )+                      ( _namesIcollectedNames,_namesIerrors,_namesInontSet) =+                          names_ _namesOallFields _namesOallNonterminals _namesOdefinedSets+                      ( _attrsIattrDecls,_attrsIattrs,_attrsIerrors,_attrsIuseMap) =+                          attrs_ _attrsOallFields _attrsOallNonterminals _attrsOattrDecls _attrsOattrs _attrsOnts _attrsOoptions+                      ___node =+                          (Syn_Elem _lhsOattrDecls _lhsOattrOrderCollect _lhsOattrs _lhsOblocks _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorsMap _lhsOcollectedFields _lhsOcollectedInsts _lhsOcollectedMacros _lhsOcollectedMerges _lhsOcollectedNames _lhsOcollectedRules _lhsOcollectedSetNames _lhsOcollectedSigs _lhsOcollectedUniques _lhsOctxCollect _lhsOdefSets _lhsOderivings _lhsOerrors _lhsOmoduleDecl _lhsOparamsCollect _lhsOpragmas _lhsOquantCollect _lhsOsemPragmasCollect _lhsOtypeSyns _lhsOuseMap _lhsOwrappers)+                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))+sem_Elem_Data :: Pos ->+                 ClassContext ->+                 T_NontSet ->+                 ([Identifier]) ->+                 T_Attrs ->+                 T_Alts ->+                 Bool ->+                 T_Elem+sem_Elem_Data pos_ ctx_ (T_NontSet names_) params_ (T_Attrs attrs_) (T_Alts alts_) ext_ =+    (T_Elem (\ _lhsIallAttrDecls+               _lhsIallAttrs+               _lhsIallConstructors+               _lhsIallFields+               _lhsIallNonterminals+               _lhsIattrDecls+               _lhsIattrs+               _lhsIdefSets+               _lhsIdefinedSets+               _lhsIoptions ->+                 (let _altsOnts :: (Set NontermIdent)+                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))+                      _lhsOparamsCollect :: ParamMap+                      _lhsOctxCollect :: ContextMap+                      _attrsOnts :: (Set NontermIdent)+                      _lhsOattrOrderCollect :: AttrOrderMap+                      _lhsOblocks :: Blocks+                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                      _lhsOcollectedNames :: (Set Identifier)+                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                      _lhsOcollectedSetNames :: (Set Identifier)+                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                      _lhsOderivings :: Derivings+                      _lhsOerrors :: (Seq Error)+                      _lhsOmoduleDecl :: (Maybe (String,String,String))+                      _lhsOpragmas :: (Options -> Options)+                      _lhsOquantCollect :: QuantMap+                      _lhsOsemPragmasCollect :: PragmaMap+                      _lhsOtypeSyns :: TypeSyns+                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                      _lhsOwrappers :: (Set NontermIdent)+                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))+                      _namesOallFields :: DataTypes+                      _namesOallNonterminals :: (Set NontermIdent)+                      _namesOdefinedSets :: DefinedSets+                      _attrsOallFields :: DataTypes+                      _attrsOallNonterminals :: (Set NontermIdent)+                      _attrsOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _attrsOattrs :: (Map NontermIdent (Attributes, Attributes))+                      _attrsOoptions :: Options+                      _altsOallConstructors :: (Map NontermIdent (Set ConstructorIdent))+                      _altsOallNonterminals :: (Set NontermIdent)+                      _namesIcollectedNames :: (Set Identifier)+                      _namesIerrors :: (Seq Error)+                      _namesInontSet :: (Set NontermIdent)+                      _attrsIattrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _attrsIattrs :: (Map NontermIdent (Attributes, Attributes))+                      _attrsIerrors :: (Seq Error)+                      _attrsIuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                      _altsIcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                      _altsIcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                      _altsIcollectedConstructorNames :: (Set ConstructorIdent)+                      _altsIcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                      _altsIcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                      -- "src-ag/Transform.ag"(line 178, column 10)+                      _altsOnts =+                          ({-# LINE 178 "src-ag/Transform.ag" #-}+                           _namesInontSet+                           {-# LINE 2157 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 605, column 11)+                      _lhsOcollectedConstructorsMap =+                          ({-# LINE 605 "src-ag/Transform.ag" #-}+                           Map.fromList+                           [ (n, _altsIcollectedConstructorNames)+                           | n <- Set.toList _namesInontSet+                           ]+                           {-# LINE 2166 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 929, column 7)+                      _lhsOparamsCollect =+                          ({-# LINE 929 "src-ag/Transform.ag" #-}+                           if null params_+                           then Map.empty+                           else Map.fromList [(nt, params_) | nt <- Set.toList _namesInontSet]+                           {-# LINE 2174 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 952, column 7)+                      _lhsOctxCollect =+                          ({-# LINE 952 "src-ag/Transform.ag" #-}+                           if null ctx_+                           then Map.empty+                           else Map.fromList [(nt, ctx_) | nt <- Set.toList _namesInontSet]+                           {-# LINE 2182 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 1012, column 10)+                      _attrsOnts =+                          ({-# LINE 1012 "src-ag/Transform.ag" #-}+                           _namesInontSet+                           {-# LINE 2188 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 893, column 55)+                      _lhsOattrOrderCollect =+                          ({-# LINE 893 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2194 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 46, column 19)+                      _lhsOblocks =+                          ({-# LINE 46 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2200 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 164, column 32)+                      _lhsOcollectedArounds =+                          ({-# LINE 164 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2206 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 163, column 32)+                      _lhsOcollectedAugments =+                          ({-# LINE 163 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2212 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 132, column 31)+                      _lhsOcollectedConParams =+                          ({-# LINE 132 "src-ag/Transform.ag" #-}+                           _altsIcollectedConParams+                           {-# LINE 2218 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 131, column 33)+                      _lhsOcollectedConstraints =+                          ({-# LINE 131 "src-ag/Transform.ag" #-}+                           _altsIcollectedConstraints+                           {-# LINE 2224 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 130, column 28)+                      _lhsOcollectedFields =+                          ({-# LINE 130 "src-ag/Transform.ag" #-}+                           _altsIcollectedFields+                           {-# LINE 2230 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 161, column 32)+                      _lhsOcollectedInsts =+                          ({-# LINE 161 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2236 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)+                      _lhsOcollectedMacros =+                          ({-# LINE 1283 "src-ag/Transform.ag" #-}+                           _altsIcollectedMacros+                           {-# LINE 2242 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 165, column 32)+                      _lhsOcollectedMerges =+                          ({-# LINE 165 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2248 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 91, column 50)+                      _lhsOcollectedNames =+                          ({-# LINE 91 "src-ag/Transform.ag" #-}+                           _namesIcollectedNames+                           {-# LINE 2254 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 159, column 32)+                      _lhsOcollectedRules =+                          ({-# LINE 159 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2260 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 90, column 50)+                      _lhsOcollectedSetNames =+                          ({-# LINE 90 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 2266 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 160, column 32)+                      _lhsOcollectedSigs =+                          ({-# LINE 160 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2272 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 162, column 32)+                      _lhsOcollectedUniques =+                          ({-# LINE 162 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2278 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 990, column 33)+                      _lhsOderivings =+                          ({-# LINE 990 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2284 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 44, column 19)+                      _lhsOerrors =+                          ({-# LINE 44 "src-ag/Transform.ag" #-}+                           _namesIerrors Seq.>< _attrsIerrors+                           {-# LINE 2290 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)+                      _lhsOmoduleDecl =+                          ({-# LINE 1187 "src-ag/Transform.ag" #-}+                           mzero+                           {-# LINE 2296 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 787, column 34)+                      _lhsOpragmas =+                          ({-# LINE 787 "src-ag/Transform.ag" #-}+                           id+                           {-# LINE 2302 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 973, column 36)+                      _lhsOquantCollect =+                          ({-# LINE 973 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2308 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 865, column 56)+                      _lhsOsemPragmasCollect =+                          ({-# LINE 865 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2314 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 626, column 32)+                      _lhsOtypeSyns =+                          ({-# LINE 626 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2320 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 145, column 15)+                      _lhsOuseMap =+                          ({-# LINE 145 "src-ag/Transform.ag" #-}+                           _attrsIuseMap+                           {-# LINE 2326 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 771, column 32)+                      _lhsOwrappers =+                          ({-# LINE 771 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 2332 "dist/build/Transform" #-}+                           )+                      -- copy rule (up)+                      _lhsOattrDecls =+                          ({-# LINE 144 "src-ag/Transform.ag" #-}+                           _attrsIattrDecls+                           {-# LINE 2338 "dist/build/Transform" #-}+                           )+                      -- copy rule (up)+                      _lhsOattrs =+                          ({-# LINE 1316 "src-ag/Transform.ag" #-}+                           _attrsIattrs+                           {-# LINE 2344 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOdefSets =+                          ({-# LINE 109 "src-ag/Transform.ag" #-}+                           _lhsIdefSets+                           {-# LINE 2350 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _namesOallFields =+                          ({-# LINE 136 "src-ag/Transform.ag" #-}+                           _lhsIallFields+                           {-# LINE 2356 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _namesOallNonterminals =+                          ({-# LINE 93 "src-ag/Transform.ag" #-}+                           _lhsIallNonterminals+                           {-# LINE 2362 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _namesOdefinedSets =+                          ({-# LINE 112 "src-ag/Transform.ag" #-}+                           _lhsIdefinedSets+                           {-# LINE 2368 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _attrsOallFields =+                          ({-# LINE 136 "src-ag/Transform.ag" #-}+                           _lhsIallFields+                           {-# LINE 2374 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _attrsOallNonterminals =+                          ({-# LINE 93 "src-ag/Transform.ag" #-}+                           _lhsIallNonterminals+                           {-# LINE 2380 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _attrsOattrDecls =+                          ({-# LINE 144 "src-ag/Transform.ag" #-}+                           _lhsIattrDecls+                           {-# LINE 2386 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _attrsOattrs =+                          ({-# LINE 1316 "src-ag/Transform.ag" #-}+                           _lhsIattrs+                           {-# LINE 2392 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _attrsOoptions =+                          ({-# LINE 40 "src-ag/Transform.ag" #-}+                           _lhsIoptions+                           {-# LINE 2398 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _altsOallConstructors =+                          ({-# LINE 101 "src-ag/Transform.ag" #-}+                           _lhsIallConstructors+                           {-# LINE 2404 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _altsOallNonterminals =+                          ({-# LINE 93 "src-ag/Transform.ag" #-}+                           _lhsIallNonterminals+                           {-# LINE 2410 "dist/build/Transform" #-}+                           )+                      ( _namesIcollectedNames,_namesIerrors,_namesInontSet) =+                          names_ _namesOallFields _namesOallNonterminals _namesOdefinedSets+                      ( _attrsIattrDecls,_attrsIattrs,_attrsIerrors,_attrsIuseMap) =+                          attrs_ _attrsOallFields _attrsOallNonterminals _attrsOattrDecls _attrsOattrs _attrsOnts _attrsOoptions+                      ( _altsIcollectedConParams,_altsIcollectedConstraints,_altsIcollectedConstructorNames,_altsIcollectedFields,_altsIcollectedMacros) =+                          alts_ _altsOallConstructors _altsOallNonterminals _altsOnts+                      ___node =+                          (Syn_Elem _lhsOattrDecls _lhsOattrOrderCollect _lhsOattrs _lhsOblocks _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorsMap _lhsOcollectedFields _lhsOcollectedInsts _lhsOcollectedMacros _lhsOcollectedMerges _lhsOcollectedNames _lhsOcollectedRules _lhsOcollectedSetNames _lhsOcollectedSigs _lhsOcollectedUniques _lhsOctxCollect _lhsOdefSets _lhsOderivings _lhsOerrors _lhsOmoduleDecl _lhsOparamsCollect _lhsOpragmas _lhsOquantCollect _lhsOsemPragmasCollect _lhsOtypeSyns _lhsOuseMap _lhsOwrappers)+                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))+sem_Elem_Deriving :: Pos ->+                     T_NontSet ->+                     ([NontermIdent]) ->+                     T_Elem+sem_Elem_Deriving pos_ (T_NontSet set_) classes_ =+    (T_Elem (\ _lhsIallAttrDecls+               _lhsIallAttrs+               _lhsIallConstructors+               _lhsIallFields+               _lhsIallNonterminals+               _lhsIattrDecls+               _lhsIattrs+               _lhsIdefSets+               _lhsIdefinedSets+               _lhsIoptions ->+                 (let _lhsOderivings :: Derivings+                      _lhsOattrOrderCollect :: AttrOrderMap+                      _lhsOblocks :: Blocks+                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))+                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                      _lhsOcollectedNames :: (Set Identifier)+                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                      _lhsOcollectedSetNames :: (Set Identifier)+                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                      _lhsOctxCollect :: ContextMap+                      _lhsOerrors :: (Seq Error)+                      _lhsOmoduleDecl :: (Maybe (String,String,String))+                      _lhsOparamsCollect :: ParamMap+                      _lhsOpragmas :: (Options -> Options)+                      _lhsOquantCollect :: QuantMap+                      _lhsOsemPragmasCollect :: PragmaMap+                      _lhsOtypeSyns :: TypeSyns+                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                      _lhsOwrappers :: (Set NontermIdent)+                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))+                      _setOallFields :: DataTypes+                      _setOallNonterminals :: (Set NontermIdent)+                      _setOdefinedSets :: DefinedSets+                      _setIcollectedNames :: (Set Identifier)+                      _setIerrors :: (Seq Error)+                      _setInontSet :: (Set NontermIdent)+                      -- "src-ag/Transform.ag"(line 997, column 14)+                      _lhsOderivings =+                          ({-# LINE 997 "src-ag/Transform.ag" #-}+                           Map.fromList [(nt,Set.fromList classes_) | nt <- Set.toList _setInontSet]+                           {-# LINE 2476 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 893, column 55)+                      _lhsOattrOrderCollect =+                          ({-# LINE 893 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2482 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 46, column 19)+                      _lhsOblocks =+                          ({-# LINE 46 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2488 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 164, column 32)+                      _lhsOcollectedArounds =+                          ({-# LINE 164 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2494 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 163, column 32)+                      _lhsOcollectedAugments =+                          ({-# LINE 163 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2500 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 132, column 31)+                      _lhsOcollectedConParams =+                          ({-# LINE 132 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2506 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 131, column 33)+                      _lhsOcollectedConstraints =+                          ({-# LINE 131 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2512 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 99, column 48)+                      _lhsOcollectedConstructorsMap =+                          ({-# LINE 99 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2518 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 130, column 28)+                      _lhsOcollectedFields =+                          ({-# LINE 130 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2524 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 161, column 32)+                      _lhsOcollectedInsts =+                          ({-# LINE 161 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2530 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)+                      _lhsOcollectedMacros =+                          ({-# LINE 1283 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2536 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 165, column 32)+                      _lhsOcollectedMerges =+                          ({-# LINE 165 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2542 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 91, column 50)+                      _lhsOcollectedNames =+                          ({-# LINE 91 "src-ag/Transform.ag" #-}+                           _setIcollectedNames+                           {-# LINE 2548 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 159, column 32)+                      _lhsOcollectedRules =+                          ({-# LINE 159 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2554 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 90, column 50)+                      _lhsOcollectedSetNames =+                          ({-# LINE 90 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 2560 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 160, column 32)+                      _lhsOcollectedSigs =+                          ({-# LINE 160 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2566 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 162, column 32)+                      _lhsOcollectedUniques =+                          ({-# LINE 162 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2572 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 948, column 34)+                      _lhsOctxCollect =+                          ({-# LINE 948 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2578 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 44, column 19)+                      _lhsOerrors =+                          ({-# LINE 44 "src-ag/Transform.ag" #-}+                           _setIerrors+                           {-# LINE 2584 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)+                      _lhsOmoduleDecl =+                          ({-# LINE 1187 "src-ag/Transform.ag" #-}+                           mzero+                           {-# LINE 2590 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 925, column 37)+                      _lhsOparamsCollect =+                          ({-# LINE 925 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2596 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 787, column 34)+                      _lhsOpragmas =+                          ({-# LINE 787 "src-ag/Transform.ag" #-}+                           id+                           {-# LINE 2602 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 973, column 36)+                      _lhsOquantCollect =+                          ({-# LINE 973 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2608 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 865, column 56)+                      _lhsOsemPragmasCollect =+                          ({-# LINE 865 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2614 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 626, column 32)+                      _lhsOtypeSyns =+                          ({-# LINE 626 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2620 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 145, column 15)+                      _lhsOuseMap =+                          ({-# LINE 145 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2626 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 771, column 32)+                      _lhsOwrappers =+                          ({-# LINE 771 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 2632 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOattrDecls =+                          ({-# LINE 144 "src-ag/Transform.ag" #-}+                           _lhsIattrDecls+                           {-# LINE 2638 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOattrs =+                          ({-# LINE 1316 "src-ag/Transform.ag" #-}+                           _lhsIattrs+                           {-# LINE 2644 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOdefSets =+                          ({-# LINE 109 "src-ag/Transform.ag" #-}+                           _lhsIdefSets+                           {-# LINE 2650 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _setOallFields =+                          ({-# LINE 136 "src-ag/Transform.ag" #-}+                           _lhsIallFields+                           {-# LINE 2656 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _setOallNonterminals =+                          ({-# LINE 93 "src-ag/Transform.ag" #-}+                           _lhsIallNonterminals+                           {-# LINE 2662 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _setOdefinedSets =+                          ({-# LINE 112 "src-ag/Transform.ag" #-}+                           _lhsIdefinedSets+                           {-# LINE 2668 "dist/build/Transform" #-}+                           )+                      ( _setIcollectedNames,_setIerrors,_setInontSet) =+                          set_ _setOallFields _setOallNonterminals _setOdefinedSets+                      ___node =+                          (Syn_Elem _lhsOattrDecls _lhsOattrOrderCollect _lhsOattrs _lhsOblocks _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorsMap _lhsOcollectedFields _lhsOcollectedInsts _lhsOcollectedMacros _lhsOcollectedMerges _lhsOcollectedNames _lhsOcollectedRules _lhsOcollectedSetNames _lhsOcollectedSigs _lhsOcollectedUniques _lhsOctxCollect _lhsOdefSets _lhsOderivings _lhsOerrors _lhsOmoduleDecl _lhsOparamsCollect _lhsOpragmas _lhsOquantCollect _lhsOsemPragmasCollect _lhsOtypeSyns _lhsOuseMap _lhsOwrappers)+                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))+sem_Elem_Module :: Pos ->+                   String ->+                   String ->+                   String ->+                   T_Elem+sem_Elem_Module pos_ name_ exports_ imports_ =+    (T_Elem (\ _lhsIallAttrDecls+               _lhsIallAttrs+               _lhsIallConstructors+               _lhsIallFields+               _lhsIallNonterminals+               _lhsIattrDecls+               _lhsIattrs+               _lhsIdefSets+               _lhsIdefinedSets+               _lhsIoptions ->+                 (let _lhsOmoduleDecl :: (Maybe (String,String,String))+                      _lhsOattrOrderCollect :: AttrOrderMap+                      _lhsOblocks :: Blocks+                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))+                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                      _lhsOcollectedNames :: (Set Identifier)+                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                      _lhsOcollectedSetNames :: (Set Identifier)+                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                      _lhsOctxCollect :: ContextMap+                      _lhsOderivings :: Derivings+                      _lhsOerrors :: (Seq Error)+                      _lhsOparamsCollect :: ParamMap+                      _lhsOpragmas :: (Options -> Options)+                      _lhsOquantCollect :: QuantMap+                      _lhsOsemPragmasCollect :: PragmaMap+                      _lhsOtypeSyns :: TypeSyns+                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                      _lhsOwrappers :: (Set NontermIdent)+                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))+                      -- "src-ag/Transform.ag"(line 1191, column 7)+                      _lhsOmoduleDecl =+                          ({-# LINE 1191 "src-ag/Transform.ag" #-}+                           Just (name_, exports_, imports_)+                           {-# LINE 2725 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 893, column 55)+                      _lhsOattrOrderCollect =+                          ({-# LINE 893 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2731 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 46, column 19)+                      _lhsOblocks =+                          ({-# LINE 46 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2737 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 164, column 32)+                      _lhsOcollectedArounds =+                          ({-# LINE 164 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2743 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 163, column 32)+                      _lhsOcollectedAugments =+                          ({-# LINE 163 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2749 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 132, column 31)+                      _lhsOcollectedConParams =+                          ({-# LINE 132 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2755 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 131, column 33)+                      _lhsOcollectedConstraints =+                          ({-# LINE 131 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2761 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 99, column 48)+                      _lhsOcollectedConstructorsMap =+                          ({-# LINE 99 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2767 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 130, column 28)+                      _lhsOcollectedFields =+                          ({-# LINE 130 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2773 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 161, column 32)+                      _lhsOcollectedInsts =+                          ({-# LINE 161 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2779 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)+                      _lhsOcollectedMacros =+                          ({-# LINE 1283 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2785 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 165, column 32)+                      _lhsOcollectedMerges =+                          ({-# LINE 165 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2791 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 91, column 50)+                      _lhsOcollectedNames =+                          ({-# LINE 91 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 2797 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 159, column 32)+                      _lhsOcollectedRules =+                          ({-# LINE 159 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2803 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 90, column 50)+                      _lhsOcollectedSetNames =+                          ({-# LINE 90 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 2809 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 160, column 32)+                      _lhsOcollectedSigs =+                          ({-# LINE 160 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2815 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 162, column 32)+                      _lhsOcollectedUniques =+                          ({-# LINE 162 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2821 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 948, column 34)+                      _lhsOctxCollect =+                          ({-# LINE 948 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2827 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 990, column 33)+                      _lhsOderivings =+                          ({-# LINE 990 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2833 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 44, column 19)+                      _lhsOerrors =+                          ({-# LINE 44 "src-ag/Transform.ag" #-}+                           Seq.empty+                           {-# LINE 2839 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 925, column 37)+                      _lhsOparamsCollect =+                          ({-# LINE 925 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2845 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 787, column 34)+                      _lhsOpragmas =+                          ({-# LINE 787 "src-ag/Transform.ag" #-}+                           id+                           {-# LINE 2851 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 973, column 36)+                      _lhsOquantCollect =+                          ({-# LINE 973 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2857 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 865, column 56)+                      _lhsOsemPragmasCollect =+                          ({-# LINE 865 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2863 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 626, column 32)+                      _lhsOtypeSyns =+                          ({-# LINE 626 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2869 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 145, column 15)+                      _lhsOuseMap =+                          ({-# LINE 145 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2875 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 771, column 32)+                      _lhsOwrappers =+                          ({-# LINE 771 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 2881 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOattrDecls =+                          ({-# LINE 144 "src-ag/Transform.ag" #-}+                           _lhsIattrDecls+                           {-# LINE 2887 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOattrs =+                          ({-# LINE 1316 "src-ag/Transform.ag" #-}+                           _lhsIattrs+                           {-# LINE 2893 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOdefSets =+                          ({-# LINE 109 "src-ag/Transform.ag" #-}+                           _lhsIdefSets+                           {-# LINE 2899 "dist/build/Transform" #-}+                           )+                      ___node =+                          (Syn_Elem _lhsOattrDecls _lhsOattrOrderCollect _lhsOattrs _lhsOblocks _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorsMap _lhsOcollectedFields _lhsOcollectedInsts _lhsOcollectedMacros _lhsOcollectedMerges _lhsOcollectedNames _lhsOcollectedRules _lhsOcollectedSetNames _lhsOcollectedSigs _lhsOcollectedUniques _lhsOctxCollect _lhsOdefSets _lhsOderivings _lhsOerrors _lhsOmoduleDecl _lhsOparamsCollect _lhsOpragmas _lhsOquantCollect _lhsOsemPragmasCollect _lhsOtypeSyns _lhsOuseMap _lhsOwrappers)+                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))+sem_Elem_Nocatas :: Pos ->+                    T_NontSet ->+                    T_Elem+sem_Elem_Nocatas pos_ (T_NontSet set_) =+    (T_Elem (\ _lhsIallAttrDecls+               _lhsIallAttrs+               _lhsIallConstructors+               _lhsIallFields+               _lhsIallNonterminals+               _lhsIattrDecls+               _lhsIattrs+               _lhsIdefSets+               _lhsIdefinedSets+               _lhsIoptions ->+                 (let _lhsOpragmas :: (Options -> Options)+                      _lhsOattrOrderCollect :: AttrOrderMap+                      _lhsOblocks :: Blocks+                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))+                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                      _lhsOcollectedNames :: (Set Identifier)+                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                      _lhsOcollectedSetNames :: (Set Identifier)+                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                      _lhsOctxCollect :: ContextMap+                      _lhsOderivings :: Derivings+                      _lhsOerrors :: (Seq Error)+                      _lhsOmoduleDecl :: (Maybe (String,String,String))+                      _lhsOparamsCollect :: ParamMap+                      _lhsOquantCollect :: QuantMap+                      _lhsOsemPragmasCollect :: PragmaMap+                      _lhsOtypeSyns :: TypeSyns+                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                      _lhsOwrappers :: (Set NontermIdent)+                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))+                      _setOallFields :: DataTypes+                      _setOallNonterminals :: (Set NontermIdent)+                      _setOdefinedSets :: DefinedSets+                      _setIcollectedNames :: (Set Identifier)+                      _setIerrors :: (Seq Error)+                      _setInontSet :: (Set NontermIdent)+                      -- "src-ag/Transform.ag"(line 781, column 14)+                      _lhsOpragmas =+                          ({-# LINE 781 "src-ag/Transform.ag" #-}+                           \o -> o { nocatas = _setInontSet `Set.union` nocatas o }+                           {-# LINE 2958 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 893, column 55)+                      _lhsOattrOrderCollect =+                          ({-# LINE 893 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2964 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 46, column 19)+                      _lhsOblocks =+                          ({-# LINE 46 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 2970 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 164, column 32)+                      _lhsOcollectedArounds =+                          ({-# LINE 164 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2976 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 163, column 32)+                      _lhsOcollectedAugments =+                          ({-# LINE 163 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2982 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 132, column 31)+                      _lhsOcollectedConParams =+                          ({-# LINE 132 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2988 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 131, column 33)+                      _lhsOcollectedConstraints =+                          ({-# LINE 131 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 2994 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 99, column 48)+                      _lhsOcollectedConstructorsMap =+                          ({-# LINE 99 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3000 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 130, column 28)+                      _lhsOcollectedFields =+                          ({-# LINE 130 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3006 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 161, column 32)+                      _lhsOcollectedInsts =+                          ({-# LINE 161 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3012 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)+                      _lhsOcollectedMacros =+                          ({-# LINE 1283 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3018 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 165, column 32)+                      _lhsOcollectedMerges =+                          ({-# LINE 165 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3024 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 91, column 50)+                      _lhsOcollectedNames =+                          ({-# LINE 91 "src-ag/Transform.ag" #-}+                           _setIcollectedNames+                           {-# LINE 3030 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 159, column 32)+                      _lhsOcollectedRules =+                          ({-# LINE 159 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3036 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 90, column 50)+                      _lhsOcollectedSetNames =+                          ({-# LINE 90 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 3042 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 160, column 32)+                      _lhsOcollectedSigs =+                          ({-# LINE 160 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3048 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 162, column 32)+                      _lhsOcollectedUniques =+                          ({-# LINE 162 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3054 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 948, column 34)+                      _lhsOctxCollect =+                          ({-# LINE 948 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3060 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 990, column 33)+                      _lhsOderivings =+                          ({-# LINE 990 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3066 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 44, column 19)+                      _lhsOerrors =+                          ({-# LINE 44 "src-ag/Transform.ag" #-}+                           _setIerrors+                           {-# LINE 3072 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)+                      _lhsOmoduleDecl =+                          ({-# LINE 1187 "src-ag/Transform.ag" #-}+                           mzero+                           {-# LINE 3078 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 925, column 37)+                      _lhsOparamsCollect =+                          ({-# LINE 925 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3084 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 973, column 36)+                      _lhsOquantCollect =+                          ({-# LINE 973 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3090 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 865, column 56)+                      _lhsOsemPragmasCollect =+                          ({-# LINE 865 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3096 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 626, column 32)+                      _lhsOtypeSyns =+                          ({-# LINE 626 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3102 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 145, column 15)+                      _lhsOuseMap =+                          ({-# LINE 145 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3108 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 771, column 32)+                      _lhsOwrappers =+                          ({-# LINE 771 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 3114 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOattrDecls =+                          ({-# LINE 144 "src-ag/Transform.ag" #-}+                           _lhsIattrDecls+                           {-# LINE 3120 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOattrs =+                          ({-# LINE 1316 "src-ag/Transform.ag" #-}+                           _lhsIattrs+                           {-# LINE 3126 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOdefSets =+                          ({-# LINE 109 "src-ag/Transform.ag" #-}+                           _lhsIdefSets+                           {-# LINE 3132 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _setOallFields =+                          ({-# LINE 136 "src-ag/Transform.ag" #-}+                           _lhsIallFields+                           {-# LINE 3138 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _setOallNonterminals =+                          ({-# LINE 93 "src-ag/Transform.ag" #-}+                           _lhsIallNonterminals+                           {-# LINE 3144 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _setOdefinedSets =+                          ({-# LINE 112 "src-ag/Transform.ag" #-}+                           _lhsIdefinedSets+                           {-# LINE 3150 "dist/build/Transform" #-}+                           )+                      ( _setIcollectedNames,_setIerrors,_setInontSet) =+                          set_ _setOallFields _setOallNonterminals _setOdefinedSets+                      ___node =+                          (Syn_Elem _lhsOattrDecls _lhsOattrOrderCollect _lhsOattrs _lhsOblocks _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorsMap _lhsOcollectedFields _lhsOcollectedInsts _lhsOcollectedMacros _lhsOcollectedMerges _lhsOcollectedNames _lhsOcollectedRules _lhsOcollectedSetNames _lhsOcollectedSigs _lhsOcollectedUniques _lhsOctxCollect _lhsOdefSets _lhsOderivings _lhsOerrors _lhsOmoduleDecl _lhsOparamsCollect _lhsOpragmas _lhsOquantCollect _lhsOsemPragmasCollect _lhsOtypeSyns _lhsOuseMap _lhsOwrappers)+                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))+sem_Elem_Pragma :: Pos ->+                   ([NontermIdent]) ->+                   T_Elem+sem_Elem_Pragma pos_ names_ =+    (T_Elem (\ _lhsIallAttrDecls+               _lhsIallAttrs+               _lhsIallConstructors+               _lhsIallFields+               _lhsIallNonterminals+               _lhsIattrDecls+               _lhsIattrs+               _lhsIdefSets+               _lhsIdefinedSets+               _lhsIoptions ->+                 (let _lhsOpragmas :: (Options -> Options)+                      _lhsOattrOrderCollect :: AttrOrderMap+                      _lhsOblocks :: Blocks+                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))+                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                      _lhsOcollectedNames :: (Set Identifier)+                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                      _lhsOcollectedSetNames :: (Set Identifier)+                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                      _lhsOctxCollect :: ContextMap+                      _lhsOderivings :: Derivings+                      _lhsOerrors :: (Seq Error)+                      _lhsOmoduleDecl :: (Maybe (String,String,String))+                      _lhsOparamsCollect :: ParamMap+                      _lhsOquantCollect :: QuantMap+                      _lhsOsemPragmasCollect :: PragmaMap+                      _lhsOtypeSyns :: TypeSyns+                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                      _lhsOwrappers :: (Set NontermIdent)+                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))+                      -- "src-ag/Transform.ag"(line 790, column 13)+                      _lhsOpragmas =+                          ({-# LINE 790 "src-ag/Transform.ag" #-}+                           let mk n o = case getName n of+                                          "gencatas"     -> o { folds       = True  }+                                          "nogencatas"   -> o { folds       = False }+                                          "gendatas"     -> o { dataTypes   = True  }+                                          "datarecords"  -> o { dataRecords = True  }+                                          "nogendatas"   -> o { dataTypes   = False }+                                          "gensems"      -> o { semfuns     = True  }+                                          "nogensems"    -> o { semfuns     = False }+                                          "gentypesigs"  -> o { typeSigs    = True  }+                                          "nogentypesigs"-> o { typeSigs    = False }+                                          "nocycle"      -> o { withCycle   = False }+                                          "cycle"        -> o { withCycle   = True  }+                                          "nostrictdata" -> o { strictData  = False }+                                          "strictdata"   -> o { strictData  = True  }+                                          "nostrictcase" -> o { strictCases = False }+                                          "strictcase"   -> o { strictCases = True  }+                                          "strictercase" -> o { strictCases = True, stricterCases = True }+                                          "nostrictwrap" -> o { strictWrap  = False }+                                          "strictwrap"   -> o { strictWrap  = True  }+                                          "novisit"      -> o { visit       = False }+                                          "visit"        -> o { visit       = True  }+                                          "nocase"       -> o { cases       = False }+                                          "case"         -> o { cases       = True  }+                                          "noseq"        -> o { withSeq     = False }+                                          "seq"          -> o { withSeq     = True  }+                                          "nounbox"      -> o { unbox       = False }+                                          "unbox"        -> o { unbox       = True  }+                                          "bangpats"     -> o { bangpats    = True  }+                                          "breadthfirst" -> o { breadthFirst = True }+                                          "breadthfirstStrict" -> o { breadthFirstStrict = True }+                                          "nooptimize"   -> o { cases = False , visit = False }+                                          "optimize"     -> o { cases = True  , visit = True  }+                                          "strictsem"    -> o { strictSems = True }+                                          "gentraces"    -> o { genTraces = True }+                                          "genusetraces" -> o { genUseTraces = True }+                                          "splitsems"    -> o { splitSems = True }+                                          "gencostcentres" -> o { genCostCentres = True }+                                          "sepsemmods"   -> o { sepSemMods = True }+                                          "genlinepragmas" -> o { genLinePragmas = True }+                                          "newtypes"       -> o { newtypes = True }+                                          "nonewtypes"     -> o { newtypes = False }+                                          "nooptimizations" -> o { noOptimizations = True }+                                          "kennedywarren"   -> o { kennedyWarren = True }+                                          "aspectag"        -> o { genAspectAG = True }+                                          'n':'o':'g':'r':'o':'u':'p':'_':atts+                                                            -> o { noGroup =  extract atts  ++ noGroup o }+                                          "rename"          -> o { rename = True }+                                          "parallel"        -> o { parallelInvoke = True }+                                          "monadicwrappers" -> o { monadicWrappers = True }+                                          "dummytokenvisit" -> o { dummyTokenVisit = True }+                                          "tupleasdummytoken" -> o { tupleAsDummyToken = True }+                                          "stateasdummytoken" -> o { tupleAsDummyToken = False }+                                          "strictdummytoken" -> o { strictDummyToken = True }+                                          "noperruletypesigs" -> o { noPerRuleTypeSigs = True }+                                          "noperstatetypesigs" -> o { noPerStateTypeSigs = True }+                                          "noeagerblackholing" -> o { noEagerBlackholing = True }+                                          "noperrulecostcentres" -> o { noPerRuleCostCentres = True }+                                          "nopervisitcostcentres" -> o { noPerVisitCostCentres = True }+                                          "helpinlining" -> o { helpInlining = True }+                                          "noinlinepragmas" -> o { noInlinePragmas = True }+                                          "aggressiveinlinepragmas" -> o { aggressiveInlinePragmas = True }+                                          "latehigherorderbindings" -> o { lateHigherOrderBinding = True }+                                          s              -> trace ("uuagc: ignoring unknown pragma: " ++ s) o+                           in \o -> foldr mk o names_+                           {-# LINE 3268 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 893, column 55)+                      _lhsOattrOrderCollect =+                          ({-# LINE 893 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3274 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 46, column 19)+                      _lhsOblocks =+                          ({-# LINE 46 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3280 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 164, column 32)+                      _lhsOcollectedArounds =+                          ({-# LINE 164 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3286 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 163, column 32)+                      _lhsOcollectedAugments =+                          ({-# LINE 163 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3292 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 132, column 31)+                      _lhsOcollectedConParams =+                          ({-# LINE 132 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3298 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 131, column 33)+                      _lhsOcollectedConstraints =+                          ({-# LINE 131 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3304 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 99, column 48)+                      _lhsOcollectedConstructorsMap =+                          ({-# LINE 99 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3310 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 130, column 28)+                      _lhsOcollectedFields =+                          ({-# LINE 130 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3316 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 161, column 32)+                      _lhsOcollectedInsts =+                          ({-# LINE 161 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3322 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)+                      _lhsOcollectedMacros =+                          ({-# LINE 1283 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3328 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 165, column 32)+                      _lhsOcollectedMerges =+                          ({-# LINE 165 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3334 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 91, column 50)+                      _lhsOcollectedNames =+                          ({-# LINE 91 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 3340 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 159, column 32)+                      _lhsOcollectedRules =+                          ({-# LINE 159 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3346 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 90, column 50)+                      _lhsOcollectedSetNames =+                          ({-# LINE 90 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 3352 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 160, column 32)+                      _lhsOcollectedSigs =+                          ({-# LINE 160 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3358 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 162, column 32)+                      _lhsOcollectedUniques =+                          ({-# LINE 162 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3364 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 948, column 34)+                      _lhsOctxCollect =+                          ({-# LINE 948 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3370 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 990, column 33)+                      _lhsOderivings =+                          ({-# LINE 990 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3376 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 44, column 19)+                      _lhsOerrors =+                          ({-# LINE 44 "src-ag/Transform.ag" #-}+                           Seq.empty+                           {-# LINE 3382 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)+                      _lhsOmoduleDecl =+                          ({-# LINE 1187 "src-ag/Transform.ag" #-}+                           mzero+                           {-# LINE 3388 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 925, column 37)+                      _lhsOparamsCollect =+                          ({-# LINE 925 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3394 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 973, column 36)+                      _lhsOquantCollect =+                          ({-# LINE 973 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3400 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 865, column 56)+                      _lhsOsemPragmasCollect =+                          ({-# LINE 865 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3406 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 626, column 32)+                      _lhsOtypeSyns =+                          ({-# LINE 626 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3412 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 145, column 15)+                      _lhsOuseMap =+                          ({-# LINE 145 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3418 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 771, column 32)+                      _lhsOwrappers =+                          ({-# LINE 771 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 3424 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOattrDecls =+                          ({-# LINE 144 "src-ag/Transform.ag" #-}+                           _lhsIattrDecls+                           {-# LINE 3430 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOattrs =+                          ({-# LINE 1316 "src-ag/Transform.ag" #-}+                           _lhsIattrs+                           {-# LINE 3436 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOdefSets =+                          ({-# LINE 109 "src-ag/Transform.ag" #-}+                           _lhsIdefSets+                           {-# LINE 3442 "dist/build/Transform" #-}+                           )+                      ___node =+                          (Syn_Elem _lhsOattrDecls _lhsOattrOrderCollect _lhsOattrs _lhsOblocks _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorsMap _lhsOcollectedFields _lhsOcollectedInsts _lhsOcollectedMacros _lhsOcollectedMerges _lhsOcollectedNames _lhsOcollectedRules _lhsOcollectedSetNames _lhsOcollectedSigs _lhsOcollectedUniques _lhsOctxCollect _lhsOdefSets _lhsOderivings _lhsOerrors _lhsOmoduleDecl _lhsOparamsCollect _lhsOpragmas _lhsOquantCollect _lhsOsemPragmasCollect _lhsOtypeSyns _lhsOuseMap _lhsOwrappers)+                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))+sem_Elem_Sem :: Pos ->+                ClassContext ->+                T_NontSet ->+                T_Attrs ->+                ([String]) ->+                T_SemAlts ->+                T_Elem+sem_Elem_Sem pos_ ctx_ (T_NontSet names_) (T_Attrs attrs_) quants_ (T_SemAlts alts_) =+    (T_Elem (\ _lhsIallAttrDecls+               _lhsIallAttrs+               _lhsIallConstructors+               _lhsIallFields+               _lhsIallNonterminals+               _lhsIattrDecls+               _lhsIattrs+               _lhsIdefSets+               _lhsIdefinedSets+               _lhsIoptions ->+                 (let _altsOnts :: (Set NontermIdent)+                      _lhsOctxCollect :: ContextMap+                      _lhsOquantCollect :: QuantMap+                      _attrsOnts :: (Set NontermIdent)+                      _lhsOattrOrderCollect :: AttrOrderMap+                      _lhsOblocks :: Blocks+                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))+                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                      _lhsOcollectedNames :: (Set Identifier)+                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                      _lhsOcollectedSetNames :: (Set Identifier)+                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                      _lhsOderivings :: Derivings+                      _lhsOerrors :: (Seq Error)+                      _lhsOmoduleDecl :: (Maybe (String,String,String))+                      _lhsOparamsCollect :: ParamMap+                      _lhsOpragmas :: (Options -> Options)+                      _lhsOsemPragmasCollect :: PragmaMap+                      _lhsOtypeSyns :: TypeSyns+                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                      _lhsOwrappers :: (Set NontermIdent)+                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))+                      _namesOallFields :: DataTypes+                      _namesOallNonterminals :: (Set NontermIdent)+                      _namesOdefinedSets :: DefinedSets+                      _attrsOallFields :: DataTypes+                      _attrsOallNonterminals :: (Set NontermIdent)+                      _attrsOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _attrsOattrs :: (Map NontermIdent (Attributes, Attributes))+                      _attrsOoptions :: Options+                      _altsOallAttrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _altsOallAttrs :: (Map NontermIdent (Attributes, Attributes))+                      _altsOallFields :: DataTypes+                      _altsOoptions :: Options+                      _namesIcollectedNames :: (Set Identifier)+                      _namesIerrors :: (Seq Error)+                      _namesInontSet :: (Set NontermIdent)+                      _attrsIattrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _attrsIattrs :: (Map NontermIdent (Attributes, Attributes))+                      _attrsIerrors :: (Seq Error)+                      _attrsIuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                      _altsIattrOrderCollect :: AttrOrderMap+                      _altsIcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                      _altsIcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                      _altsIcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                      _altsIcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                      _altsIcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                      _altsIcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                      _altsIcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                      _altsIerrors :: (Seq Error)+                      _altsIsemPragmasCollect :: PragmaMap+                      -- "src-ag/Transform.ag"(line 179, column 10)+                      _altsOnts =+                          ({-# LINE 179 "src-ag/Transform.ag" #-}+                           _namesInontSet+                           {-# LINE 3530 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 952, column 7)+                      _lhsOctxCollect =+                          ({-# LINE 952 "src-ag/Transform.ag" #-}+                           if null ctx_+                           then Map.empty+                           else Map.fromList [(nt, ctx_) | nt <- Set.toList _namesInontSet]+                           {-# LINE 3538 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 977, column 7)+                      _lhsOquantCollect =+                          ({-# LINE 977 "src-ag/Transform.ag" #-}+                           if null quants_+                           then Map.empty+                           else Map.fromList [(nt, quants_) | nt <- Set.toList _namesInontSet]+                           {-# LINE 3546 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 1014, column 10)+                      _attrsOnts =+                          ({-# LINE 1014 "src-ag/Transform.ag" #-}+                           _namesInontSet+                           {-# LINE 3552 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 893, column 55)+                      _lhsOattrOrderCollect =+                          ({-# LINE 893 "src-ag/Transform.ag" #-}+                           _altsIattrOrderCollect+                           {-# LINE 3558 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 46, column 19)+                      _lhsOblocks =+                          ({-# LINE 46 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3564 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 164, column 32)+                      _lhsOcollectedArounds =+                          ({-# LINE 164 "src-ag/Transform.ag" #-}+                           _altsIcollectedArounds+                           {-# LINE 3570 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 163, column 32)+                      _lhsOcollectedAugments =+                          ({-# LINE 163 "src-ag/Transform.ag" #-}+                           _altsIcollectedAugments+                           {-# LINE 3576 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 132, column 31)+                      _lhsOcollectedConParams =+                          ({-# LINE 132 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3582 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 131, column 33)+                      _lhsOcollectedConstraints =+                          ({-# LINE 131 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3588 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 99, column 48)+                      _lhsOcollectedConstructorsMap =+                          ({-# LINE 99 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3594 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 130, column 28)+                      _lhsOcollectedFields =+                          ({-# LINE 130 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3600 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 161, column 32)+                      _lhsOcollectedInsts =+                          ({-# LINE 161 "src-ag/Transform.ag" #-}+                           _altsIcollectedInsts+                           {-# LINE 3606 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)+                      _lhsOcollectedMacros =+                          ({-# LINE 1283 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3612 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 165, column 32)+                      _lhsOcollectedMerges =+                          ({-# LINE 165 "src-ag/Transform.ag" #-}+                           _altsIcollectedMerges+                           {-# LINE 3618 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 91, column 50)+                      _lhsOcollectedNames =+                          ({-# LINE 91 "src-ag/Transform.ag" #-}+                           _namesIcollectedNames+                           {-# LINE 3624 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 159, column 32)+                      _lhsOcollectedRules =+                          ({-# LINE 159 "src-ag/Transform.ag" #-}+                           _altsIcollectedRules+                           {-# LINE 3630 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 90, column 50)+                      _lhsOcollectedSetNames =+                          ({-# LINE 90 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 3636 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 160, column 32)+                      _lhsOcollectedSigs =+                          ({-# LINE 160 "src-ag/Transform.ag" #-}+                           _altsIcollectedSigs+                           {-# LINE 3642 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 162, column 32)+                      _lhsOcollectedUniques =+                          ({-# LINE 162 "src-ag/Transform.ag" #-}+                           _altsIcollectedUniques+                           {-# LINE 3648 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 990, column 33)+                      _lhsOderivings =+                          ({-# LINE 990 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3654 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 44, column 19)+                      _lhsOerrors =+                          ({-# LINE 44 "src-ag/Transform.ag" #-}+                           _namesIerrors Seq.>< _attrsIerrors Seq.>< _altsIerrors+                           {-# LINE 3660 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)+                      _lhsOmoduleDecl =+                          ({-# LINE 1187 "src-ag/Transform.ag" #-}+                           mzero+                           {-# LINE 3666 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 925, column 37)+                      _lhsOparamsCollect =+                          ({-# LINE 925 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3672 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 787, column 34)+                      _lhsOpragmas =+                          ({-# LINE 787 "src-ag/Transform.ag" #-}+                           id+                           {-# LINE 3678 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 865, column 56)+                      _lhsOsemPragmasCollect =+                          ({-# LINE 865 "src-ag/Transform.ag" #-}+                           _altsIsemPragmasCollect+                           {-# LINE 3684 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 626, column 32)+                      _lhsOtypeSyns =+                          ({-# LINE 626 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3690 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 145, column 15)+                      _lhsOuseMap =+                          ({-# LINE 145 "src-ag/Transform.ag" #-}+                           _attrsIuseMap+                           {-# LINE 3696 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 771, column 32)+                      _lhsOwrappers =+                          ({-# LINE 771 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 3702 "dist/build/Transform" #-}+                           )+                      -- copy rule (up)+                      _lhsOattrDecls =+                          ({-# LINE 144 "src-ag/Transform.ag" #-}+                           _attrsIattrDecls+                           {-# LINE 3708 "dist/build/Transform" #-}+                           )+                      -- copy rule (up)+                      _lhsOattrs =+                          ({-# LINE 1316 "src-ag/Transform.ag" #-}+                           _attrsIattrs+                           {-# LINE 3714 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOdefSets =+                          ({-# LINE 109 "src-ag/Transform.ag" #-}+                           _lhsIdefSets+                           {-# LINE 3720 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _namesOallFields =+                          ({-# LINE 136 "src-ag/Transform.ag" #-}+                           _lhsIallFields+                           {-# LINE 3726 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _namesOallNonterminals =+                          ({-# LINE 93 "src-ag/Transform.ag" #-}+                           _lhsIallNonterminals+                           {-# LINE 3732 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _namesOdefinedSets =+                          ({-# LINE 112 "src-ag/Transform.ag" #-}+                           _lhsIdefinedSets+                           {-# LINE 3738 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _attrsOallFields =+                          ({-# LINE 136 "src-ag/Transform.ag" #-}+                           _lhsIallFields+                           {-# LINE 3744 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _attrsOallNonterminals =+                          ({-# LINE 93 "src-ag/Transform.ag" #-}+                           _lhsIallNonterminals+                           {-# LINE 3750 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _attrsOattrDecls =+                          ({-# LINE 144 "src-ag/Transform.ag" #-}+                           _lhsIattrDecls+                           {-# LINE 3756 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _attrsOattrs =+                          ({-# LINE 1316 "src-ag/Transform.ag" #-}+                           _lhsIattrs+                           {-# LINE 3762 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _attrsOoptions =+                          ({-# LINE 40 "src-ag/Transform.ag" #-}+                           _lhsIoptions+                           {-# LINE 3768 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _altsOallAttrDecls =+                          ({-# LINE 894 "src-ag/Transform.ag" #-}+                           _lhsIallAttrDecls+                           {-# LINE 3774 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _altsOallAttrs =+                          ({-# LINE 1306 "src-ag/Transform.ag" #-}+                           _lhsIallAttrs+                           {-# LINE 3780 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _altsOallFields =+                          ({-# LINE 136 "src-ag/Transform.ag" #-}+                           _lhsIallFields+                           {-# LINE 3786 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _altsOoptions =+                          ({-# LINE 40 "src-ag/Transform.ag" #-}+                           _lhsIoptions+                           {-# LINE 3792 "dist/build/Transform" #-}+                           )+                      ( _namesIcollectedNames,_namesIerrors,_namesInontSet) =+                          names_ _namesOallFields _namesOallNonterminals _namesOdefinedSets+                      ( _attrsIattrDecls,_attrsIattrs,_attrsIerrors,_attrsIuseMap) =+                          attrs_ _attrsOallFields _attrsOallNonterminals _attrsOattrDecls _attrsOattrs _attrsOnts _attrsOoptions+                      ( _altsIattrOrderCollect,_altsIcollectedArounds,_altsIcollectedAugments,_altsIcollectedInsts,_altsIcollectedMerges,_altsIcollectedRules,_altsIcollectedSigs,_altsIcollectedUniques,_altsIerrors,_altsIsemPragmasCollect) =+                          alts_ _altsOallAttrDecls _altsOallAttrs _altsOallFields _altsOnts _altsOoptions+                      ___node =+                          (Syn_Elem _lhsOattrDecls _lhsOattrOrderCollect _lhsOattrs _lhsOblocks _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorsMap _lhsOcollectedFields _lhsOcollectedInsts _lhsOcollectedMacros _lhsOcollectedMerges _lhsOcollectedNames _lhsOcollectedRules _lhsOcollectedSetNames _lhsOcollectedSigs _lhsOcollectedUniques _lhsOctxCollect _lhsOdefSets _lhsOderivings _lhsOerrors _lhsOmoduleDecl _lhsOparamsCollect _lhsOpragmas _lhsOquantCollect _lhsOsemPragmasCollect _lhsOtypeSyns _lhsOuseMap _lhsOwrappers)+                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))+sem_Elem_Set :: Pos ->+                NontermIdent ->+                Bool ->+                T_NontSet ->+                T_Elem+sem_Elem_Set pos_ name_ merge_ (T_NontSet set_) =+    (T_Elem (\ _lhsIallAttrDecls+               _lhsIallAttrs+               _lhsIallConstructors+               _lhsIallFields+               _lhsIallNonterminals+               _lhsIattrDecls+               _lhsIattrs+               _lhsIdefSets+               _lhsIdefinedSets+               _lhsIoptions ->+                 (let _lhsOcollectedSetNames :: (Set Identifier)+                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))+                      _lhsOerrors :: (Seq Error)+                      _lhsOattrOrderCollect :: AttrOrderMap+                      _lhsOblocks :: Blocks+                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))+                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                      _lhsOcollectedNames :: (Set Identifier)+                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                      _lhsOctxCollect :: ContextMap+                      _lhsOderivings :: Derivings+                      _lhsOmoduleDecl :: (Maybe (String,String,String))+                      _lhsOparamsCollect :: ParamMap+                      _lhsOpragmas :: (Options -> Options)+                      _lhsOquantCollect :: QuantMap+                      _lhsOsemPragmasCollect :: PragmaMap+                      _lhsOtypeSyns :: TypeSyns+                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                      _lhsOwrappers :: (Set NontermIdent)+                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))+                      _setOallFields :: DataTypes+                      _setOallNonterminals :: (Set NontermIdent)+                      _setOdefinedSets :: DefinedSets+                      _setIcollectedNames :: (Set Identifier)+                      _setIerrors :: (Seq Error)+                      _setInontSet :: (Set NontermIdent)+                      -- "src-ag/Transform.ag"(line 582, column 10)+                      _lhsOcollectedSetNames =+                          ({-# LINE 582 "src-ag/Transform.ag" #-}+                           Set.singleton name_+                           {-# LINE 3859 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 699, column 13)+                      (_defSets2,_errs) =+                          ({-# LINE 699 "src-ag/Transform.ag" #-}+                           let allUsedNames = Set.unions [ maybe (Set.singleton n)+                                                                 snd+                                                                 (Map.lookup n _lhsIdefSets)+                                                         | n <- Set.toList _setIcollectedNames+                                                         ]+                               (nontSet,e1) | Set.member name_ allUsedNames+                                                        = (Set.empty, Seq.singleton(CyclicSet name_))+                                            | otherwise = (_setInontSet, Seq.empty)+                               (res, e2) = let toAdd = (nontSet,Set.insert name_ allUsedNames)+                                               union (a,b) (c,d) = (a `Set.union` c, b `Set.union` d)+                                           in if Set.member name_ _lhsIallNonterminals || not merge_+                                              then checkDuplicate DupSet name_ toAdd _lhsIdefSets+                                              else (Map.insertWith union name_ toAdd _lhsIdefSets, Seq.empty)+                           in (res, e1 Seq.>< e2)+                           {-# LINE 3878 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 713, column 9)+                      _lhsOdefSets =+                          ({-# LINE 713 "src-ag/Transform.ag" #-}+                           _defSets2+                           {-# LINE 3884 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 713, column 9)+                      _lhsOerrors =+                          ({-# LINE 714 "src-ag/Transform.ag" #-}+                           _errs >< _setIerrors+                           {-# LINE 3890 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 893, column 55)+                      _lhsOattrOrderCollect =+                          ({-# LINE 893 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3896 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 46, column 19)+                      _lhsOblocks =+                          ({-# LINE 46 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3902 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 164, column 32)+                      _lhsOcollectedArounds =+                          ({-# LINE 164 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3908 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 163, column 32)+                      _lhsOcollectedAugments =+                          ({-# LINE 163 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3914 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 132, column 31)+                      _lhsOcollectedConParams =+                          ({-# LINE 132 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3920 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 131, column 33)+                      _lhsOcollectedConstraints =+                          ({-# LINE 131 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3926 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 99, column 48)+                      _lhsOcollectedConstructorsMap =+                          ({-# LINE 99 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3932 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 130, column 28)+                      _lhsOcollectedFields =+                          ({-# LINE 130 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3938 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 161, column 32)+                      _lhsOcollectedInsts =+                          ({-# LINE 161 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3944 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)+                      _lhsOcollectedMacros =+                          ({-# LINE 1283 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3950 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 165, column 32)+                      _lhsOcollectedMerges =+                          ({-# LINE 165 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3956 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 91, column 50)+                      _lhsOcollectedNames =+                          ({-# LINE 91 "src-ag/Transform.ag" #-}+                           _setIcollectedNames+                           {-# LINE 3962 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 159, column 32)+                      _lhsOcollectedRules =+                          ({-# LINE 159 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3968 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 160, column 32)+                      _lhsOcollectedSigs =+                          ({-# LINE 160 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3974 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 162, column 32)+                      _lhsOcollectedUniques =+                          ({-# LINE 162 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 3980 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 948, column 34)+                      _lhsOctxCollect =+                          ({-# LINE 948 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3986 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 990, column 33)+                      _lhsOderivings =+                          ({-# LINE 990 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 3992 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)+                      _lhsOmoduleDecl =+                          ({-# LINE 1187 "src-ag/Transform.ag" #-}+                           mzero+                           {-# LINE 3998 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 925, column 37)+                      _lhsOparamsCollect =+                          ({-# LINE 925 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4004 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 787, column 34)+                      _lhsOpragmas =+                          ({-# LINE 787 "src-ag/Transform.ag" #-}+                           id+                           {-# LINE 4010 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 973, column 36)+                      _lhsOquantCollect =+                          ({-# LINE 973 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4016 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 865, column 56)+                      _lhsOsemPragmasCollect =+                          ({-# LINE 865 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4022 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 626, column 32)+                      _lhsOtypeSyns =+                          ({-# LINE 626 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4028 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 145, column 15)+                      _lhsOuseMap =+                          ({-# LINE 145 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4034 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 771, column 32)+                      _lhsOwrappers =+                          ({-# LINE 771 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 4040 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOattrDecls =+                          ({-# LINE 144 "src-ag/Transform.ag" #-}+                           _lhsIattrDecls+                           {-# LINE 4046 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOattrs =+                          ({-# LINE 1316 "src-ag/Transform.ag" #-}+                           _lhsIattrs+                           {-# LINE 4052 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _setOallFields =+                          ({-# LINE 136 "src-ag/Transform.ag" #-}+                           _lhsIallFields+                           {-# LINE 4058 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _setOallNonterminals =+                          ({-# LINE 93 "src-ag/Transform.ag" #-}+                           _lhsIallNonterminals+                           {-# LINE 4064 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _setOdefinedSets =+                          ({-# LINE 112 "src-ag/Transform.ag" #-}+                           _lhsIdefinedSets+                           {-# LINE 4070 "dist/build/Transform" #-}+                           )+                      ( _setIcollectedNames,_setIerrors,_setInontSet) =+                          set_ _setOallFields _setOallNonterminals _setOdefinedSets+                      ___node =+                          (Syn_Elem _lhsOattrDecls _lhsOattrOrderCollect _lhsOattrs _lhsOblocks _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorsMap _lhsOcollectedFields _lhsOcollectedInsts _lhsOcollectedMacros _lhsOcollectedMerges _lhsOcollectedNames _lhsOcollectedRules _lhsOcollectedSetNames _lhsOcollectedSigs _lhsOcollectedUniques _lhsOctxCollect _lhsOdefSets _lhsOderivings _lhsOerrors _lhsOmoduleDecl _lhsOparamsCollect _lhsOpragmas _lhsOquantCollect _lhsOsemPragmasCollect _lhsOtypeSyns _lhsOuseMap _lhsOwrappers)+                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))+sem_Elem_Txt :: Pos ->+                BlockKind ->+                (Maybe NontermIdent) ->+                ([String]) ->+                T_Elem+sem_Elem_Txt pos_ kind_ mbNt_ lines_ =+    (T_Elem (\ _lhsIallAttrDecls+               _lhsIallAttrs+               _lhsIallConstructors+               _lhsIallFields+               _lhsIallNonterminals+               _lhsIattrDecls+               _lhsIattrs+               _lhsIdefSets+               _lhsIdefinedSets+               _lhsIoptions ->+                 (let _lhsOblocks :: Blocks+                      _lhsOerrors :: (Seq Error)+                      _lhsOattrOrderCollect :: AttrOrderMap+                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))+                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                      _lhsOcollectedNames :: (Set Identifier)+                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                      _lhsOcollectedSetNames :: (Set Identifier)+                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                      _lhsOctxCollect :: ContextMap+                      _lhsOderivings :: Derivings+                      _lhsOmoduleDecl :: (Maybe (String,String,String))+                      _lhsOparamsCollect :: ParamMap+                      _lhsOpragmas :: (Options -> Options)+                      _lhsOquantCollect :: QuantMap+                      _lhsOsemPragmasCollect :: PragmaMap+                      _lhsOtypeSyns :: TypeSyns+                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                      _lhsOwrappers :: (Set NontermIdent)+                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))+                      -- "src-ag/Transform.ag"(line 188, column 10)+                      _blockInfo =+                          ({-# LINE 188 "src-ag/Transform.ag" #-}+                           ( kind_+                           , mbNt_+                           )+                           {-# LINE 4129 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 191, column 10)+                      _blockValue =+                          ({-# LINE 191 "src-ag/Transform.ag" #-}+                           [(lines_, pos_)]+                           {-# LINE 4135 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 192, column 10)+                      _lhsOblocks =+                          ({-# LINE 192 "src-ag/Transform.ag" #-}+                           Map.singleton _blockInfo     _blockValue+                           {-# LINE 4141 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 193, column 10)+                      _lhsOerrors =+                          ({-# LINE 193 "src-ag/Transform.ag" #-}+                           if checkParseBlock _lhsIoptions+                           then let exp = Expression pos_ tks+                                    tks = [tk]+                                    tk  = HsToken (unlines lines_) pos_+                                in Seq.fromList $ checkBlock $ exp+                           else Seq.empty+                           {-# LINE 4152 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 893, column 55)+                      _lhsOattrOrderCollect =+                          ({-# LINE 893 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4158 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 164, column 32)+                      _lhsOcollectedArounds =+                          ({-# LINE 164 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4164 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 163, column 32)+                      _lhsOcollectedAugments =+                          ({-# LINE 163 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4170 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 132, column 31)+                      _lhsOcollectedConParams =+                          ({-# LINE 132 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4176 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 131, column 33)+                      _lhsOcollectedConstraints =+                          ({-# LINE 131 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4182 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 99, column 48)+                      _lhsOcollectedConstructorsMap =+                          ({-# LINE 99 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4188 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 130, column 28)+                      _lhsOcollectedFields =+                          ({-# LINE 130 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4194 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 161, column 32)+                      _lhsOcollectedInsts =+                          ({-# LINE 161 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4200 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)+                      _lhsOcollectedMacros =+                          ({-# LINE 1283 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4206 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 165, column 32)+                      _lhsOcollectedMerges =+                          ({-# LINE 165 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4212 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 91, column 50)+                      _lhsOcollectedNames =+                          ({-# LINE 91 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 4218 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 159, column 32)+                      _lhsOcollectedRules =+                          ({-# LINE 159 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4224 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 90, column 50)+                      _lhsOcollectedSetNames =+                          ({-# LINE 90 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 4230 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 160, column 32)+                      _lhsOcollectedSigs =+                          ({-# LINE 160 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4236 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 162, column 32)+                      _lhsOcollectedUniques =+                          ({-# LINE 162 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4242 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 948, column 34)+                      _lhsOctxCollect =+                          ({-# LINE 948 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4248 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 990, column 33)+                      _lhsOderivings =+                          ({-# LINE 990 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4254 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)+                      _lhsOmoduleDecl =+                          ({-# LINE 1187 "src-ag/Transform.ag" #-}+                           mzero+                           {-# LINE 4260 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 925, column 37)+                      _lhsOparamsCollect =+                          ({-# LINE 925 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4266 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 787, column 34)+                      _lhsOpragmas =+                          ({-# LINE 787 "src-ag/Transform.ag" #-}+                           id+                           {-# LINE 4272 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 973, column 36)+                      _lhsOquantCollect =+                          ({-# LINE 973 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4278 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 865, column 56)+                      _lhsOsemPragmasCollect =+                          ({-# LINE 865 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4284 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 626, column 32)+                      _lhsOtypeSyns =+                          ({-# LINE 626 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4290 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 145, column 15)+                      _lhsOuseMap =+                          ({-# LINE 145 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4296 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 771, column 32)+                      _lhsOwrappers =+                          ({-# LINE 771 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 4302 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOattrDecls =+                          ({-# LINE 144 "src-ag/Transform.ag" #-}+                           _lhsIattrDecls+                           {-# LINE 4308 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOattrs =+                          ({-# LINE 1316 "src-ag/Transform.ag" #-}+                           _lhsIattrs+                           {-# LINE 4314 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOdefSets =+                          ({-# LINE 109 "src-ag/Transform.ag" #-}+                           _lhsIdefSets+                           {-# LINE 4320 "dist/build/Transform" #-}+                           )+                      ___node =+                          (Syn_Elem _lhsOattrDecls _lhsOattrOrderCollect _lhsOattrs _lhsOblocks _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorsMap _lhsOcollectedFields _lhsOcollectedInsts _lhsOcollectedMacros _lhsOcollectedMerges _lhsOcollectedNames _lhsOcollectedRules _lhsOcollectedSetNames _lhsOcollectedSigs _lhsOcollectedUniques _lhsOctxCollect _lhsOdefSets _lhsOderivings _lhsOerrors _lhsOmoduleDecl _lhsOparamsCollect _lhsOpragmas _lhsOquantCollect _lhsOsemPragmasCollect _lhsOtypeSyns _lhsOuseMap _lhsOwrappers)+                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))+sem_Elem_Type :: Pos ->+                 ClassContext ->+                 NontermIdent ->+                 ([Identifier]) ->+                 ComplexType ->+                 T_Elem+sem_Elem_Type pos_ ctx_ name_ params_ type_ =+    (T_Elem (\ _lhsIallAttrDecls+               _lhsIallAttrs+               _lhsIallConstructors+               _lhsIallFields+               _lhsIallNonterminals+               _lhsIattrDecls+               _lhsIattrs+               _lhsIdefSets+               _lhsIdefinedSets+               _lhsIoptions ->+                 (let _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                      _lhsOcollectedNames :: (Set Identifier)+                      _lhsOtypeSyns :: TypeSyns+                      _lhsOparamsCollect :: ParamMap+                      _lhsOctxCollect :: ContextMap+                      _lhsOattrOrderCollect :: AttrOrderMap+                      _lhsOblocks :: Blocks+                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))+                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                      _lhsOcollectedSetNames :: (Set Identifier)+                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                      _lhsOderivings :: Derivings+                      _lhsOerrors :: (Seq Error)+                      _lhsOmoduleDecl :: (Maybe (String,String,String))+                      _lhsOpragmas :: (Options -> Options)+                      _lhsOquantCollect :: QuantMap+                      _lhsOsemPragmasCollect :: PragmaMap+                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                      _lhsOwrappers :: (Set NontermIdent)+                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))+                      -- "src-ag/Transform.ag"(line 255, column 10)+                      _lhsOcollectedFields =+                          ({-# LINE 255 "src-ag/Transform.ag" #-}+                           map (\(x,y)->(name_, x, y)) _expanded+                           {-# LINE 4376 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 585, column 11)+                      _lhsOcollectedNames =+                          ({-# LINE 585 "src-ag/Transform.ag" #-}+                           Set.singleton name_+                           {-# LINE 4382 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 639, column 11)+                      _expanded =+                          ({-# LINE 639 "src-ag/Transform.ag" #-}+                           case _argType of+                                   List tp -> [(Ident "Cons" pos_, [(Ident "hd" pos_, tp)+                                                                   ,(Ident "tl" pos_, NT name_ (map getName params_) False)+                                                                   ]+                                               )+                                              ,(Ident "Nil" pos_,  [])+                                              ]+                                   Maybe tp -> [(Ident "Just" pos_, [(Ident "just" pos_, tp)+                                                                   ]+                                               )+                                              ,(Ident "Nothing" pos_,  [])+                                              ]+                                   Either tp1 tp2 -> [+                                                (Ident "Left"    pos_,  [(Ident "left"  pos_, tp1) ])+                                              , (Ident "Right"   pos_,  [(Ident "right" pos_, tp2) ])+                                              ]+                                   Map tp1 tp2 -> [ (Ident "Entry" pos_, [ (Ident "key" pos_, tp1)+                                                                         , (Ident "val" pos_, tp2)+                                                                         , (Ident "tl" pos_, NT name_ (map getName params_) False)+                                                                         ])+                                                  , (Ident "Nil" pos_, [])+                                                  ]+                                   IntMap tp   -> [ (Ident "Entry" pos_, [ (Ident "key" pos_, Haskell "Int")+                                                                         , (Ident "val" pos_, tp)+                                                                         , (Ident "tl" pos_, NT name_ (map getName params_) False)+                                                                         ])+                                                  , (Ident "Nil" pos_, [])+                                                  ]+                                   OrdSet tp   -> [ (Ident "Entry" pos_, [ (Ident "val" pos_, tp)+                                                                         , (Ident "tl" pos_, NT name_ (map getName params_) False) ])+                                                  , (Ident "Nil" pos_, [])+                                                  ]+                                   IntSet      -> [ (Ident "Entry" pos_, [ (Ident "val" pos_, Haskell "Int")+                                                                         , (Ident "tl" pos_, NT name_ (map getName params_) False) ])+                                                  , (Ident "Nil" pos_, [])+                                                  ]+                                   Tuple xs -> [(Ident "Tuple" pos_, xs)]+                           {-# LINE 4424 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 676, column 11)+                      _argType =+                          ({-# LINE 676 "src-ag/Transform.ag" #-}+                           case type_ of+                            Maybe tp       -> Maybe  (  makeType _lhsIallNonterminals tp)+                            Either tp1 tp2 -> Either (  makeType _lhsIallNonterminals tp1) (makeType _lhsIallNonterminals tp2)+                            List tp        -> List   (  makeType _lhsIallNonterminals tp)+                            Tuple xs       -> Tuple [(f,makeType _lhsIallNonterminals tp) | (f,tp) <- xs]+                            Map tp1 tp2    -> Map    (  makeType _lhsIallNonterminals tp1) (makeType _lhsIallNonterminals tp2)+                            IntMap tp      -> IntMap (  makeType _lhsIallNonterminals tp)+                            OrdSet tp      -> OrdSet (  makeType _lhsIallNonterminals tp)+                            IntSet         -> IntSet+                           {-# LINE 4438 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 685, column 11)+                      _lhsOtypeSyns =+                          ({-# LINE 685 "src-ag/Transform.ag" #-}+                           [(name_,_argType)]+                           {-# LINE 4444 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 935, column 7)+                      _lhsOparamsCollect =+                          ({-# LINE 935 "src-ag/Transform.ag" #-}+                           if null params_+                           then Map.empty+                           else Map.singleton name_ params_+                           {-# LINE 4452 "dist/build/Transform" #-}+                           )+                      -- "src-ag/Transform.ag"(line 958, column 7)+                      _lhsOctxCollect =+                          ({-# LINE 958 "src-ag/Transform.ag" #-}+                           if null ctx_+                           then Map.empty+                           else Map.singleton name_ ctx_+                           {-# LINE 4460 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 893, column 55)+                      _lhsOattrOrderCollect =+                          ({-# LINE 893 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4466 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 46, column 19)+                      _lhsOblocks =+                          ({-# LINE 46 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4472 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 164, column 32)+                      _lhsOcollectedArounds =+                          ({-# LINE 164 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4478 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 163, column 32)+                      _lhsOcollectedAugments =+                          ({-# LINE 163 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4484 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 132, column 31)+                      _lhsOcollectedConParams =+                          ({-# LINE 132 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4490 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 131, column 33)+                      _lhsOcollectedConstraints =+                          ({-# LINE 131 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4496 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 99, column 48)+                      _lhsOcollectedConstructorsMap =+                          ({-# LINE 99 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4502 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 161, column 32)+                      _lhsOcollectedInsts =+                          ({-# LINE 161 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4508 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)+                      _lhsOcollectedMacros =+                          ({-# LINE 1283 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4514 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 165, column 32)+                      _lhsOcollectedMerges =+                          ({-# LINE 165 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4520 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 159, column 32)+                      _lhsOcollectedRules =+                          ({-# LINE 159 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4526 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 90, column 50)+                      _lhsOcollectedSetNames =+                          ({-# LINE 90 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 4532 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 160, column 32)+                      _lhsOcollectedSigs =+                          ({-# LINE 160 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4538 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 162, column 32)+                      _lhsOcollectedUniques =+                          ({-# LINE 162 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4544 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 990, column 33)+                      _lhsOderivings =+                          ({-# LINE 990 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4550 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 44, column 19)+                      _lhsOerrors =+                          ({-# LINE 44 "src-ag/Transform.ag" #-}+                           Seq.empty+                           {-# LINE 4556 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)+                      _lhsOmoduleDecl =+                          ({-# LINE 1187 "src-ag/Transform.ag" #-}+                           mzero+                           {-# LINE 4562 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 787, column 34)+                      _lhsOpragmas =+                          ({-# LINE 787 "src-ag/Transform.ag" #-}+                           id+                           {-# LINE 4568 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 973, column 36)+                      _lhsOquantCollect =+                          ({-# LINE 973 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4574 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 865, column 56)+                      _lhsOsemPragmasCollect =+                          ({-# LINE 865 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4580 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 145, column 15)+                      _lhsOuseMap =+                          ({-# LINE 145 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4586 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 771, column 32)+                      _lhsOwrappers =+                          ({-# LINE 771 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 4592 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOattrDecls =+                          ({-# LINE 144 "src-ag/Transform.ag" #-}+                           _lhsIattrDecls+                           {-# LINE 4598 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOattrs =+                          ({-# LINE 1316 "src-ag/Transform.ag" #-}+                           _lhsIattrs+                           {-# LINE 4604 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOdefSets =+                          ({-# LINE 109 "src-ag/Transform.ag" #-}+                           _lhsIdefSets+                           {-# LINE 4610 "dist/build/Transform" #-}+                           )+                      ___node =+                          (Syn_Elem _lhsOattrDecls _lhsOattrOrderCollect _lhsOattrs _lhsOblocks _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorsMap _lhsOcollectedFields _lhsOcollectedInsts _lhsOcollectedMacros _lhsOcollectedMerges _lhsOcollectedNames _lhsOcollectedRules _lhsOcollectedSetNames _lhsOcollectedSigs _lhsOcollectedUniques _lhsOctxCollect _lhsOdefSets _lhsOderivings _lhsOerrors _lhsOmoduleDecl _lhsOparamsCollect _lhsOpragmas _lhsOquantCollect _lhsOsemPragmasCollect _lhsOtypeSyns _lhsOuseMap _lhsOwrappers)+                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))+sem_Elem_Wrapper :: Pos ->+                    T_NontSet ->+                    T_Elem+sem_Elem_Wrapper pos_ (T_NontSet set_) =+    (T_Elem (\ _lhsIallAttrDecls+               _lhsIallAttrs+               _lhsIallConstructors+               _lhsIallFields+               _lhsIallNonterminals+               _lhsIattrDecls+               _lhsIattrs+               _lhsIdefSets+               _lhsIdefinedSets+               _lhsIoptions ->+                 (let _lhsOwrappers :: (Set NontermIdent)+                      _lhsOattrOrderCollect :: AttrOrderMap+                      _lhsOblocks :: Blocks+                      _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                      _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                      _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                      _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                      _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))+                      _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                      _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                      _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                      _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                      _lhsOcollectedNames :: (Set Identifier)+                      _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                      _lhsOcollectedSetNames :: (Set Identifier)+                      _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                      _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                      _lhsOctxCollect :: ContextMap+                      _lhsOderivings :: Derivings+                      _lhsOerrors :: (Seq Error)+                      _lhsOmoduleDecl :: (Maybe (String,String,String))+                      _lhsOparamsCollect :: ParamMap+                      _lhsOpragmas :: (Options -> Options)+                      _lhsOquantCollect :: QuantMap+                      _lhsOsemPragmasCollect :: PragmaMap+                      _lhsOtypeSyns :: TypeSyns+                      _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                      _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))+                      _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))+                      _setOallFields :: DataTypes+                      _setOallNonterminals :: (Set NontermIdent)+                      _setOdefinedSets :: DefinedSets+                      _setIcollectedNames :: (Set Identifier)+                      _setIerrors :: (Seq Error)+                      _setInontSet :: (Set NontermIdent)+                      -- "src-ag/Transform.ag"(line 774, column 13)+                      _lhsOwrappers =+                          ({-# LINE 774 "src-ag/Transform.ag" #-}+                           _setInontSet+                           {-# LINE 4669 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 893, column 55)+                      _lhsOattrOrderCollect =+                          ({-# LINE 893 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4675 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 46, column 19)+                      _lhsOblocks =+                          ({-# LINE 46 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4681 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 164, column 32)+                      _lhsOcollectedArounds =+                          ({-# LINE 164 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4687 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 163, column 32)+                      _lhsOcollectedAugments =+                          ({-# LINE 163 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4693 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 132, column 31)+                      _lhsOcollectedConParams =+                          ({-# LINE 132 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4699 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 131, column 33)+                      _lhsOcollectedConstraints =+                          ({-# LINE 131 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4705 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 99, column 48)+                      _lhsOcollectedConstructorsMap =+                          ({-# LINE 99 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4711 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 130, column 28)+                      _lhsOcollectedFields =+                          ({-# LINE 130 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4717 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 161, column 32)+                      _lhsOcollectedInsts =+                          ({-# LINE 161 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4723 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1283, column 28)+                      _lhsOcollectedMacros =+                          ({-# LINE 1283 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4729 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 165, column 32)+                      _lhsOcollectedMerges =+                          ({-# LINE 165 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4735 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 91, column 50)+                      _lhsOcollectedNames =+                          ({-# LINE 91 "src-ag/Transform.ag" #-}+                           _setIcollectedNames+                           {-# LINE 4741 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 159, column 32)+                      _lhsOcollectedRules =+                          ({-# LINE 159 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4747 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 90, column 50)+                      _lhsOcollectedSetNames =+                          ({-# LINE 90 "src-ag/Transform.ag" #-}+                           Set.empty+                           {-# LINE 4753 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 160, column 32)+                      _lhsOcollectedSigs =+                          ({-# LINE 160 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4759 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 162, column 32)+                      _lhsOcollectedUniques =+                          ({-# LINE 162 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4765 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 948, column 34)+                      _lhsOctxCollect =+                          ({-# LINE 948 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4771 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 990, column 33)+                      _lhsOderivings =+                          ({-# LINE 990 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4777 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 44, column 19)+                      _lhsOerrors =+                          ({-# LINE 44 "src-ag/Transform.ag" #-}+                           _setIerrors+                           {-# LINE 4783 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 1187, column 37)+                      _lhsOmoduleDecl =+                          ({-# LINE 1187 "src-ag/Transform.ag" #-}+                           mzero+                           {-# LINE 4789 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 925, column 37)+                      _lhsOparamsCollect =+                          ({-# LINE 925 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4795 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 787, column 34)+                      _lhsOpragmas =+                          ({-# LINE 787 "src-ag/Transform.ag" #-}+                           id+                           {-# LINE 4801 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 973, column 36)+                      _lhsOquantCollect =+                          ({-# LINE 973 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4807 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 865, column 56)+                      _lhsOsemPragmasCollect =+                          ({-# LINE 865 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4813 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 626, column 32)+                      _lhsOtypeSyns =+                          ({-# LINE 626 "src-ag/Transform.ag" #-}+                           []+                           {-# LINE 4819 "dist/build/Transform" #-}+                           )+                      -- use rule "src-ag/Transform.ag"(line 145, column 15)+                      _lhsOuseMap =+                          ({-# LINE 145 "src-ag/Transform.ag" #-}+                           Map.empty+                           {-# LINE 4825 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOattrDecls =+                          ({-# LINE 144 "src-ag/Transform.ag" #-}+                           _lhsIattrDecls+                           {-# LINE 4831 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOattrs =+                          ({-# LINE 1316 "src-ag/Transform.ag" #-}+                           _lhsIattrs+                           {-# LINE 4837 "dist/build/Transform" #-}+                           )+                      -- copy rule (chain)+                      _lhsOdefSets =+                          ({-# LINE 109 "src-ag/Transform.ag" #-}+                           _lhsIdefSets+                           {-# LINE 4843 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _setOallFields =+                          ({-# LINE 136 "src-ag/Transform.ag" #-}+                           _lhsIallFields+                           {-# LINE 4849 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _setOallNonterminals =+                          ({-# LINE 93 "src-ag/Transform.ag" #-}+                           _lhsIallNonterminals+                           {-# LINE 4855 "dist/build/Transform" #-}+                           )+                      -- copy rule (down)+                      _setOdefinedSets =+                          ({-# LINE 112 "src-ag/Transform.ag" #-}+                           _lhsIdefinedSets+                           {-# LINE 4861 "dist/build/Transform" #-}+                           )+                      ( _setIcollectedNames,_setIerrors,_setInontSet) =+                          set_ _setOallFields _setOallNonterminals _setOdefinedSets+                      ___node =+                          (Syn_Elem _lhsOattrDecls _lhsOattrOrderCollect _lhsOattrs _lhsOblocks _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorsMap _lhsOcollectedFields _lhsOcollectedInsts _lhsOcollectedMacros _lhsOcollectedMerges _lhsOcollectedNames _lhsOcollectedRules _lhsOcollectedSetNames _lhsOcollectedSigs _lhsOcollectedUniques _lhsOctxCollect _lhsOdefSets _lhsOderivings _lhsOerrors _lhsOmoduleDecl _lhsOparamsCollect _lhsOpragmas _lhsOquantCollect _lhsOsemPragmasCollect _lhsOtypeSyns _lhsOuseMap _lhsOwrappers)+                  in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))+-- Elems -------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allAttrDecls         : Map NontermIdent (Attributes, Attributes)+         allAttrs             : Map NontermIdent (Attributes, Attributes)+         allConstructors      : Map NontermIdent (Set ConstructorIdent)+         allFields            : DataTypes+         allNonterminals      : Set NontermIdent+         definedSets          : DefinedSets+         options              : Options+      chained attributes:+         attrDecls            : Map NontermIdent (Attributes, Attributes)+         attrs                : Map NontermIdent (Attributes, Attributes)+         defSets              : Map Identifier (Set NontermIdent,Set Identifier)+      synthesized attributes:+         attrOrderCollect     : AttrOrderMap+         blocks               : Blocks+         collectedArounds     : [ (NontermIdent, ConstructorIdent, [AroundInfo])  ]+         collectedAugments    : [ (NontermIdent, ConstructorIdent, [AugmentInfo]) ]+         collectedConParams   : [(NontermIdent, ConstructorIdent, Set Identifier)]+         collectedConstraints : [(NontermIdent, ConstructorIdent, [Type])]+         collectedConstructorsMap : Map NontermIdent (Set ConstructorIdent)+         collectedFields      : [(NontermIdent, ConstructorIdent, FieldMap)]+         collectedInsts       : [ (NontermIdent, ConstructorIdent, [Identifier]) ]+         collectedMacros      : [(NontermIdent, ConstructorIdent, MaybeMacro)]+         collectedMerges      : [ (NontermIdent, ConstructorIdent, [MergeInfo])   ]+         collectedNames       : Set Identifier+         collectedRules       : [ (NontermIdent, ConstructorIdent, RuleInfo)]+         collectedSetNames    : Set Identifier+         collectedSigs        : [ (NontermIdent, ConstructorIdent, SigInfo) ]+         collectedUniques     : [ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]+         ctxCollect           : ContextMap+         derivings            : Derivings+         errors               : Seq Error+         moduleDecl           : Maybe (String,String,String)+         paramsCollect        : ParamMap+         pragmas              : Options -> Options+         quantCollect         : QuantMap+         semPragmasCollect    : PragmaMap+         typeSyns             : TypeSyns+         useMap               : Map NontermIdent (Map Identifier (String,String,String))+         wrappers             : Set NontermIdent+   alternatives:+      alternative Cons:+         child hd             : Elem +         child tl             : Elems +      alternative Nil:+-}+-- cata+sem_Elems :: Elems ->+             T_Elems+sem_Elems list =+    (Prelude.foldr sem_Elems_Cons sem_Elems_Nil (Prelude.map sem_Elem list))+-- semantic domain+newtype T_Elems = T_Elems ((Map NontermIdent (Attributes, Attributes)) ->+                           (Map NontermIdent (Attributes, Attributes)) ->+                           (Map NontermIdent (Set ConstructorIdent)) ->+                           DataTypes ->+                           (Set NontermIdent) ->+                           (Map NontermIdent (Attributes, Attributes)) ->+                           (Map NontermIdent (Attributes, Attributes)) ->+                           (Map Identifier (Set NontermIdent,Set Identifier)) ->+                           DefinedSets ->+                           Options ->+                           ( (Map NontermIdent (Attributes, Attributes)),AttrOrderMap,(Map NontermIdent (Attributes, Attributes)),Blocks,([ (NontermIdent, ConstructorIdent, [AroundInfo])  ]),([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ]),([(NontermIdent, ConstructorIdent, Set Identifier)]),([(NontermIdent, ConstructorIdent, [Type])]),(Map NontermIdent (Set ConstructorIdent)),([(NontermIdent, ConstructorIdent, FieldMap)]),([ (NontermIdent, ConstructorIdent, [Identifier]) ]),([(NontermIdent, ConstructorIdent, MaybeMacro)]),([ (NontermIdent, ConstructorIdent, [MergeInfo])   ]),(Set Identifier),([ (NontermIdent, ConstructorIdent, RuleInfo)]),(Set Identifier),([ (NontermIdent, ConstructorIdent, SigInfo) ]),([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]),ContextMap,(Map Identifier (Set NontermIdent,Set Identifier)),Derivings,(Seq Error),(Maybe (String,String,String)),ParamMap,(Options -> Options),QuantMap,PragmaMap,TypeSyns,(Map NontermIdent (Map Identifier (String,String,String))),(Set NontermIdent)))+data Inh_Elems = Inh_Elems {allAttrDecls_Inh_Elems :: !((Map NontermIdent (Attributes, Attributes))),allAttrs_Inh_Elems :: !((Map NontermIdent (Attributes, Attributes))),allConstructors_Inh_Elems :: !((Map NontermIdent (Set ConstructorIdent))),allFields_Inh_Elems :: !(DataTypes),allNonterminals_Inh_Elems :: !((Set NontermIdent)),attrDecls_Inh_Elems :: !((Map NontermIdent (Attributes, Attributes))),attrs_Inh_Elems :: !((Map NontermIdent (Attributes, Attributes))),defSets_Inh_Elems :: !((Map Identifier (Set NontermIdent,Set Identifier))),definedSets_Inh_Elems :: !(DefinedSets),options_Inh_Elems :: !(Options)}+data Syn_Elems = Syn_Elems {attrDecls_Syn_Elems :: !((Map NontermIdent (Attributes, Attributes))),attrOrderCollect_Syn_Elems :: !(AttrOrderMap),attrs_Syn_Elems :: !((Map NontermIdent (Attributes, Attributes))),blocks_Syn_Elems :: !(Blocks),collectedArounds_Syn_Elems :: !(([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])),collectedAugments_Syn_Elems :: !(([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])),collectedConParams_Syn_Elems :: !(([(NontermIdent, ConstructorIdent, Set Identifier)])),collectedConstraints_Syn_Elems :: !(([(NontermIdent, ConstructorIdent, [Type])])),collectedConstructorsMap_Syn_Elems :: !((Map NontermIdent (Set ConstructorIdent))),collectedFields_Syn_Elems :: !(([(NontermIdent, ConstructorIdent, FieldMap)])),collectedInsts_Syn_Elems :: !(([ (NontermIdent, ConstructorIdent, [Identifier]) ])),collectedMacros_Syn_Elems :: !(([(NontermIdent, ConstructorIdent, MaybeMacro)])),collectedMerges_Syn_Elems :: !(([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])),collectedNames_Syn_Elems :: !((Set Identifier)),collectedRules_Syn_Elems :: !(([ (NontermIdent, ConstructorIdent, RuleInfo)])),collectedSetNames_Syn_Elems :: !((Set Identifier)),collectedSigs_Syn_Elems :: !(([ (NontermIdent, ConstructorIdent, SigInfo) ])),collectedUniques_Syn_Elems :: !(([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])),ctxCollect_Syn_Elems :: !(ContextMap),defSets_Syn_Elems :: !((Map Identifier (Set NontermIdent,Set Identifier))),derivings_Syn_Elems :: !(Derivings),errors_Syn_Elems :: !((Seq Error)),moduleDecl_Syn_Elems :: !((Maybe (String,String,String))),paramsCollect_Syn_Elems :: !(ParamMap),pragmas_Syn_Elems :: !((Options -> Options)),quantCollect_Syn_Elems :: !(QuantMap),semPragmasCollect_Syn_Elems :: !(PragmaMap),typeSyns_Syn_Elems :: !(TypeSyns),useMap_Syn_Elems :: !((Map NontermIdent (Map Identifier (String,String,String)))),wrappers_Syn_Elems :: !((Set NontermIdent))}+wrap_Elems :: T_Elems ->+              Inh_Elems ->+              Syn_Elems+wrap_Elems (T_Elems sem) (Inh_Elems _lhsIallAttrDecls _lhsIallAttrs _lhsIallConstructors _lhsIallFields _lhsIallNonterminals _lhsIattrDecls _lhsIattrs _lhsIdefSets _lhsIdefinedSets _lhsIoptions) =+    (let ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers) = sem _lhsIallAttrDecls _lhsIallAttrs _lhsIallConstructors _lhsIallFields _lhsIallNonterminals _lhsIattrDecls _lhsIattrs _lhsIdefSets _lhsIdefinedSets _lhsIoptions+     in  (Syn_Elems _lhsOattrDecls _lhsOattrOrderCollect _lhsOattrs _lhsOblocks _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorsMap _lhsOcollectedFields _lhsOcollectedInsts _lhsOcollectedMacros _lhsOcollectedMerges _lhsOcollectedNames _lhsOcollectedRules _lhsOcollectedSetNames _lhsOcollectedSigs _lhsOcollectedUniques _lhsOctxCollect _lhsOdefSets _lhsOderivings _lhsOerrors _lhsOmoduleDecl _lhsOparamsCollect _lhsOpragmas _lhsOquantCollect _lhsOsemPragmasCollect _lhsOtypeSyns _lhsOuseMap _lhsOwrappers))+sem_Elems_Cons :: T_Elem ->+                  T_Elems ->+                  T_Elems+sem_Elems_Cons (T_Elem hd_) (T_Elems tl_) =+    (T_Elems (\ _lhsIallAttrDecls+                _lhsIallAttrs+                _lhsIallConstructors+                _lhsIallFields+                _lhsIallNonterminals+                _lhsIattrDecls+                _lhsIattrs+                _lhsIdefSets+                _lhsIdefinedSets+                _lhsIoptions ->+                  (let _lhsOattrOrderCollect :: AttrOrderMap+                       _lhsOblocks :: Blocks+                       _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                       _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                       _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                       _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                       _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))+                       _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                       _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                       _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                       _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                       _lhsOcollectedNames :: (Set Identifier)+                       _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                       _lhsOcollectedSetNames :: (Set Identifier)+                       _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                       _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                       _lhsOctxCollect :: ContextMap+                       _lhsOderivings :: Derivings+                       _lhsOerrors :: (Seq Error)+                       _lhsOmoduleDecl :: (Maybe (String,String,String))+                       _lhsOparamsCollect :: ParamMap+                       _lhsOpragmas :: (Options -> Options)+                       _lhsOquantCollect :: QuantMap+                       _lhsOsemPragmasCollect :: PragmaMap+                       _lhsOtypeSyns :: TypeSyns+                       _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                       _lhsOwrappers :: (Set NontermIdent)+                       _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                       _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))+                       _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))+                       _hdOallAttrDecls :: (Map NontermIdent (Attributes, Attributes))+                       _hdOallAttrs :: (Map NontermIdent (Attributes, Attributes))+                       _hdOallConstructors :: (Map NontermIdent (Set ConstructorIdent))+                       _hdOallFields :: DataTypes+                       _hdOallNonterminals :: (Set NontermIdent)+                       _hdOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                       _hdOattrs :: (Map NontermIdent (Attributes, Attributes))+                       _hdOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))+                       _hdOdefinedSets :: DefinedSets+                       _hdOoptions :: Options+                       _tlOallAttrDecls :: (Map NontermIdent (Attributes, Attributes))+                       _tlOallAttrs :: (Map NontermIdent (Attributes, Attributes))+                       _tlOallConstructors :: (Map NontermIdent (Set ConstructorIdent))+                       _tlOallFields :: DataTypes+                       _tlOallNonterminals :: (Set NontermIdent)+                       _tlOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                       _tlOattrs :: (Map NontermIdent (Attributes, Attributes))+                       _tlOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))+                       _tlOdefinedSets :: DefinedSets+                       _tlOoptions :: Options+                       _hdIattrDecls :: (Map NontermIdent (Attributes, Attributes))+                       _hdIattrOrderCollect :: AttrOrderMap+                       _hdIattrs :: (Map NontermIdent (Attributes, Attributes))+                       _hdIblocks :: Blocks+                       _hdIcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                       _hdIcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                       _hdIcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                       _hdIcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                       _hdIcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))+                       _hdIcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                       _hdIcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                       _hdIcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                       _hdIcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                       _hdIcollectedNames :: (Set Identifier)+                       _hdIcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                       _hdIcollectedSetNames :: (Set Identifier)+                       _hdIcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                       _hdIcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                       _hdIctxCollect :: ContextMap+                       _hdIdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))+                       _hdIderivings :: Derivings+                       _hdIerrors :: (Seq Error)+                       _hdImoduleDecl :: (Maybe (String,String,String))+                       _hdIparamsCollect :: ParamMap+                       _hdIpragmas :: (Options -> Options)+                       _hdIquantCollect :: QuantMap+                       _hdIsemPragmasCollect :: PragmaMap+                       _hdItypeSyns :: TypeSyns+                       _hdIuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                       _hdIwrappers :: (Set NontermIdent)+                       _tlIattrDecls :: (Map NontermIdent (Attributes, Attributes))+                       _tlIattrOrderCollect :: AttrOrderMap+                       _tlIattrs :: (Map NontermIdent (Attributes, Attributes))+                       _tlIblocks :: Blocks+                       _tlIcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                       _tlIcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                       _tlIcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                       _tlIcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                       _tlIcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))+                       _tlIcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                       _tlIcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                       _tlIcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                       _tlIcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                       _tlIcollectedNames :: (Set Identifier)+                       _tlIcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                       _tlIcollectedSetNames :: (Set Identifier)+                       _tlIcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                       _tlIcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                       _tlIctxCollect :: ContextMap+                       _tlIdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))+                       _tlIderivings :: Derivings+                       _tlIerrors :: (Seq Error)+                       _tlImoduleDecl :: (Maybe (String,String,String))+                       _tlIparamsCollect :: ParamMap+                       _tlIpragmas :: (Options -> Options)+                       _tlIquantCollect :: QuantMap+                       _tlIsemPragmasCollect :: PragmaMap+                       _tlItypeSyns :: TypeSyns+                       _tlIuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                       _tlIwrappers :: (Set NontermIdent)+                       -- use rule "src-ag/Transform.ag"(line 893, column 55)+                       _lhsOattrOrderCollect =+                           ({-# LINE 893 "src-ag/Transform.ag" #-}+                            _hdIattrOrderCollect `orderMapUnion` _tlIattrOrderCollect+                            {-# LINE 5070 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 46, column 19)+                       _lhsOblocks =+                           ({-# LINE 46 "src-ag/Transform.ag" #-}+                            _hdIblocks `mapUnionWithPlusPlus` _tlIblocks+                            {-# LINE 5076 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 164, column 32)+                       _lhsOcollectedArounds =+                           ({-# LINE 164 "src-ag/Transform.ag" #-}+                            _hdIcollectedArounds ++ _tlIcollectedArounds+                            {-# LINE 5082 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 163, column 32)+                       _lhsOcollectedAugments =+                           ({-# LINE 163 "src-ag/Transform.ag" #-}+                            _hdIcollectedAugments ++ _tlIcollectedAugments+                            {-# LINE 5088 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 132, column 31)+                       _lhsOcollectedConParams =+                           ({-# LINE 132 "src-ag/Transform.ag" #-}+                            _hdIcollectedConParams ++ _tlIcollectedConParams+                            {-# LINE 5094 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 131, column 33)+                       _lhsOcollectedConstraints =+                           ({-# LINE 131 "src-ag/Transform.ag" #-}+                            _hdIcollectedConstraints ++ _tlIcollectedConstraints+                            {-# LINE 5100 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 99, column 48)+                       _lhsOcollectedConstructorsMap =+                           ({-# LINE 99 "src-ag/Transform.ag" #-}+                            _hdIcollectedConstructorsMap `mapUnionWithSetUnion` _tlIcollectedConstructorsMap+                            {-# LINE 5106 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 130, column 28)+                       _lhsOcollectedFields =+                           ({-# LINE 130 "src-ag/Transform.ag" #-}+                            _hdIcollectedFields ++ _tlIcollectedFields+                            {-# LINE 5112 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 161, column 32)+                       _lhsOcollectedInsts =+                           ({-# LINE 161 "src-ag/Transform.ag" #-}+                            _hdIcollectedInsts ++ _tlIcollectedInsts+                            {-# LINE 5118 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 1283, column 28)+                       _lhsOcollectedMacros =+                           ({-# LINE 1283 "src-ag/Transform.ag" #-}+                            _hdIcollectedMacros ++ _tlIcollectedMacros+                            {-# LINE 5124 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 165, column 32)+                       _lhsOcollectedMerges =+                           ({-# LINE 165 "src-ag/Transform.ag" #-}+                            _hdIcollectedMerges ++ _tlIcollectedMerges+                            {-# LINE 5130 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 91, column 50)+                       _lhsOcollectedNames =+                           ({-# LINE 91 "src-ag/Transform.ag" #-}+                            _hdIcollectedNames `Set.union` _tlIcollectedNames+                            {-# LINE 5136 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 159, column 32)+                       _lhsOcollectedRules =+                           ({-# LINE 159 "src-ag/Transform.ag" #-}+                            _hdIcollectedRules ++ _tlIcollectedRules+                            {-# LINE 5142 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 90, column 50)+                       _lhsOcollectedSetNames =+                           ({-# LINE 90 "src-ag/Transform.ag" #-}+                            _hdIcollectedSetNames `Set.union` _tlIcollectedSetNames+                            {-# LINE 5148 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 160, column 32)+                       _lhsOcollectedSigs =+                           ({-# LINE 160 "src-ag/Transform.ag" #-}+                            _hdIcollectedSigs ++ _tlIcollectedSigs+                            {-# LINE 5154 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 162, column 32)+                       _lhsOcollectedUniques =+                           ({-# LINE 162 "src-ag/Transform.ag" #-}+                            _hdIcollectedUniques ++ _tlIcollectedUniques+                            {-# LINE 5160 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 948, column 34)+                       _lhsOctxCollect =+                           ({-# LINE 948 "src-ag/Transform.ag" #-}+                            _hdIctxCollect `mergeCtx` _tlIctxCollect+                            {-# LINE 5166 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 990, column 33)+                       _lhsOderivings =+                           ({-# LINE 990 "src-ag/Transform.ag" #-}+                            _hdIderivings `mergeDerivings` _tlIderivings+                            {-# LINE 5172 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 44, column 19)+                       _lhsOerrors =+                           ({-# LINE 44 "src-ag/Transform.ag" #-}+                            _hdIerrors Seq.>< _tlIerrors+                            {-# LINE 5178 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 1187, column 37)+                       _lhsOmoduleDecl =+                           ({-# LINE 1187 "src-ag/Transform.ag" #-}+                            _hdImoduleDecl `mplus` _tlImoduleDecl+                            {-# LINE 5184 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 925, column 37)+                       _lhsOparamsCollect =+                           ({-# LINE 925 "src-ag/Transform.ag" #-}+                            _hdIparamsCollect `mergeParams` _tlIparamsCollect+                            {-# LINE 5190 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 787, column 34)+                       _lhsOpragmas =+                           ({-# LINE 787 "src-ag/Transform.ag" #-}+                            _hdIpragmas . _tlIpragmas+                            {-# LINE 5196 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 973, column 36)+                       _lhsOquantCollect =+                           ({-# LINE 973 "src-ag/Transform.ag" #-}+                            _hdIquantCollect `mergeQuant` _tlIquantCollect+                            {-# LINE 5202 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 865, column 56)+                       _lhsOsemPragmasCollect =+                           ({-# LINE 865 "src-ag/Transform.ag" #-}+                            _hdIsemPragmasCollect `pragmaMapUnion` _tlIsemPragmasCollect+                            {-# LINE 5208 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 626, column 32)+                       _lhsOtypeSyns =+                           ({-# LINE 626 "src-ag/Transform.ag" #-}+                            _hdItypeSyns ++ _tlItypeSyns+                            {-# LINE 5214 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 145, column 15)+                       _lhsOuseMap =+                           ({-# LINE 145 "src-ag/Transform.ag" #-}+                            _hdIuseMap `merge` _tlIuseMap+                            {-# LINE 5220 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 771, column 32)+                       _lhsOwrappers =+                           ({-# LINE 771 "src-ag/Transform.ag" #-}+                            _hdIwrappers `Set.union` _tlIwrappers+                            {-# LINE 5226 "dist/build/Transform" #-}+                            )+                       -- copy rule (up)+                       _lhsOattrDecls =+                           ({-# LINE 144 "src-ag/Transform.ag" #-}+                            _tlIattrDecls+                            {-# LINE 5232 "dist/build/Transform" #-}+                            )+                       -- copy rule (up)+                       _lhsOattrs =+                           ({-# LINE 1316 "src-ag/Transform.ag" #-}+                            _tlIattrs+                            {-# LINE 5238 "dist/build/Transform" #-}+                            )+                       -- copy rule (up)+                       _lhsOdefSets =+                           ({-# LINE 109 "src-ag/Transform.ag" #-}+                            _tlIdefSets+                            {-# LINE 5244 "dist/build/Transform" #-}+                            )+                       -- copy rule (down)+                       _hdOallAttrDecls =+                           ({-# LINE 894 "src-ag/Transform.ag" #-}+                            _lhsIallAttrDecls+                            {-# LINE 5250 "dist/build/Transform" #-}+                            )+                       -- copy rule (down)+                       _hdOallAttrs =+                           ({-# LINE 1306 "src-ag/Transform.ag" #-}+                            _lhsIallAttrs+                            {-# LINE 5256 "dist/build/Transform" #-}+                            )+                       -- copy rule (down)+                       _hdOallConstructors =+                           ({-# LINE 101 "src-ag/Transform.ag" #-}+                            _lhsIallConstructors+                            {-# LINE 5262 "dist/build/Transform" #-}+                            )+                       -- copy rule (down)+                       _hdOallFields =+                           ({-# LINE 136 "src-ag/Transform.ag" #-}+                            _lhsIallFields+                            {-# LINE 5268 "dist/build/Transform" #-}+                            )+                       -- copy rule (down)+                       _hdOallNonterminals =+                           ({-# LINE 93 "src-ag/Transform.ag" #-}+                            _lhsIallNonterminals+                            {-# LINE 5274 "dist/build/Transform" #-}+                            )+                       -- copy rule (down)+                       _hdOattrDecls =+                           ({-# LINE 144 "src-ag/Transform.ag" #-}+                            _lhsIattrDecls+                            {-# LINE 5280 "dist/build/Transform" #-}+                            )+                       -- copy rule (down)+                       _hdOattrs =+                           ({-# LINE 1316 "src-ag/Transform.ag" #-}+                            _lhsIattrs+                            {-# LINE 5286 "dist/build/Transform" #-}+                            )+                       -- copy rule (down)+                       _hdOdefSets =+                           ({-# LINE 109 "src-ag/Transform.ag" #-}+                            _lhsIdefSets+                            {-# LINE 5292 "dist/build/Transform" #-}+                            )+                       -- copy rule (down)+                       _hdOdefinedSets =+                           ({-# LINE 112 "src-ag/Transform.ag" #-}+                            _lhsIdefinedSets+                            {-# LINE 5298 "dist/build/Transform" #-}+                            )+                       -- copy rule (down)+                       _hdOoptions =+                           ({-# LINE 40 "src-ag/Transform.ag" #-}+                            _lhsIoptions+                            {-# LINE 5304 "dist/build/Transform" #-}+                            )+                       -- copy rule (down)+                       _tlOallAttrDecls =+                           ({-# LINE 894 "src-ag/Transform.ag" #-}+                            _lhsIallAttrDecls+                            {-# LINE 5310 "dist/build/Transform" #-}+                            )+                       -- copy rule (down)+                       _tlOallAttrs =+                           ({-# LINE 1306 "src-ag/Transform.ag" #-}+                            _lhsIallAttrs+                            {-# LINE 5316 "dist/build/Transform" #-}+                            )+                       -- copy rule (down)+                       _tlOallConstructors =+                           ({-# LINE 101 "src-ag/Transform.ag" #-}+                            _lhsIallConstructors+                            {-# LINE 5322 "dist/build/Transform" #-}+                            )+                       -- copy rule (down)+                       _tlOallFields =+                           ({-# LINE 136 "src-ag/Transform.ag" #-}+                            _lhsIallFields+                            {-# LINE 5328 "dist/build/Transform" #-}+                            )+                       -- copy rule (down)+                       _tlOallNonterminals =+                           ({-# LINE 93 "src-ag/Transform.ag" #-}+                            _lhsIallNonterminals+                            {-# LINE 5334 "dist/build/Transform" #-}+                            )+                       -- copy rule (chain)+                       _tlOattrDecls =+                           ({-# LINE 144 "src-ag/Transform.ag" #-}+                            _hdIattrDecls+                            {-# LINE 5340 "dist/build/Transform" #-}+                            )+                       -- copy rule (chain)+                       _tlOattrs =+                           ({-# LINE 1316 "src-ag/Transform.ag" #-}+                            _hdIattrs+                            {-# LINE 5346 "dist/build/Transform" #-}+                            )+                       -- copy rule (chain)+                       _tlOdefSets =+                           ({-# LINE 109 "src-ag/Transform.ag" #-}+                            _hdIdefSets+                            {-# LINE 5352 "dist/build/Transform" #-}+                            )+                       -- copy rule (down)+                       _tlOdefinedSets =+                           ({-# LINE 112 "src-ag/Transform.ag" #-}+                            _lhsIdefinedSets+                            {-# LINE 5358 "dist/build/Transform" #-}+                            )+                       -- copy rule (down)+                       _tlOoptions =+                           ({-# LINE 40 "src-ag/Transform.ag" #-}+                            _lhsIoptions+                            {-# LINE 5364 "dist/build/Transform" #-}+                            )+                       ( _hdIattrDecls,_hdIattrOrderCollect,_hdIattrs,_hdIblocks,_hdIcollectedArounds,_hdIcollectedAugments,_hdIcollectedConParams,_hdIcollectedConstraints,_hdIcollectedConstructorsMap,_hdIcollectedFields,_hdIcollectedInsts,_hdIcollectedMacros,_hdIcollectedMerges,_hdIcollectedNames,_hdIcollectedRules,_hdIcollectedSetNames,_hdIcollectedSigs,_hdIcollectedUniques,_hdIctxCollect,_hdIdefSets,_hdIderivings,_hdIerrors,_hdImoduleDecl,_hdIparamsCollect,_hdIpragmas,_hdIquantCollect,_hdIsemPragmasCollect,_hdItypeSyns,_hdIuseMap,_hdIwrappers) =+                           hd_ _hdOallAttrDecls _hdOallAttrs _hdOallConstructors _hdOallFields _hdOallNonterminals _hdOattrDecls _hdOattrs _hdOdefSets _hdOdefinedSets _hdOoptions+                       ( _tlIattrDecls,_tlIattrOrderCollect,_tlIattrs,_tlIblocks,_tlIcollectedArounds,_tlIcollectedAugments,_tlIcollectedConParams,_tlIcollectedConstraints,_tlIcollectedConstructorsMap,_tlIcollectedFields,_tlIcollectedInsts,_tlIcollectedMacros,_tlIcollectedMerges,_tlIcollectedNames,_tlIcollectedRules,_tlIcollectedSetNames,_tlIcollectedSigs,_tlIcollectedUniques,_tlIctxCollect,_tlIdefSets,_tlIderivings,_tlIerrors,_tlImoduleDecl,_tlIparamsCollect,_tlIpragmas,_tlIquantCollect,_tlIsemPragmasCollect,_tlItypeSyns,_tlIuseMap,_tlIwrappers) =+                           tl_ _tlOallAttrDecls _tlOallAttrs _tlOallConstructors _tlOallFields _tlOallNonterminals _tlOattrDecls _tlOattrs _tlOdefSets _tlOdefinedSets _tlOoptions+                       ___node =+                           (Syn_Elems _lhsOattrDecls _lhsOattrOrderCollect _lhsOattrs _lhsOblocks _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorsMap _lhsOcollectedFields _lhsOcollectedInsts _lhsOcollectedMacros _lhsOcollectedMerges _lhsOcollectedNames _lhsOcollectedRules _lhsOcollectedSetNames _lhsOcollectedSigs _lhsOcollectedUniques _lhsOctxCollect _lhsOdefSets _lhsOderivings _lhsOerrors _lhsOmoduleDecl _lhsOparamsCollect _lhsOpragmas _lhsOquantCollect _lhsOsemPragmasCollect _lhsOtypeSyns _lhsOuseMap _lhsOwrappers)+                   in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))+sem_Elems_Nil :: T_Elems+sem_Elems_Nil =+    (T_Elems (\ _lhsIallAttrDecls+                _lhsIallAttrs+                _lhsIallConstructors+                _lhsIallFields+                _lhsIallNonterminals+                _lhsIattrDecls+                _lhsIattrs+                _lhsIdefSets+                _lhsIdefinedSets+                _lhsIoptions ->+                  (let _lhsOattrOrderCollect :: AttrOrderMap+                       _lhsOblocks :: Blocks+                       _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                       _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                       _lhsOcollectedConParams :: ([(NontermIdent, ConstructorIdent, Set Identifier)])+                       _lhsOcollectedConstraints :: ([(NontermIdent, ConstructorIdent, [Type])])+                       _lhsOcollectedConstructorsMap :: (Map NontermIdent (Set ConstructorIdent))+                       _lhsOcollectedFields :: ([(NontermIdent, ConstructorIdent, FieldMap)])+                       _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                       _lhsOcollectedMacros :: ([(NontermIdent, ConstructorIdent, MaybeMacro)])+                       _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                       _lhsOcollectedNames :: (Set Identifier)+                       _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                       _lhsOcollectedSetNames :: (Set Identifier)+                       _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                       _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                       _lhsOctxCollect :: ContextMap+                       _lhsOderivings :: Derivings+                       _lhsOerrors :: (Seq Error)+                       _lhsOmoduleDecl :: (Maybe (String,String,String))+                       _lhsOparamsCollect :: ParamMap+                       _lhsOpragmas :: (Options -> Options)+                       _lhsOquantCollect :: QuantMap+                       _lhsOsemPragmasCollect :: PragmaMap+                       _lhsOtypeSyns :: TypeSyns+                       _lhsOuseMap :: (Map NontermIdent (Map Identifier (String,String,String)))+                       _lhsOwrappers :: (Set NontermIdent)+                       _lhsOattrDecls :: (Map NontermIdent (Attributes, Attributes))+                       _lhsOattrs :: (Map NontermIdent (Attributes, Attributes))+                       _lhsOdefSets :: (Map Identifier (Set NontermIdent,Set Identifier))+                       -- use rule "src-ag/Transform.ag"(line 893, column 55)+                       _lhsOattrOrderCollect =+                           ({-# LINE 893 "src-ag/Transform.ag" #-}+                            Map.empty+                            {-# LINE 5419 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 46, column 19)+                       _lhsOblocks =+                           ({-# LINE 46 "src-ag/Transform.ag" #-}+                            Map.empty+                            {-# LINE 5425 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 164, column 32)+                       _lhsOcollectedArounds =+                           ({-# LINE 164 "src-ag/Transform.ag" #-}+                            []+                            {-# LINE 5431 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 163, column 32)+                       _lhsOcollectedAugments =+                           ({-# LINE 163 "src-ag/Transform.ag" #-}+                            []+                            {-# LINE 5437 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 132, column 31)+                       _lhsOcollectedConParams =+                           ({-# LINE 132 "src-ag/Transform.ag" #-}+                            []+                            {-# LINE 5443 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 131, column 33)+                       _lhsOcollectedConstraints =+                           ({-# LINE 131 "src-ag/Transform.ag" #-}+                            []+                            {-# LINE 5449 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 99, column 48)+                       _lhsOcollectedConstructorsMap =+                           ({-# LINE 99 "src-ag/Transform.ag" #-}+                            Map.empty+                            {-# LINE 5455 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 130, column 28)+                       _lhsOcollectedFields =+                           ({-# LINE 130 "src-ag/Transform.ag" #-}+                            []+                            {-# LINE 5461 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 161, column 32)+                       _lhsOcollectedInsts =+                           ({-# LINE 161 "src-ag/Transform.ag" #-}+                            []+                            {-# LINE 5467 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 1283, column 28)+                       _lhsOcollectedMacros =+                           ({-# LINE 1283 "src-ag/Transform.ag" #-}+                            []+                            {-# LINE 5473 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 165, column 32)+                       _lhsOcollectedMerges =+                           ({-# LINE 165 "src-ag/Transform.ag" #-}+                            []+                            {-# LINE 5479 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 91, column 50)+                       _lhsOcollectedNames =+                           ({-# LINE 91 "src-ag/Transform.ag" #-}+                            Set.empty+                            {-# LINE 5485 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 159, column 32)+                       _lhsOcollectedRules =+                           ({-# LINE 159 "src-ag/Transform.ag" #-}+                            []+                            {-# LINE 5491 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 90, column 50)+                       _lhsOcollectedSetNames =+                           ({-# LINE 90 "src-ag/Transform.ag" #-}+                            Set.empty+                            {-# LINE 5497 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 160, column 32)+                       _lhsOcollectedSigs =+                           ({-# LINE 160 "src-ag/Transform.ag" #-}+                            []+                            {-# LINE 5503 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 162, column 32)+                       _lhsOcollectedUniques =+                           ({-# LINE 162 "src-ag/Transform.ag" #-}+                            []+                            {-# LINE 5509 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 948, column 34)+                       _lhsOctxCollect =+                           ({-# LINE 948 "src-ag/Transform.ag" #-}+                            Map.empty+                            {-# LINE 5515 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 990, column 33)+                       _lhsOderivings =+                           ({-# LINE 990 "src-ag/Transform.ag" #-}+                            Map.empty+                            {-# LINE 5521 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 44, column 19)+                       _lhsOerrors =+                           ({-# LINE 44 "src-ag/Transform.ag" #-}+                            Seq.empty+                            {-# LINE 5527 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 1187, column 37)+                       _lhsOmoduleDecl =+                           ({-# LINE 1187 "src-ag/Transform.ag" #-}+                            mzero+                            {-# LINE 5533 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 925, column 37)+                       _lhsOparamsCollect =+                           ({-# LINE 925 "src-ag/Transform.ag" #-}+                            Map.empty+                            {-# LINE 5539 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 787, column 34)+                       _lhsOpragmas =+                           ({-# LINE 787 "src-ag/Transform.ag" #-}+                            id+                            {-# LINE 5545 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 973, column 36)+                       _lhsOquantCollect =+                           ({-# LINE 973 "src-ag/Transform.ag" #-}+                            Map.empty+                            {-# LINE 5551 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 865, column 56)+                       _lhsOsemPragmasCollect =+                           ({-# LINE 865 "src-ag/Transform.ag" #-}+                            Map.empty+                            {-# LINE 5557 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 626, column 32)+                       _lhsOtypeSyns =+                           ({-# LINE 626 "src-ag/Transform.ag" #-}+                            []+                            {-# LINE 5563 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 145, column 15)+                       _lhsOuseMap =+                           ({-# LINE 145 "src-ag/Transform.ag" #-}+                            Map.empty+                            {-# LINE 5569 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 771, column 32)+                       _lhsOwrappers =+                           ({-# LINE 771 "src-ag/Transform.ag" #-}+                            Set.empty+                            {-# LINE 5575 "dist/build/Transform" #-}+                            )+                       -- copy rule (chain)+                       _lhsOattrDecls =+                           ({-# LINE 144 "src-ag/Transform.ag" #-}+                            _lhsIattrDecls+                            {-# LINE 5581 "dist/build/Transform" #-}+                            )+                       -- copy rule (chain)+                       _lhsOattrs =+                           ({-# LINE 1316 "src-ag/Transform.ag" #-}+                            _lhsIattrs+                            {-# LINE 5587 "dist/build/Transform" #-}+                            )+                       -- copy rule (chain)+                       _lhsOdefSets =+                           ({-# LINE 109 "src-ag/Transform.ag" #-}+                            _lhsIdefSets+                            {-# LINE 5593 "dist/build/Transform" #-}+                            )+                       ___node =+                           (Syn_Elems _lhsOattrDecls _lhsOattrOrderCollect _lhsOattrs _lhsOblocks _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedConParams _lhsOcollectedConstraints _lhsOcollectedConstructorsMap _lhsOcollectedFields _lhsOcollectedInsts _lhsOcollectedMacros _lhsOcollectedMerges _lhsOcollectedNames _lhsOcollectedRules _lhsOcollectedSetNames _lhsOcollectedSigs _lhsOcollectedUniques _lhsOctxCollect _lhsOdefSets _lhsOderivings _lhsOerrors _lhsOmoduleDecl _lhsOparamsCollect _lhsOpragmas _lhsOquantCollect _lhsOsemPragmasCollect _lhsOtypeSyns _lhsOuseMap _lhsOwrappers)+                   in  ( _lhsOattrDecls,_lhsOattrOrderCollect,_lhsOattrs,_lhsOblocks,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedConParams,_lhsOcollectedConstraints,_lhsOcollectedConstructorsMap,_lhsOcollectedFields,_lhsOcollectedInsts,_lhsOcollectedMacros,_lhsOcollectedMerges,_lhsOcollectedNames,_lhsOcollectedRules,_lhsOcollectedSetNames,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOctxCollect,_lhsOdefSets,_lhsOderivings,_lhsOerrors,_lhsOmoduleDecl,_lhsOparamsCollect,_lhsOpragmas,_lhsOquantCollect,_lhsOsemPragmasCollect,_lhsOtypeSyns,_lhsOuseMap,_lhsOwrappers))))+-- Field -------------------------------------------------------+{-+   visit 0:+      inherited attribute:+         allNonterminals      : Set NontermIdent+      synthesized attributes:+         collectedConstraints : [Type]+         collectedFields      : [(Identifier, Type)]+   alternatives:+      alternative FChild:+         child name           : {Identifier}+         child tp             : {Type}+      alternative FCtx:+         child tps            : {[Type]}+-}+-- cata+sem_Field :: Field ->+             T_Field+sem_Field (FChild _name _tp) =+    (sem_Field_FChild _name _tp)+sem_Field (FCtx _tps) =+    (sem_Field_FCtx _tps)+-- semantic domain+newtype T_Field = T_Field ((Set NontermIdent) ->+                           ( ([Type]),([(Identifier, Type)])))+data Inh_Field = Inh_Field {allNonterminals_Inh_Field :: !((Set NontermIdent))}+data Syn_Field = Syn_Field {collectedConstraints_Syn_Field :: !(([Type])),collectedFields_Syn_Field :: !(([(Identifier, Type)]))}+wrap_Field :: T_Field ->+              Inh_Field ->+              Syn_Field+wrap_Field (T_Field sem) (Inh_Field _lhsIallNonterminals) =+    (let ( _lhsOcollectedConstraints,_lhsOcollectedFields) = sem _lhsIallNonterminals+     in  (Syn_Field _lhsOcollectedConstraints _lhsOcollectedFields))+sem_Field_FChild :: Identifier ->+                    Type ->+                    T_Field+sem_Field_FChild name_ tp_ =+    (T_Field (\ _lhsIallNonterminals ->+                  (let _lhsOcollectedFields :: ([(Identifier, Type)])+                       _lhsOcollectedConstraints :: ([Type])+                       -- "src-ag/Transform.ag"(line 564, column 3)+                       _lhsOcollectedFields =+                           ({-# LINE 564 "src-ag/Transform.ag" #-}+                            [(name_, makeType _lhsIallNonterminals tp_)]+                            {-# LINE 5642 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 570, column 46)+                       _lhsOcollectedConstraints =+                           ({-# LINE 570 "src-ag/Transform.ag" #-}+                            []+                            {-# LINE 5648 "dist/build/Transform" #-}+                            )+                       ___node =+                           (Syn_Field _lhsOcollectedConstraints _lhsOcollectedFields)+                   in  ( _lhsOcollectedConstraints,_lhsOcollectedFields))))+sem_Field_FCtx :: ([Type]) ->+                  T_Field+sem_Field_FCtx tps_ =+    (T_Field (\ _lhsIallNonterminals ->+                  (let _lhsOcollectedConstraints :: ([Type])+                       _lhsOcollectedFields :: ([(Identifier, Type)])+                       -- "src-ag/Transform.ag"(line 573, column 3)+                       _lhsOcollectedConstraints =+                           ({-# LINE 573 "src-ag/Transform.ag" #-}+                            tps_+                            {-# LINE 5663 "dist/build/Transform" #-}+                            )+                       -- use rule "src-ag/Transform.ag"(line 561, column 41)+                       _lhsOcollectedFields =+                           ({-# LINE 561 "src-ag/Transform.ag" #-}+                            []+                            {-# LINE 5669 "dist/build/Transform" #-}+                            )+                       ___node =+                           (Syn_Field _lhsOcollectedConstraints _lhsOcollectedFields)+                   in  ( _lhsOcollectedConstraints,_lhsOcollectedFields))))+-- Fields ------------------------------------------------------+{-+   visit 0:+      inherited attribute:+         allNonterminals      : Set NontermIdent+      synthesized attributes:+         collectedConstraints : [Type]+         collectedFields      : [(Identifier, Type)]+   alternatives:+      alternative Cons:+         child hd             : Field +         child tl             : Fields +      alternative Nil:+-}+-- cata+sem_Fields :: Fields ->+              T_Fields+sem_Fields list =+    (Prelude.foldr sem_Fields_Cons sem_Fields_Nil (Prelude.map sem_Field list))+-- semantic domain+newtype T_Fields = T_Fields ((Set NontermIdent) ->+                             ( ([Type]),([(Identifier, Type)])))+data Inh_Fields = Inh_Fields {allNonterminals_Inh_Fields :: !((Set NontermIdent))}+data Syn_Fields = Syn_Fields {collectedConstraints_Syn_Fields :: !(([Type])),collectedFields_Syn_Fields :: !(([(Identifier, Type)]))}+wrap_Fields :: T_Fields ->+               Inh_Fields ->+               Syn_Fields+wrap_Fields (T_Fields sem) (Inh_Fields _lhsIallNonterminals) =+    (let ( _lhsOcollectedConstraints,_lhsOcollectedFields) = sem _lhsIallNonterminals+     in  (Syn_Fields _lhsOcollectedConstraints _lhsOcollectedFields))+sem_Fields_Cons :: T_Field ->+                   T_Fields ->+                   T_Fields+sem_Fields_Cons (T_Field hd_) (T_Fields tl_) =+    (T_Fields (\ _lhsIallNonterminals ->+                   (let _lhsOcollectedConstraints :: ([Type])+                        _lhsOcollectedFields :: ([(Identifier, Type)])+                        _hdOallNonterminals :: (Set NontermIdent)+                        _tlOallNonterminals :: (Set NontermIdent)+                        _hdIcollectedConstraints :: ([Type])+                        _hdIcollectedFields :: ([(Identifier, Type)])+                        _tlIcollectedConstraints :: ([Type])+                        _tlIcollectedFields :: ([(Identifier, Type)])+                        -- use rule "src-ag/Transform.ag"(line 570, column 46)+                        _lhsOcollectedConstraints =+                            ({-# LINE 570 "src-ag/Transform.ag" #-}+                             _hdIcollectedConstraints ++ _tlIcollectedConstraints+                             {-# LINE 5721 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 561, column 41)+                        _lhsOcollectedFields =+                            ({-# LINE 561 "src-ag/Transform.ag" #-}+                             _hdIcollectedFields ++ _tlIcollectedFields+                             {-# LINE 5727 "dist/build/Transform" #-}+                             )+                        -- copy rule (down)+                        _hdOallNonterminals =+                            ({-# LINE 93 "src-ag/Transform.ag" #-}+                             _lhsIallNonterminals+                             {-# LINE 5733 "dist/build/Transform" #-}+                             )+                        -- copy rule (down)+                        _tlOallNonterminals =+                            ({-# LINE 93 "src-ag/Transform.ag" #-}+                             _lhsIallNonterminals+                             {-# LINE 5739 "dist/build/Transform" #-}+                             )+                        ( _hdIcollectedConstraints,_hdIcollectedFields) =+                            hd_ _hdOallNonterminals+                        ( _tlIcollectedConstraints,_tlIcollectedFields) =+                            tl_ _tlOallNonterminals+                        ___node =+                            (Syn_Fields _lhsOcollectedConstraints _lhsOcollectedFields)+                    in  ( _lhsOcollectedConstraints,_lhsOcollectedFields))))+sem_Fields_Nil :: T_Fields+sem_Fields_Nil =+    (T_Fields (\ _lhsIallNonterminals ->+                   (let _lhsOcollectedConstraints :: ([Type])+                        _lhsOcollectedFields :: ([(Identifier, Type)])+                        -- use rule "src-ag/Transform.ag"(line 570, column 46)+                        _lhsOcollectedConstraints =+                            ({-# LINE 570 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 5757 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 561, column 41)+                        _lhsOcollectedFields =+                            ({-# LINE 561 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 5763 "dist/build/Transform" #-}+                             )+                        ___node =+                            (Syn_Fields _lhsOcollectedConstraints _lhsOcollectedFields)+                    in  ( _lhsOcollectedConstraints,_lhsOcollectedFields))))+-- NontSet -----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allFields            : DataTypes+         allNonterminals      : Set NontermIdent+         definedSets          : DefinedSets+      synthesized attributes:+         collectedNames       : Set Identifier+         errors               : Seq Error+         nontSet              : Set NontermIdent+   alternatives:+      alternative All:+      alternative Difference:+         child set1           : NontSet +         child set2           : NontSet +      alternative Intersect:+         child set1           : NontSet +         child set2           : NontSet +      alternative NamedSet:+         child name           : {NontermIdent}+         visit 0:+            local nontSet     : _+            local errors      : _+      alternative Path:+         child from           : {NontermIdent}+         child to             : {NontermIdent}+      alternative Union:+         child set1           : NontSet +         child set2           : NontSet +-}+-- cata+sem_NontSet :: NontSet ->+               T_NontSet+sem_NontSet (All) =+    (sem_NontSet_All)+sem_NontSet (Difference _set1 _set2) =+    (sem_NontSet_Difference (sem_NontSet _set1) (sem_NontSet _set2))+sem_NontSet (Intersect _set1 _set2) =+    (sem_NontSet_Intersect (sem_NontSet _set1) (sem_NontSet _set2))+sem_NontSet (NamedSet _name) =+    (sem_NontSet_NamedSet _name)+sem_NontSet (Path _from _to) =+    (sem_NontSet_Path _from _to)+sem_NontSet (Union _set1 _set2) =+    (sem_NontSet_Union (sem_NontSet _set1) (sem_NontSet _set2))+-- semantic domain+newtype T_NontSet = T_NontSet (DataTypes ->+                               (Set NontermIdent) ->+                               DefinedSets ->+                               ( (Set Identifier),(Seq Error),(Set NontermIdent)))+data Inh_NontSet = Inh_NontSet {allFields_Inh_NontSet :: !(DataTypes),allNonterminals_Inh_NontSet :: !((Set NontermIdent)),definedSets_Inh_NontSet :: !(DefinedSets)}+data Syn_NontSet = Syn_NontSet {collectedNames_Syn_NontSet :: !((Set Identifier)),errors_Syn_NontSet :: !((Seq Error)),nontSet_Syn_NontSet :: !((Set NontermIdent))}+wrap_NontSet :: T_NontSet ->+                Inh_NontSet ->+                Syn_NontSet+wrap_NontSet (T_NontSet sem) (Inh_NontSet _lhsIallFields _lhsIallNonterminals _lhsIdefinedSets) =+    (let ( _lhsOcollectedNames,_lhsOerrors,_lhsOnontSet) = sem _lhsIallFields _lhsIallNonterminals _lhsIdefinedSets+     in  (Syn_NontSet _lhsOcollectedNames _lhsOerrors _lhsOnontSet))+sem_NontSet_All :: T_NontSet+sem_NontSet_All =+    (T_NontSet (\ _lhsIallFields+                  _lhsIallNonterminals+                  _lhsIdefinedSets ->+                    (let _lhsOnontSet :: (Set NontermIdent)+                         _lhsOcollectedNames :: (Set Identifier)+                         _lhsOerrors :: (Seq Error)+                         -- "src-ag/Transform.ag"(line 717, column 16)+                         _lhsOnontSet =+                             ({-# LINE 717 "src-ag/Transform.ag" #-}+                              _lhsIallNonterminals+                              {-# LINE 5839 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 91, column 50)+                         _lhsOcollectedNames =+                             ({-# LINE 91 "src-ag/Transform.ag" #-}+                              Set.empty+                              {-# LINE 5845 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 44, column 19)+                         _lhsOerrors =+                             ({-# LINE 44 "src-ag/Transform.ag" #-}+                              Seq.empty+                              {-# LINE 5851 "dist/build/Transform" #-}+                              )+                         ___node =+                             (Syn_NontSet _lhsOcollectedNames _lhsOerrors _lhsOnontSet)+                     in  ( _lhsOcollectedNames,_lhsOerrors,_lhsOnontSet))))+sem_NontSet_Difference :: T_NontSet ->+                          T_NontSet ->+                          T_NontSet+sem_NontSet_Difference (T_NontSet set1_) (T_NontSet set2_) =+    (T_NontSet (\ _lhsIallFields+                  _lhsIallNonterminals+                  _lhsIdefinedSets ->+                    (let _lhsOnontSet :: (Set NontermIdent)+                         _lhsOcollectedNames :: (Set Identifier)+                         _lhsOerrors :: (Seq Error)+                         _set1OallFields :: DataTypes+                         _set1OallNonterminals :: (Set NontermIdent)+                         _set1OdefinedSets :: DefinedSets+                         _set2OallFields :: DataTypes+                         _set2OallNonterminals :: (Set NontermIdent)+                         _set2OdefinedSets :: DefinedSets+                         _set1IcollectedNames :: (Set Identifier)+                         _set1Ierrors :: (Seq Error)+                         _set1InontSet :: (Set NontermIdent)+                         _set2IcollectedNames :: (Set Identifier)+                         _set2Ierrors :: (Seq Error)+                         _set2InontSet :: (Set NontermIdent)+                         -- "src-ag/Transform.ag"(line 723, column 16)+                         _lhsOnontSet =+                             ({-# LINE 723 "src-ag/Transform.ag" #-}+                              Set.difference    _set1InontSet _set2InontSet+                              {-# LINE 5882 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 91, column 50)+                         _lhsOcollectedNames =+                             ({-# LINE 91 "src-ag/Transform.ag" #-}+                              _set1IcollectedNames `Set.union` _set2IcollectedNames+                              {-# LINE 5888 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 44, column 19)+                         _lhsOerrors =+                             ({-# LINE 44 "src-ag/Transform.ag" #-}+                              _set1Ierrors Seq.>< _set2Ierrors+                              {-# LINE 5894 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set1OallFields =+                             ({-# LINE 136 "src-ag/Transform.ag" #-}+                              _lhsIallFields+                              {-# LINE 5900 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set1OallNonterminals =+                             ({-# LINE 93 "src-ag/Transform.ag" #-}+                              _lhsIallNonterminals+                              {-# LINE 5906 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set1OdefinedSets =+                             ({-# LINE 112 "src-ag/Transform.ag" #-}+                              _lhsIdefinedSets+                              {-# LINE 5912 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set2OallFields =+                             ({-# LINE 136 "src-ag/Transform.ag" #-}+                              _lhsIallFields+                              {-# LINE 5918 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set2OallNonterminals =+                             ({-# LINE 93 "src-ag/Transform.ag" #-}+                              _lhsIallNonterminals+                              {-# LINE 5924 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set2OdefinedSets =+                             ({-# LINE 112 "src-ag/Transform.ag" #-}+                              _lhsIdefinedSets+                              {-# LINE 5930 "dist/build/Transform" #-}+                              )+                         ( _set1IcollectedNames,_set1Ierrors,_set1InontSet) =+                             set1_ _set1OallFields _set1OallNonterminals _set1OdefinedSets+                         ( _set2IcollectedNames,_set2Ierrors,_set2InontSet) =+                             set2_ _set2OallFields _set2OallNonterminals _set2OdefinedSets+                         ___node =+                             (Syn_NontSet _lhsOcollectedNames _lhsOerrors _lhsOnontSet)+                     in  ( _lhsOcollectedNames,_lhsOerrors,_lhsOnontSet))))+sem_NontSet_Intersect :: T_NontSet ->+                         T_NontSet ->+                         T_NontSet+sem_NontSet_Intersect (T_NontSet set1_) (T_NontSet set2_) =+    (T_NontSet (\ _lhsIallFields+                  _lhsIallNonterminals+                  _lhsIdefinedSets ->+                    (let _lhsOnontSet :: (Set NontermIdent)+                         _lhsOcollectedNames :: (Set Identifier)+                         _lhsOerrors :: (Seq Error)+                         _set1OallFields :: DataTypes+                         _set1OallNonterminals :: (Set NontermIdent)+                         _set1OdefinedSets :: DefinedSets+                         _set2OallFields :: DataTypes+                         _set2OallNonterminals :: (Set NontermIdent)+                         _set2OdefinedSets :: DefinedSets+                         _set1IcollectedNames :: (Set Identifier)+                         _set1Ierrors :: (Seq Error)+                         _set1InontSet :: (Set NontermIdent)+                         _set2IcollectedNames :: (Set Identifier)+                         _set2Ierrors :: (Seq Error)+                         _set2InontSet :: (Set NontermIdent)+                         -- "src-ag/Transform.ag"(line 722, column 16)+                         _lhsOnontSet =+                             ({-# LINE 722 "src-ag/Transform.ag" #-}+                              Set.intersection  _set1InontSet _set2InontSet+                              {-# LINE 5965 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 91, column 50)+                         _lhsOcollectedNames =+                             ({-# LINE 91 "src-ag/Transform.ag" #-}+                              _set1IcollectedNames `Set.union` _set2IcollectedNames+                              {-# LINE 5971 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 44, column 19)+                         _lhsOerrors =+                             ({-# LINE 44 "src-ag/Transform.ag" #-}+                              _set1Ierrors Seq.>< _set2Ierrors+                              {-# LINE 5977 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set1OallFields =+                             ({-# LINE 136 "src-ag/Transform.ag" #-}+                              _lhsIallFields+                              {-# LINE 5983 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set1OallNonterminals =+                             ({-# LINE 93 "src-ag/Transform.ag" #-}+                              _lhsIallNonterminals+                              {-# LINE 5989 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set1OdefinedSets =+                             ({-# LINE 112 "src-ag/Transform.ag" #-}+                              _lhsIdefinedSets+                              {-# LINE 5995 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set2OallFields =+                             ({-# LINE 136 "src-ag/Transform.ag" #-}+                              _lhsIallFields+                              {-# LINE 6001 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set2OallNonterminals =+                             ({-# LINE 93 "src-ag/Transform.ag" #-}+                              _lhsIallNonterminals+                              {-# LINE 6007 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set2OdefinedSets =+                             ({-# LINE 112 "src-ag/Transform.ag" #-}+                              _lhsIdefinedSets+                              {-# LINE 6013 "dist/build/Transform" #-}+                              )+                         ( _set1IcollectedNames,_set1Ierrors,_set1InontSet) =+                             set1_ _set1OallFields _set1OallNonterminals _set1OdefinedSets+                         ( _set2IcollectedNames,_set2Ierrors,_set2InontSet) =+                             set2_ _set2OallFields _set2OallNonterminals _set2OdefinedSets+                         ___node =+                             (Syn_NontSet _lhsOcollectedNames _lhsOerrors _lhsOnontSet)+                     in  ( _lhsOcollectedNames,_lhsOerrors,_lhsOnontSet))))+sem_NontSet_NamedSet :: NontermIdent ->+                        T_NontSet+sem_NontSet_NamedSet name_ =+    (T_NontSet (\ _lhsIallFields+                  _lhsIallNonterminals+                  _lhsIdefinedSets ->+                    (let _lhsOcollectedNames :: (Set Identifier)+                         _lhsOerrors :: (Seq Error)+                         _lhsOnontSet :: (Set NontermIdent)+                         -- "src-ag/Transform.ag"(line 588, column 14)+                         _lhsOcollectedNames =+                             ({-# LINE 588 "src-ag/Transform.ag" #-}+                              Set.singleton name_+                              {-# LINE 6035 "dist/build/Transform" #-}+                              )+                         -- "src-ag/Transform.ag"(line 718, column 20)+                         (_nontSet,_errors) =+                             ({-# LINE 718 "src-ag/Transform.ag" #-}+                              case Map.lookup name_ _lhsIdefinedSets of+                                           Nothing  -> (Set.empty, Seq.singleton (UndefNont name_))+                                           Just set -> (set, Seq.empty)+                              {-# LINE 6043 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 44, column 19)+                         _lhsOerrors =+                             ({-# LINE 44 "src-ag/Transform.ag" #-}+                              _errors+                              {-# LINE 6049 "dist/build/Transform" #-}+                              )+                         -- copy rule (from local)+                         _lhsOnontSet =+                             ({-# LINE 117 "src-ag/Transform.ag" #-}+                              _nontSet+                              {-# LINE 6055 "dist/build/Transform" #-}+                              )+                         ___node =+                             (Syn_NontSet _lhsOcollectedNames _lhsOerrors _lhsOnontSet)+                     in  ( _lhsOcollectedNames,_lhsOerrors,_lhsOnontSet))))+sem_NontSet_Path :: NontermIdent ->+                    NontermIdent ->+                    T_NontSet+sem_NontSet_Path from_ to_ =+    (T_NontSet (\ _lhsIallFields+                  _lhsIallNonterminals+                  _lhsIdefinedSets ->+                    (let _lhsOnontSet :: (Set NontermIdent)+                         _lhsOerrors :: (Seq Error)+                         _lhsOcollectedNames :: (Set Identifier)+                         -- "src-ag/Transform.ag"(line 724, column 16)+                         _lhsOnontSet =+                             ({-# LINE 724 "src-ag/Transform.ag" #-}+                              let table = flattenDatas _lhsIallFields+                              in path table from_ to_+                              {-# LINE 6075 "dist/build/Transform" #-}+                              )+                         -- "src-ag/Transform.ag"(line 726, column 16)+                         _lhsOerrors =+                             ({-# LINE 726 "src-ag/Transform.ag" #-}+                              let check name | Set.member name _lhsIallNonterminals+                                                         = Seq.empty+                                             | otherwise = Seq.singleton (UndefNont name)+                              in check from_ >< check to_+                              {-# LINE 6084 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 91, column 50)+                         _lhsOcollectedNames =+                             ({-# LINE 91 "src-ag/Transform.ag" #-}+                              Set.empty+                              {-# LINE 6090 "dist/build/Transform" #-}+                              )+                         ___node =+                             (Syn_NontSet _lhsOcollectedNames _lhsOerrors _lhsOnontSet)+                     in  ( _lhsOcollectedNames,_lhsOerrors,_lhsOnontSet))))+sem_NontSet_Union :: T_NontSet ->+                     T_NontSet ->+                     T_NontSet+sem_NontSet_Union (T_NontSet set1_) (T_NontSet set2_) =+    (T_NontSet (\ _lhsIallFields+                  _lhsIallNonterminals+                  _lhsIdefinedSets ->+                    (let _lhsOnontSet :: (Set NontermIdent)+                         _lhsOcollectedNames :: (Set Identifier)+                         _lhsOerrors :: (Seq Error)+                         _set1OallFields :: DataTypes+                         _set1OallNonterminals :: (Set NontermIdent)+                         _set1OdefinedSets :: DefinedSets+                         _set2OallFields :: DataTypes+                         _set2OallNonterminals :: (Set NontermIdent)+                         _set2OdefinedSets :: DefinedSets+                         _set1IcollectedNames :: (Set Identifier)+                         _set1Ierrors :: (Seq Error)+                         _set1InontSet :: (Set NontermIdent)+                         _set2IcollectedNames :: (Set Identifier)+                         _set2Ierrors :: (Seq Error)+                         _set2InontSet :: (Set NontermIdent)+                         -- "src-ag/Transform.ag"(line 721, column 16)+                         _lhsOnontSet =+                             ({-# LINE 721 "src-ag/Transform.ag" #-}+                              Set.union         _set1InontSet _set2InontSet+                              {-# LINE 6121 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 91, column 50)+                         _lhsOcollectedNames =+                             ({-# LINE 91 "src-ag/Transform.ag" #-}+                              _set1IcollectedNames `Set.union` _set2IcollectedNames+                              {-# LINE 6127 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 44, column 19)+                         _lhsOerrors =+                             ({-# LINE 44 "src-ag/Transform.ag" #-}+                              _set1Ierrors Seq.>< _set2Ierrors+                              {-# LINE 6133 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set1OallFields =+                             ({-# LINE 136 "src-ag/Transform.ag" #-}+                              _lhsIallFields+                              {-# LINE 6139 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set1OallNonterminals =+                             ({-# LINE 93 "src-ag/Transform.ag" #-}+                              _lhsIallNonterminals+                              {-# LINE 6145 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set1OdefinedSets =+                             ({-# LINE 112 "src-ag/Transform.ag" #-}+                              _lhsIdefinedSets+                              {-# LINE 6151 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set2OallFields =+                             ({-# LINE 136 "src-ag/Transform.ag" #-}+                              _lhsIallFields+                              {-# LINE 6157 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set2OallNonterminals =+                             ({-# LINE 93 "src-ag/Transform.ag" #-}+                              _lhsIallNonterminals+                              {-# LINE 6163 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _set2OdefinedSets =+                             ({-# LINE 112 "src-ag/Transform.ag" #-}+                              _lhsIdefinedSets+                              {-# LINE 6169 "dist/build/Transform" #-}+                              )+                         ( _set1IcollectedNames,_set1Ierrors,_set1InontSet) =+                             set1_ _set1OallFields _set1OallNonterminals _set1OdefinedSets+                         ( _set2IcollectedNames,_set2Ierrors,_set2InontSet) =+                             set2_ _set2OallFields _set2OallNonterminals _set2OdefinedSets+                         ___node =+                             (Syn_NontSet _lhsOcollectedNames _lhsOerrors _lhsOnontSet)+                     in  ( _lhsOcollectedNames,_lhsOerrors,_lhsOnontSet))))+-- Pattern -----------------------------------------------------+{-+   visit 0:+      synthesized attributes:+         copy                 : Pattern +         definedAttrs         : [AttrName]+         definedInsts         : [Identifier]+         patunder             : [AttrName]->Pattern+         stpos                : Pos+   alternatives:+      alternative Alias:+         child field          : {Identifier}+         child attr           : {Identifier}+         child pat            : Pattern +         visit 0:+            local copy        : _+      alternative Constr:+         child name           : {ConstructorIdent}+         child pats           : Patterns +         visit 0:+            local copy        : _+      alternative Irrefutable:+         child pat            : Pattern +         visit 0:+            local copy        : _+      alternative Product:+         child pos            : {Pos}+         child pats           : Patterns +         visit 0:+            local copy        : _+      alternative Underscore:+         child pos            : {Pos}+         visit 0:+            local copy        : _+-}+-- cata+sem_Pattern :: Pattern ->+               T_Pattern+sem_Pattern (Alias _field _attr _pat) =+    (sem_Pattern_Alias _field _attr (sem_Pattern _pat))+sem_Pattern (Constr _name _pats) =+    (sem_Pattern_Constr _name (sem_Patterns _pats))+sem_Pattern (Irrefutable _pat) =+    (sem_Pattern_Irrefutable (sem_Pattern _pat))+sem_Pattern (Product _pos _pats) =+    (sem_Pattern_Product _pos (sem_Patterns _pats))+sem_Pattern (Underscore _pos) =+    (sem_Pattern_Underscore _pos)+-- semantic domain+newtype T_Pattern = T_Pattern (( Pattern,([AttrName]),([Identifier]),([AttrName]->Pattern),Pos))+data Inh_Pattern = Inh_Pattern {}+data Syn_Pattern = Syn_Pattern {copy_Syn_Pattern :: !(Pattern),definedAttrs_Syn_Pattern :: !(([AttrName])),definedInsts_Syn_Pattern :: !(([Identifier])),patunder_Syn_Pattern :: !(([AttrName]->Pattern)),stpos_Syn_Pattern :: !(Pos)}+wrap_Pattern :: T_Pattern ->+                Inh_Pattern ->+                Syn_Pattern+wrap_Pattern (T_Pattern sem) (Inh_Pattern) =+    (let ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder,_lhsOstpos) = sem+     in  (Syn_Pattern _lhsOcopy _lhsOdefinedAttrs _lhsOdefinedInsts _lhsOpatunder _lhsOstpos))+sem_Pattern_Alias :: Identifier ->+                     Identifier ->+                     T_Pattern ->+                     T_Pattern+sem_Pattern_Alias field_ attr_ (T_Pattern pat_) =+    (T_Pattern (let _lhsOdefinedAttrs :: ([AttrName])+                    _lhsOpatunder :: ([AttrName]->Pattern)+                    _lhsOdefinedInsts :: ([Identifier])+                    _lhsOstpos :: Pos+                    _lhsOcopy :: Pattern+                    _patIcopy :: Pattern+                    _patIdefinedAttrs :: ([AttrName])+                    _patIdefinedInsts :: ([Identifier])+                    _patIpatunder :: ([AttrName]->Pattern)+                    _patIstpos :: Pos+                    -- "src-ag/Transform.ag"(line 1163, column 11)+                    _lhsOdefinedAttrs =+                        ({-# LINE 1163 "src-ag/Transform.ag" #-}+                         (field_, attr_) : _patIdefinedAttrs+                         {-# LINE 6255 "dist/build/Transform" #-}+                         )+                    -- "src-ag/Transform.ag"(line 1164, column 11)+                    _lhsOpatunder =+                        ({-# LINE 1164 "src-ag/Transform.ag" #-}+                         \us -> if ((field_,attr_) `elem` us) then Underscore noPos else _copy+                         {-# LINE 6261 "dist/build/Transform" #-}+                         )+                    -- "src-ag/Transform.ag"(line 1165, column 11)+                    _lhsOdefinedInsts =+                        ({-# LINE 1165 "src-ag/Transform.ag" #-}+                         (if field_ == _INST then [attr_] else []) ++ _patIdefinedInsts+                         {-# LINE 6267 "dist/build/Transform" #-}+                         )+                    -- "src-ag/Transform.ag"(line 1180, column 16)+                    _lhsOstpos =+                        ({-# LINE 1180 "src-ag/Transform.ag" #-}+                         getPos field_+                         {-# LINE 6273 "dist/build/Transform" #-}+                         )+                    -- self rule+                    _copy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         Alias field_ attr_ _patIcopy+                         {-# LINE 6279 "dist/build/Transform" #-}+                         )+                    -- self rule+                    _lhsOcopy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         _copy+                         {-# LINE 6285 "dist/build/Transform" #-}+                         )+                    ( _patIcopy,_patIdefinedAttrs,_patIdefinedInsts,_patIpatunder,_patIstpos) =+                        pat_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOdefinedAttrs _lhsOdefinedInsts _lhsOpatunder _lhsOstpos)+                in  ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder,_lhsOstpos)))+sem_Pattern_Constr :: ConstructorIdent ->+                      T_Patterns ->+                      T_Pattern+sem_Pattern_Constr name_ (T_Patterns pats_) =+    (T_Pattern (let _lhsOpatunder :: ([AttrName]->Pattern)+                    _lhsOstpos :: Pos+                    _lhsOdefinedAttrs :: ([AttrName])+                    _lhsOdefinedInsts :: ([Identifier])+                    _lhsOcopy :: Pattern+                    _patsIcopy :: Patterns+                    _patsIdefinedAttrs :: ([AttrName])+                    _patsIdefinedInsts :: ([Identifier])+                    _patsIpatunder :: ([AttrName]->Patterns)+                    -- "src-ag/Transform.ag"(line 1167, column 12)+                    _lhsOpatunder =+                        ({-# LINE 1167 "src-ag/Transform.ag" #-}+                         \us -> Constr name_ (_patsIpatunder us)+                         {-# LINE 6309 "dist/build/Transform" #-}+                         )+                    -- "src-ag/Transform.ag"(line 1178, column 16)+                    _lhsOstpos =+                        ({-# LINE 1178 "src-ag/Transform.ag" #-}+                         getPos name_+                         {-# LINE 6315 "dist/build/Transform" #-}+                         )+                    -- use rule "src-ag/Transform.ag"(line 1158, column 42)+                    _lhsOdefinedAttrs =+                        ({-# LINE 1158 "src-ag/Transform.ag" #-}+                         _patsIdefinedAttrs+                         {-# LINE 6321 "dist/build/Transform" #-}+                         )+                    -- use rule "src-ag/Transform.ag"(line 1157, column 55)+                    _lhsOdefinedInsts =+                        ({-# LINE 1157 "src-ag/Transform.ag" #-}+                         _patsIdefinedInsts+                         {-# LINE 6327 "dist/build/Transform" #-}+                         )+                    -- self rule+                    _copy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         Constr name_ _patsIcopy+                         {-# LINE 6333 "dist/build/Transform" #-}+                         )+                    -- self rule+                    _lhsOcopy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         _copy+                         {-# LINE 6339 "dist/build/Transform" #-}+                         )+                    ( _patsIcopy,_patsIdefinedAttrs,_patsIdefinedInsts,_patsIpatunder) =+                        pats_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOdefinedAttrs _lhsOdefinedInsts _lhsOpatunder _lhsOstpos)+                in  ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder,_lhsOstpos)))+sem_Pattern_Irrefutable :: T_Pattern ->+                           T_Pattern+sem_Pattern_Irrefutable (T_Pattern pat_) =+    (T_Pattern (let _lhsOpatunder :: ([AttrName]->Pattern)+                    _lhsOdefinedAttrs :: ([AttrName])+                    _lhsOdefinedInsts :: ([Identifier])+                    _lhsOcopy :: Pattern+                    _lhsOstpos :: Pos+                    _patIcopy :: Pattern+                    _patIdefinedAttrs :: ([AttrName])+                    _patIdefinedInsts :: ([Identifier])+                    _patIpatunder :: ([AttrName]->Pattern)+                    _patIstpos :: Pos+                    -- "src-ag/Transform.ag"(line 1169, column 17)+                    _lhsOpatunder =+                        ({-# LINE 1169 "src-ag/Transform.ag" #-}+                         \us -> Irrefutable (_patIpatunder us)+                         {-# LINE 6363 "dist/build/Transform" #-}+                         )+                    -- use rule "src-ag/Transform.ag"(line 1158, column 42)+                    _lhsOdefinedAttrs =+                        ({-# LINE 1158 "src-ag/Transform.ag" #-}+                         _patIdefinedAttrs+                         {-# LINE 6369 "dist/build/Transform" #-}+                         )+                    -- use rule "src-ag/Transform.ag"(line 1157, column 55)+                    _lhsOdefinedInsts =+                        ({-# LINE 1157 "src-ag/Transform.ag" #-}+                         _patIdefinedInsts+                         {-# LINE 6375 "dist/build/Transform" #-}+                         )+                    -- self rule+                    _copy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         Irrefutable _patIcopy+                         {-# LINE 6381 "dist/build/Transform" #-}+                         )+                    -- self rule+                    _lhsOcopy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         _copy+                         {-# LINE 6387 "dist/build/Transform" #-}+                         )+                    -- copy rule (up)+                    _lhsOstpos =+                        ({-# LINE 1175 "src-ag/Transform.ag" #-}+                         _patIstpos+                         {-# LINE 6393 "dist/build/Transform" #-}+                         )+                    ( _patIcopy,_patIdefinedAttrs,_patIdefinedInsts,_patIpatunder,_patIstpos) =+                        pat_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOdefinedAttrs _lhsOdefinedInsts _lhsOpatunder _lhsOstpos)+                in  ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder,_lhsOstpos)))+sem_Pattern_Product :: Pos ->+                       T_Patterns ->+                       T_Pattern+sem_Pattern_Product pos_ (T_Patterns pats_) =+    (T_Pattern (let _lhsOpatunder :: ([AttrName]->Pattern)+                    _lhsOstpos :: Pos+                    _lhsOdefinedAttrs :: ([AttrName])+                    _lhsOdefinedInsts :: ([Identifier])+                    _lhsOcopy :: Pattern+                    _patsIcopy :: Patterns+                    _patsIdefinedAttrs :: ([AttrName])+                    _patsIdefinedInsts :: ([Identifier])+                    _patsIpatunder :: ([AttrName]->Patterns)+                    -- "src-ag/Transform.ag"(line 1168, column 13)+                    _lhsOpatunder =+                        ({-# LINE 1168 "src-ag/Transform.ag" #-}+                         \us -> Product pos_ (_patsIpatunder us)+                         {-# LINE 6417 "dist/build/Transform" #-}+                         )+                    -- "src-ag/Transform.ag"(line 1179, column 16)+                    _lhsOstpos =+                        ({-# LINE 1179 "src-ag/Transform.ag" #-}+                         pos_+                         {-# LINE 6423 "dist/build/Transform" #-}+                         )+                    -- use rule "src-ag/Transform.ag"(line 1158, column 42)+                    _lhsOdefinedAttrs =+                        ({-# LINE 1158 "src-ag/Transform.ag" #-}+                         _patsIdefinedAttrs+                         {-# LINE 6429 "dist/build/Transform" #-}+                         )+                    -- use rule "src-ag/Transform.ag"(line 1157, column 55)+                    _lhsOdefinedInsts =+                        ({-# LINE 1157 "src-ag/Transform.ag" #-}+                         _patsIdefinedInsts+                         {-# LINE 6435 "dist/build/Transform" #-}+                         )+                    -- self rule+                    _copy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         Product pos_ _patsIcopy+                         {-# LINE 6441 "dist/build/Transform" #-}+                         )+                    -- self rule+                    _lhsOcopy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         _copy+                         {-# LINE 6447 "dist/build/Transform" #-}+                         )+                    ( _patsIcopy,_patsIdefinedAttrs,_patsIdefinedInsts,_patsIpatunder) =+                        pats_+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOdefinedAttrs _lhsOdefinedInsts _lhsOpatunder _lhsOstpos)+                in  ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder,_lhsOstpos)))+sem_Pattern_Underscore :: Pos ->+                          T_Pattern+sem_Pattern_Underscore pos_ =+    (T_Pattern (let _lhsOpatunder :: ([AttrName]->Pattern)+                    _lhsOstpos :: Pos+                    _lhsOdefinedAttrs :: ([AttrName])+                    _lhsOdefinedInsts :: ([Identifier])+                    _lhsOcopy :: Pattern+                    -- "src-ag/Transform.ag"(line 1166, column 16)+                    _lhsOpatunder =+                        ({-# LINE 1166 "src-ag/Transform.ag" #-}+                         \us -> _copy+                         {-# LINE 6466 "dist/build/Transform" #-}+                         )+                    -- "src-ag/Transform.ag"(line 1181, column 16)+                    _lhsOstpos =+                        ({-# LINE 1181 "src-ag/Transform.ag" #-}+                         pos_+                         {-# LINE 6472 "dist/build/Transform" #-}+                         )+                    -- use rule "src-ag/Transform.ag"(line 1158, column 42)+                    _lhsOdefinedAttrs =+                        ({-# LINE 1158 "src-ag/Transform.ag" #-}+                         []+                         {-# LINE 6478 "dist/build/Transform" #-}+                         )+                    -- use rule "src-ag/Transform.ag"(line 1157, column 55)+                    _lhsOdefinedInsts =+                        ({-# LINE 1157 "src-ag/Transform.ag" #-}+                         []+                         {-# LINE 6484 "dist/build/Transform" #-}+                         )+                    -- self rule+                    _copy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         Underscore pos_+                         {-# LINE 6490 "dist/build/Transform" #-}+                         )+                    -- self rule+                    _lhsOcopy =+                        ({-# LINE 22 "src-ag/Patterns.ag" #-}+                         _copy+                         {-# LINE 6496 "dist/build/Transform" #-}+                         )+                    ___node =+                        (Syn_Pattern _lhsOcopy _lhsOdefinedAttrs _lhsOdefinedInsts _lhsOpatunder _lhsOstpos)+                in  ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder,_lhsOstpos)))+-- Patterns ----------------------------------------------------+{-+   visit 0:+      synthesized attributes:+         copy                 : Patterns +         definedAttrs         : [AttrName]+         definedInsts         : [Identifier]+         patunder             : [AttrName]->Patterns+   alternatives:+      alternative Cons:+         child hd             : Pattern +         child tl             : Patterns +         visit 0:+            local copy        : _+      alternative Nil:+         visit 0:+            local copy        : _+-}+-- cata+sem_Patterns :: Patterns ->+                T_Patterns+sem_Patterns list =+    (Prelude.foldr sem_Patterns_Cons sem_Patterns_Nil (Prelude.map sem_Pattern list))+-- semantic domain+newtype T_Patterns = T_Patterns (( Patterns,([AttrName]),([Identifier]),([AttrName]->Patterns)))+data Inh_Patterns = Inh_Patterns {}+data Syn_Patterns = Syn_Patterns {copy_Syn_Patterns :: !(Patterns),definedAttrs_Syn_Patterns :: !(([AttrName])),definedInsts_Syn_Patterns :: !(([Identifier])),patunder_Syn_Patterns :: !(([AttrName]->Patterns))}+wrap_Patterns :: T_Patterns ->+                 Inh_Patterns ->+                 Syn_Patterns+wrap_Patterns (T_Patterns sem) (Inh_Patterns) =+    (let ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder) = sem+     in  (Syn_Patterns _lhsOcopy _lhsOdefinedAttrs _lhsOdefinedInsts _lhsOpatunder))+sem_Patterns_Cons :: T_Pattern ->+                     T_Patterns ->+                     T_Patterns+sem_Patterns_Cons (T_Pattern hd_) (T_Patterns tl_) =+    (T_Patterns (let _lhsOpatunder :: ([AttrName]->Patterns)+                     _lhsOdefinedAttrs :: ([AttrName])+                     _lhsOdefinedInsts :: ([Identifier])+                     _lhsOcopy :: Patterns+                     _hdIcopy :: Pattern+                     _hdIdefinedAttrs :: ([AttrName])+                     _hdIdefinedInsts :: ([Identifier])+                     _hdIpatunder :: ([AttrName]->Pattern)+                     _hdIstpos :: Pos+                     _tlIcopy :: Patterns+                     _tlIdefinedAttrs :: ([AttrName])+                     _tlIdefinedInsts :: ([Identifier])+                     _tlIpatunder :: ([AttrName]->Patterns)+                     -- "src-ag/Transform.ag"(line 1173, column 10)+                     _lhsOpatunder =+                         ({-# LINE 1173 "src-ag/Transform.ag" #-}+                          \us -> (_hdIpatunder us) : (_tlIpatunder us)+                          {-# LINE 6555 "dist/build/Transform" #-}+                          )+                     -- use rule "src-ag/Transform.ag"(line 1158, column 42)+                     _lhsOdefinedAttrs =+                         ({-# LINE 1158 "src-ag/Transform.ag" #-}+                          _hdIdefinedAttrs ++ _tlIdefinedAttrs+                          {-# LINE 6561 "dist/build/Transform" #-}+                          )+                     -- use rule "src-ag/Transform.ag"(line 1157, column 55)+                     _lhsOdefinedInsts =+                         ({-# LINE 1157 "src-ag/Transform.ag" #-}+                          _hdIdefinedInsts ++ _tlIdefinedInsts+                          {-# LINE 6567 "dist/build/Transform" #-}+                          )+                     -- self rule+                     _copy =+                         ({-# LINE 22 "src-ag/Patterns.ag" #-}+                          (:) _hdIcopy _tlIcopy+                          {-# LINE 6573 "dist/build/Transform" #-}+                          )+                     -- self rule+                     _lhsOcopy =+                         ({-# LINE 22 "src-ag/Patterns.ag" #-}+                          _copy+                          {-# LINE 6579 "dist/build/Transform" #-}+                          )+                     ( _hdIcopy,_hdIdefinedAttrs,_hdIdefinedInsts,_hdIpatunder,_hdIstpos) =+                         hd_+                     ( _tlIcopy,_tlIdefinedAttrs,_tlIdefinedInsts,_tlIpatunder) =+                         tl_+                     ___node =+                         (Syn_Patterns _lhsOcopy _lhsOdefinedAttrs _lhsOdefinedInsts _lhsOpatunder)+                 in  ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder)))+sem_Patterns_Nil :: T_Patterns+sem_Patterns_Nil =+    (T_Patterns (let _lhsOpatunder :: ([AttrName]->Patterns)+                     _lhsOdefinedAttrs :: ([AttrName])+                     _lhsOdefinedInsts :: ([Identifier])+                     _lhsOcopy :: Patterns+                     -- "src-ag/Transform.ag"(line 1172, column 9)+                     _lhsOpatunder =+                         ({-# LINE 1172 "src-ag/Transform.ag" #-}+                          \us ->  []+                          {-# LINE 6598 "dist/build/Transform" #-}+                          )+                     -- use rule "src-ag/Transform.ag"(line 1158, column 42)+                     _lhsOdefinedAttrs =+                         ({-# LINE 1158 "src-ag/Transform.ag" #-}+                          []+                          {-# LINE 6604 "dist/build/Transform" #-}+                          )+                     -- use rule "src-ag/Transform.ag"(line 1157, column 55)+                     _lhsOdefinedInsts =+                         ({-# LINE 1157 "src-ag/Transform.ag" #-}+                          []+                          {-# LINE 6610 "dist/build/Transform" #-}+                          )+                     -- self rule+                     _copy =+                         ({-# LINE 22 "src-ag/Patterns.ag" #-}+                          []+                          {-# LINE 6616 "dist/build/Transform" #-}+                          )+                     -- self rule+                     _lhsOcopy =+                         ({-# LINE 22 "src-ag/Patterns.ag" #-}+                          _copy+                          {-# LINE 6622 "dist/build/Transform" #-}+                          )+                     ___node =+                         (Syn_Patterns _lhsOcopy _lhsOdefinedAttrs _lhsOdefinedInsts _lhsOpatunder)+                 in  ( _lhsOcopy,_lhsOdefinedAttrs,_lhsOdefinedInsts,_lhsOpatunder)))+-- SemAlt ------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allAttrDecls         : Map NontermIdent (Attributes, Attributes)+         allAttrs             : Map NontermIdent (Attributes, Attributes)+         allFields            : DataTypes+         nts                  : Set NontermIdent+         options              : Options+      synthesized attributes:+         attrOrderCollect     : AttrOrderMap+         collectedArounds     : [ (NontermIdent, ConstructorIdent, [AroundInfo])  ]+         collectedAugments    : [ (NontermIdent, ConstructorIdent, [AugmentInfo]) ]+         collectedInsts       : [ (NontermIdent, ConstructorIdent, [Identifier]) ]+         collectedMerges      : [ (NontermIdent, ConstructorIdent, [MergeInfo])   ]+         collectedRules       : [ (NontermIdent, ConstructorIdent, RuleInfo)]+         collectedSigs        : [ (NontermIdent, ConstructorIdent, SigInfo) ]+         collectedUniques     : [ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]+         errors               : Seq Error+         semPragmasCollect    : PragmaMap+   alternatives:+      alternative SemAlt:+         child pos            : {Pos}+         child constructorSet : ConstructorSet +         child rules          : SemDefs +         visit 0:+            local pragmaNames : _+            local attrOrders  : _+            local coninfo     : _+-}+-- cata+sem_SemAlt :: SemAlt ->+              T_SemAlt+sem_SemAlt (SemAlt _pos _constructorSet _rules) =+    (sem_SemAlt_SemAlt _pos (sem_ConstructorSet _constructorSet) (sem_SemDefs _rules))+-- semantic domain+newtype T_SemAlt = T_SemAlt ((Map NontermIdent (Attributes, Attributes)) ->+                             (Map NontermIdent (Attributes, Attributes)) ->+                             DataTypes ->+                             (Set NontermIdent) ->+                             Options ->+                             ( AttrOrderMap,([ (NontermIdent, ConstructorIdent, [AroundInfo])  ]),([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ]),([ (NontermIdent, ConstructorIdent, [Identifier]) ]),([ (NontermIdent, ConstructorIdent, [MergeInfo])   ]),([ (NontermIdent, ConstructorIdent, RuleInfo)]),([ (NontermIdent, ConstructorIdent, SigInfo) ]),([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]),(Seq Error),PragmaMap))+data Inh_SemAlt = Inh_SemAlt {allAttrDecls_Inh_SemAlt :: !((Map NontermIdent (Attributes, Attributes))),allAttrs_Inh_SemAlt :: !((Map NontermIdent (Attributes, Attributes))),allFields_Inh_SemAlt :: !(DataTypes),nts_Inh_SemAlt :: !((Set NontermIdent)),options_Inh_SemAlt :: !(Options)}+data Syn_SemAlt = Syn_SemAlt {attrOrderCollect_Syn_SemAlt :: !(AttrOrderMap),collectedArounds_Syn_SemAlt :: !(([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])),collectedAugments_Syn_SemAlt :: !(([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])),collectedInsts_Syn_SemAlt :: !(([ (NontermIdent, ConstructorIdent, [Identifier]) ])),collectedMerges_Syn_SemAlt :: !(([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])),collectedRules_Syn_SemAlt :: !(([ (NontermIdent, ConstructorIdent, RuleInfo)])),collectedSigs_Syn_SemAlt :: !(([ (NontermIdent, ConstructorIdent, SigInfo) ])),collectedUniques_Syn_SemAlt :: !(([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])),errors_Syn_SemAlt :: !((Seq Error)),semPragmasCollect_Syn_SemAlt :: !(PragmaMap)}+wrap_SemAlt :: T_SemAlt ->+               Inh_SemAlt ->+               Syn_SemAlt+wrap_SemAlt (T_SemAlt sem) (Inh_SemAlt _lhsIallAttrDecls _lhsIallAttrs _lhsIallFields _lhsInts _lhsIoptions) =+    (let ( _lhsOattrOrderCollect,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedInsts,_lhsOcollectedMerges,_lhsOcollectedRules,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOerrors,_lhsOsemPragmasCollect) = sem _lhsIallAttrDecls _lhsIallAttrs _lhsIallFields _lhsInts _lhsIoptions+     in  (Syn_SemAlt _lhsOattrOrderCollect _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedInsts _lhsOcollectedMerges _lhsOcollectedRules _lhsOcollectedSigs _lhsOcollectedUniques _lhsOerrors _lhsOsemPragmasCollect))+sem_SemAlt_SemAlt :: Pos ->+                     T_ConstructorSet ->+                     T_SemDefs ->+                     T_SemAlt+sem_SemAlt_SemAlt pos_ (T_ConstructorSet constructorSet_) (T_SemDefs rules_) =+    (T_SemAlt (\ _lhsIallAttrDecls+                 _lhsIallAttrs+                 _lhsIallFields+                 _lhsInts+                 _lhsIoptions ->+                   (let _lhsOsemPragmasCollect :: PragmaMap+                        _lhsOattrOrderCollect :: AttrOrderMap+                        _lhsOerrors :: (Seq Error)+                        _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                        _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                        _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                        _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                        _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                        _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                        _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                        _rulesOoptions :: Options+                        _constructorSetIcollectedConstructorNames :: (Set ConstructorIdent)+                        _constructorSetIconstructors :: ((Set ConstructorIdent->Set ConstructorIdent))+                        _constructorSetIerrors :: (Seq Error)+                        _rulesIaroundInfos :: ([AroundInfo])+                        _rulesIaugmentInfos :: ([AugmentInfo])+                        _rulesIdefinedInsts :: ([Identifier])+                        _rulesIerrors :: (Seq Error)+                        _rulesImergeInfos :: ([MergeInfo])+                        _rulesIorderDepsCollect :: (Set Dependency)+                        _rulesIpragmaNamesCollect :: ([Identifier])+                        _rulesIruleInfos :: ([RuleInfo])+                        _rulesIsigInfos :: ([SigInfo])+                        _rulesIuniqueInfos :: ([UniqueInfo])+                        -- "src-ag/Transform.ag"(line 869, column 7)+                        _pragmaNames =+                            ({-# LINE 869 "src-ag/Transform.ag" #-}+                             Set.fromList _rulesIpragmaNamesCollect+                             {-# LINE 6715 "dist/build/Transform" #-}+                             )+                        -- "src-ag/Transform.ag"(line 870, column 7)+                        _lhsOsemPragmasCollect =+                            ({-# LINE 870 "src-ag/Transform.ag" #-}+                             foldr pragmaMapUnion Map.empty [ pragmaMapSingle nt con _pragmaNames+                                                            | (nt, conset, _) <- _coninfo+                                                            , con <- Set.toList conset+                                                            ]+                             {-# LINE 6724 "dist/build/Transform" #-}+                             )+                        -- "src-ag/Transform.ag"(line 898, column 7)+                        _attrOrders =+                            ({-# LINE 898 "src-ag/Transform.ag" #-}+                             [ orderMapSingle nt con _rulesIorderDepsCollect+                             | (nt, conset, _) <- _coninfo+                             , con <- Set.toList conset+                             ]+                             {-# LINE 6733 "dist/build/Transform" #-}+                             )+                        -- "src-ag/Transform.ag"(line 904, column 7)+                        _lhsOattrOrderCollect =+                            ({-# LINE 904 "src-ag/Transform.ag" #-}+                             foldr orderMapUnion Map.empty _attrOrders+                             {-# LINE 6739 "dist/build/Transform" #-}+                             )+                        -- "src-ag/Transform.ag"(line 1082, column 12)+                        _coninfo =+                            ({-# LINE 1082 "src-ag/Transform.ag" #-}+                             [ (nt, conset, conkeys)+                             | nt  <- Set.toList _lhsInts+                             , let conmap = Map.findWithDefault Map.empty nt _lhsIallFields+                             , let conkeys = Set.fromList (Map.keys conmap)+                             , let conset  = _constructorSetIconstructors conkeys+                             ]+                             {-# LINE 6750 "dist/build/Transform" #-}+                             )+                        -- "src-ag/Transform.ag"(line 1089, column 12)+                        _lhsOerrors =+                            ({-# LINE 1089 "src-ag/Transform.ag" #-}+                             Seq.fromList+                                [ UndefAlt nt con+                                | (nt, conset, conkeys) <- _coninfo+                                , con <- Set.toList (Set.difference conset conkeys)+                                ]+                             Seq.>< _rulesIerrors+                             {-# LINE 6761 "dist/build/Transform" #-}+                             )+                        -- "src-ag/Transform.ag"(line 1095, column 12)+                        _lhsOcollectedRules =+                            ({-# LINE 1095 "src-ag/Transform.ag" #-}+                             [ (nt,con,r)+                             | (nt, conset, _) <- _coninfo+                             , con <- Set.toList conset+                             , r <- _rulesIruleInfos+                             ]+                             {-# LINE 6771 "dist/build/Transform" #-}+                             )+                        -- "src-ag/Transform.ag"(line 1101, column 12)+                        _lhsOcollectedSigs =+                            ({-# LINE 1101 "src-ag/Transform.ag" #-}+                             [ (nt,con,ts)+                             | (nt, conset, _) <- _coninfo+                             , con <- Set.toList conset+                             , ts <- _rulesIsigInfos+                             ]+                             {-# LINE 6781 "dist/build/Transform" #-}+                             )+                        -- "src-ag/Transform.ag"(line 1108, column 12)+                        _lhsOcollectedInsts =+                            ({-# LINE 1108 "src-ag/Transform.ag" #-}+                             [ (nt,con,_rulesIdefinedInsts)+                             | (nt, conset, _) <- _coninfo+                             , con <- Set.toList conset+                             ]+                             {-# LINE 6790 "dist/build/Transform" #-}+                             )+                        -- "src-ag/Transform.ag"(line 1114, column 12)+                        _lhsOcollectedUniques =+                            ({-# LINE 1114 "src-ag/Transform.ag" #-}+                             [ (nt,con,_rulesIuniqueInfos)+                             | (nt, conset, _) <- _coninfo+                             , con <- Set.toList conset+                             ]+                             {-# LINE 6799 "dist/build/Transform" #-}+                             )+                        -- "src-ag/Transform.ag"(line 1120, column 12)+                        _lhsOcollectedAugments =+                            ({-# LINE 1120 "src-ag/Transform.ag" #-}+                             [ (nt, con, _rulesIaugmentInfos)+                             | (nt, conset, _) <- _coninfo+                             , con <- Set.toList conset+                             ]+                             {-# LINE 6808 "dist/build/Transform" #-}+                             )+                        -- "src-ag/Transform.ag"(line 1126, column 12)+                        _lhsOcollectedArounds =+                            ({-# LINE 1126 "src-ag/Transform.ag" #-}+                             [ (nt, con, _rulesIaroundInfos)+                             | (nt, conset, _) <- _coninfo+                             , con <- Set.toList conset+                             ]+                             {-# LINE 6817 "dist/build/Transform" #-}+                             )+                        -- "src-ag/Transform.ag"(line 1132, column 12)+                        _lhsOcollectedMerges =+                            ({-# LINE 1132 "src-ag/Transform.ag" #-}+                             [ (nt, con, _rulesImergeInfos)+                             | (nt, conset, _) <- _coninfo+                             , con <- Set.toList conset+                             ]+                             {-# LINE 6826 "dist/build/Transform" #-}+                             )+                        -- copy rule (down)+                        _rulesOoptions =+                            ({-# LINE 40 "src-ag/Transform.ag" #-}+                             _lhsIoptions+                             {-# LINE 6832 "dist/build/Transform" #-}+                             )+                        ( _constructorSetIcollectedConstructorNames,_constructorSetIconstructors,_constructorSetIerrors) =+                            constructorSet_+                        ( _rulesIaroundInfos,_rulesIaugmentInfos,_rulesIdefinedInsts,_rulesIerrors,_rulesImergeInfos,_rulesIorderDepsCollect,_rulesIpragmaNamesCollect,_rulesIruleInfos,_rulesIsigInfos,_rulesIuniqueInfos) =+                            rules_ _rulesOoptions+                        ___node =+                            (Syn_SemAlt _lhsOattrOrderCollect _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedInsts _lhsOcollectedMerges _lhsOcollectedRules _lhsOcollectedSigs _lhsOcollectedUniques _lhsOerrors _lhsOsemPragmasCollect)+                    in  ( _lhsOattrOrderCollect,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedInsts,_lhsOcollectedMerges,_lhsOcollectedRules,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOerrors,_lhsOsemPragmasCollect))))+-- SemAlts -----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         allAttrDecls         : Map NontermIdent (Attributes, Attributes)+         allAttrs             : Map NontermIdent (Attributes, Attributes)+         allFields            : DataTypes+         nts                  : Set NontermIdent+         options              : Options+      synthesized attributes:+         attrOrderCollect     : AttrOrderMap+         collectedArounds     : [ (NontermIdent, ConstructorIdent, [AroundInfo])  ]+         collectedAugments    : [ (NontermIdent, ConstructorIdent, [AugmentInfo]) ]+         collectedInsts       : [ (NontermIdent, ConstructorIdent, [Identifier]) ]+         collectedMerges      : [ (NontermIdent, ConstructorIdent, [MergeInfo])   ]+         collectedRules       : [ (NontermIdent, ConstructorIdent, RuleInfo)]+         collectedSigs        : [ (NontermIdent, ConstructorIdent, SigInfo) ]+         collectedUniques     : [ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]+         errors               : Seq Error+         semPragmasCollect    : PragmaMap+   alternatives:+      alternative Cons:+         child hd             : SemAlt +         child tl             : SemAlts +      alternative Nil:+-}+-- cata+sem_SemAlts :: SemAlts ->+               T_SemAlts+sem_SemAlts list =+    (Prelude.foldr sem_SemAlts_Cons sem_SemAlts_Nil (Prelude.map sem_SemAlt list))+-- semantic domain+newtype T_SemAlts = T_SemAlts ((Map NontermIdent (Attributes, Attributes)) ->+                               (Map NontermIdent (Attributes, Attributes)) ->+                               DataTypes ->+                               (Set NontermIdent) ->+                               Options ->+                               ( AttrOrderMap,([ (NontermIdent, ConstructorIdent, [AroundInfo])  ]),([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ]),([ (NontermIdent, ConstructorIdent, [Identifier]) ]),([ (NontermIdent, ConstructorIdent, [MergeInfo])   ]),([ (NontermIdent, ConstructorIdent, RuleInfo)]),([ (NontermIdent, ConstructorIdent, SigInfo) ]),([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ]),(Seq Error),PragmaMap))+data Inh_SemAlts = Inh_SemAlts {allAttrDecls_Inh_SemAlts :: !((Map NontermIdent (Attributes, Attributes))),allAttrs_Inh_SemAlts :: !((Map NontermIdent (Attributes, Attributes))),allFields_Inh_SemAlts :: !(DataTypes),nts_Inh_SemAlts :: !((Set NontermIdent)),options_Inh_SemAlts :: !(Options)}+data Syn_SemAlts = Syn_SemAlts {attrOrderCollect_Syn_SemAlts :: !(AttrOrderMap),collectedArounds_Syn_SemAlts :: !(([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])),collectedAugments_Syn_SemAlts :: !(([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])),collectedInsts_Syn_SemAlts :: !(([ (NontermIdent, ConstructorIdent, [Identifier]) ])),collectedMerges_Syn_SemAlts :: !(([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])),collectedRules_Syn_SemAlts :: !(([ (NontermIdent, ConstructorIdent, RuleInfo)])),collectedSigs_Syn_SemAlts :: !(([ (NontermIdent, ConstructorIdent, SigInfo) ])),collectedUniques_Syn_SemAlts :: !(([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])),errors_Syn_SemAlts :: !((Seq Error)),semPragmasCollect_Syn_SemAlts :: !(PragmaMap)}+wrap_SemAlts :: T_SemAlts ->+                Inh_SemAlts ->+                Syn_SemAlts+wrap_SemAlts (T_SemAlts sem) (Inh_SemAlts _lhsIallAttrDecls _lhsIallAttrs _lhsIallFields _lhsInts _lhsIoptions) =+    (let ( _lhsOattrOrderCollect,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedInsts,_lhsOcollectedMerges,_lhsOcollectedRules,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOerrors,_lhsOsemPragmasCollect) = sem _lhsIallAttrDecls _lhsIallAttrs _lhsIallFields _lhsInts _lhsIoptions+     in  (Syn_SemAlts _lhsOattrOrderCollect _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedInsts _lhsOcollectedMerges _lhsOcollectedRules _lhsOcollectedSigs _lhsOcollectedUniques _lhsOerrors _lhsOsemPragmasCollect))+sem_SemAlts_Cons :: T_SemAlt ->+                    T_SemAlts ->+                    T_SemAlts+sem_SemAlts_Cons (T_SemAlt hd_) (T_SemAlts tl_) =+    (T_SemAlts (\ _lhsIallAttrDecls+                  _lhsIallAttrs+                  _lhsIallFields+                  _lhsInts+                  _lhsIoptions ->+                    (let _lhsOattrOrderCollect :: AttrOrderMap+                         _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                         _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                         _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                         _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                         _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                         _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                         _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                         _lhsOerrors :: (Seq Error)+                         _lhsOsemPragmasCollect :: PragmaMap+                         _hdOallAttrDecls :: (Map NontermIdent (Attributes, Attributes))+                         _hdOallAttrs :: (Map NontermIdent (Attributes, Attributes))+                         _hdOallFields :: DataTypes+                         _hdOnts :: (Set NontermIdent)+                         _hdOoptions :: Options+                         _tlOallAttrDecls :: (Map NontermIdent (Attributes, Attributes))+                         _tlOallAttrs :: (Map NontermIdent (Attributes, Attributes))+                         _tlOallFields :: DataTypes+                         _tlOnts :: (Set NontermIdent)+                         _tlOoptions :: Options+                         _hdIattrOrderCollect :: AttrOrderMap+                         _hdIcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                         _hdIcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                         _hdIcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                         _hdIcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                         _hdIcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                         _hdIcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                         _hdIcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                         _hdIerrors :: (Seq Error)+                         _hdIsemPragmasCollect :: PragmaMap+                         _tlIattrOrderCollect :: AttrOrderMap+                         _tlIcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                         _tlIcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                         _tlIcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                         _tlIcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                         _tlIcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                         _tlIcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                         _tlIcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                         _tlIerrors :: (Seq Error)+                         _tlIsemPragmasCollect :: PragmaMap+                         -- use rule "src-ag/Transform.ag"(line 893, column 55)+                         _lhsOattrOrderCollect =+                             ({-# LINE 893 "src-ag/Transform.ag" #-}+                              _hdIattrOrderCollect `orderMapUnion` _tlIattrOrderCollect+                              {-# LINE 6940 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 164, column 32)+                         _lhsOcollectedArounds =+                             ({-# LINE 164 "src-ag/Transform.ag" #-}+                              _hdIcollectedArounds ++ _tlIcollectedArounds+                              {-# LINE 6946 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 163, column 32)+                         _lhsOcollectedAugments =+                             ({-# LINE 163 "src-ag/Transform.ag" #-}+                              _hdIcollectedAugments ++ _tlIcollectedAugments+                              {-# LINE 6952 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 161, column 32)+                         _lhsOcollectedInsts =+                             ({-# LINE 161 "src-ag/Transform.ag" #-}+                              _hdIcollectedInsts ++ _tlIcollectedInsts+                              {-# LINE 6958 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 165, column 32)+                         _lhsOcollectedMerges =+                             ({-# LINE 165 "src-ag/Transform.ag" #-}+                              _hdIcollectedMerges ++ _tlIcollectedMerges+                              {-# LINE 6964 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 159, column 32)+                         _lhsOcollectedRules =+                             ({-# LINE 159 "src-ag/Transform.ag" #-}+                              _hdIcollectedRules ++ _tlIcollectedRules+                              {-# LINE 6970 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 160, column 32)+                         _lhsOcollectedSigs =+                             ({-# LINE 160 "src-ag/Transform.ag" #-}+                              _hdIcollectedSigs ++ _tlIcollectedSigs+                              {-# LINE 6976 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 162, column 32)+                         _lhsOcollectedUniques =+                             ({-# LINE 162 "src-ag/Transform.ag" #-}+                              _hdIcollectedUniques ++ _tlIcollectedUniques+                              {-# LINE 6982 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 44, column 19)+                         _lhsOerrors =+                             ({-# LINE 44 "src-ag/Transform.ag" #-}+                              _hdIerrors Seq.>< _tlIerrors+                              {-# LINE 6988 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 865, column 56)+                         _lhsOsemPragmasCollect =+                             ({-# LINE 865 "src-ag/Transform.ag" #-}+                              _hdIsemPragmasCollect `pragmaMapUnion` _tlIsemPragmasCollect+                              {-# LINE 6994 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _hdOallAttrDecls =+                             ({-# LINE 894 "src-ag/Transform.ag" #-}+                              _lhsIallAttrDecls+                              {-# LINE 7000 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _hdOallAttrs =+                             ({-# LINE 1306 "src-ag/Transform.ag" #-}+                              _lhsIallAttrs+                              {-# LINE 7006 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _hdOallFields =+                             ({-# LINE 136 "src-ag/Transform.ag" #-}+                              _lhsIallFields+                              {-# LINE 7012 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _hdOnts =+                             ({-# LINE 175 "src-ag/Transform.ag" #-}+                              _lhsInts+                              {-# LINE 7018 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _hdOoptions =+                             ({-# LINE 40 "src-ag/Transform.ag" #-}+                              _lhsIoptions+                              {-# LINE 7024 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _tlOallAttrDecls =+                             ({-# LINE 894 "src-ag/Transform.ag" #-}+                              _lhsIallAttrDecls+                              {-# LINE 7030 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _tlOallAttrs =+                             ({-# LINE 1306 "src-ag/Transform.ag" #-}+                              _lhsIallAttrs+                              {-# LINE 7036 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _tlOallFields =+                             ({-# LINE 136 "src-ag/Transform.ag" #-}+                              _lhsIallFields+                              {-# LINE 7042 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _tlOnts =+                             ({-# LINE 175 "src-ag/Transform.ag" #-}+                              _lhsInts+                              {-# LINE 7048 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _tlOoptions =+                             ({-# LINE 40 "src-ag/Transform.ag" #-}+                              _lhsIoptions+                              {-# LINE 7054 "dist/build/Transform" #-}+                              )+                         ( _hdIattrOrderCollect,_hdIcollectedArounds,_hdIcollectedAugments,_hdIcollectedInsts,_hdIcollectedMerges,_hdIcollectedRules,_hdIcollectedSigs,_hdIcollectedUniques,_hdIerrors,_hdIsemPragmasCollect) =+                             hd_ _hdOallAttrDecls _hdOallAttrs _hdOallFields _hdOnts _hdOoptions+                         ( _tlIattrOrderCollect,_tlIcollectedArounds,_tlIcollectedAugments,_tlIcollectedInsts,_tlIcollectedMerges,_tlIcollectedRules,_tlIcollectedSigs,_tlIcollectedUniques,_tlIerrors,_tlIsemPragmasCollect) =+                             tl_ _tlOallAttrDecls _tlOallAttrs _tlOallFields _tlOnts _tlOoptions+                         ___node =+                             (Syn_SemAlts _lhsOattrOrderCollect _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedInsts _lhsOcollectedMerges _lhsOcollectedRules _lhsOcollectedSigs _lhsOcollectedUniques _lhsOerrors _lhsOsemPragmasCollect)+                     in  ( _lhsOattrOrderCollect,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedInsts,_lhsOcollectedMerges,_lhsOcollectedRules,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOerrors,_lhsOsemPragmasCollect))))+sem_SemAlts_Nil :: T_SemAlts+sem_SemAlts_Nil =+    (T_SemAlts (\ _lhsIallAttrDecls+                  _lhsIallAttrs+                  _lhsIallFields+                  _lhsInts+                  _lhsIoptions ->+                    (let _lhsOattrOrderCollect :: AttrOrderMap+                         _lhsOcollectedArounds :: ([ (NontermIdent, ConstructorIdent, [AroundInfo])  ])+                         _lhsOcollectedAugments :: ([ (NontermIdent, ConstructorIdent, [AugmentInfo]) ])+                         _lhsOcollectedInsts :: ([ (NontermIdent, ConstructorIdent, [Identifier]) ])+                         _lhsOcollectedMerges :: ([ (NontermIdent, ConstructorIdent, [MergeInfo])   ])+                         _lhsOcollectedRules :: ([ (NontermIdent, ConstructorIdent, RuleInfo)])+                         _lhsOcollectedSigs :: ([ (NontermIdent, ConstructorIdent, SigInfo) ])+                         _lhsOcollectedUniques :: ([ (NontermIdent, ConstructorIdent, [UniqueInfo]) ])+                         _lhsOerrors :: (Seq Error)+                         _lhsOsemPragmasCollect :: PragmaMap+                         -- use rule "src-ag/Transform.ag"(line 893, column 55)+                         _lhsOattrOrderCollect =+                             ({-# LINE 893 "src-ag/Transform.ag" #-}+                              Map.empty+                              {-# LINE 7084 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 164, column 32)+                         _lhsOcollectedArounds =+                             ({-# LINE 164 "src-ag/Transform.ag" #-}+                              []+                              {-# LINE 7090 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 163, column 32)+                         _lhsOcollectedAugments =+                             ({-# LINE 163 "src-ag/Transform.ag" #-}+                              []+                              {-# LINE 7096 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 161, column 32)+                         _lhsOcollectedInsts =+                             ({-# LINE 161 "src-ag/Transform.ag" #-}+                              []+                              {-# LINE 7102 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 165, column 32)+                         _lhsOcollectedMerges =+                             ({-# LINE 165 "src-ag/Transform.ag" #-}+                              []+                              {-# LINE 7108 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 159, column 32)+                         _lhsOcollectedRules =+                             ({-# LINE 159 "src-ag/Transform.ag" #-}+                              []+                              {-# LINE 7114 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 160, column 32)+                         _lhsOcollectedSigs =+                             ({-# LINE 160 "src-ag/Transform.ag" #-}+                              []+                              {-# LINE 7120 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 162, column 32)+                         _lhsOcollectedUniques =+                             ({-# LINE 162 "src-ag/Transform.ag" #-}+                              []+                              {-# LINE 7126 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 44, column 19)+                         _lhsOerrors =+                             ({-# LINE 44 "src-ag/Transform.ag" #-}+                              Seq.empty+                              {-# LINE 7132 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 865, column 56)+                         _lhsOsemPragmasCollect =+                             ({-# LINE 865 "src-ag/Transform.ag" #-}+                              Map.empty+                              {-# LINE 7138 "dist/build/Transform" #-}+                              )+                         ___node =+                             (Syn_SemAlts _lhsOattrOrderCollect _lhsOcollectedArounds _lhsOcollectedAugments _lhsOcollectedInsts _lhsOcollectedMerges _lhsOcollectedRules _lhsOcollectedSigs _lhsOcollectedUniques _lhsOerrors _lhsOsemPragmasCollect)+                     in  ( _lhsOattrOrderCollect,_lhsOcollectedArounds,_lhsOcollectedAugments,_lhsOcollectedInsts,_lhsOcollectedMerges,_lhsOcollectedRules,_lhsOcollectedSigs,_lhsOcollectedUniques,_lhsOerrors,_lhsOsemPragmasCollect))))+-- SemDef ------------------------------------------------------+{-+   visit 0:+      inherited attribute:+         options              : Options+      synthesized attributes:+         aroundInfos          : [AroundInfo]+         augmentInfos         : [AugmentInfo]+         definedInsts         : [Identifier]+         errors               : Seq Error+         mergeInfos           : [MergeInfo]+         orderDepsCollect     : Set Dependency+         pragmaNamesCollect   : [Identifier]+         ruleInfos            : [RuleInfo]+         sigInfos             : [SigInfo]+         uniqueInfos          : [UniqueInfo]+   alternatives:+      alternative AroundDef:+         child ident          : {Identifier}+         child rhs            : {Expression}+      alternative AttrOrderBefore:+         child before         : {[Occurrence]}+         child after          : {[Occurrence]}+         visit 0:+            local dependency  : _+      alternative AugmentDef:+         child ident          : {Identifier}+         child rhs            : {Expression}+      alternative Def:+         child pos            : {Pos}+         child mbName         : {Maybe Identifier}+         child pattern        : Pattern +         child rhs            : {Expression}+         child owrt           : {Bool}+         child pure           : {Bool}+         child eager          : {Bool}+      alternative MergeDef:+         child target         : {Identifier}+         child nt             : {Identifier}+         child sources        : {[Identifier]}+         child rhs            : {Expression}+      alternative SemPragma:+         child names          : {[NontermIdent]}+      alternative TypeDef:+         child pos            : {Pos}+         child ident          : {Identifier}+         child tp             : {Type}+      alternative UniqueDef:+         child ident          : {Identifier}+         child ref            : {Identifier}+-}+-- cata+sem_SemDef :: SemDef ->+              T_SemDef+sem_SemDef (AroundDef _ident _rhs) =+    (sem_SemDef_AroundDef _ident _rhs)+sem_SemDef (AttrOrderBefore _before _after) =+    (sem_SemDef_AttrOrderBefore _before _after)+sem_SemDef (AugmentDef _ident _rhs) =+    (sem_SemDef_AugmentDef _ident _rhs)+sem_SemDef (Def _pos _mbName _pattern _rhs _owrt _pure _eager) =+    (sem_SemDef_Def _pos _mbName (sem_Pattern _pattern) _rhs _owrt _pure _eager)+sem_SemDef (MergeDef _target _nt _sources _rhs) =+    (sem_SemDef_MergeDef _target _nt _sources _rhs)+sem_SemDef (SemPragma _names) =+    (sem_SemDef_SemPragma _names)+sem_SemDef (TypeDef _pos _ident _tp) =+    (sem_SemDef_TypeDef _pos _ident _tp)+sem_SemDef (UniqueDef _ident _ref) =+    (sem_SemDef_UniqueDef _ident _ref)+-- semantic domain+newtype T_SemDef = T_SemDef (Options ->+                             ( ([AroundInfo]),([AugmentInfo]),([Identifier]),(Seq Error),([MergeInfo]),(Set Dependency),([Identifier]),([RuleInfo]),([SigInfo]),([UniqueInfo])))+data Inh_SemDef = Inh_SemDef {options_Inh_SemDef :: !(Options)}+data Syn_SemDef = Syn_SemDef {aroundInfos_Syn_SemDef :: !(([AroundInfo])),augmentInfos_Syn_SemDef :: !(([AugmentInfo])),definedInsts_Syn_SemDef :: !(([Identifier])),errors_Syn_SemDef :: !((Seq Error)),mergeInfos_Syn_SemDef :: !(([MergeInfo])),orderDepsCollect_Syn_SemDef :: !((Set Dependency)),pragmaNamesCollect_Syn_SemDef :: !(([Identifier])),ruleInfos_Syn_SemDef :: !(([RuleInfo])),sigInfos_Syn_SemDef :: !(([SigInfo])),uniqueInfos_Syn_SemDef :: !(([UniqueInfo]))}+wrap_SemDef :: T_SemDef ->+               Inh_SemDef ->+               Syn_SemDef+wrap_SemDef (T_SemDef sem) (Inh_SemDef _lhsIoptions) =+    (let ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos) = sem _lhsIoptions+     in  (Syn_SemDef _lhsOaroundInfos _lhsOaugmentInfos _lhsOdefinedInsts _lhsOerrors _lhsOmergeInfos _lhsOorderDepsCollect _lhsOpragmaNamesCollect _lhsOruleInfos _lhsOsigInfos _lhsOuniqueInfos))+sem_SemDef_AroundDef :: Identifier ->+                        Expression ->+                        T_SemDef+sem_SemDef_AroundDef ident_ rhs_ =+    (T_SemDef (\ _lhsIoptions ->+                   (let _lhsOaroundInfos :: ([AroundInfo])+                        _lhsOaugmentInfos :: ([AugmentInfo])+                        _lhsOdefinedInsts :: ([Identifier])+                        _lhsOerrors :: (Seq Error)+                        _lhsOmergeInfos :: ([MergeInfo])+                        _lhsOorderDepsCollect :: (Set Dependency)+                        _lhsOpragmaNamesCollect :: ([Identifier])+                        _lhsOruleInfos :: ([RuleInfo])+                        _lhsOsigInfos :: ([SigInfo])+                        _lhsOuniqueInfos :: ([UniqueInfo])+                        -- "src-ag/Transform.ag"(line 1151, column 17)+                        _lhsOaroundInfos =+                            ({-# LINE 1151 "src-ag/Transform.ag" #-}+                             [ (ident_, rhs_) ]+                             {-# LINE 7243 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1075, column 40)+                        _lhsOaugmentInfos =+                            ({-# LINE 1075 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7249 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1157, column 55)+                        _lhsOdefinedInsts =+                            ({-# LINE 1157 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7255 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 44, column 19)+                        _lhsOerrors =+                            ({-# LINE 44 "src-ag/Transform.ag" #-}+                             Seq.empty+                             {-# LINE 7261 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1077, column 40)+                        _lhsOmergeInfos =+                            ({-# LINE 1077 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7267 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 906, column 44)+                        _lhsOorderDepsCollect =+                            ({-# LINE 906 "src-ag/Transform.ag" #-}+                             Set.empty+                             {-# LINE 7273 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 875, column 46)+                        _lhsOpragmaNamesCollect =+                            ({-# LINE 875 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7279 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1072, column 40)+                        _lhsOruleInfos =+                            ({-# LINE 1072 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7285 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1073, column 40)+                        _lhsOsigInfos =+                            ({-# LINE 1073 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7291 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1074, column 40)+                        _lhsOuniqueInfos =+                            ({-# LINE 1074 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7297 "dist/build/Transform" #-}+                             )+                        ___node =+                            (Syn_SemDef _lhsOaroundInfos _lhsOaugmentInfos _lhsOdefinedInsts _lhsOerrors _lhsOmergeInfos _lhsOorderDepsCollect _lhsOpragmaNamesCollect _lhsOruleInfos _lhsOsigInfos _lhsOuniqueInfos)+                    in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))+sem_SemDef_AttrOrderBefore :: ([Occurrence]) ->+                              ([Occurrence]) ->+                              T_SemDef+sem_SemDef_AttrOrderBefore before_ after_ =+    (T_SemDef (\ _lhsIoptions ->+                   (let _lhsOorderDepsCollect :: (Set Dependency)+                        _lhsOaroundInfos :: ([AroundInfo])+                        _lhsOaugmentInfos :: ([AugmentInfo])+                        _lhsOdefinedInsts :: ([Identifier])+                        _lhsOerrors :: (Seq Error)+                        _lhsOmergeInfos :: ([MergeInfo])+                        _lhsOpragmaNamesCollect :: ([Identifier])+                        _lhsOruleInfos :: ([RuleInfo])+                        _lhsOsigInfos :: ([SigInfo])+                        _lhsOuniqueInfos :: ([UniqueInfo])+                        -- "src-ag/Transform.ag"(line 910, column 7)+                        _dependency =+                            ({-# LINE 910 "src-ag/Transform.ag" #-}+                             [ Dependency b a | b <- before_, a <- after_ ]+                             {-# LINE 7321 "dist/build/Transform" #-}+                             )+                        -- "src-ag/Transform.ag"(line 911, column 7)+                        _lhsOorderDepsCollect =+                            ({-# LINE 911 "src-ag/Transform.ag" #-}+                             Set.fromList _dependency+                             {-# LINE 7327 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1076, column 40)+                        _lhsOaroundInfos =+                            ({-# LINE 1076 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7333 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1075, column 40)+                        _lhsOaugmentInfos =+                            ({-# LINE 1075 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7339 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1157, column 55)+                        _lhsOdefinedInsts =+                            ({-# LINE 1157 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7345 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 44, column 19)+                        _lhsOerrors =+                            ({-# LINE 44 "src-ag/Transform.ag" #-}+                             Seq.empty+                             {-# LINE 7351 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1077, column 40)+                        _lhsOmergeInfos =+                            ({-# LINE 1077 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7357 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 875, column 46)+                        _lhsOpragmaNamesCollect =+                            ({-# LINE 875 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7363 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1072, column 40)+                        _lhsOruleInfos =+                            ({-# LINE 1072 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7369 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1073, column 40)+                        _lhsOsigInfos =+                            ({-# LINE 1073 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7375 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1074, column 40)+                        _lhsOuniqueInfos =+                            ({-# LINE 1074 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7381 "dist/build/Transform" #-}+                             )+                        ___node =+                            (Syn_SemDef _lhsOaroundInfos _lhsOaugmentInfos _lhsOdefinedInsts _lhsOerrors _lhsOmergeInfos _lhsOorderDepsCollect _lhsOpragmaNamesCollect _lhsOruleInfos _lhsOsigInfos _lhsOuniqueInfos)+                    in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))+sem_SemDef_AugmentDef :: Identifier ->+                         Expression ->+                         T_SemDef+sem_SemDef_AugmentDef ident_ rhs_ =+    (T_SemDef (\ _lhsIoptions ->+                   (let _lhsOaugmentInfos :: ([AugmentInfo])+                        _lhsOaroundInfos :: ([AroundInfo])+                        _lhsOdefinedInsts :: ([Identifier])+                        _lhsOerrors :: (Seq Error)+                        _lhsOmergeInfos :: ([MergeInfo])+                        _lhsOorderDepsCollect :: (Set Dependency)+                        _lhsOpragmaNamesCollect :: ([Identifier])+                        _lhsOruleInfos :: ([RuleInfo])+                        _lhsOsigInfos :: ([SigInfo])+                        _lhsOuniqueInfos :: ([UniqueInfo])+                        -- "src-ag/Transform.ag"(line 1148, column 17)+                        _lhsOaugmentInfos =+                            ({-# LINE 1148 "src-ag/Transform.ag" #-}+                             [ (ident_, rhs_) ]+                             {-# LINE 7405 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1076, column 40)+                        _lhsOaroundInfos =+                            ({-# LINE 1076 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7411 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1157, column 55)+                        _lhsOdefinedInsts =+                            ({-# LINE 1157 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7417 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 44, column 19)+                        _lhsOerrors =+                            ({-# LINE 44 "src-ag/Transform.ag" #-}+                             Seq.empty+                             {-# LINE 7423 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1077, column 40)+                        _lhsOmergeInfos =+                            ({-# LINE 1077 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7429 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 906, column 44)+                        _lhsOorderDepsCollect =+                            ({-# LINE 906 "src-ag/Transform.ag" #-}+                             Set.empty+                             {-# LINE 7435 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 875, column 46)+                        _lhsOpragmaNamesCollect =+                            ({-# LINE 875 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7441 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1072, column 40)+                        _lhsOruleInfos =+                            ({-# LINE 1072 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7447 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1073, column 40)+                        _lhsOsigInfos =+                            ({-# LINE 1073 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7453 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1074, column 40)+                        _lhsOuniqueInfos =+                            ({-# LINE 1074 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7459 "dist/build/Transform" #-}+                             )+                        ___node =+                            (Syn_SemDef _lhsOaroundInfos _lhsOaugmentInfos _lhsOdefinedInsts _lhsOerrors _lhsOmergeInfos _lhsOorderDepsCollect _lhsOpragmaNamesCollect _lhsOruleInfos _lhsOsigInfos _lhsOuniqueInfos)+                    in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))+sem_SemDef_Def :: Pos ->+                  (Maybe Identifier) ->+                  T_Pattern ->+                  Expression ->+                  Bool ->+                  Bool ->+                  Bool ->+                  T_SemDef+sem_SemDef_Def pos_ mbName_ (T_Pattern pattern_) rhs_ owrt_ pure_ eager_ =+    (T_SemDef (\ _lhsIoptions ->+                   (let _lhsOerrors :: (Seq Error)+                        _lhsOruleInfos :: ([RuleInfo])+                        _lhsOaroundInfos :: ([AroundInfo])+                        _lhsOaugmentInfos :: ([AugmentInfo])+                        _lhsOdefinedInsts :: ([Identifier])+                        _lhsOmergeInfos :: ([MergeInfo])+                        _lhsOorderDepsCollect :: (Set Dependency)+                        _lhsOpragmaNamesCollect :: ([Identifier])+                        _lhsOsigInfos :: ([SigInfo])+                        _lhsOuniqueInfos :: ([UniqueInfo])+                        _patternIcopy :: Pattern+                        _patternIdefinedAttrs :: ([AttrName])+                        _patternIdefinedInsts :: ([Identifier])+                        _patternIpatunder :: ([AttrName]->Pattern)+                        _patternIstpos :: Pos+                        -- "src-ag/Transform.ag"(line 541, column 3)+                        _lhsOerrors =+                            ({-# LINE 541 "src-ag/Transform.ag" #-}+                             if checkParseRhs _lhsIoptions+                             then Seq.fromList $ checkRhs rhs_+                             else Seq.empty+                             {-# LINE 7495 "dist/build/Transform" #-}+                             )+                        -- "src-ag/Transform.ag"(line 1139, column 10)+                        _lhsOruleInfos =+                            ({-# LINE 1139 "src-ag/Transform.ag" #-}+                             [ (mbName_, _patternIpatunder, rhs_, _patternIdefinedAttrs, owrt_, show _patternIstpos, pure_, eager_) ]+                             {-# LINE 7501 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1076, column 40)+                        _lhsOaroundInfos =+                            ({-# LINE 1076 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7507 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1075, column 40)+                        _lhsOaugmentInfos =+                            ({-# LINE 1075 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7513 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1157, column 55)+                        _lhsOdefinedInsts =+                            ({-# LINE 1157 "src-ag/Transform.ag" #-}+                             _patternIdefinedInsts+                             {-# LINE 7519 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1077, column 40)+                        _lhsOmergeInfos =+                            ({-# LINE 1077 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7525 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 906, column 44)+                        _lhsOorderDepsCollect =+                            ({-# LINE 906 "src-ag/Transform.ag" #-}+                             Set.empty+                             {-# LINE 7531 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 875, column 46)+                        _lhsOpragmaNamesCollect =+                            ({-# LINE 875 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7537 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1073, column 40)+                        _lhsOsigInfos =+                            ({-# LINE 1073 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7543 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1074, column 40)+                        _lhsOuniqueInfos =+                            ({-# LINE 1074 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7549 "dist/build/Transform" #-}+                             )+                        ( _patternIcopy,_patternIdefinedAttrs,_patternIdefinedInsts,_patternIpatunder,_patternIstpos) =+                            pattern_+                        ___node =+                            (Syn_SemDef _lhsOaroundInfos _lhsOaugmentInfos _lhsOdefinedInsts _lhsOerrors _lhsOmergeInfos _lhsOorderDepsCollect _lhsOpragmaNamesCollect _lhsOruleInfos _lhsOsigInfos _lhsOuniqueInfos)+                    in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))+sem_SemDef_MergeDef :: Identifier ->+                       Identifier ->+                       ([Identifier]) ->+                       Expression ->+                       T_SemDef+sem_SemDef_MergeDef target_ nt_ sources_ rhs_ =+    (T_SemDef (\ _lhsIoptions ->+                   (let _lhsOerrors :: (Seq Error)+                        _lhsOmergeInfos :: ([MergeInfo])+                        _lhsOaroundInfos :: ([AroundInfo])+                        _lhsOaugmentInfos :: ([AugmentInfo])+                        _lhsOdefinedInsts :: ([Identifier])+                        _lhsOorderDepsCollect :: (Set Dependency)+                        _lhsOpragmaNamesCollect :: ([Identifier])+                        _lhsOruleInfos :: ([RuleInfo])+                        _lhsOsigInfos :: ([SigInfo])+                        _lhsOuniqueInfos :: ([UniqueInfo])+                        -- "src-ag/Transform.ag"(line 541, column 3)+                        _lhsOerrors =+                            ({-# LINE 541 "src-ag/Transform.ag" #-}+                             if checkParseRhs _lhsIoptions+                             then Seq.fromList $ checkRhs rhs_+                             else Seq.empty+                             {-# LINE 7579 "dist/build/Transform" #-}+                             )+                        -- "src-ag/Transform.ag"(line 1154, column 17)+                        _lhsOmergeInfos =+                            ({-# LINE 1154 "src-ag/Transform.ag" #-}+                             [ (target_, nt_, sources_, rhs_) ]+                             {-# LINE 7585 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1076, column 40)+                        _lhsOaroundInfos =+                            ({-# LINE 1076 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7591 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1075, column 40)+                        _lhsOaugmentInfos =+                            ({-# LINE 1075 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7597 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1157, column 55)+                        _lhsOdefinedInsts =+                            ({-# LINE 1157 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7603 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 906, column 44)+                        _lhsOorderDepsCollect =+                            ({-# LINE 906 "src-ag/Transform.ag" #-}+                             Set.empty+                             {-# LINE 7609 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 875, column 46)+                        _lhsOpragmaNamesCollect =+                            ({-# LINE 875 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7615 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1072, column 40)+                        _lhsOruleInfos =+                            ({-# LINE 1072 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7621 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1073, column 40)+                        _lhsOsigInfos =+                            ({-# LINE 1073 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7627 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1074, column 40)+                        _lhsOuniqueInfos =+                            ({-# LINE 1074 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7633 "dist/build/Transform" #-}+                             )+                        ___node =+                            (Syn_SemDef _lhsOaroundInfos _lhsOaugmentInfos _lhsOdefinedInsts _lhsOerrors _lhsOmergeInfos _lhsOorderDepsCollect _lhsOpragmaNamesCollect _lhsOruleInfos _lhsOsigInfos _lhsOuniqueInfos)+                    in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))+sem_SemDef_SemPragma :: ([NontermIdent]) ->+                        T_SemDef+sem_SemDef_SemPragma names_ =+    (T_SemDef (\ _lhsIoptions ->+                   (let _lhsOpragmaNamesCollect :: ([Identifier])+                        _lhsOaroundInfos :: ([AroundInfo])+                        _lhsOaugmentInfos :: ([AugmentInfo])+                        _lhsOdefinedInsts :: ([Identifier])+                        _lhsOerrors :: (Seq Error)+                        _lhsOmergeInfos :: ([MergeInfo])+                        _lhsOorderDepsCollect :: (Set Dependency)+                        _lhsOruleInfos :: ([RuleInfo])+                        _lhsOsigInfos :: ([SigInfo])+                        _lhsOuniqueInfos :: ([UniqueInfo])+                        -- "src-ag/Transform.ag"(line 879, column 7)+                        _lhsOpragmaNamesCollect =+                            ({-# LINE 879 "src-ag/Transform.ag" #-}+                             names_+                             {-# LINE 7656 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1076, column 40)+                        _lhsOaroundInfos =+                            ({-# LINE 1076 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7662 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1075, column 40)+                        _lhsOaugmentInfos =+                            ({-# LINE 1075 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7668 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1157, column 55)+                        _lhsOdefinedInsts =+                            ({-# LINE 1157 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7674 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 44, column 19)+                        _lhsOerrors =+                            ({-# LINE 44 "src-ag/Transform.ag" #-}+                             Seq.empty+                             {-# LINE 7680 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1077, column 40)+                        _lhsOmergeInfos =+                            ({-# LINE 1077 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7686 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 906, column 44)+                        _lhsOorderDepsCollect =+                            ({-# LINE 906 "src-ag/Transform.ag" #-}+                             Set.empty+                             {-# LINE 7692 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1072, column 40)+                        _lhsOruleInfos =+                            ({-# LINE 1072 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7698 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1073, column 40)+                        _lhsOsigInfos =+                            ({-# LINE 1073 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7704 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1074, column 40)+                        _lhsOuniqueInfos =+                            ({-# LINE 1074 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7710 "dist/build/Transform" #-}+                             )+                        ___node =+                            (Syn_SemDef _lhsOaroundInfos _lhsOaugmentInfos _lhsOdefinedInsts _lhsOerrors _lhsOmergeInfos _lhsOorderDepsCollect _lhsOpragmaNamesCollect _lhsOruleInfos _lhsOsigInfos _lhsOuniqueInfos)+                    in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))+sem_SemDef_TypeDef :: Pos ->+                      Identifier ->+                      Type ->+                      T_SemDef+sem_SemDef_TypeDef pos_ ident_ tp_ =+    (T_SemDef (\ _lhsIoptions ->+                   (let _lhsOerrors :: (Seq Error)+                        _lhsOsigInfos :: ([SigInfo])+                        _lhsOaroundInfos :: ([AroundInfo])+                        _lhsOaugmentInfos :: ([AugmentInfo])+                        _lhsOdefinedInsts :: ([Identifier])+                        _lhsOmergeInfos :: ([MergeInfo])+                        _lhsOorderDepsCollect :: (Set Dependency)+                        _lhsOpragmaNamesCollect :: ([Identifier])+                        _lhsOruleInfos :: ([RuleInfo])+                        _lhsOuniqueInfos :: ([UniqueInfo])+                        -- "src-ag/Transform.ag"(line 548, column 3)+                        _lhsOerrors =+                            ({-# LINE 548 "src-ag/Transform.ag" #-}+                             if checkParseTy _lhsIoptions+                             then case tp_ of+                                    Haskell s -> let exp = Expression pos_ tks+                                                     tks = [tk]+                                                     tk  = HsToken s pos_+                                                 in Seq.fromList $ checkTy exp+                                    _ -> Seq.empty+                             else Seq.empty+                             {-# LINE 7742 "dist/build/Transform" #-}+                             )+                        -- "src-ag/Transform.ag"(line 1142, column 14)+                        _lhsOsigInfos =+                            ({-# LINE 1142 "src-ag/Transform.ag" #-}+                             [ (ident_, tp_) ]+                             {-# LINE 7748 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1076, column 40)+                        _lhsOaroundInfos =+                            ({-# LINE 1076 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7754 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1075, column 40)+                        _lhsOaugmentInfos =+                            ({-# LINE 1075 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7760 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1157, column 55)+                        _lhsOdefinedInsts =+                            ({-# LINE 1157 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7766 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1077, column 40)+                        _lhsOmergeInfos =+                            ({-# LINE 1077 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7772 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 906, column 44)+                        _lhsOorderDepsCollect =+                            ({-# LINE 906 "src-ag/Transform.ag" #-}+                             Set.empty+                             {-# LINE 7778 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 875, column 46)+                        _lhsOpragmaNamesCollect =+                            ({-# LINE 875 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7784 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1072, column 40)+                        _lhsOruleInfos =+                            ({-# LINE 1072 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7790 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1074, column 40)+                        _lhsOuniqueInfos =+                            ({-# LINE 1074 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7796 "dist/build/Transform" #-}+                             )+                        ___node =+                            (Syn_SemDef _lhsOaroundInfos _lhsOaugmentInfos _lhsOdefinedInsts _lhsOerrors _lhsOmergeInfos _lhsOorderDepsCollect _lhsOpragmaNamesCollect _lhsOruleInfos _lhsOsigInfos _lhsOuniqueInfos)+                    in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))+sem_SemDef_UniqueDef :: Identifier ->+                        Identifier ->+                        T_SemDef+sem_SemDef_UniqueDef ident_ ref_ =+    (T_SemDef (\ _lhsIoptions ->+                   (let _lhsOuniqueInfos :: ([UniqueInfo])+                        _lhsOaroundInfos :: ([AroundInfo])+                        _lhsOaugmentInfos :: ([AugmentInfo])+                        _lhsOdefinedInsts :: ([Identifier])+                        _lhsOerrors :: (Seq Error)+                        _lhsOmergeInfos :: ([MergeInfo])+                        _lhsOorderDepsCollect :: (Set Dependency)+                        _lhsOpragmaNamesCollect :: ([Identifier])+                        _lhsOruleInfos :: ([RuleInfo])+                        _lhsOsigInfos :: ([SigInfo])+                        -- "src-ag/Transform.ag"(line 1145, column 16)+                        _lhsOuniqueInfos =+                            ({-# LINE 1145 "src-ag/Transform.ag" #-}+                             [ (ident_, ref_) ]+                             {-# LINE 7820 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1076, column 40)+                        _lhsOaroundInfos =+                            ({-# LINE 1076 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7826 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1075, column 40)+                        _lhsOaugmentInfos =+                            ({-# LINE 1075 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7832 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1157, column 55)+                        _lhsOdefinedInsts =+                            ({-# LINE 1157 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7838 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 44, column 19)+                        _lhsOerrors =+                            ({-# LINE 44 "src-ag/Transform.ag" #-}+                             Seq.empty+                             {-# LINE 7844 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1077, column 40)+                        _lhsOmergeInfos =+                            ({-# LINE 1077 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7850 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 906, column 44)+                        _lhsOorderDepsCollect =+                            ({-# LINE 906 "src-ag/Transform.ag" #-}+                             Set.empty+                             {-# LINE 7856 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 875, column 46)+                        _lhsOpragmaNamesCollect =+                            ({-# LINE 875 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7862 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1072, column 40)+                        _lhsOruleInfos =+                            ({-# LINE 1072 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7868 "dist/build/Transform" #-}+                             )+                        -- use rule "src-ag/Transform.ag"(line 1073, column 40)+                        _lhsOsigInfos =+                            ({-# LINE 1073 "src-ag/Transform.ag" #-}+                             []+                             {-# LINE 7874 "dist/build/Transform" #-}+                             )+                        ___node =+                            (Syn_SemDef _lhsOaroundInfos _lhsOaugmentInfos _lhsOdefinedInsts _lhsOerrors _lhsOmergeInfos _lhsOorderDepsCollect _lhsOpragmaNamesCollect _lhsOruleInfos _lhsOsigInfos _lhsOuniqueInfos)+                    in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))+-- SemDefs -----------------------------------------------------+{-+   visit 0:+      inherited attribute:+         options              : Options+      synthesized attributes:+         aroundInfos          : [AroundInfo]+         augmentInfos         : [AugmentInfo]+         definedInsts         : [Identifier]+         errors               : Seq Error+         mergeInfos           : [MergeInfo]+         orderDepsCollect     : Set Dependency+         pragmaNamesCollect   : [Identifier]+         ruleInfos            : [RuleInfo]+         sigInfos             : [SigInfo]+         uniqueInfos          : [UniqueInfo]+   alternatives:+      alternative Cons:+         child hd             : SemDef +         child tl             : SemDefs +      alternative Nil:+-}+-- cata+sem_SemDefs :: SemDefs ->+               T_SemDefs+sem_SemDefs list =+    (Prelude.foldr sem_SemDefs_Cons sem_SemDefs_Nil (Prelude.map sem_SemDef list))+-- semantic domain+newtype T_SemDefs = T_SemDefs (Options ->+                               ( ([AroundInfo]),([AugmentInfo]),([Identifier]),(Seq Error),([MergeInfo]),(Set Dependency),([Identifier]),([RuleInfo]),([SigInfo]),([UniqueInfo])))+data Inh_SemDefs = Inh_SemDefs {options_Inh_SemDefs :: !(Options)}+data Syn_SemDefs = Syn_SemDefs {aroundInfos_Syn_SemDefs :: !(([AroundInfo])),augmentInfos_Syn_SemDefs :: !(([AugmentInfo])),definedInsts_Syn_SemDefs :: !(([Identifier])),errors_Syn_SemDefs :: !((Seq Error)),mergeInfos_Syn_SemDefs :: !(([MergeInfo])),orderDepsCollect_Syn_SemDefs :: !((Set Dependency)),pragmaNamesCollect_Syn_SemDefs :: !(([Identifier])),ruleInfos_Syn_SemDefs :: !(([RuleInfo])),sigInfos_Syn_SemDefs :: !(([SigInfo])),uniqueInfos_Syn_SemDefs :: !(([UniqueInfo]))}+wrap_SemDefs :: T_SemDefs ->+                Inh_SemDefs ->+                Syn_SemDefs+wrap_SemDefs (T_SemDefs sem) (Inh_SemDefs _lhsIoptions) =+    (let ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos) = sem _lhsIoptions+     in  (Syn_SemDefs _lhsOaroundInfos _lhsOaugmentInfos _lhsOdefinedInsts _lhsOerrors _lhsOmergeInfos _lhsOorderDepsCollect _lhsOpragmaNamesCollect _lhsOruleInfos _lhsOsigInfos _lhsOuniqueInfos))+sem_SemDefs_Cons :: T_SemDef ->+                    T_SemDefs ->+                    T_SemDefs+sem_SemDefs_Cons (T_SemDef hd_) (T_SemDefs tl_) =+    (T_SemDefs (\ _lhsIoptions ->+                    (let _lhsOaroundInfos :: ([AroundInfo])+                         _lhsOaugmentInfos :: ([AugmentInfo])+                         _lhsOdefinedInsts :: ([Identifier])+                         _lhsOerrors :: (Seq Error)+                         _lhsOmergeInfos :: ([MergeInfo])+                         _lhsOorderDepsCollect :: (Set Dependency)+                         _lhsOpragmaNamesCollect :: ([Identifier])+                         _lhsOruleInfos :: ([RuleInfo])+                         _lhsOsigInfos :: ([SigInfo])+                         _lhsOuniqueInfos :: ([UniqueInfo])+                         _hdOoptions :: Options+                         _tlOoptions :: Options+                         _hdIaroundInfos :: ([AroundInfo])+                         _hdIaugmentInfos :: ([AugmentInfo])+                         _hdIdefinedInsts :: ([Identifier])+                         _hdIerrors :: (Seq Error)+                         _hdImergeInfos :: ([MergeInfo])+                         _hdIorderDepsCollect :: (Set Dependency)+                         _hdIpragmaNamesCollect :: ([Identifier])+                         _hdIruleInfos :: ([RuleInfo])+                         _hdIsigInfos :: ([SigInfo])+                         _hdIuniqueInfos :: ([UniqueInfo])+                         _tlIaroundInfos :: ([AroundInfo])+                         _tlIaugmentInfos :: ([AugmentInfo])+                         _tlIdefinedInsts :: ([Identifier])+                         _tlIerrors :: (Seq Error)+                         _tlImergeInfos :: ([MergeInfo])+                         _tlIorderDepsCollect :: (Set Dependency)+                         _tlIpragmaNamesCollect :: ([Identifier])+                         _tlIruleInfos :: ([RuleInfo])+                         _tlIsigInfos :: ([SigInfo])+                         _tlIuniqueInfos :: ([UniqueInfo])+                         -- use rule "src-ag/Transform.ag"(line 1076, column 40)+                         _lhsOaroundInfos =+                             ({-# LINE 1076 "src-ag/Transform.ag" #-}+                              _hdIaroundInfos ++ _tlIaroundInfos+                              {-# LINE 7958 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 1075, column 40)+                         _lhsOaugmentInfos =+                             ({-# LINE 1075 "src-ag/Transform.ag" #-}+                              _hdIaugmentInfos ++ _tlIaugmentInfos+                              {-# LINE 7964 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 1157, column 55)+                         _lhsOdefinedInsts =+                             ({-# LINE 1157 "src-ag/Transform.ag" #-}+                              _hdIdefinedInsts ++ _tlIdefinedInsts+                              {-# LINE 7970 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 44, column 19)+                         _lhsOerrors =+                             ({-# LINE 44 "src-ag/Transform.ag" #-}+                              _hdIerrors Seq.>< _tlIerrors+                              {-# LINE 7976 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 1077, column 40)+                         _lhsOmergeInfos =+                             ({-# LINE 1077 "src-ag/Transform.ag" #-}+                              _hdImergeInfos ++ _tlImergeInfos+                              {-# LINE 7982 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 906, column 44)+                         _lhsOorderDepsCollect =+                             ({-# LINE 906 "src-ag/Transform.ag" #-}+                              _hdIorderDepsCollect `Set.union` _tlIorderDepsCollect+                              {-# LINE 7988 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 875, column 46)+                         _lhsOpragmaNamesCollect =+                             ({-# LINE 875 "src-ag/Transform.ag" #-}+                              _hdIpragmaNamesCollect ++ _tlIpragmaNamesCollect+                              {-# LINE 7994 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 1072, column 40)+                         _lhsOruleInfos =+                             ({-# LINE 1072 "src-ag/Transform.ag" #-}+                              _hdIruleInfos ++ _tlIruleInfos+                              {-# LINE 8000 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 1073, column 40)+                         _lhsOsigInfos =+                             ({-# LINE 1073 "src-ag/Transform.ag" #-}+                              _hdIsigInfos ++ _tlIsigInfos+                              {-# LINE 8006 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 1074, column 40)+                         _lhsOuniqueInfos =+                             ({-# LINE 1074 "src-ag/Transform.ag" #-}+                              _hdIuniqueInfos ++ _tlIuniqueInfos+                              {-# LINE 8012 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _hdOoptions =+                             ({-# LINE 40 "src-ag/Transform.ag" #-}+                              _lhsIoptions+                              {-# LINE 8018 "dist/build/Transform" #-}+                              )+                         -- copy rule (down)+                         _tlOoptions =+                             ({-# LINE 40 "src-ag/Transform.ag" #-}+                              _lhsIoptions+                              {-# LINE 8024 "dist/build/Transform" #-}+                              )+                         ( _hdIaroundInfos,_hdIaugmentInfos,_hdIdefinedInsts,_hdIerrors,_hdImergeInfos,_hdIorderDepsCollect,_hdIpragmaNamesCollect,_hdIruleInfos,_hdIsigInfos,_hdIuniqueInfos) =+                             hd_ _hdOoptions+                         ( _tlIaroundInfos,_tlIaugmentInfos,_tlIdefinedInsts,_tlIerrors,_tlImergeInfos,_tlIorderDepsCollect,_tlIpragmaNamesCollect,_tlIruleInfos,_tlIsigInfos,_tlIuniqueInfos) =+                             tl_ _tlOoptions+                         ___node =+                             (Syn_SemDefs _lhsOaroundInfos _lhsOaugmentInfos _lhsOdefinedInsts _lhsOerrors _lhsOmergeInfos _lhsOorderDepsCollect _lhsOpragmaNamesCollect _lhsOruleInfos _lhsOsigInfos _lhsOuniqueInfos)+                     in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))+sem_SemDefs_Nil :: T_SemDefs+sem_SemDefs_Nil =+    (T_SemDefs (\ _lhsIoptions ->+                    (let _lhsOaroundInfos :: ([AroundInfo])+                         _lhsOaugmentInfos :: ([AugmentInfo])+                         _lhsOdefinedInsts :: ([Identifier])+                         _lhsOerrors :: (Seq Error)+                         _lhsOmergeInfos :: ([MergeInfo])+                         _lhsOorderDepsCollect :: (Set Dependency)+                         _lhsOpragmaNamesCollect :: ([Identifier])+                         _lhsOruleInfos :: ([RuleInfo])+                         _lhsOsigInfos :: ([SigInfo])+                         _lhsOuniqueInfos :: ([UniqueInfo])+                         -- use rule "src-ag/Transform.ag"(line 1076, column 40)+                         _lhsOaroundInfos =+                             ({-# LINE 1076 "src-ag/Transform.ag" #-}+                              []+                              {-# LINE 8050 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 1075, column 40)+                         _lhsOaugmentInfos =+                             ({-# LINE 1075 "src-ag/Transform.ag" #-}+                              []+                              {-# LINE 8056 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 1157, column 55)+                         _lhsOdefinedInsts =+                             ({-# LINE 1157 "src-ag/Transform.ag" #-}+                              []+                              {-# LINE 8062 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 44, column 19)+                         _lhsOerrors =+                             ({-# LINE 44 "src-ag/Transform.ag" #-}+                              Seq.empty+                              {-# LINE 8068 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 1077, column 40)+                         _lhsOmergeInfos =+                             ({-# LINE 1077 "src-ag/Transform.ag" #-}+                              []+                              {-# LINE 8074 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 906, column 44)+                         _lhsOorderDepsCollect =+                             ({-# LINE 906 "src-ag/Transform.ag" #-}+                              Set.empty+                              {-# LINE 8080 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 875, column 46)+                         _lhsOpragmaNamesCollect =+                             ({-# LINE 875 "src-ag/Transform.ag" #-}+                              []+                              {-# LINE 8086 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 1072, column 40)+                         _lhsOruleInfos =+                             ({-# LINE 1072 "src-ag/Transform.ag" #-}+                              []+                              {-# LINE 8092 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 1073, column 40)+                         _lhsOsigInfos =+                             ({-# LINE 1073 "src-ag/Transform.ag" #-}+                              []+                              {-# LINE 8098 "dist/build/Transform" #-}+                              )+                         -- use rule "src-ag/Transform.ag"(line 1074, column 40)+                         _lhsOuniqueInfos =+                             ({-# LINE 1074 "src-ag/Transform.ag" #-}+                              []+                              {-# LINE 8104 "dist/build/Transform" #-}+                              )+                         ___node =+                             (Syn_SemDefs _lhsOaroundInfos _lhsOaugmentInfos _lhsOdefinedInsts _lhsOerrors _lhsOmergeInfos _lhsOorderDepsCollect _lhsOpragmaNamesCollect _lhsOruleInfos _lhsOsigInfos _lhsOuniqueInfos)                      in  ( _lhsOaroundInfos,_lhsOaugmentInfos,_lhsOdefinedInsts,_lhsOerrors,_lhsOmergeInfos,_lhsOorderDepsCollect,_lhsOpragmaNamesCollect,_lhsOruleInfos,_lhsOsigInfos,_lhsOuniqueInfos))))
src-derived/Visage.hs view
@@ -98,6 +98,8 @@                             AAppl "Expression" [AString (sQ (showAGPos pos_)), AString (sQ (unlines . showTokens . tokensToStrings $ tks_))]                             {-# LINE 100 "dist/build/Visage" #-}                             )+                       ___node =+                           (Syn_Expression _lhsOaterm)                    in  ( _lhsOaterm))) -- VisageChild ------------------------------------------------- {-@@ -144,16 +146,18 @@                                             AString (sQ (showMap inh_)),                                             AString (sQ (showMap syn_)),                                             AAppl "Rules" _rulesIaterms]-                             {-# LINE 148 "dist/build/Visage" #-}+                             {-# LINE 150 "dist/build/Visage" #-}                              )                         -- "src-ag/Visage.ag"(line 89, column 18)                         _rulesOisLoc =                             ({-# LINE 89 "src-ag/Visage.ag" #-}                              False-                             {-# LINE 154 "dist/build/Visage" #-}+                             {-# LINE 156 "dist/build/Visage" #-}                              )                         ( _rulesIaterms) =                             rules_ _rulesOisLoc+                        ___node =+                            (Syn_VisageChild _lhsOaterm)                     in  ( _lhsOaterm))) -- VisageChildren ---------------------------------------------- {-@@ -192,12 +196,14 @@                            _lhsOaterms =                                ({-# LINE 80 "src-ag/Visage.ag" #-}                                 _hdIaterm : _tlIaterms-                                {-# LINE 196 "dist/build/Visage" #-}+                                {-# LINE 200 "dist/build/Visage" #-}                                 )                            ( _hdIaterm) =                                hd_                            ( _tlIaterms) =                                tl_+                           ___node =+                               (Syn_VisageChildren _lhsOaterms)                        in  ( _lhsOaterms))) sem_VisageChildren_Nil :: T_VisageChildren sem_VisageChildren_Nil =@@ -206,8 +212,10 @@                            _lhsOaterms =                                ({-# LINE 81 "src-ag/Visage.ag" #-}                                 []-                                {-# LINE 210 "dist/build/Visage" #-}+                                {-# LINE 216 "dist/build/Visage" #-}                                 )+                           ___node =+                               (Syn_VisageChildren _lhsOaterms)                        in  ( _lhsOaterms))) -- VisageGrammar ----------------------------------------------- {-@@ -242,10 +250,12 @@                           _lhsOaterm =                               ({-# LINE 54 "src-ag/Visage.ag" #-}                                AAppl "Productions" _nontsIaterms-                               {-# LINE 246 "dist/build/Visage" #-}+                               {-# LINE 254 "dist/build/Visage" #-}                                )                           ( _nontsIaterms) =                               nonts_+                          ___node =+                              (Syn_VisageGrammar _lhsOaterm)                       in  ( _lhsOaterm))) -- VisageNonterminal ------------------------------------------- {-@@ -287,10 +297,12 @@                                   ({-# LINE 63 "src-ag/Visage.ag" #-}                                    AAppl "Production" [AString (sQ (getName nt_)), AString (sQ(showMap inh_)),                                                       AString (sQ(showMap syn_)), AAppl "Alternatives" _altsIaterms]-                                   {-# LINE 291 "dist/build/Visage" #-}+                                   {-# LINE 301 "dist/build/Visage" #-}                                    )                               ( _altsIaterms) =                                   alts_+                              ___node =+                                  (Syn_VisageNonterminal _lhsOaterm)                           in  ( _lhsOaterm))) -- VisageNonterminals ------------------------------------------ {-@@ -329,12 +341,14 @@                                _lhsOaterms =                                    ({-# LINE 58 "src-ag/Visage.ag" #-}                                     _hdIaterm : _tlIaterms-                                    {-# LINE 333 "dist/build/Visage" #-}+                                    {-# LINE 345 "dist/build/Visage" #-}                                     )                                ( _hdIaterm) =                                    hd_                                ( _tlIaterms) =                                    tl_+                               ___node =+                                   (Syn_VisageNonterminals _lhsOaterms)                            in  ( _lhsOaterms))) sem_VisageNonterminals_Nil :: T_VisageNonterminals sem_VisageNonterminals_Nil =@@ -343,8 +357,10 @@                                _lhsOaterms =                                    ({-# LINE 59 "src-ag/Visage.ag" #-}                                     []-                                    {-# LINE 347 "dist/build/Visage" #-}+                                    {-# LINE 361 "dist/build/Visage" #-}                                     )+                               ___node =+                                   (Syn_VisageNonterminals _lhsOaterms)                            in  ( _lhsOaterms))) -- VisagePattern ----------------------------------------------- {-@@ -403,10 +419,12 @@                               ({-# LINE 119 "src-ag/Visage.ag" #-}                                AAppl "Pattern" [AAppl "Alias" [AString (sQ (showAGPos (getPos field_))),                                                                AString (sQ (getName field_ ++ "." ++ getName attr_)), _patIaterm]]-                               {-# LINE 407 "dist/build/Visage" #-}+                               {-# LINE 423 "dist/build/Visage" #-}                                )                           ( _patIaterm) =                               pat_+                          ___node =+                              (Syn_VisagePattern _lhsOaterm)                       in  ( _lhsOaterm))) sem_VisagePattern_VConstr :: ConstructorIdent ->                              T_VisagePatterns ->@@ -420,10 +438,12 @@                                AAppl "Pattern" [AAppl "Constr" [AString (sQ (showAGPos (getPos name_))),                                                 AString (sQ (getName name_)),                                                 AAppl "Patterns" _patsIaterms]]-                               {-# LINE 424 "dist/build/Visage" #-}+                               {-# LINE 442 "dist/build/Visage" #-}                                )                           ( _patsIaterms) =                               pats_+                          ___node =+                              (Syn_VisagePattern _lhsOaterm)                       in  ( _lhsOaterm))) sem_VisagePattern_VProduct :: Pos ->                               T_VisagePatterns ->@@ -436,10 +456,12 @@                               ({-# LINE 115 "src-ag/Visage.ag" #-}                                AAppl "Pattern" [AAppl "Product" [AString (sQ (showAGPos pos_)),                                                                  AAppl "Patterns" _patsIaterms]]-                               {-# LINE 440 "dist/build/Visage" #-}+                               {-# LINE 460 "dist/build/Visage" #-}                                )                           ( _patsIaterms) =                               pats_+                          ___node =+                              (Syn_VisagePattern _lhsOaterm)                       in  ( _lhsOaterm))) sem_VisagePattern_VUnderscore :: Pos ->                                  T_VisagePattern@@ -449,8 +471,10 @@                           _lhsOaterm =                               ({-# LINE 121 "src-ag/Visage.ag" #-}                                AAppl "Pattern" [AAppl "Underscore" [AString (sQ (showAGPos pos_))]]-                               {-# LINE 453 "dist/build/Visage" #-}+                               {-# LINE 475 "dist/build/Visage" #-}                                )+                          ___node =+                              (Syn_VisagePattern _lhsOaterm)                       in  ( _lhsOaterm))) sem_VisagePattern_VVar :: Identifier ->                           Identifier ->@@ -462,8 +486,10 @@                               ({-# LINE 117 "src-ag/Visage.ag" #-}                                AAppl "Pattern" [AAppl "Var" [AString (sQ (showAGPos (getPos field_))),                                                              AString (sQ (getName field_ ++ "." ++ getName attr_))]]-                               {-# LINE 466 "dist/build/Visage" #-}+                               {-# LINE 490 "dist/build/Visage" #-}                                )+                          ___node =+                              (Syn_VisagePattern _lhsOaterm)                       in  ( _lhsOaterm))) -- VisagePatterns ---------------------------------------------- {-@@ -502,12 +528,14 @@                            _lhsOaterms =                                ({-# LINE 107 "src-ag/Visage.ag" #-}                                 _hdIaterm : _tlIaterms-                                {-# LINE 506 "dist/build/Visage" #-}+                                {-# LINE 532 "dist/build/Visage" #-}                                 )                            ( _hdIaterm) =                                hd_                            ( _tlIaterms) =                                tl_+                           ___node =+                               (Syn_VisagePatterns _lhsOaterms)                        in  ( _lhsOaterms))) sem_VisagePatterns_Nil :: T_VisagePatterns sem_VisagePatterns_Nil =@@ -516,8 +544,10 @@                            _lhsOaterms =                                ({-# LINE 108 "src-ag/Visage.ag" #-}                                 []-                                {-# LINE 520 "dist/build/Visage" #-}+                                {-# LINE 548 "dist/build/Visage" #-}                                 )+                           ___node =+                               (Syn_VisagePatterns _lhsOaterms)                        in  ( _lhsOaterms))) -- VisageProduction -------------------------------------------- {-@@ -564,19 +594,19 @@                                   AAppl "Alternative" [AString (sQ (getName con_)), AAppl "Children" _childrenIaterms,                                                         AAppl "Rules" _rulesIaterms,                                                         AAppl "LocRules" _locrulesIaterms]-                                  {-# LINE 568 "dist/build/Visage" #-}+                                  {-# LINE 598 "dist/build/Visage" #-}                                   )                              -- "src-ag/Visage.ag"(line 76, column 18)                              _locrulesOisLoc =                                  ({-# LINE 76 "src-ag/Visage.ag" #-}                                   True-                                  {-# LINE 574 "dist/build/Visage" #-}+                                  {-# LINE 604 "dist/build/Visage" #-}                                   )                              -- "src-ag/Visage.ag"(line 77, column 18)                              _rulesOisLoc =                                  ({-# LINE 77 "src-ag/Visage.ag" #-}                                   False-                                  {-# LINE 580 "dist/build/Visage" #-}+                                  {-# LINE 610 "dist/build/Visage" #-}                                   )                              ( _childrenIaterms) =                                  children_@@ -584,6 +614,8 @@                                  rules_ _rulesOisLoc                              ( _locrulesIaterms) =                                  locrules_ _locrulesOisLoc+                             ___node =+                                 (Syn_VisageProduction _lhsOaterm)                          in  ( _lhsOaterm))) -- VisageProductions ------------------------------------------- {-@@ -622,12 +654,14 @@                               _lhsOaterms =                                   ({-# LINE 68 "src-ag/Visage.ag" #-}                                    _hdIaterm : _tlIaterms-                                   {-# LINE 626 "dist/build/Visage" #-}+                                   {-# LINE 658 "dist/build/Visage" #-}                                    )                               ( _hdIaterm) =                                   hd_                               ( _tlIaterms) =                                   tl_+                              ___node =+                                  (Syn_VisageProductions _lhsOaterms)                           in  ( _lhsOaterms))) sem_VisageProductions_Nil :: T_VisageProductions sem_VisageProductions_Nil =@@ -636,8 +670,10 @@                               _lhsOaterms =                                   ({-# LINE 69 "src-ag/Visage.ag" #-}                                    []-                                   {-# LINE 640 "dist/build/Visage" #-}+                                   {-# LINE 674 "dist/build/Visage" #-}                                    )+                              ___node =+                                  (Syn_VisageProductions _lhsOaterms)                           in  ( _lhsOaterms))) -- VisageRule -------------------------------------------------- {-@@ -686,12 +722,14 @@                                 ({-# LINE 97 "src-ag/Visage.ag" #-}                                  AAppl (if _lhsIisLoc then "LocRule" else "Rule")                                        ([AString (sQ (getName attr_)), _patIaterm, _rhsIaterm] ++ if _lhsIisLoc then [AString (sQ (show owrt_))] else [])-                                 {-# LINE 690 "dist/build/Visage" #-}+                                 {-# LINE 726 "dist/build/Visage" #-}                                  )                             ( _patIaterm) =                                 pat_                             ( _rhsIaterm) =                                 rhs_+                            ___node =+                                (Syn_VisageRule _lhsOaterm)                         in  ( _lhsOaterm)))) -- VisageRules ------------------------------------------------- {-@@ -736,24 +774,26 @@                              _lhsOaterms =                                  ({-# LINE 92 "src-ag/Visage.ag" #-}                                   _hdIaterm : _tlIaterms-                                  {-# LINE 740 "dist/build/Visage" #-}+                                  {-# LINE 778 "dist/build/Visage" #-}                                   )                              -- copy rule (down)                              _hdOisLoc =                                  ({-# LINE 51 "src-ag/Visage.ag" #-}                                   _lhsIisLoc-                                  {-# LINE 746 "dist/build/Visage" #-}+                                  {-# LINE 784 "dist/build/Visage" #-}                                   )                              -- copy rule (down)                              _tlOisLoc =                                  ({-# LINE 51 "src-ag/Visage.ag" #-}                                   _lhsIisLoc-                                  {-# LINE 752 "dist/build/Visage" #-}+                                  {-# LINE 790 "dist/build/Visage" #-}                                   )                              ( _hdIaterm) =                                  hd_ _hdOisLoc                              ( _tlIaterms) =                                  tl_ _tlOisLoc+                             ___node =+                                 (Syn_VisageRules _lhsOaterms)                          in  ( _lhsOaterms)))) sem_VisageRules_Nil :: T_VisageRules sem_VisageRules_Nil =@@ -763,6 +803,8 @@                              _lhsOaterms =                                  ({-# LINE 93 "src-ag/Visage.ag" #-}                                   []-                                  {-# LINE 767 "dist/build/Visage" #-}+                                  {-# LINE 807 "dist/build/Visage" #-}                                   )+                             ___node =+                                 (Syn_VisageRules _lhsOaterms)                          in  ( _lhsOaterms))))
uuagc-bootstrap.cabal view
@@ -1,7 +1,7 @@ cabal-version: >= 1.8 build-type: Simple name: uuagc-bootstrap-version: 0.9.40.1+version: 0.9.40.2 license: BSD3 license-file: LICENSE maintainer: Arie Middelkoop <ariem@cs.uu.nl>@@ -17,10 +17,67 @@ extra-source-files: README  executable uuagc-bootstrap-  build-depends: uuagc-bootstrap == 0.9.40.1-  build-depends: base >= 4, base < 5-  main-is: Main.hs-  hs-source-dirs: src-main+   build-depends: base >= 4, base < 5, ghc-prim >= 0.2.0.0+   build-depends: containers >= 0.3, directory >= 1.0.1.1, array >= 0.3.0.1+   build-depends: uulib >= 0.9.14, mtl >= 1.1.1.1+   build-depends: haskell-src-exts >= 1.11.1+   build-depends: filepath >= 1.1.0.4+   main-is: Main.hs+   hs-source-dirs: src, src-version, src-derived, src-options, src-main+   extensions: TypeSynonymInstances, MultiParamTypeClasses+   other-modules: Paths_uuagc_bootstrap+    , Ag+    , CommonTypes+    , GrammarInfo+    , HsTokenScanner+    , Options+    , PPUtil+    , Parser+    , Pretty+    , Scanner+    , SequentialComputation+    , SequentialTypes+    , TokenDef+    , Version+    , AbstractSyntax+    , AbstractSyntaxDump+    , Code+    , CodeSyntax+    , CodeSyntaxDump+    , ConcreteSyntax+    , DeclBlocks+    , DefaultRules+    , Desugar+    , ErrorMessages+    , Expression+    , GenerateCode+    , HsToken+    , Interfaces+    , InterfacesRules+    , Order+    , Patterns+    , PrintCode+    , PrintOcamlCode+    , PrintVisitCode+    , PrintErrorMessages+    , SemHsTokens+    , Transform+    , ATermWrite+    , ATermAbstractSyntax+    , TfmToVisage+    , Visage+    , VisageSyntax+    , VisagePatterns+    , AG2AspectAG+    , Macro+    , RhsCheck+    , ResolveLocals+    , Knuth1+    , KennedyWarren+    , KWOrder+    , ExecutionPlan+    , ExecutionPlan2Hs+  library    build-depends: base >= 4, base < 5, ghc-prim >= 0.2.0.0