packages feed

uuagc 0.9.52 → 0.9.52.1

raw patch · 6 files changed

+667/−168 lines, 6 filesdep ~uuagcPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: uuagc

API changes (from Hackage documentation)

Files

+ src-ag/ExecutionPlanCommon.ag view
@@ -0,0 +1,161 @@+-------------------------------------------------------------------------------+--         Distributing options+-------------------------------------------------------------------------------+ATTR Grammar Nonterminals Nonterminal Productions Production Children Child+  [ options : {Options} | | ]++-------------------------------------------------------------------------------+--         Find out which nonterminals are recursive+-------------------------------------------------------------------------------++ATTR Nonterminals Nonterminal [ | | ntDeps, ntHoDeps USE {`mappend`} {mempty} : {Map NontermIdent (Set NontermIdent)} ]+ATTR Nonterminals Nonterminal [ closedNtDeps, closedHoNtDeps, closedHoNtRevDeps : {Map NontermIdent (Set NontermIdent)} | | ]+ATTR Productions Production Children Child [ | | refNts, refHoNts USE {`mappend`} {mempty} : {Set NontermIdent} ]++SEM Nonterminal | Nonterminal+  lhs.ntDeps            = Map.singleton @nt @prods.refNts+  lhs.ntHoDeps          = Map.singleton @nt @prods.refHoNts++  loc.closedNtDeps      = Map.findWithDefault Set.empty @nt @lhs.closedNtDeps+  loc.closedHoNtDeps    = Map.findWithDefault Set.empty @nt @lhs.closedHoNtDeps+  loc.closedHoNtRevDeps = Map.findWithDefault Set.empty @nt @lhs.closedHoNtRevDeps++  loc.recursive         = @nt `Set.member` @loc.closedNtDeps+  loc.nontrivAcyc       = @nt `Set.member` @loc.closedHoNtDeps+  loc.hoInfo            = HigherOrderInfo { hoNtDeps            = @loc.closedHoNtDeps+                                          , hoNtRevDeps         = @loc.closedHoNtRevDeps+                                          , hoAcyclic           = @loc.nontrivAcyc+                                          }++SEM Child | Child+  loc.refNts = case @tp of+                 NT nt _ _ -> Set.singleton nt+                 _         -> mempty+  loc.refHoNts = if @loc.isHigherOrder then @loc.refNts else mempty+  loc.isHigherOrder = case @kind of+                        ChildSyntax -> False+                        _           -> True++SEM Grammar | Grammar+  loc.closedNtDeps      = closeMap @nonts.ntDeps+  loc.closedHoNtDeps    = closeMap @nonts.ntHoDeps+  loc.closedHoNtRevDeps = revDeps @loc.closedHoNtDeps++-------------------------------------------------------------------------------+--         Distribute the ContextMap to nonterminals+-------------------------------------------------------------------------------++ATTR Nonterminals Nonterminal [ classContexts : ContextMap | | ]++SEM Grammar | Grammar+  nonts.classContexts = @contextMap++SEM Nonterminal | Nonterminal+  loc.classContexts = Map.findWithDefault [] @nt @lhs.classContexts++-------------------------------------------------------------------------------+--         Gather all rules per production for the execution plan+-------------------------------------------------------------------------------+ATTR Expression [ | | copy : SELF ]++ATTR Rule  [ | | erules : ERule ]+ATTR Rules [ | | erules USE {:} {[]} : ERules  ]++SEM Rule+  | Rule lhs.erules = ERule @loc.rulename+                            @pattern.copy+                            @rhs.copy+                            @owrt+                            @origin+                            @explicit+                            @pure+                            @mbError++-------------------------------------------------------------------------------+--         Determine which children have an around-rule+-------------------------------------------------------------------------------++-- Propagate the around-map downward+ATTR Nonterminals Nonterminal+  [ aroundMap : {Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))} || ]++ATTR Productions Production+  [ aroundMap : {Map ConstructorIdent (Map Identifier [Expression])} || ]++ATTR Children Child+  [ aroundMap : {Map Identifier [Expression]} | | ]++SEM Nonterminal | Nonterminal  loc.aroundMap = Map.findWithDefault Map.empty @nt @lhs.aroundMap+SEM Production | Production    loc.aroundMap = Map.findWithDefault Map.empty @con @lhs.aroundMap++SEM Grammar | Grammar+  nonts.aroundMap = @aroundsMap++SEM Child | Child+  loc.hasArounds = case Map.lookup @name @lhs.aroundMap of+                     Nothing -> False+                     Just as -> not (null as)++-------------------------------------------------------------------------------+--         Determine which children are used by merges+-------------------------------------------------------------------------------++-- Propagate the around-map downward+ATTR Nonterminals Nonterminal+  [ mergeMap : {Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression)))} || ]++ATTR Productions Production+  [ mergeMap : {Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression))} || ]++ATTR Children Child+  [ mergeMap : {Map Identifier (Identifier, [Identifier], Expression)} mergedChildren : {Set Identifier} | | ]++SEM Nonterminal | Nonterminal  loc.mergeMap = Map.findWithDefault Map.empty @nt @lhs.mergeMap+SEM Production | Production    loc.mergeMap = Map.findWithDefault Map.empty @con @lhs.mergeMap++SEM Grammar | Grammar+  nonts.mergeMap = @mergeMap++SEM Production | Production+  loc.mergedChildren = Set.unions [ Set.fromList ms | (_,ms,_) <- Map.elems @loc.mergeMap ]++SEM Child | Child+  loc.merges   = maybe Nothing (\(_,ms,_) -> Just ms) $ Map.lookup @name @lhs.mergeMap+  loc.isMerged = @name `Set.member` @lhs.mergedChildren+++-------------------------------------------------------------------------------+--         Gather all childs per production for the execution plan+-------------------------------------------------------------------------------++ATTR Child    [ | | echilds : EChild ]+ATTR Children [ | | echilds USE {:} {[]} : EChildren ]++SEM Child+  | Child lhs.echilds = case @tp of+                          NT _ _ _ -> EChild @name @tp @kind @loc.hasArounds @loc.merges @loc.isMerged+                          _        -> ETerm @name @tp++-------------------------------------------------------------------------------+--         Output nonterminal type mappings+-------------------------------------------------------------------------------+ATTR Grammar+     Nonterminals  [ | | inhmap USE {`Map.union`} {Map.empty} : {Map.Map NontermIdent Attributes}+     	                 synmap USE {`Map.union`} {Map.empty} : {Map.Map NontermIdent Attributes} ]++ATTR Nonterminal [ | | inhmap : {Map.Map NontermIdent Attributes}+     		       synmap : {Map.Map NontermIdent Attributes} ]+SEM Nonterminal+  | Nonterminal lhs.inhmap = Map.singleton @nt @inh+    		lhs.synmap = Map.singleton @nt @syn++-------------------------------------------------------------------------------+--         Output nonterminal type mappings+-------------------------------------------------------------------------------+ATTR Grammar Nonterminals Nonterminal [ | | localSigMap USE {`Map.union`} {Map.empty} : {Map.Map NontermIdent (Map.Map ConstructorIdent (Map.Map Identifier Type))} ]+ATTR Productions Production           [ | | localSigMap USE {`Map.union`} {Map.empty} : {Map.Map ConstructorIdent (Map.Map Identifier Type)} ]+ATTR TypeSigs TypeSig                 [ | | localSigMap USE {`Map.union`} {Map.empty} : {Map Identifier Type} ]++SEM Nonterminal | Nonterminal  lhs.localSigMap = Map.singleton @nt @prods.localSigMap+SEM Production | Production    lhs.localSigMap = Map.singleton @con @typeSigs.localSigMap+SEM TypeSig | TypeSig          lhs.localSigMap = Map.singleton @name @tp
+ src-ag/ExecutionPlanPre.ag view
@@ -0,0 +1,15 @@+-------------------------------------------------------------------------------+--         Give unique names to rules+-------------------------------------------------------------------------------+ATTR Nonterminal Nonterminals+     Production Productions+     Rule Rules  [ | rulenumber : Int | ]++SEM  Grammar+  |  Grammar nonts.rulenumber = 0++SEM  Rule+  |  Rule lhs.rulenumber = @lhs.rulenumber + 1+     	  loc.rulename   = maybe (identifier $ "rule" ++ show @lhs.rulenumber) id @mbName++
+ src-ag/LOAG/Prepare.ag view
@@ -0,0 +1,316 @@+INCLUDE "AbstractSyntax.ag"+INCLUDE "Patterns.ag"+INCLUDE "CodeSyntax.ag"+INCLUDE "Expression.ag"+INCLUDE "HsToken.ag"+INCLUDE "LOAG/Rep"+INCLUDE "ExecutionPlanPre"++MODULE {LOAG.Prepare}+{}+{}++{+-- | Translating UUAGC types to MyTypes+drhs f | f == _LHS               = Inh+       | f == _LOC               = AnyDir+       | f == _INST              = AnyDir+       | otherwise               = Syn+dlhs f | f == _LHS               = Syn+       | f == _LOC               = AnyDir+       | f == _INST              = AnyDir+       | otherwise               = Inh ++depToEdge :: PMP_R -> PLabel -> Dependency -> Edge+depToEdge pmpr p e = +    (findWithErr pmpr "depToEdge" $ MyOccurrence (p,getName f1) (getName i1, drhs f1),+     findWithErr pmpr "depToEdge" $ MyOccurrence (p,getName f2) (getName i2, dlhs f2))+    where Dependency (OccAttr f1 i1) (OccAttr f2 i2) = e++vertexToAttr :: NMP -> Vertex -> Attributes+vertexToAttr nmp v = Map.singleton (identifier a) (fromMyTy ty)+    where (MyAttribute ty (a,_)) = findWithErr nmp "vertexToAttr" v++}++SEM Grammar | Grammar+    inst.smf : LOAGRep +    loc.initO= if Map.null @nonts.pmp then 1 else fst $ Map.findMin @nonts.pmp+    inst.smf = +        LOAGRep @nonts.ps @nonts.ap @loc.an +           @loc.ain @loc.asn @loc.sfp+           @nonts.pmp @nonts.pmpr @loc.nmp @loc.nmpr+           (A.array (@loc.initO, @loc.initO + Map.size @nonts.gen)  $ +                Map.toList $ @nonts.gen)+           (A.array (1,Map.size @nonts.inss) $ +                Map.toList $ @nonts.inss)+           (A.array (@loc.initO, @loc.initO + length @nonts.ofld) $ +                @nonts.ofld) @nonts.fty @nonts.fieldMap @nonts.fsInP+    loc.nmp  = Map.fromList $ zip [1..] @loc.atts+    loc.nmpr = Map.fromList $ zip @loc.atts [1..]+    loc.an   = Map.unionWith (++) @loc.ain @loc.asn+    loc.ain  = @nonts.inhs+    loc.asn  = @nonts.syns+    loc.atts = concat $ Map.elems @loc.an+    loc.occs = concat $ Map.elems @nonts.ap+    nonts.augM = @manualAttrOrderMap++-- Collecting the attributes +ATTR Nonterminals Nonterminal [+    augM   : {Map.Map Identifier (Map.Map Identifier (Set.Set Dependency))} ||  +    inhs USE {Map.union} {Map.empty} : AI_N +    syns USE {Map.union} {Map.empty} : AS_N ]+    +SEM Nonterminal | Nonterminal +    lhs.inhs = let dty = TyData (getName @nt) +                in Map.singleton dty (toMyAttr Inh dty @inh)+    lhs.syns = let dty = TyData (getName @nt) +                in Map.singleton dty (toMyAttr Syn dty @syn)+    prods.augM = case Map.lookup @nt @lhs.augM of+                    Nothing -> Map.empty +                    Just a  -> a++-- Adding all attribute sets to the AG type +--   and sending it all down the abstract tree+ATTR Nonterminals Nonterminal Productions Production Children Child +    MySegments MySegment [+    ain   : {MyType -> MyAttributes} +    asn   : {MyType -> MyAttributes}+    pmpf  : PMP+    pmprf : PMP_R+    lfpf  : SF_P+    hoMapf: HOMap+    fty   : FTY+    nmp   : NMP || ]++SEM Grammar | Grammar+    nonts.ain  = map2F @loc.ain+    nonts.asn  = map2F @loc.asn+    nonts.pmpf  = @nonts.pmp+    nonts.pmprf = @nonts.pmpr+    nonts.lfpf  = @nonts.lfp+    nonts.hoMapf= @nonts.hoMap+    nonts.ftyf  = @nonts.fty+    nonts.fty   = @nonts.fty++-- Make sure TDP AND LFPRF are passed around correctly to code-generation+ATTR Nonterminals Nonterminal Productions Production [+    ftyf: FTY ||]+++-- Calculate the set of production labels+SEM Grammar | Grammar +     loc.ps = @nonts.ps+ATTR Nonterminals Nonterminal Productions Production [ || +    ads USE {(++)} {[]}   : {[Edge]}+    fieldMap USE {(Map.union)} {Map.empty} : FMap+    hoMap    USE {(Map.union)} {Map.empty} : HOMap+    fsInP USE {(Map.union)} {Map.empty} : FsInP]++SEM Nonterminals Nonterminal [ ||+    ps  USE {(++)} {([])} : {[PLabel]} ]+SEM Productions [ ||+    ps  USE {:} {([])} : {[PLabel]}  ]+SEM Production [ || ps : PLabel ] | Production +    loc.ps = (@lhs.dty,getName @con)+    lhs.ads   = +        case Map.lookup @con @lhs.augM of+         Nothing -> []+         Just a  -> Set.toList $ Set.map (depToEdge @children.pmpr @loc.pll) a+    children.dty = @lhs.dty++ATTR Productions Production [+   augM : {Map.Map Identifier (Set.Set Dependency)} || ]+-- We didnt calculate A_P yet, inheriting A_N we can+ATTR Productions Production Rules Rule [ +    -- result type of this constructor +    dty : {MyType} || ]+ATTR Rules Rule Children Child Expression HsTokensRoot HsTokens HsToken [+    pll : {PLabel} || ]+SEM Nonterminal | Nonterminal    +    loc.dty  = TyData (getName @nt)++ATTR Nonterminals Nonterminal Productions Production Children Child +     FieldAtts FieldAtt [+    an      : {MyType -> MyAttributes} +    nmprf   : NMP_R|+    olab    : Int --  chained attribute for handing out labels to occurrences+    flab    : Int  |--chained attribute for handing out labels to fields+    ap   USE {Map.unionWith (++)} {Map.empty}   : A_P+    gen  USE {Map.union}          {Map.empty}   : {Map Int Int}+    inss USE {Map.unionWith (++)} {Map.empty}   : {Map Int [Int]}+    pmp  USE {Map.union}          {Map.empty}   : PMP+    pmpr USE {Map.union}          {Map.empty}   : PMP_R+    -- maps for each occurrence to which field it belongs+    ofld USE {(++)}             {[]}        : {[(Int, Int)]}+    fty  USE {Map.union}          {Map.empty}   : FTY+    ]++SEM Grammar | Grammar +    nonts.an = map2F @loc.an+    nonts.nmprf= @loc.nmpr+    nonts.olab = if Map.null @loc.nmp then 0 else (fst $ Map.findMax @loc.nmp)+    nonts.flab = 0++ATTR Children Child [||+    fieldMap USE {Map.union} {Map.empty} : FMap+    hoMap    USE {Map.unionWith (Set.union)} {Map.empty} : HOMap+    ]+SEM Children [ dty : {MyType} || ]+    | Nil +    loc.flab    = @lhs.flab + 1+    loc.atp     = fst @lhs.pll+    inst.fatts  : FieldAtts+    inst.fatts  = map ((FieldAtt @loc.atp @lhs.pll "lhs") . alab) $ +                        @lhs.an @loc.atp+    fatts.flab  = @loc.flab+    loc.label   = (@lhs.pll, "lhs")+    loc.foccsI  = Set.fromList $ handAllOut @loc.label $ @lhs.ain @loc.atp+    loc.foccsS  = Set.fromList $ handAllOut @loc.label $ @lhs.asn @loc.atp+    loc.fieldMap= Map.singleton @loc.label (@loc.foccsI, @loc.foccsS)+    lhs.fty     = Map.singleton @loc.label @lhs.dty++SEM Child | Child+    loc.flab    = @lhs.flab + 1+    loc.atp     = toMyTy @tp+    inst.fatts  : FieldAtts+    inst.fatts  = map ((FieldAtt @loc.atp @lhs.pll (getName @name)) . alab)+                        $ @lhs.an @loc.atp+    fatts.flab  = @loc.flab+    loc.ident   = getName @name+    loc.label   = (@lhs.pll, @loc.ident)+    loc.foccsI  = Set.fromList $ handAllOut @loc.label $ @lhs.ain @loc.atp+    loc.foccsS  = Set.fromList $ handAllOut @loc.label $ @lhs.asn @loc.atp+    loc.fieldMap= if Set.null @loc.foccsI && Set.null @loc.foccsS+                        then Map.empty +                        else Map.singleton @loc.label (@loc.foccsS,@loc.foccsI)+    loc.hoMap   = case @kind of+                    ChildAttr -> Map.singleton @lhs.pll (Set.singleton @loc.ident)+                    _         -> Map.empty+    lhs.fty     = Map.singleton (@lhs.pll, getName @name) @loc.atp++SEM FieldAtt | FieldAtt+    loc.olab    = @lhs.olab + 1+    loc.alab    = findWithErr @lhs.nmprf "getting attr label" @loc.att+    loc.att     = @t <.> @a+    loc.occ     = (@p, @f) >.< @a+    loc.pmp     = Map.singleton @loc.olab @loc.occ+    loc.pmpr    = Map.singleton @loc.occ  @loc.olab+    loc.inss    = Map.singleton @loc.alab [@loc.olab]+    loc.gen     = Map.singleton @loc.olab @loc.alab+    lhs.ap      = Map.singleton @p [@loc.occ]+    lhs.ofld    = [(@loc.olab, @lhs.flab)]++-- calculate representation of semantic function +-- definitions per non-terminal and from it, calculate E_P+SEM Grammar | Grammar+     loc.sfp = repLocRefs @nonts.lfp $ addHigherOrders @nonts.lfp @nonts.sfp+ATTR Nonterminals Nonterminal Productions Production Rules Rule [ || +    sfp  USE {Map.unionWith (Set.union)} {Map.empty} : SF_P  -- deps of non-locals+    ruleMap USE {Map.union} {Map.empty} : {Map.Map MyOccurrence Identifier} +    lfp  USE {Map.unionWith (Set.union)} {Map.empty} : SF_P  -- deps of local attrs+    lfpr USE {Map.unionWith (Set.union)} {Map.empty} : SF_P ]-- reverse +SEM Production | Production+    loc.pll   = (@lhs.dty,getName @con)+    rules.pll = @pll +    rules.pts = @children.pts+    lhs.fsInP = Map.singleton @pll $ Map.keys @children.fieldMap++ATTR Children Child [ ||+    pts USE {Set.union} {Set.empty} : {Set.Set FLabel} ]++SEM Child | Child+    lhs.pts = Set.singleton $ getName @name++ATTR Rules Rule [+    lfpf : SF_P ||+    usedLocals USE {(Set.union)} {Set.empty} : {Set.Set MyOccurrence}]++SEM Rule | Rule+    loc.usedLocals = Set.filter (\(MyOccurrence (_,f) _) -> f == "loc") @rhs.used+    loc.usesLocals = not $ Set.null @loc.usedLocals+    (lhs.sfp,lhs.ruleMap,lhs.lfp,lhs.lfpr) = +        foldr (\(f, a, b) (m',rm', l', lr') -> +          let att = (@lhs.pll, f) >.< a+              rm  = Map.insert att @rulename rm' +              l   = if @loc.usesLocals && not b+                      then Map.insert att @loc.usedLocals l'+                      else l'+              lr  = if @loc.usesLocals && not b+                     then Set.fold (\k m -> Map.insertWith (Set.union) k +                                 (Set.singleton att) m) lr' @loc.usedLocals+                     else lr'+              sfpins = Map.insert att (@rhs.used `Set.union` fromHO) m'+              fromHO = maybe Set.empty id (Map.lookup hOcc @lhs.lfpf)+                where hOcc = (@lhs.pll, "inst") >.< (f, AnyDir)+              +            in if b+                then (m',rm, Map.insert att @rhs.used l, +                        Set.fold (\k m -> Map.insertWith (Set.union) k +                                (Set.singleton att) m) lr @rhs.used)+                else (sfpins,rm,l,lr))+                        (Map.empty,Map.empty,Map.empty,Map.empty) @pattern.afs++ATTR Patterns Pattern [ ||+    -- the boolean represents whether this occurrence is +    --   an transparent occurrence (only there to pass on dependencies)+    afs USE {++} {[]} : {[(FLabel, ALabel, Bool)]} ]++SEM Pattern | Alias+    lhs.afs = let isLocal = (@field == _LOC || @field == _INST)+               in [(getName @field, (getName @attr, dlhs @field), +                    isLocal)] ++ @pat.afs++ATTR Rules Rule Expression HsTokensRoot HsTokens HsToken [+    -- the terminals of current production+    pts                : {Set.Set (FLabel)} || ]++ATTR Rule Expression HsTokensRoot HsTokens HsToken [ ||+    used USE {Set.union} {Set.empty} : {Set.Set MyOccurrence} ]++SEM Expression | Expression+    inst.tokens : HsTokensRoot+    inst.tokens = HsTokensRoot @tks+    tokens.pll  = @lhs.pll+    tokens.pts  = @lhs.pts+    lhs.used    = @tokens.used++-- reference to terminals of which some are local attributes +SEM HsToken | AGLocal +    lhs.used = +        case getName @var `Set.member` @lhs.pts of+          True  -> Set.empty +          -- local found without flabel+          False -> Set.singleton $ (@lhs.pll, getName _LOC) >.< +                        (getName @var, drhs _LOC)+-- includes both locals and attributes+-- locals will be replaced later by repLocRefs+SEM HsToken | AGField+    lhs.used = Set.singleton $ (@lhs.pll, getName @field) >.< +                                (getName @attr, drhs @field)+    +{+-- | Replace the references to local attributes, by his attrs dependencies,+-- |    rendering the local attributes 'transparent'.+repLocRefs :: SF_P -> SF_P -> SF_P+repLocRefs lfp sfp =+    Map.map (setConcatMap $ rep Set.empty) sfp+    where rep :: Set.Set MyOccurrence -> MyOccurrence -> Set.Set MyOccurrence +          rep done occ | occ `Set.member` done = Set.empty+                       | isLoc occ   = setConcatMap (rep $ Set.insert occ done) $ +                                       findWithErr lfp "repping locals" occ+                       | otherwise   = Set.singleton occ++-- | Add dependencies from a higher order child to all its attributes+addHigherOrders :: SF_P -> SF_P -> SF_P+addHigherOrders lfp sfp = +   Map.mapWithKey f $ Map.map (setConcatMap (\mo -> f mo (Set.singleton mo))) sfp+   where f :: MyOccurrence -> Set.Set MyOccurrence -> Set.Set MyOccurrence+         f mo@(MyOccurrence (p,f) _) deps =+           let ho = ((p,"inst") >.< (f,AnyDir))+           in  if ho `Map.member` lfp+               then ho `Set.insert` deps+               else deps+}++
src-generated/LOAG/Order.hs view
@@ -110,11 +110,12 @@ -- |    rendering the local attributes 'transparent'. repLocRefs :: SF_P -> SF_P -> SF_P repLocRefs lfp sfp =-    Map.map (setConcatMap rep) sfp-    where rep :: MyOccurrence -> Set.Set MyOccurrence -          rep occ | isLoc occ   = setConcatMap rep $ -                                    findWithErr lfp "repping locals" occ-                  | otherwise   = Set.singleton occ+    Map.map (setConcatMap $ rep Set.empty) sfp+    where rep :: Set.Set MyOccurrence -> MyOccurrence -> Set.Set MyOccurrence +          rep done occ | occ `Set.member` done = Set.empty+                       | isLoc occ   = setConcatMap (rep $ Set.insert occ done) $ +                                       findWithErr lfp "repping locals" occ+                       | otherwise   = Set.singleton occ  -- | Add dependencies from a higher order child to all its attributes addHigherOrders :: SF_P -> SF_P -> SF_P@@ -126,14 +127,14 @@            in  if ho `Map.member` lfp                then ho `Set.insert` deps                else deps-{-# LINE 130 "dist/build/LOAG/Order.hs" #-}+{-# LINE 131 "dist/build/LOAG/Order.hs" #-}  {-# LINE 42 "src-ag/LOAG/Order.ag" #-}  fst' (a,_,_) = a snd' (_,b,_) = b trd' (_,_,c) = c-{-# LINE 137 "dist/build/LOAG/Order.hs" #-}+{-# LINE 138 "dist/build/LOAG/Order.hs" #-}  {-# LINE 95 "src-ag/LOAG/Order.ag" #-} @@ -163,7 +164,7 @@ ppOcc pmp v = text f >|< text "." >|< fst a  where (MyOccurrence ((t,p),f) a) = findWithErr pmp "ppOcc" v -{-# LINE 167 "dist/build/LOAG/Order.hs" #-}+{-# LINE 168 "dist/build/LOAG/Order.hs" #-}  {-# LINE 239 "src-ag/LOAG/Order.ag" #-} @@ -243,7 +244,7 @@                     ntid  = ((\(NT name _ _ )-> name) . fromMyTy) nt                      visnr = (\x-> visMap IMap.! x) (nmpr Map.! (nt <.> attr o))                     nt    = fty Map.! (ps,child)-{-# LINE 247 "dist/build/LOAG/Order.hs" #-}+{-# LINE 248 "dist/build/LOAG/Order.hs" #-}  {-# LINE 356 "src-ag/LOAG/Order.ag" #-} @@ -325,7 +326,7 @@            syns = map (((genA A.!) &&& id).(pmpr Map.!))$ Set.toList ss  -{-# LINE 329 "dist/build/LOAG/Order.hs" #-}+{-# LINE 330 "dist/build/LOAG/Order.hs" #-} -- CGrammar ---------------------------------------------------- -- wrapper data Inh_CGrammar  = Inh_CGrammar {  }@@ -1105,13 +1106,13 @@                  case tp_ of                    NT nt _ _ -> Set.singleton nt                    _         -> mempty-                 {-# LINE 1109 "dist/build/LOAG/Order.hs"#-}+                 {-# LINE 1110 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule33 #-}    {-# LINE 34 "src-ag/ExecutionPlanCommon.ag" #-}    rule33 = \ _isHigherOrder _refNts ->                    {-# LINE 34 "src-ag/ExecutionPlanCommon.ag" #-}                    if _isHigherOrder     then _refNts     else mempty-                   {-# LINE 1115 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 1116 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule34 #-}    {-# LINE 35 "src-ag/ExecutionPlanCommon.ag" #-}    rule34 = \ kind_ ->@@ -1119,7 +1120,7 @@                         case kind_ of                           ChildSyntax -> False                           _           -> True-                        {-# LINE 1123 "dist/build/LOAG/Order.hs"#-}+                        {-# LINE 1124 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule35 #-}    {-# LINE 95 "src-ag/ExecutionPlanCommon.ag" #-}    rule35 = \ ((_lhsIaroundMap) :: Map Identifier [Expression]) name_ ->@@ -1127,19 +1128,19 @@                      case Map.lookup name_ _lhsIaroundMap of                        Nothing -> False                        Just as -> not (null as)-                     {-# LINE 1131 "dist/build/LOAG/Order.hs"#-}+                     {-# LINE 1132 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule36 #-}    {-# LINE 123 "src-ag/ExecutionPlanCommon.ag" #-}    rule36 = \ ((_lhsImergeMap) :: Map Identifier (Identifier, [Identifier], Expression)) name_ ->                    {-# LINE 123 "src-ag/ExecutionPlanCommon.ag" #-}                    maybe Nothing (\(_,ms,_) -> Just ms) $ Map.lookup name_ _lhsImergeMap-                   {-# LINE 1137 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 1138 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule37 #-}    {-# LINE 124 "src-ag/ExecutionPlanCommon.ag" #-}    rule37 = \ ((_lhsImergedChildren) :: Set Identifier) name_ ->                    {-# LINE 124 "src-ag/ExecutionPlanCommon.ag" #-}                    name_ `Set.member` _lhsImergedChildren-                   {-# LINE 1143 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 1144 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule38 #-}    {-# LINE 135 "src-ag/ExecutionPlanCommon.ag" #-}    rule38 = \ _hasArounds _isMerged _merges kind_ name_ tp_ ->@@ -1147,56 +1148,56 @@                           case tp_ of                             NT _ _ _ -> EChild name_ tp_ kind_ _hasArounds     _merges     _isMerged                             _        -> ETerm name_ tp_-                          {-# LINE 1151 "dist/build/LOAG/Order.hs"#-}+                          {-# LINE 1152 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule39 #-}    {-# LINE 174 "src-ag/LOAG/Prepare.ag" #-}    rule39 = \ ((_lhsIflab) :: Int) ->                     {-# LINE 174 "src-ag/LOAG/Prepare.ag" #-}                     _lhsIflab + 1-                    {-# LINE 1157 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1158 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule40 #-}    {-# LINE 175 "src-ag/LOAG/Prepare.ag" #-}    rule40 = \ tp_ ->                     {-# LINE 175 "src-ag/LOAG/Prepare.ag" #-}                     toMyTy tp_-                    {-# LINE 1163 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1164 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule41 #-}    {-# LINE 177 "src-ag/LOAG/Prepare.ag" #-}    rule41 = \ _atp ((_lhsIan) :: MyType -> MyAttributes) ((_lhsIpll) :: PLabel) name_ ->                     {-# LINE 177 "src-ag/LOAG/Prepare.ag" #-}                     map ((FieldAtt _atp     _lhsIpll (getName name_)) . alab)                           $ _lhsIan _atp-                    {-# LINE 1170 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1171 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule42 #-}    {-# LINE 179 "src-ag/LOAG/Prepare.ag" #-}    rule42 = \ _flab ->                     {-# LINE 179 "src-ag/LOAG/Prepare.ag" #-}                     _flab-                    {-# LINE 1176 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1177 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule43 #-}    {-# LINE 180 "src-ag/LOAG/Prepare.ag" #-}    rule43 = \ name_ ->                     {-# LINE 180 "src-ag/LOAG/Prepare.ag" #-}                     getName name_-                    {-# LINE 1182 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1183 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule44 #-}    {-# LINE 181 "src-ag/LOAG/Prepare.ag" #-}    rule44 = \ _ident ((_lhsIpll) :: PLabel) ->                     {-# LINE 181 "src-ag/LOAG/Prepare.ag" #-}                     (_lhsIpll, _ident    )-                    {-# LINE 1188 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1189 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule45 #-}    {-# LINE 182 "src-ag/LOAG/Prepare.ag" #-}    rule45 = \ _atp _label ((_lhsIain) :: MyType -> MyAttributes) ->                     {-# LINE 182 "src-ag/LOAG/Prepare.ag" #-}                     Set.fromList $ handAllOut _label     $ _lhsIain _atp-                    {-# LINE 1194 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1195 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule46 #-}    {-# LINE 183 "src-ag/LOAG/Prepare.ag" #-}    rule46 = \ _atp _label ((_lhsIasn) :: MyType -> MyAttributes) ->                     {-# LINE 183 "src-ag/LOAG/Prepare.ag" #-}                     Set.fromList $ handAllOut _label     $ _lhsIasn _atp-                    {-# LINE 1200 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1201 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule47 #-}    {-# LINE 184 "src-ag/LOAG/Prepare.ag" #-}    rule47 = \ _foccsI _foccsS _label ->@@ -1204,7 +1205,7 @@                     if Set.null _foccsI     && Set.null _foccsS                           then Map.empty                           else Map.singleton _label     (_foccsS    ,_foccsI    )-                    {-# LINE 1208 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1209 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule48 #-}    {-# LINE 187 "src-ag/LOAG/Prepare.ag" #-}    rule48 = \ _ident ((_lhsIpll) :: PLabel) kind_ ->@@ -1212,19 +1213,19 @@                     case kind_ of                       ChildAttr -> Map.singleton _lhsIpll (Set.singleton _ident    )                       _         -> Map.empty-                    {-# LINE 1216 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1217 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule49 #-}    {-# LINE 190 "src-ag/LOAG/Prepare.ag" #-}    rule49 = \ _atp ((_lhsIpll) :: PLabel) name_ ->                     {-# LINE 190 "src-ag/LOAG/Prepare.ag" #-}                     Map.singleton (_lhsIpll, getName name_) _atp-                    {-# LINE 1222 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1223 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule50 #-}    {-# LINE 223 "src-ag/LOAG/Prepare.ag" #-}    rule50 = \ name_ ->                 {-# LINE 223 "src-ag/LOAG/Prepare.ag" #-}                 Set.singleton $ getName name_-                {-# LINE 1228 "dist/build/LOAG/Order.hs"#-}+                {-# LINE 1229 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule51 #-}    rule51 = \ ((_fattsIap) :: A_P) ->      _fattsIap@@ -1606,56 +1607,56 @@    rule120 = \ ((_lhsIflab) :: Int) ->                     {-# LINE 161 "src-ag/LOAG/Prepare.ag" #-}                     _lhsIflab + 1-                    {-# LINE 1610 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1611 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule121 #-}    {-# LINE 162 "src-ag/LOAG/Prepare.ag" #-}    rule121 = \ ((_lhsIpll) :: PLabel) ->                     {-# LINE 162 "src-ag/LOAG/Prepare.ag" #-}                     fst _lhsIpll-                    {-# LINE 1616 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1617 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule122 #-}    {-# LINE 164 "src-ag/LOAG/Prepare.ag" #-}    rule122 = \ _atp ((_lhsIan) :: MyType -> MyAttributes) ((_lhsIpll) :: PLabel) ->                     {-# LINE 164 "src-ag/LOAG/Prepare.ag" #-}                     map ((FieldAtt _atp     _lhsIpll "lhs") . alab) $                           _lhsIan _atp-                    {-# LINE 1623 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1624 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule123 #-}    {-# LINE 166 "src-ag/LOAG/Prepare.ag" #-}    rule123 = \ _flab ->                     {-# LINE 166 "src-ag/LOAG/Prepare.ag" #-}                     _flab-                    {-# LINE 1629 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1630 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule124 #-}    {-# LINE 167 "src-ag/LOAG/Prepare.ag" #-}    rule124 = \ ((_lhsIpll) :: PLabel) ->                     {-# LINE 167 "src-ag/LOAG/Prepare.ag" #-}                     (_lhsIpll, "lhs")-                    {-# LINE 1635 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1636 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule125 #-}    {-# LINE 168 "src-ag/LOAG/Prepare.ag" #-}    rule125 = \ _atp _label ((_lhsIain) :: MyType -> MyAttributes) ->                     {-# LINE 168 "src-ag/LOAG/Prepare.ag" #-}                     Set.fromList $ handAllOut _label     $ _lhsIain _atp-                    {-# LINE 1641 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1642 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule126 #-}    {-# LINE 169 "src-ag/LOAG/Prepare.ag" #-}    rule126 = \ _atp _label ((_lhsIasn) :: MyType -> MyAttributes) ->                     {-# LINE 169 "src-ag/LOAG/Prepare.ag" #-}                     Set.fromList $ handAllOut _label     $ _lhsIasn _atp-                    {-# LINE 1647 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1648 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule127 #-}    {-# LINE 170 "src-ag/LOAG/Prepare.ag" #-}    rule127 = \ _foccsI _foccsS _label ->                     {-# LINE 170 "src-ag/LOAG/Prepare.ag" #-}                     Map.singleton _label     (_foccsI    , _foccsS    )-                    {-# LINE 1653 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1654 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule128 #-}    {-# LINE 171 "src-ag/LOAG/Prepare.ag" #-}    rule128 = \ _label ((_lhsIdty) :: MyType) ->                     {-# LINE 171 "src-ag/LOAG/Prepare.ag" #-}                     Map.singleton _label     _lhsIdty-                    {-# LINE 1659 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1660 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule129 #-}    rule129 = \ ((_fattsIap) :: A_P) ->      _fattsIap@@ -1772,25 +1773,25 @@    rule148 = \ tks_ ->                     {-# LINE 273 "src-ag/LOAG/Prepare.ag" #-}                     HsTokensRoot tks_-                    {-# LINE 1776 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1777 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule149 #-}    {-# LINE 274 "src-ag/LOAG/Prepare.ag" #-}    rule149 = \ ((_lhsIpll) :: PLabel) ->                     {-# LINE 274 "src-ag/LOAG/Prepare.ag" #-}                     _lhsIpll-                    {-# LINE 1782 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1783 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule150 #-}    {-# LINE 275 "src-ag/LOAG/Prepare.ag" #-}    rule150 = \ ((_lhsIpts) :: Set.Set (FLabel)) ->                     {-# LINE 275 "src-ag/LOAG/Prepare.ag" #-}                     _lhsIpts-                    {-# LINE 1788 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1789 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule151 #-}    {-# LINE 276 "src-ag/LOAG/Prepare.ag" #-}    rule151 = \ ((_tokensIused) :: Set.Set MyOccurrence) ->                     {-# LINE 276 "src-ag/LOAG/Prepare.ag" #-}                     _tokensIused-                    {-# LINE 1794 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1795 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule152 #-}    rule152 = \ pos_ tks_ ->      Expression pos_ tks_@@ -1878,61 +1879,61 @@    rule156 = \ ((_lhsIolab) :: Int) ->                     {-# LINE 193 "src-ag/LOAG/Prepare.ag" #-}                     _lhsIolab + 1-                    {-# LINE 1882 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1883 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule157 #-}    {-# LINE 194 "src-ag/LOAG/Prepare.ag" #-}    rule157 = \ _att ((_lhsInmprf) :: NMP_R) ->                     {-# LINE 194 "src-ag/LOAG/Prepare.ag" #-}                     findWithErr _lhsInmprf "getting attr label" _att-                    {-# LINE 1888 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1889 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule158 #-}    {-# LINE 195 "src-ag/LOAG/Prepare.ag" #-}    rule158 = \ a_ t_ ->                     {-# LINE 195 "src-ag/LOAG/Prepare.ag" #-}                     t_ <.> a_-                    {-# LINE 1894 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1895 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule159 #-}    {-# LINE 196 "src-ag/LOAG/Prepare.ag" #-}    rule159 = \ a_ f_ p_ ->                     {-# LINE 196 "src-ag/LOAG/Prepare.ag" #-}                     (p_, f_) >.< a_-                    {-# LINE 1900 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1901 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule160 #-}    {-# LINE 197 "src-ag/LOAG/Prepare.ag" #-}    rule160 = \ _occ _olab ->                     {-# LINE 197 "src-ag/LOAG/Prepare.ag" #-}                     Map.singleton _olab     _occ-                    {-# LINE 1906 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1907 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule161 #-}    {-# LINE 198 "src-ag/LOAG/Prepare.ag" #-}    rule161 = \ _occ _olab ->                     {-# LINE 198 "src-ag/LOAG/Prepare.ag" #-}                     Map.singleton _occ      _olab-                    {-# LINE 1912 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1913 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule162 #-}    {-# LINE 199 "src-ag/LOAG/Prepare.ag" #-}    rule162 = \ _alab _olab ->                     {-# LINE 199 "src-ag/LOAG/Prepare.ag" #-}                     Map.singleton _alab     [_olab    ]-                    {-# LINE 1918 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1919 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule163 #-}    {-# LINE 200 "src-ag/LOAG/Prepare.ag" #-}    rule163 = \ _alab _olab ->                     {-# LINE 200 "src-ag/LOAG/Prepare.ag" #-}                     Map.singleton _olab     _alab-                    {-# LINE 1924 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1925 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule164 #-}    {-# LINE 201 "src-ag/LOAG/Prepare.ag" #-}    rule164 = \ _occ p_ ->                     {-# LINE 201 "src-ag/LOAG/Prepare.ag" #-}                     Map.singleton p_ [_occ    ]-                    {-# LINE 1930 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1931 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule165 #-}    {-# LINE 202 "src-ag/LOAG/Prepare.ag" #-}    rule165 = \ ((_lhsIflab) :: Int) _olab ->                     {-# LINE 202 "src-ag/LOAG/Prepare.ag" #-}                     [(_olab    , _lhsIflab)]-                    {-# LINE 1936 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 1937 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule166 #-}    rule166 = \  (_ :: ()) ->      Map.empty@@ -2264,49 +2265,49 @@    rule205 = \ ((_nontsIntDeps) :: Map NontermIdent (Set NontermIdent)) ->                             {-# LINE 40 "src-ag/ExecutionPlanCommon.ag" #-}                             closeMap _nontsIntDeps-                            {-# LINE 2268 "dist/build/LOAG/Order.hs"#-}+                            {-# LINE 2269 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule206 #-}    {-# LINE 41 "src-ag/ExecutionPlanCommon.ag" #-}    rule206 = \ ((_nontsIntHoDeps) :: Map NontermIdent (Set NontermIdent)) ->                             {-# LINE 41 "src-ag/ExecutionPlanCommon.ag" #-}                             closeMap _nontsIntHoDeps-                            {-# LINE 2274 "dist/build/LOAG/Order.hs"#-}+                            {-# LINE 2275 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule207 #-}    {-# LINE 42 "src-ag/ExecutionPlanCommon.ag" #-}    rule207 = \ _closedHoNtDeps ->                             {-# LINE 42 "src-ag/ExecutionPlanCommon.ag" #-}                             revDeps _closedHoNtDeps-                            {-# LINE 2280 "dist/build/LOAG/Order.hs"#-}+                            {-# LINE 2281 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule208 #-}    {-# LINE 51 "src-ag/ExecutionPlanCommon.ag" #-}    rule208 = \ contextMap_ ->                           {-# LINE 51 "src-ag/ExecutionPlanCommon.ag" #-}                           contextMap_-                          {-# LINE 2286 "dist/build/LOAG/Order.hs"#-}+                          {-# LINE 2287 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule209 #-}    {-# LINE 92 "src-ag/ExecutionPlanCommon.ag" #-}    rule209 = \ aroundsMap_ ->                       {-# LINE 92 "src-ag/ExecutionPlanCommon.ag" #-}                       aroundsMap_-                      {-# LINE 2292 "dist/build/LOAG/Order.hs"#-}+                      {-# LINE 2293 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule210 #-}    {-# LINE 117 "src-ag/ExecutionPlanCommon.ag" #-}    rule210 = \ mergeMap_ ->                      {-# LINE 117 "src-ag/ExecutionPlanCommon.ag" #-}                      mergeMap_-                     {-# LINE 2298 "dist/build/LOAG/Order.hs"#-}+                     {-# LINE 2299 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule211 #-}    {-# LINE 9 "src-ag/ExecutionPlanPre.ag" #-}    rule211 = \  (_ :: ()) ->                                   {-# LINE 9 "src-ag/ExecutionPlanPre.ag" #-}                                   0-                                  {-# LINE 2304 "dist/build/LOAG/Order.hs"#-}+                                  {-# LINE 2305 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule212 #-}    {-# LINE 38 "src-ag/LOAG/Prepare.ag" #-}    rule212 = \ ((_nontsIpmp) :: PMP) ->                  {-# LINE 38 "src-ag/LOAG/Prepare.ag" #-}                  if Map.null _nontsIpmp then 1 else fst $ Map.findMin _nontsIpmp-                 {-# LINE 2310 "dist/build/LOAG/Order.hs"#-}+                 {-# LINE 2311 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule213 #-}    {-# LINE 40 "src-ag/LOAG/Prepare.ag" #-}    rule213 = \ _ain _an _asn _initO _nmp _nmpr ((_nontsIap) :: A_P) ((_nontsIfieldMap) :: FMap) ((_nontsIfsInP) :: FsInP) ((_nontsIfty) :: FTY) ((_nontsIgen) :: Map Int Int) ((_nontsIinss) :: Map Int [Int]) ((_nontsIofld) :: [(Int, Int)]) ((_nontsIpmp) :: PMP) ((_nontsIpmpr) :: PMP_R) ((_nontsIps) :: [PLabel]) _sfp ->@@ -2320,145 +2321,145 @@                   Map.toList $ _nontsIinss)              (A.array (_initO    , _initO     + length _nontsIofld) $                   _nontsIofld) _nontsIfty _nontsIfieldMap _nontsIfsInP-          {-# LINE 2324 "dist/build/LOAG/Order.hs"#-}+          {-# LINE 2325 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule214 #-}    {-# LINE 49 "src-ag/LOAG/Prepare.ag" #-}    rule214 = \ _atts ->                  {-# LINE 49 "src-ag/LOAG/Prepare.ag" #-}                  Map.fromList $ zip [1..] _atts-                 {-# LINE 2330 "dist/build/LOAG/Order.hs"#-}+                 {-# LINE 2331 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule215 #-}    {-# LINE 50 "src-ag/LOAG/Prepare.ag" #-}    rule215 = \ _atts ->                  {-# LINE 50 "src-ag/LOAG/Prepare.ag" #-}                  Map.fromList $ zip _atts     [1..]-                 {-# LINE 2336 "dist/build/LOAG/Order.hs"#-}+                 {-# LINE 2337 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule216 #-}    {-# LINE 51 "src-ag/LOAG/Prepare.ag" #-}    rule216 = \ _ain _asn ->                  {-# LINE 51 "src-ag/LOAG/Prepare.ag" #-}                  Map.unionWith (++) _ain     _asn-                 {-# LINE 2342 "dist/build/LOAG/Order.hs"#-}+                 {-# LINE 2343 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule217 #-}    {-# LINE 52 "src-ag/LOAG/Prepare.ag" #-}    rule217 = \ ((_nontsIinhs) :: AI_N) ->                  {-# LINE 52 "src-ag/LOAG/Prepare.ag" #-}                  _nontsIinhs-                 {-# LINE 2348 "dist/build/LOAG/Order.hs"#-}+                 {-# LINE 2349 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule218 #-}    {-# LINE 53 "src-ag/LOAG/Prepare.ag" #-}    rule218 = \ ((_nontsIsyns) :: AS_N) ->                  {-# LINE 53 "src-ag/LOAG/Prepare.ag" #-}                  _nontsIsyns-                 {-# LINE 2354 "dist/build/LOAG/Order.hs"#-}+                 {-# LINE 2355 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule219 #-}    {-# LINE 54 "src-ag/LOAG/Prepare.ag" #-}    rule219 = \ _an ->                  {-# LINE 54 "src-ag/LOAG/Prepare.ag" #-}                  concat $ Map.elems _an-                 {-# LINE 2360 "dist/build/LOAG/Order.hs"#-}+                 {-# LINE 2361 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule220 #-}    {-# LINE 55 "src-ag/LOAG/Prepare.ag" #-}    rule220 = \ ((_nontsIap) :: A_P) ->                  {-# LINE 55 "src-ag/LOAG/Prepare.ag" #-}                  concat $ Map.elems _nontsIap-                 {-# LINE 2366 "dist/build/LOAG/Order.hs"#-}+                 {-# LINE 2367 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule221 #-}    {-# LINE 56 "src-ag/LOAG/Prepare.ag" #-}    rule221 = \ manualAttrOrderMap_ ->                    {-# LINE 56 "src-ag/LOAG/Prepare.ag" #-}                    manualAttrOrderMap_-                   {-# LINE 2372 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 2373 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule222 #-}    {-# LINE 87 "src-ag/LOAG/Prepare.ag" #-}    rule222 = \ _ain ->                    {-# LINE 87 "src-ag/LOAG/Prepare.ag" #-}                    map2F _ain-                   {-# LINE 2378 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 2379 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule223 #-}    {-# LINE 88 "src-ag/LOAG/Prepare.ag" #-}    rule223 = \ _asn ->                    {-# LINE 88 "src-ag/LOAG/Prepare.ag" #-}                    map2F _asn-                   {-# LINE 2384 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 2385 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule224 #-}    {-# LINE 89 "src-ag/LOAG/Prepare.ag" #-}    rule224 = \ ((_nontsIpmp) :: PMP) ->                     {-# LINE 89 "src-ag/LOAG/Prepare.ag" #-}                     _nontsIpmp-                    {-# LINE 2390 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 2391 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule225 #-}    {-# LINE 90 "src-ag/LOAG/Prepare.ag" #-}    rule225 = \ ((_nontsIpmpr) :: PMP_R) ->                     {-# LINE 90 "src-ag/LOAG/Prepare.ag" #-}                     _nontsIpmpr-                    {-# LINE 2396 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 2397 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule226 #-}    {-# LINE 91 "src-ag/LOAG/Prepare.ag" #-}    rule226 = \ ((_nontsIlfp) :: SF_P) ->                     {-# LINE 91 "src-ag/LOAG/Prepare.ag" #-}                     _nontsIlfp-                    {-# LINE 2402 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 2403 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule227 #-}    {-# LINE 92 "src-ag/LOAG/Prepare.ag" #-}    rule227 = \ ((_nontsIhoMap) :: HOMap) ->                     {-# LINE 92 "src-ag/LOAG/Prepare.ag" #-}                     _nontsIhoMap-                    {-# LINE 2408 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 2409 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule228 #-}    {-# LINE 93 "src-ag/LOAG/Prepare.ag" #-}    rule228 = \ ((_nontsIfty) :: FTY) ->                     {-# LINE 93 "src-ag/LOAG/Prepare.ag" #-}                     _nontsIfty-                    {-# LINE 2414 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 2415 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule229 #-}    {-# LINE 94 "src-ag/LOAG/Prepare.ag" #-}    rule229 = \ ((_nontsIfty) :: FTY) ->                     {-# LINE 94 "src-ag/LOAG/Prepare.ag" #-}                     _nontsIfty-                    {-# LINE 2420 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 2421 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule230 #-}    {-# LINE 103 "src-ag/LOAG/Prepare.ag" #-}    rule230 = \ ((_nontsIps) :: [PLabel]) ->                 {-# LINE 103 "src-ag/LOAG/Prepare.ag" #-}                 _nontsIps-                {-# LINE 2426 "dist/build/LOAG/Order.hs"#-}+                {-# LINE 2427 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule231 #-}    {-# LINE 150 "src-ag/LOAG/Prepare.ag" #-}    rule231 = \ _an ->                  {-# LINE 150 "src-ag/LOAG/Prepare.ag" #-}                  map2F _an-                 {-# LINE 2432 "dist/build/LOAG/Order.hs"#-}+                 {-# LINE 2433 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule232 #-}    {-# LINE 151 "src-ag/LOAG/Prepare.ag" #-}    rule232 = \ _nmpr ->                    {-# LINE 151 "src-ag/LOAG/Prepare.ag" #-}                    _nmpr-                   {-# LINE 2438 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 2439 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule233 #-}    {-# LINE 152 "src-ag/LOAG/Prepare.ag" #-}    rule233 = \ _nmp ->                    {-# LINE 152 "src-ag/LOAG/Prepare.ag" #-}                    if Map.null _nmp     then 0 else (fst $ Map.findMax _nmp    )-                   {-# LINE 2444 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 2445 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule234 #-}    {-# LINE 153 "src-ag/LOAG/Prepare.ag" #-}    rule234 = \  (_ :: ()) ->                    {-# LINE 153 "src-ag/LOAG/Prepare.ag" #-}                    0-                   {-# LINE 2450 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 2451 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule235 #-}    {-# LINE 207 "src-ag/LOAG/Prepare.ag" #-}    rule235 = \ ((_nontsIlfp) :: SF_P) ((_nontsIsfp) :: SF_P) ->                  {-# LINE 207 "src-ag/LOAG/Prepare.ag" #-}                  repLocRefs _nontsIlfp $ addHigherOrders _nontsIlfp _nontsIsfp-                 {-# LINE 2456 "dist/build/LOAG/Order.hs"#-}+                 {-# LINE 2457 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule236 #-}    {-# LINE 54 "src-ag/LOAG/Order.ag" #-}    rule236 = \ _schedRes ->                    {-# LINE 54 "src-ag/LOAG/Order.ag" #-}                    either Seq.singleton (const Seq.empty) _schedRes-                   {-# LINE 2462 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 2463 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule237 #-}    {-# LINE 55 "src-ag/LOAG/Order.ag" #-}    rule237 = \ ((_lhsIoptions) :: Options) ((_nontsIpmp) :: PMP) _schedRes ->@@ -2466,25 +2467,25 @@                    case either (const []) trd' _schedRes     of                       []  -> Nothing                       ads -> Just $ ppAds _lhsIoptions _nontsIpmp ads-                   {-# LINE 2470 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 2471 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule238 #-}    {-# LINE 58 "src-ag/LOAG/Order.ag" #-}    rule238 = \ ((_nontsIenonts) :: ENonterminals) derivings_ typeSyns_ wrappers_ ->                    {-# LINE 58 "src-ag/LOAG/Order.ag" #-}                    ExecutionPlan _nontsIenonts typeSyns_ wrappers_ derivings_-                   {-# LINE 2476 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 2477 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule239 #-}    {-# LINE 60 "src-ag/LOAG/Order.ag" #-}    rule239 = \ _schedRes ->                       {-# LINE 60 "src-ag/LOAG/Order.ag" #-}                       either (const Map.empty) snd' _schedRes-                      {-# LINE 2482 "dist/build/LOAG/Order.hs"#-}+                      {-# LINE 2483 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule240 #-}    {-# LINE 61 "src-ag/LOAG/Order.ag" #-}    rule240 = \ _schedRes ->                       {-# LINE 61 "src-ag/LOAG/Order.ag" #-}                       either (error "no tdp") (fromJust.fst') _schedRes-                      {-# LINE 2488 "dist/build/LOAG/Order.hs"#-}+                      {-# LINE 2489 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule241 #-}    {-# LINE 63 "src-ag/LOAG/Order.ag" #-}    rule241 = \ _ag ((_lhsIoptions) :: Options) _loagRes ((_nontsIads) :: [Edge]) _self ((_smfIself) :: LOAGRep) ->@@ -2494,38 +2495,38 @@                                   then AOAG.schedule _smfIself _self _ag     _nontsIads                                   else _loagRes                           else Right (Nothing,Map.empty,[])-                       {-# LINE 2498 "dist/build/LOAG/Order.hs"#-}+                       {-# LINE 2499 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule242 #-}    {-# LINE 68 "src-ag/LOAG/Order.ag" #-}    rule242 = \ _ag ((_lhsIoptions) :: Options) ->                     {-# LINE 68 "src-ag/LOAG/Order.ag" #-}                     let putStrLn s = when (verbose _lhsIoptions) (IO.putStrLn s)                     in  Right $ unsafePerformIO $ scheduleLOAG _ag     putStrLn _lhsIoptions-                    {-# LINE 2505 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 2506 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule243 #-}    {-# LINE 70 "src-ag/LOAG/Order.ag" #-}    rule243 = \ _self ((_smfIself) :: LOAGRep) ->                {-# LINE 70 "src-ag/LOAG/Order.ag" #-}                repToAg _smfIself _self-               {-# LINE 2511 "dist/build/LOAG/Order.hs"#-}+               {-# LINE 2512 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule244 #-}    {-# LINE 72 "src-ag/LOAG/Order.ag" #-}    rule244 = \ _schedRes ->                       {-# LINE 72 "src-ag/LOAG/Order.ag" #-}                       either (const []) trd' _schedRes-                      {-# LINE 2517 "dist/build/LOAG/Order.hs"#-}+                      {-# LINE 2518 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule245 #-}    {-# LINE 133 "src-ag/LOAG/Order.ag" #-}    rule245 = \ ((_nontsIvisMap) :: IMap.IntMap Int) ->                               {-# LINE 133 "src-ag/LOAG/Order.ag" #-}                               _nontsIvisMap-                              {-# LINE 2523 "dist/build/LOAG/Order.hs"#-}+                              {-# LINE 2524 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule246 #-}    {-# LINE 134 "src-ag/LOAG/Order.ag" #-}    rule246 = \  (_ :: ()) ->                                {-# LINE 134 "src-ag/LOAG/Order.ag" #-}                                0-                               {-# LINE 2529 "dist/build/LOAG/Order.hs"#-}+                               {-# LINE 2530 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule247 #-}    rule247 = \ ((_nontsIinhmap) :: Map.Map NontermIdent Attributes) ->      _nontsIinhmap@@ -2615,7 +2616,7 @@             True  -> Set.empty             False -> Set.singleton $ (_lhsIpll, getName _LOC) >.<                           (getName var_, drhs _LOC)-          {-# LINE 2619 "dist/build/LOAG/Order.hs"#-}+          {-# LINE 2620 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule258 #-}    rule258 = \ pos_ rdesc_ var_ ->      AGLocal var_ pos_ rdesc_@@ -2643,7 +2644,7 @@                  {-# LINE 289 "src-ag/LOAG/Prepare.ag" #-}                  Set.singleton $ (_lhsIpll, getName field_) >.<                                   (getName attr_, drhs field_)-                 {-# LINE 2647 "dist/build/LOAG/Order.hs"#-}+                 {-# LINE 2648 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule261 #-}    rule261 = \ attr_ field_ pos_ rdesc_ ->      AGField field_ attr_ pos_ rdesc_@@ -3038,51 +3039,51 @@    rule294 = \ ((_lhsInmp) :: NMP) inhAttr_ ->                    {-# LINE 225 "src-ag/LOAG/Order.ag" #-}                    Map.keysSet$ Map.unions $ map (vertexToAttr _lhsInmp) inhAttr_-                   {-# LINE 3042 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 3043 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule295 #-}    {-# LINE 226 "src-ag/LOAG/Order.ag" #-}    rule295 = \ ((_lhsInmp) :: NMP) synAttr_ ->                    {-# LINE 226 "src-ag/LOAG/Order.ag" #-}                    Map.keysSet$ Map.unions $ map (vertexToAttr _lhsInmp) synAttr_-                   {-# LINE 3048 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 3049 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule296 #-}    {-# LINE 227 "src-ag/LOAG/Order.ag" #-}    rule296 = \ inhOccs_ ->                    {-# LINE 227 "src-ag/LOAG/Order.ag" #-}                    maybe (error "segment not instantiated") id inhOccs_-                   {-# LINE 3054 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 3055 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule297 #-}    {-# LINE 228 "src-ag/LOAG/Order.ag" #-}    rule297 = \ synOccs_ ->                    {-# LINE 228 "src-ag/LOAG/Order.ag" #-}                    maybe (error "segment not instantiated") id synOccs_-                   {-# LINE 3060 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 3061 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule298 #-}    {-# LINE 229 "src-ag/LOAG/Order.ag" #-}    rule298 = \ visnr_ ->                    {-# LINE 229 "src-ag/LOAG/Order.ag" #-}                    visnr_-                   {-# LINE 3066 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 3067 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule299 #-}    {-# LINE 230 "src-ag/LOAG/Order.ag" #-}    rule299 = \ ((_lhsIoptions) :: Options) ->                    {-# LINE 230 "src-ag/LOAG/Order.ag" #-}                    if monadic _lhsIoptions then VisitMonadic else VisitPure True-                   {-# LINE 3072 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 3073 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule300 #-}    {-# LINE 231 "src-ag/LOAG/Order.ag" #-}    rule300 = \ _inhs _kind ((_lhsIvisitnum) :: Int) _steps _syns ->                       {-# LINE 231 "src-ag/LOAG/Order.ag" #-}                       Visit _lhsIvisitnum _lhsIvisitnum (_lhsIvisitnum+1)                             _inhs     _syns     _steps     _kind-                      {-# LINE 3079 "dist/build/LOAG/Order.hs"#-}+                      {-# LINE 3080 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule301 #-}    {-# LINE 233 "src-ag/LOAG/Order.ag" #-}    rule301 = \ ((_lhsIoptions) :: Options) _vss ->                       {-# LINE 233 "src-ag/LOAG/Order.ag" #-}                       if monadic _lhsIoptions                           then [Sim _vss    ] else [PureGroup _vss     True]-                      {-# LINE 3086 "dist/build/LOAG/Order.hs"#-}+                      {-# LINE 3087 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule302 #-}    {-# LINE 235 "src-ag/LOAG/Order.ag" #-}    rule302 = \ ((_lhsIdone) ::  (Set.Set MyOccurrence, Set.Set FLabel@@ -3091,7 +3092,7 @@                              (runST $ getVss _lhsIdone _lhsIps _lhsItdp _synsO                               _lhsIlfpf _lhsInmprf _lhsIpmpf _lhsIpmprf _lhsIfty                               _lhsIvisMapf _lhsIruleMap _lhsIhoMapf)-                             {-# LINE 3095 "dist/build/LOAG/Order.hs"#-}+                             {-# LINE 3096 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule303 #-}    rule303 = \ inhAttr_ inhOccs_ synAttr_ synOccs_ visnr_ ->      MySegment visnr_ inhAttr_ synAttr_ inhOccs_ synOccs_@@ -3196,14 +3197,14 @@                                                , Set.Set Identifier, Set.Set (FLabel,Int))) ->                         {-# LINE 220 "src-ag/LOAG/Order.ag" #-}                         _lhsIdone-                        {-# LINE 3200 "dist/build/LOAG/Order.hs"#-}+                        {-# LINE 3201 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule308 #-}    {-# LINE 221 "src-ag/LOAG/Order.ag" #-}    rule308 = \ ((_hdIdone) ::  (Set.Set MyOccurrence, Set.Set FLabel                                               ,Set.Set Identifier, Set.Set (FLabel,Int))) ->                         {-# LINE 221 "src-ag/LOAG/Order.ag" #-}                         _hdIdone-                        {-# LINE 3207 "dist/build/LOAG/Order.hs"#-}+                        {-# LINE 3208 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule309 #-}    rule309 = \ ((_hdIevisits) :: Visit) ((_tlIevisits) :: Visits) ->      _hdIevisits : _tlIevisits@@ -3490,43 +3491,43 @@    rule347 = \ ((_prodsIrefNts) :: Set NontermIdent) nt_ ->                             {-# LINE 16 "src-ag/ExecutionPlanCommon.ag" #-}                             Map.singleton nt_ _prodsIrefNts-                            {-# LINE 3494 "dist/build/LOAG/Order.hs"#-}+                            {-# LINE 3495 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule348 #-}    {-# LINE 17 "src-ag/ExecutionPlanCommon.ag" #-}    rule348 = \ ((_prodsIrefHoNts) :: Set NontermIdent) nt_ ->                             {-# LINE 17 "src-ag/ExecutionPlanCommon.ag" #-}                             Map.singleton nt_ _prodsIrefHoNts-                            {-# LINE 3500 "dist/build/LOAG/Order.hs"#-}+                            {-# LINE 3501 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule349 #-}    {-# LINE 19 "src-ag/ExecutionPlanCommon.ag" #-}    rule349 = \ ((_lhsIclosedNtDeps) :: Map NontermIdent (Set NontermIdent)) nt_ ->                             {-# LINE 19 "src-ag/ExecutionPlanCommon.ag" #-}                             Map.findWithDefault Set.empty nt_ _lhsIclosedNtDeps-                            {-# LINE 3506 "dist/build/LOAG/Order.hs"#-}+                            {-# LINE 3507 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule350 #-}    {-# LINE 20 "src-ag/ExecutionPlanCommon.ag" #-}    rule350 = \ ((_lhsIclosedHoNtDeps) :: Map NontermIdent (Set NontermIdent)) nt_ ->                             {-# LINE 20 "src-ag/ExecutionPlanCommon.ag" #-}                             Map.findWithDefault Set.empty nt_ _lhsIclosedHoNtDeps-                            {-# LINE 3512 "dist/build/LOAG/Order.hs"#-}+                            {-# LINE 3513 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule351 #-}    {-# LINE 21 "src-ag/ExecutionPlanCommon.ag" #-}    rule351 = \ ((_lhsIclosedHoNtRevDeps) :: Map NontermIdent (Set NontermIdent)) nt_ ->                             {-# LINE 21 "src-ag/ExecutionPlanCommon.ag" #-}                             Map.findWithDefault Set.empty nt_ _lhsIclosedHoNtRevDeps-                            {-# LINE 3518 "dist/build/LOAG/Order.hs"#-}+                            {-# LINE 3519 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule352 #-}    {-# LINE 23 "src-ag/ExecutionPlanCommon.ag" #-}    rule352 = \ _closedNtDeps nt_ ->                             {-# LINE 23 "src-ag/ExecutionPlanCommon.ag" #-}                             nt_ `Set.member` _closedNtDeps-                            {-# LINE 3524 "dist/build/LOAG/Order.hs"#-}+                            {-# LINE 3525 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule353 #-}    {-# LINE 24 "src-ag/ExecutionPlanCommon.ag" #-}    rule353 = \ _closedHoNtDeps nt_ ->                             {-# LINE 24 "src-ag/ExecutionPlanCommon.ag" #-}                             nt_ `Set.member` _closedHoNtDeps-                            {-# LINE 3530 "dist/build/LOAG/Order.hs"#-}+                            {-# LINE 3531 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule354 #-}    {-# LINE 25 "src-ag/ExecutionPlanCommon.ag" #-}    rule354 = \ _closedHoNtDeps _closedHoNtRevDeps _nontrivAcyc ->@@ -3535,57 +3536,57 @@                                             , hoNtRevDeps         = _closedHoNtRevDeps                                             , hoAcyclic           = _nontrivAcyc                                             }-                            {-# LINE 3539 "dist/build/LOAG/Order.hs"#-}+                            {-# LINE 3540 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule355 #-}    {-# LINE 54 "src-ag/ExecutionPlanCommon.ag" #-}    rule355 = \ ((_lhsIclassContexts) :: ContextMap) nt_ ->                         {-# LINE 54 "src-ag/ExecutionPlanCommon.ag" #-}                         Map.findWithDefault [] nt_ _lhsIclassContexts-                        {-# LINE 3545 "dist/build/LOAG/Order.hs"#-}+                        {-# LINE 3546 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule356 #-}    {-# LINE 88 "src-ag/ExecutionPlanCommon.ag" #-}    rule356 = \ ((_lhsIaroundMap) :: Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))) nt_ ->                                                  {-# LINE 88 "src-ag/ExecutionPlanCommon.ag" #-}                                                  Map.findWithDefault Map.empty nt_ _lhsIaroundMap-                                                 {-# LINE 3551 "dist/build/LOAG/Order.hs"#-}+                                                 {-# LINE 3552 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule357 #-}    {-# LINE 113 "src-ag/ExecutionPlanCommon.ag" #-}    rule357 = \ ((_lhsImergeMap) :: Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression)))) nt_ ->                                                 {-# LINE 113 "src-ag/ExecutionPlanCommon.ag" #-}                                                 Map.findWithDefault Map.empty nt_ _lhsImergeMap-                                                {-# LINE 3557 "dist/build/LOAG/Order.hs"#-}+                                                {-# LINE 3558 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule358 #-}    {-# LINE 149 "src-ag/ExecutionPlanCommon.ag" #-}    rule358 = \ inh_ nt_ ->                                {-# LINE 149 "src-ag/ExecutionPlanCommon.ag" #-}                                Map.singleton nt_ inh_-                               {-# LINE 3563 "dist/build/LOAG/Order.hs"#-}+                               {-# LINE 3564 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule359 #-}    {-# LINE 150 "src-ag/ExecutionPlanCommon.ag" #-}    rule359 = \ nt_ syn_ ->                                {-# LINE 150 "src-ag/ExecutionPlanCommon.ag" #-}                                Map.singleton nt_ syn_-                               {-# LINE 3569 "dist/build/LOAG/Order.hs"#-}+                               {-# LINE 3570 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule360 #-}    {-# LINE 159 "src-ag/ExecutionPlanCommon.ag" #-}    rule360 = \ ((_prodsIlocalSigMap) :: Map.Map ConstructorIdent (Map.Map Identifier Type)) nt_ ->                                                    {-# LINE 159 "src-ag/ExecutionPlanCommon.ag" #-}                                                    Map.singleton nt_ _prodsIlocalSigMap-                                                   {-# LINE 3575 "dist/build/LOAG/Order.hs"#-}+                                                   {-# LINE 3576 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule361 #-}    {-# LINE 65 "src-ag/LOAG/Prepare.ag" #-}    rule361 = \ inh_ nt_ ->                  {-# LINE 65 "src-ag/LOAG/Prepare.ag" #-}                  let dty = TyData (getName nt_)                   in Map.singleton dty (toMyAttr Inh dty inh_)-                 {-# LINE 3582 "dist/build/LOAG/Order.hs"#-}+                 {-# LINE 3583 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule362 #-}    {-# LINE 67 "src-ag/LOAG/Prepare.ag" #-}    rule362 = \ nt_ syn_ ->                  {-# LINE 67 "src-ag/LOAG/Prepare.ag" #-}                  let dty = TyData (getName nt_)                   in Map.singleton dty (toMyAttr Syn dty syn_)-                 {-# LINE 3589 "dist/build/LOAG/Order.hs"#-}+                 {-# LINE 3590 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule363 #-}    {-# LINE 69 "src-ag/LOAG/Prepare.ag" #-}    rule363 = \ ((_lhsIaugM) :: Map.Map Identifier (Map.Map Identifier (Set.Set Dependency))) nt_ ->@@ -3593,51 +3594,51 @@                    case Map.lookup nt_ _lhsIaugM of                       Nothing -> Map.empty                       Just a  -> a-                   {-# LINE 3597 "dist/build/LOAG/Order.hs"#-}+                   {-# LINE 3598 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule364 #-}    {-# LINE 131 "src-ag/LOAG/Prepare.ag" #-}    rule364 = \ nt_ ->                  {-# LINE 131 "src-ag/LOAG/Prepare.ag" #-}                  TyData (getName nt_)-                 {-# LINE 3603 "dist/build/LOAG/Order.hs"#-}+                 {-# LINE 3604 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule365 #-}    {-# LINE 82 "src-ag/LOAG/Order.ag" #-}    rule365 = \ ((_prodsIfdps) :: Map.Map ConstructorIdent (Set Dependency)) nt_ ->                     {-# LINE 82 "src-ag/LOAG/Order.ag" #-}                     Map.singleton nt_ _prodsIfdps-                    {-# LINE 3609 "dist/build/LOAG/Order.hs"#-}+                    {-# LINE 3610 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule366 #-}    {-# LINE 138 "src-ag/LOAG/Order.ag" #-}    rule366 = \ ((_lhsIvisitnum) :: Int) ->                         {-# LINE 138 "src-ag/LOAG/Order.ag" #-}                         _lhsIvisitnum-                        {-# LINE 3615 "dist/build/LOAG/Order.hs"#-}+                        {-# LINE 3616 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule367 #-}    {-# LINE 139 "src-ag/LOAG/Order.ag" #-}    rule367 = \ _initial _segments ->                         {-# LINE 139 "src-ag/LOAG/Order.ag" #-}                         zipWith const [_initial    ..] _segments-                        {-# LINE 3621 "dist/build/LOAG/Order.hs"#-}+                        {-# LINE 3622 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule368 #-}    {-# LINE 140 "src-ag/LOAG/Order.ag" #-}    rule368 = \ _vnums ->                              {-# LINE 140 "src-ag/LOAG/Order.ag" #-}                              _vnums-                             {-# LINE 3627 "dist/build/LOAG/Order.hs"#-}+                             {-# LINE 3628 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule369 #-}    {-# LINE 141 "src-ag/LOAG/Order.ag" #-}    rule369 = \ _initial _vnums ->                         {-# LINE 141 "src-ag/LOAG/Order.ag" #-}                         Map.fromList $ (_initial     + length _vnums, NoneVis)                                      : [(v, OneVis v) | v <- _vnums ]-                        {-# LINE 3634 "dist/build/LOAG/Order.hs"#-}+                        {-# LINE 3635 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule370 #-}    {-# LINE 143 "src-ag/LOAG/Order.ag" #-}    rule370 = \ _initial _vnums ->                         {-# LINE 143 "src-ag/LOAG/Order.ag" #-}                         Map.fromList $ (_initial    , NoneVis)                                      : [(v+1, OneVis v) | v <- _vnums ]-                        {-# LINE 3641 "dist/build/LOAG/Order.hs"#-}+                        {-# LINE 3642 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule371 #-}    {-# LINE 145 "src-ag/LOAG/Order.ag" #-}    rule371 = \ _initial _mysegments ->@@ -3645,7 +3646,7 @@                         let op vnr (MySegment visnr ins syns _ _) =                               IMap.fromList $ zip syns (repeat vnr)                          in IMap.unions $ zipWith op [_initial    ..] _mysegments-                        {-# LINE 3649 "dist/build/LOAG/Order.hs"#-}+                        {-# LINE 3650 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule372 #-}    {-# LINE 148 "src-ag/LOAG/Order.ag" #-}    rule372 = \ _classContexts _hoInfo _initial _initialVisit _nextVis _prevVis ((_prodsIeprods) :: EProductions) _recursive nt_ params_ ->@@ -3661,14 +3662,14 @@                           _prodsIeprods                           _recursive                           _hoInfo     ]-                       {-# LINE 3665 "dist/build/LOAG/Order.hs"#-}+                       {-# LINE 3666 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule373 #-}    {-# LINE 322 "src-ag/LOAG/Order.ag" #-}    rule373 = \ ((_lhsIsched) :: InterfaceRes) nt_ ->                          {-# LINE 322 "src-ag/LOAG/Order.ag" #-}                          findWithErr _lhsIsched "could not const. interfaces"                               (getName nt_)-                         {-# LINE 3672 "dist/build/LOAG/Order.hs"#-}+                         {-# LINE 3673 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule374 #-}    {-# LINE 324 "src-ag/LOAG/Order.ag" #-}    rule374 = \ _assigned ((_lhsIsched) :: InterfaceRes) ->@@ -3677,7 +3678,7 @@                           then 0                           else let mx = fst $ IMap.findMax _assigned     in                                 if even mx then mx else mx + 1-                         {-# LINE 3681 "dist/build/LOAG/Order.hs"#-}+                         {-# LINE 3682 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule375 #-}    {-# LINE 329 "src-ag/LOAG/Order.ag" #-}    rule375 = \ _assigned _mx ->@@ -3687,7 +3688,7 @@                           (maybe [] id $ IMap.lookup (i-1) _assigned    )                               Nothing Nothing)                    [_mx    ,_mx    -2 .. 2]-              {-# LINE 3691 "dist/build/LOAG/Order.hs"#-}+              {-# LINE 3692 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule376 #-}    {-# LINE 335 "src-ag/LOAG/Order.ag" #-}    rule376 = \ ((_lhsInmp) :: NMP) _mysegments ->@@ -3696,7 +3697,7 @@                       CSegment (Map.unions $ map (vertexToAttr _lhsInmp) is)                                (Map.unions $ map (vertexToAttr _lhsInmp) ss))                   _mysegments-              {-# LINE 3700 "dist/build/LOAG/Order.hs"#-}+              {-# LINE 3701 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule377 #-}    rule377 = \ ((_prodsIads) :: [Edge]) ->      _prodsIads@@ -4556,7 +4557,7 @@                 let isLocal = (field_ == _LOC || field_ == _INST)                  in [(getName field_, (getName attr_, dlhs field_),                       isLocal)] ++ _patIafs-                {-# LINE 4560 "dist/build/LOAG/Order.hs"#-}+                {-# LINE 4561 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule552 #-}    rule552 = \ ((_patIcopy) :: Pattern) attr_ field_ ->      Alias field_ attr_ _patIcopy@@ -4891,31 +4892,31 @@    rule576 = \ ((_lhsIaroundMap) :: Map ConstructorIdent (Map Identifier [Expression])) con_ ->                                                  {-# LINE 89 "src-ag/ExecutionPlanCommon.ag" #-}                                                  Map.findWithDefault Map.empty con_ _lhsIaroundMap-                                                 {-# LINE 4895 "dist/build/LOAG/Order.hs"#-}+                                                 {-# LINE 4896 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule577 #-}    {-# LINE 114 "src-ag/ExecutionPlanCommon.ag" #-}    rule577 = \ ((_lhsImergeMap) :: Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression))) con_ ->                                                 {-# LINE 114 "src-ag/ExecutionPlanCommon.ag" #-}                                                 Map.findWithDefault Map.empty con_ _lhsImergeMap-                                                {-# LINE 4901 "dist/build/LOAG/Order.hs"#-}+                                                {-# LINE 4902 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule578 #-}    {-# LINE 120 "src-ag/ExecutionPlanCommon.ag" #-}    rule578 = \ _mergeMap ->                          {-# LINE 120 "src-ag/ExecutionPlanCommon.ag" #-}                          Set.unions [ Set.fromList ms | (_,ms,_) <- Map.elems _mergeMap     ]-                         {-# LINE 4907 "dist/build/LOAG/Order.hs"#-}+                         {-# LINE 4908 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule579 #-}    {-# LINE 160 "src-ag/ExecutionPlanCommon.ag" #-}    rule579 = \ ((_typeSigsIlocalSigMap) :: Map Identifier Type) con_ ->                                                    {-# LINE 160 "src-ag/ExecutionPlanCommon.ag" #-}                                                    Map.singleton con_ _typeSigsIlocalSigMap-                                                   {-# LINE 4913 "dist/build/LOAG/Order.hs"#-}+                                                   {-# LINE 4914 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule580 #-}    {-# LINE 115 "src-ag/LOAG/Prepare.ag" #-}    rule580 = \ ((_lhsIdty) :: MyType) con_ ->                {-# LINE 115 "src-ag/LOAG/Prepare.ag" #-}                (_lhsIdty,getName con_)-               {-# LINE 4919 "dist/build/LOAG/Order.hs"#-}+               {-# LINE 4920 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule581 #-}    {-# LINE 117 "src-ag/LOAG/Prepare.ag" #-}    rule581 = \ ((_childrenIpmpr) :: PMP_R) ((_lhsIaugM) :: Map.Map Identifier (Set.Set Dependency)) _pll con_ ->@@ -4923,37 +4924,37 @@           case Map.lookup con_ _lhsIaugM of            Nothing -> []            Just a  -> Set.toList $ Set.map (depToEdge _childrenIpmpr _pll    ) a-          {-# LINE 4927 "dist/build/LOAG/Order.hs"#-}+          {-# LINE 4928 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule582 #-}    {-# LINE 120 "src-ag/LOAG/Prepare.ag" #-}    rule582 = \ ((_lhsIdty) :: MyType) ->                      {-# LINE 120 "src-ag/LOAG/Prepare.ag" #-}                      _lhsIdty-                     {-# LINE 4933 "dist/build/LOAG/Order.hs"#-}+                     {-# LINE 4934 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule583 #-}    {-# LINE 214 "src-ag/LOAG/Prepare.ag" #-}    rule583 = \ ((_lhsIdty) :: MyType) con_ ->                   {-# LINE 214 "src-ag/LOAG/Prepare.ag" #-}                   (_lhsIdty,getName con_)-                  {-# LINE 4939 "dist/build/LOAG/Order.hs"#-}+                  {-# LINE 4940 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule584 #-}    {-# LINE 215 "src-ag/LOAG/Prepare.ag" #-}    rule584 = \ _pll ->                   {-# LINE 215 "src-ag/LOAG/Prepare.ag" #-}                   _pll-                  {-# LINE 4945 "dist/build/LOAG/Order.hs"#-}+                  {-# LINE 4946 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule585 #-}    {-# LINE 216 "src-ag/LOAG/Prepare.ag" #-}    rule585 = \ ((_childrenIpts) :: Set.Set FLabel) ->                   {-# LINE 216 "src-ag/LOAG/Prepare.ag" #-}                   _childrenIpts-                  {-# LINE 4951 "dist/build/LOAG/Order.hs"#-}+                  {-# LINE 4952 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule586 #-}    {-# LINE 217 "src-ag/LOAG/Prepare.ag" #-}    rule586 = \ ((_childrenIfieldMap) :: FMap) _pll ->                   {-# LINE 217 "src-ag/LOAG/Prepare.ag" #-}                   Map.singleton _pll $ Map.keys _childrenIfieldMap-                  {-# LINE 4957 "dist/build/LOAG/Order.hs"#-}+                  {-# LINE 4958 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule587 #-}    {-# LINE 89 "src-ag/LOAG/Order.ag" #-}    rule587 = \ ((_lhsIdty) :: MyType) ((_lhsIpmpf) :: PMP) ((_lhsIres_ads) :: [Edge]) con_ ->@@ -4964,19 +4965,19 @@               | otherwise                   = ds         in Map.singleton con_ $ foldr op Set.empty _lhsIres_ads-        {-# LINE 4968 "dist/build/LOAG/Order.hs"#-}+        {-# LINE 4969 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule588 #-}    {-# LINE 167 "src-ag/LOAG/Order.ag" #-}    rule588 = \ ((_rulesIruleMap) :: Map.Map MyOccurrence Identifier) ->                           {-# LINE 167 "src-ag/LOAG/Order.ag" #-}                           _rulesIruleMap-                          {-# LINE 4974 "dist/build/LOAG/Order.hs"#-}+                          {-# LINE 4975 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule589 #-}    {-# LINE 168 "src-ag/LOAG/Order.ag" #-}    rule589 = \  (_ :: ()) ->                           {-# LINE 168 "src-ag/LOAG/Order.ag" #-}                           (Set.empty, Set.empty, Set.empty, Set.empty)-                          {-# LINE 4980 "dist/build/LOAG/Order.hs"#-}+                          {-# LINE 4981 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule590 #-}    {-# LINE 169 "src-ag/LOAG/Order.ag" #-}    rule590 = \ ((_childrenIself) :: Children) ->@@ -4985,7 +4986,7 @@                               | kind == ChildAttr = Nothing                               | otherwise = Just $ ChildIntro nm                           in catMaybes $ map intro _childrenIself-                        {-# LINE 4989 "dist/build/LOAG/Order.hs"#-}+                        {-# LINE 4990 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule591 #-}    {-# LINE 174 "src-ag/LOAG/Order.ag" #-}    rule591 = \ ((_childrenIechilds) :: EChildren) _intros ((_rulesIerules) :: ERules) ((_segsIevisits) :: Visits) con_ constraints_ params_ ->@@ -5002,7 +5003,7 @@                           _rulesIerules                           _childrenIechilds                           visits ]-              {-# LINE 5006 "dist/build/LOAG/Order.hs"#-}+              {-# LINE 5007 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule592 #-}    {-# LINE 346 "src-ag/LOAG/Order.ag" #-}    rule592 = \ ((_lhsImysegments) :: MySegments) ((_lhsInmp) :: NMP) ((_lhsIpmprf) :: PMP_R) _ps ->@@ -5016,7 +5017,7 @@                                       handAllOut (_ps    ,"lhs") $                                           map (_lhsInmp Map.!) syns)                            ) _lhsImysegments-              {-# LINE 5020 "dist/build/LOAG/Order.hs"#-}+              {-# LINE 5021 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule593 #-}    rule593 = \ ((_childrenIap) :: A_P) ->      _childrenIap@@ -5336,13 +5337,13 @@    rule649 = \ ((_lhsIvisitnum) :: Int) ->                           {-# LINE 192 "src-ag/LOAG/Order.ag" #-}                           _lhsIvisitnum-                          {-# LINE 5340 "dist/build/LOAG/Order.hs"#-}+                          {-# LINE 5341 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule650 #-}    {-# LINE 193 "src-ag/LOAG/Order.ag" #-}    rule650 = \ ((_hdIvisitnum) :: Int) ->                           {-# LINE 193 "src-ag/LOAG/Order.ag" #-}                           _hdIvisitnum-                          {-# LINE 5346 "dist/build/LOAG/Order.hs"#-}+                          {-# LINE 5347 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule651 #-}    rule651 = \ ((_hdIads) :: [Edge]) ((_tlIads) :: [Edge]) ->      ((++) _hdIads _tlIads)@@ -5784,31 +5785,31 @@                               explicit_                               pure_                               mbError_-                        {-# LINE 5788 "dist/build/LOAG/Order.hs"#-}+                        {-# LINE 5789 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule752 #-}    {-# LINE 12 "src-ag/ExecutionPlanPre.ag" #-}    rule752 = \ ((_lhsIrulenumber) :: Int) ->                              {-# LINE 12 "src-ag/ExecutionPlanPre.ag" #-}                              _lhsIrulenumber + 1-                             {-# LINE 5794 "dist/build/LOAG/Order.hs"#-}+                             {-# LINE 5795 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule753 #-}    {-# LINE 13 "src-ag/ExecutionPlanPre.ag" #-}    rule753 = \ ((_lhsIrulenumber) :: Int) mbName_ ->                              {-# LINE 13 "src-ag/ExecutionPlanPre.ag" #-}                              maybe (identifier $ "rule" ++ show _lhsIrulenumber) id mbName_-                             {-# LINE 5800 "dist/build/LOAG/Order.hs"#-}+                             {-# LINE 5801 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule754 #-}    {-# LINE 230 "src-ag/LOAG/Prepare.ag" #-}    rule754 = \ ((_rhsIused) :: Set.Set MyOccurrence) ->                        {-# LINE 230 "src-ag/LOAG/Prepare.ag" #-}                        Set.filter (\(MyOccurrence (_,f) _) -> f == "loc") _rhsIused-                       {-# LINE 5806 "dist/build/LOAG/Order.hs"#-}+                       {-# LINE 5807 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule755 #-}    {-# LINE 231 "src-ag/LOAG/Prepare.ag" #-}    rule755 = \ _usedLocals ->                        {-# LINE 231 "src-ag/LOAG/Prepare.ag" #-}                        not $ Set.null _usedLocals-                       {-# LINE 5812 "dist/build/LOAG/Order.hs"#-}+                       {-# LINE 5813 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule756 #-}    {-# LINE 233 "src-ag/LOAG/Prepare.ag" #-}    rule756 = \ ((_lhsIlfpf) :: SF_P) ((_lhsIpll) :: PLabel) ((_patternIafs) :: [(FLabel, ALabel, Bool)]) ((_rhsIused) :: Set.Set MyOccurrence) _rulename _usedLocals _usesLocals ->@@ -5832,7 +5833,7 @@                                   (Set.singleton att) m) lr _rhsIused)                   else (sfpins,rm,l,lr))                           (Map.empty,Map.empty,Map.empty,Map.empty) _patternIafs-          {-# LINE 5836 "dist/build/LOAG/Order.hs"#-}+          {-# LINE 5837 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule757 #-}    rule757 = \ ((_rhsIused) :: Set.Set MyOccurrence) ->      _rhsIused@@ -6158,7 +6159,7 @@    rule795 = \ name_ tp_ ->                                                    {-# LINE 161 "src-ag/ExecutionPlanCommon.ag" #-}                                                    Map.singleton name_ tp_-                                                   {-# LINE 6162 "dist/build/LOAG/Order.hs"#-}+                                                   {-# LINE 6163 "dist/build/LOAG/Order.hs"#-}    {-# INLINE rule796 #-}    rule796 = \ name_ tp_ ->      TypeSig name_ tp_
src/LOAG/Chordal.hs view
@@ -164,7 +164,7 @@                     ruleOut c1 c2 c3                     return [(t1,(t2,c3))]           [c3] -> ruleOut c1 c2 c3 >> return []-          _   -> error "multiple edges between two nodes" +          _   -> error "multiple edges between two nodes"       Nothing -> error "pointer outside of graph"  where          ruleOut ea eb ab= do addClause sat [ea, ab, varnot eb]@@ -203,7 +203,7 @@                     ruleOut c1 c2 (Any p)                     return [(t1,(t2,(Any p)))]           [c3] -> ruleOut c1 c2 c3 >> return [] -          _   -> error "multiple edges between two nodes" +          _   -> error "multiple edges between two nodes"       Nothing -> error "pointer outside of graph"  where  ruleOut ea eb ab= addClauses sat [[ea, ab, neg eb],[neg ea,neg ab,eb]]  noNtCycles :: Sat -> [Nt] -> (String -> IO ()) -> IO VarMap @@ -218,6 +218,9 @@             vars <- satValues sat             putStrLn ("nt : " ++ tid ++ " ... " ++                          show vars ++ " ...")+            when (not $ S.null $ S.fromList dpf `S.intersection`+                     S.fromList (map (\(a,b) -> (b,a)) dpt)) $+               error "Type 2 cycle of length 2"             ass <- sequence $                     [ return ((i,s),VarTrue) | ((i,s)) <- dpf ]++                     [ return ((i,s),VarFalse)| ((s,i)) <- dpt ] 
uuagc.cabal view
@@ -1,7 +1,7 @@ cabal-version: >= 1.8 build-type: Custom name: uuagc-version: 0.9.52+version: 0.9.52.1 license: BSD3 license-file: LICENSE maintainer: Jeroen Bransen <J.Bransen@uu.nl>@@ -17,6 +17,9 @@ extra-source-files: README extra-source-files: uuagc_options extra-source-files: src-ag/DistChildAttr.ag+extra-source-files: src-ag/ExecutionPlanCommon.ag+extra-source-files: src-ag/ExecutionPlanPre.ag+extra-source-files: src-ag/LOAG/Prepare.ag  -- This flag will be set by Setup.hs, use -- cabal configure --ghc-options="-DEXTERNAL_UUAGC"@@ -35,7 +38,7 @@    build-depends: uuagc-cabal >= 1.0.2.0    build-depends: base >= 4, base < 5    -- Self dependency, depend on library below-   build-depends: uuagc == 0.9.52+   build-depends: uuagc == 0.9.52.1    main-is: Main.hs    hs-source-dirs: src-main