-- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.a) module UHC.Light.Compiler.HS.ModImpExp(Inh_AGItf (..), Syn_AGItf (..), sem_AGItf, wrap_AGItf) where import UHC.Light.Compiler.Base.HsName.Builtin import UHC.Light.Compiler.Base.Common import UHC.Light.Compiler.Opts import UHC.Light.Compiler.HS import UHC.Light.Compiler.Gam.Full import UHC.Light.Compiler.NameAspect import qualified Data.Set as Set import qualified Data.Map as Map import Data.Maybe import UHC.Light.Compiler.Base.UnderDev import qualified UHC.Util.Rel as Rel import UHC.Light.Compiler.Module.ImportExport import UHC.Light.Compiler.Base.Target import qualified UHC.Light.Compiler.Base.Pragma as Pragma mkInstDefsRel :: Bool -> HsName -> Maybe HsName -> IdOcc -> IdOcc -> (ModEntRel,ModEntRel) mkInstDefsRel useimplicitly instancename maybeinstancename idOccDef idOccDefVal = ( (if useimplicitly then i else Rel.empty) `Rel.union` maybe (Rel.empty) (const v) maybeinstancename , v ) where v = Rel.singleton instancename (ModEnt IdOcc_Val idOccDefVal Set.empty emptyRange) i = Rel.singleton instancename (ModEnt IdOcc_Inst idOccDef Set.empty emptyRange) deriving instance Typeable Syn_AGItf -- AGItf ------------------------------------------------------- {- visit 0: inherited attributes: gUniq : UID moduleNm : HsName opts : EHCOpts synthesized attributes: fileHeaderPragmas : Set.Set Pragma.Pragma mainValExists : Bool mod : Mod modImpNmS : Set.Set HsName realModuleNm : HsName alternatives: alternative AGItf: child module : Module visit 0: local nmLev : _ local topInstanceNmL : _ -} -- cata sem_AGItf :: AGItf -> T_AGItf sem_AGItf (AGItf_AGItf _module) = (sem_AGItf_AGItf (sem_Module _module)) -- semantic domain type T_AGItf = UID -> HsName -> EHCOpts -> ( (Set.Set Pragma.Pragma),Bool,Mod,(Set.Set HsName),HsName) data Inh_AGItf = Inh_AGItf {gUniq_Inh_AGItf :: !(UID),moduleNm_Inh_AGItf :: !(HsName),opts_Inh_AGItf :: !(EHCOpts)} data Syn_AGItf = Syn_AGItf {fileHeaderPragmas_Syn_AGItf :: !((Set.Set Pragma.Pragma)),mainValExists_Syn_AGItf :: !(Bool),mod_Syn_AGItf :: !(Mod),modImpNmS_Syn_AGItf :: !((Set.Set HsName)),realModuleNm_Syn_AGItf :: !(HsName)} wrap_AGItf :: T_AGItf -> Inh_AGItf -> Syn_AGItf wrap_AGItf sem (Inh_AGItf _lhsIgUniq _lhsImoduleNm _lhsIopts) = (let ( _lhsOfileHeaderPragmas,_lhsOmainValExists,_lhsOmod,_lhsOmodImpNmS,_lhsOrealModuleNm) | True = sem _lhsIgUniq _lhsImoduleNm _lhsIopts in (Syn_AGItf _lhsOfileHeaderPragmas _lhsOmainValExists _lhsOmod _lhsOmodImpNmS _lhsOrealModuleNm)) sem_AGItf_AGItf :: T_Module -> T_AGItf sem_AGItf_AGItf module_ = (\ _lhsIgUniq _lhsImoduleNm _lhsIopts -> (let _lhsOfileHeaderPragmas :: (Set.Set Pragma.Pragma) _lhsOmainValExists :: Bool _lhsOmod :: Mod _lhsOmodImpNmS :: (Set.Set HsName) _lhsOrealModuleNm :: HsName _moduleOgUniq :: UID _moduleOmoduleNm :: HsName _moduleOnmLev :: NmLev _moduleOopts :: EHCOpts _moduleOtopInstanceNmL :: ([HsName]) _moduleIfileHeaderPragmas :: (Set.Set Pragma.Pragma) _moduleIgUniq :: UID _moduleImainValExists :: Bool _moduleImod :: Mod _moduleImodImpNmS :: (Set.Set HsName) _moduleIrealModuleNm :: HsName _moduleItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 13, column 9) _nmLev = nmLevModule -- "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 58, column 9) _topInstanceNmL = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 2, column 43) _lhsOfileHeaderPragmas = _moduleIfileHeaderPragmas -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _moduleImainValExists -- copy rule (up) _lhsOmod = _moduleImod -- copy rule (up) _lhsOmodImpNmS = _moduleImodImpNmS -- copy rule (up) _lhsOrealModuleNm = _moduleIrealModuleNm -- copy rule (down) _moduleOgUniq = _lhsIgUniq -- copy rule (down) _moduleOmoduleNm = _lhsImoduleNm -- copy rule (from local) _moduleOnmLev = _nmLev -- copy rule (down) _moduleOopts = _lhsIopts -- copy rule (from local) _moduleOtopInstanceNmL = _topInstanceNmL ( _moduleIfileHeaderPragmas,_moduleIgUniq,_moduleImainValExists,_moduleImod,_moduleImodImpNmS,_moduleIrealModuleNm,_moduleItopInstanceNmL) | True = module_ _moduleOgUniq _moduleOmoduleNm _moduleOnmLev _moduleOopts _moduleOtopInstanceNmL in ( _lhsOfileHeaderPragmas,_lhsOmainValExists,_lhsOmod,_lhsOmodImpNmS,_lhsOrealModuleNm))) -- Alternative ------------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Alternative: child range : {Range} child pattern : Pattern child righthandside : RightHandSide visit 0: local nmLev : _ alternative Empty: child range : {Range} -} -- cata sem_Alternative :: Alternative -> T_Alternative sem_Alternative (Alternative_Alternative _range _pattern _righthandside) = (sem_Alternative_Alternative _range (sem_Pattern _pattern) (sem_RightHandSide _righthandside)) sem_Alternative (Alternative_Empty _range) = (sem_Alternative_Empty _range) -- semantic domain type T_Alternative = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([HsName])) sem_Alternative_Alternative :: Range -> T_Pattern -> T_RightHandSide -> T_Alternative sem_Alternative_Alternative range_ pattern_ righthandside_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _patternOgUniq :: UID _patternOmoduleNm :: HsName _patternOnmLev :: NmLev _patternOtopInstanceNmL :: ([HsName]) _righthandsideOgUniq :: UID _righthandsideOmoduleNm :: HsName _righthandsideOnmLev :: NmLev _righthandsideOopts :: EHCOpts _righthandsideOtopInstanceNmL :: ([HsName]) _patternIgUniq :: UID _patternIidOccDefs :: ([IdOcc]) _patternImainValExists :: Bool _patternImbTopRefname :: (Maybe HsName) _patternItopInstanceNmL :: ([HsName]) _righthandsideIgUniq :: UID _righthandsideItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 73, column 9) _nmLev = _lhsInmLev + 1 -- copy rule (up) _lhsOgUniq = _righthandsideIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _righthandsideItopInstanceNmL -- copy rule (down) _patternOgUniq = _lhsIgUniq -- copy rule (down) _patternOmoduleNm = _lhsImoduleNm -- copy rule (from local) _patternOnmLev = _nmLev -- copy rule (down) _patternOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _righthandsideOgUniq = _patternIgUniq -- copy rule (down) _righthandsideOmoduleNm = _lhsImoduleNm -- copy rule (from local) _righthandsideOnmLev = _nmLev -- copy rule (down) _righthandsideOopts = _lhsIopts -- copy rule (chain) _righthandsideOtopInstanceNmL = _patternItopInstanceNmL ( _patternIgUniq,_patternIidOccDefs,_patternImainValExists,_patternImbTopRefname,_patternItopInstanceNmL) | True = pattern_ _patternOgUniq _patternOmoduleNm _patternOnmLev _patternOtopInstanceNmL ( _righthandsideIgUniq,_righthandsideItopInstanceNmL) | True = righthandside_ _righthandsideOgUniq _righthandsideOmoduleNm _righthandsideOnmLev _righthandsideOopts _righthandsideOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_Alternative_Empty :: Range -> T_Alternative sem_Alternative_Empty range_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- Alternatives ------------------------------------------------ {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Cons: child hd : Alternative child tl : Alternatives alternative Nil: -} -- cata sem_Alternatives :: Alternatives -> T_Alternatives sem_Alternatives list = (Prelude.foldr sem_Alternatives_Cons sem_Alternatives_Nil (Prelude.map sem_Alternative list)) -- semantic domain type T_Alternatives = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([HsName])) sem_Alternatives_Cons :: T_Alternative -> T_Alternatives -> T_Alternatives sem_Alternatives_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOopts :: EHCOpts _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOopts :: EHCOpts _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOopts = _lhsIopts -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (down) _tlOopts = _lhsIopts -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOopts _hdOtopInstanceNmL ( _tlIgUniq,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOopts _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_Alternatives_Nil :: T_Alternatives sem_Alternatives_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- Body -------------------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: extraModImpL : [ModImp] mainValExists : Bool modDefsRel : ModEntRel modHideDefsRel : ModEntRel modImpL : [ModImp] alternatives: alternative Body: child range : {Range} child importdeclarations : ImportDeclarations child declarations : Declarations visit 0: local refmainname : _ local idOccDefMain : _ local extraModImpL : _ -} -- cata sem_Body :: Body -> T_Body sem_Body (Body_Body _range _importdeclarations _declarations) = (sem_Body_Body _range (sem_ImportDeclarations _importdeclarations) (sem_Declarations _declarations)) -- semantic domain type T_Body = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( ([ModImp]),UID,Bool,ModEntRel,ModEntRel,([ModImp]),([HsName])) sem_Body_Body :: Range -> T_ImportDeclarations -> T_Declarations -> T_Body sem_Body_Body range_ importdeclarations_ declarations_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmainValExists :: Bool _lhsOmodDefsRel :: ModEntRel _lhsOmodHideDefsRel :: ModEntRel _lhsOmodImpL :: ([ModImp]) _lhsOextraModImpL :: ([ModImp]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _importdeclarationsOgUniq :: UID _importdeclarationsOmoduleNm :: HsName _importdeclarationsOnmLev :: NmLev _importdeclarationsOopts :: EHCOpts _importdeclarationsOtopInstanceNmL :: ([HsName]) _declarationsOgUniq :: UID _declarationsOmoduleNm :: HsName _declarationsOnmLev :: NmLev _declarationsOopts :: EHCOpts _declarationsOtopInstanceNmL :: ([HsName]) _importdeclarationsIgUniq :: UID _importdeclarationsImodImpL :: ([ModImp]) _importdeclarationsItopInstanceNmL :: ([HsName]) _declarationsIgUniq :: UID _declarationsIgathPragmas :: (Set.Set Pragma.Pragma) _declarationsIidOccDefs :: ([IdOcc]) _declarationsImainValExists :: Bool _declarationsImodDefsRel :: ModEntRel _declarationsImodHideDefsRel :: ModEntRel _declarationsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 8, column 9) _refmainname = hsnSetLevQual _lhsInmLev _lhsImoduleNm hsnMain -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 186, column 9) _idOccDefMain = IdOcc hsnMain IdOcc_Val -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 278, column 9) _extraModImpL = if ehcOptOverloadedStrings _lhsIopts then [ModImp True hsnModDataString hsnModDataString False [ModEntSpec (hsnQualified hsnDataStringFromString) range_ Nothing] range_] else [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _declarationsImainValExists -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 115, column 26) _lhsOmodDefsRel = _declarationsImodDefsRel -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = _declarationsImodHideDefsRel -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 35, column 46) _lhsOmodImpL = _importdeclarationsImodImpL -- copy rule (from local) _lhsOextraModImpL = _extraModImpL -- copy rule (up) _lhsOgUniq = _declarationsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _declarationsItopInstanceNmL -- copy rule (down) _importdeclarationsOgUniq = _lhsIgUniq -- copy rule (down) _importdeclarationsOmoduleNm = _lhsImoduleNm -- copy rule (down) _importdeclarationsOnmLev = _lhsInmLev -- copy rule (down) _importdeclarationsOopts = _lhsIopts -- copy rule (down) _importdeclarationsOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _declarationsOgUniq = _importdeclarationsIgUniq -- copy rule (down) _declarationsOmoduleNm = _lhsImoduleNm -- copy rule (down) _declarationsOnmLev = _lhsInmLev -- copy rule (down) _declarationsOopts = _lhsIopts -- copy rule (chain) _declarationsOtopInstanceNmL = _importdeclarationsItopInstanceNmL ( _importdeclarationsIgUniq,_importdeclarationsImodImpL,_importdeclarationsItopInstanceNmL) | True = importdeclarations_ _importdeclarationsOgUniq _importdeclarationsOmoduleNm _importdeclarationsOnmLev _importdeclarationsOopts _importdeclarationsOtopInstanceNmL ( _declarationsIgUniq,_declarationsIgathPragmas,_declarationsIidOccDefs,_declarationsImainValExists,_declarationsImodDefsRel,_declarationsImodHideDefsRel,_declarationsItopInstanceNmL) | True = declarations_ _declarationsOgUniq _declarationsOmoduleNm _declarationsOnmLev _declarationsOopts _declarationsOtopInstanceNmL in ( _lhsOextraModImpL,_lhsOgUniq,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOmodImpL,_lhsOtopInstanceNmL))) -- Constructor ------------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: conAndFldrefnames : AssocL Name Names conrefnames : Names alternatives: alternative Constructor: child range : {Range} child constructor : {Name} child types : Types visit 0: local conrefname : _ local nmLev : _ alternative Infix: child range : {Range} child leftType : Type child constructorOperator : {Name} child rightType : Type visit 0: local conrefname : _ local nmLev : _ alternative Record: child range : {Range} child constructor : {Name} child fieldDeclarations : FieldDeclarations visit 0: local conrefname : _ local conAndFldrefnames : _ alternative Contexted: child range : {Range} child context : ContextItems child constructor : Constructor alternative GADTFunction: child range : {Range} child constructor : {Name} child type : Type visit 0: local conrefname : _ local nmLev : _ -} -- cata sem_Constructor :: Constructor -> T_Constructor sem_Constructor (Constructor_Constructor _range _constructor _types) = (sem_Constructor_Constructor _range _constructor (sem_Types _types)) sem_Constructor (Constructor_Infix _range _leftType _constructorOperator _rightType) = (sem_Constructor_Infix _range (sem_Type _leftType) _constructorOperator (sem_Type _rightType)) sem_Constructor (Constructor_Record _range _constructor _fieldDeclarations) = (sem_Constructor_Record _range _constructor (sem_FieldDeclarations _fieldDeclarations)) sem_Constructor (Constructor_Contexted _range _context _constructor) = (sem_Constructor_Contexted _range (sem_ContextItems _context) (sem_Constructor _constructor)) sem_Constructor (Constructor_GADTFunction _range _constructor _type) = (sem_Constructor_GADTFunction _range _constructor (sem_Type _type)) -- semantic domain type T_Constructor = UID -> HsName -> NmLev -> ([HsName]) -> ( (AssocL Name Names),Names,UID,([HsName])) sem_Constructor_Constructor :: Range -> Name -> T_Types -> T_Constructor sem_Constructor_Constructor range_ constructor_ types_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconrefnames :: Names _lhsOconAndFldrefnames :: (AssocL Name Names) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _typesOgUniq :: UID _typesOnmLev :: NmLev _typesOtopInstanceNmL :: ([HsName]) _typesIgUniq :: UID _typesItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 64, column 9) _conrefname = hsnSetLevQual _lhsInmLev _lhsImoduleNm constructor_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 71, column 9) _lhsOconrefnames = [_conrefname] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 38, column 9) _nmLev = _lhsInmLev + 1 -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 79, column 45) _lhsOconAndFldrefnames = [] -- copy rule (up) _lhsOgUniq = _typesIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typesItopInstanceNmL -- copy rule (down) _typesOgUniq = _lhsIgUniq -- copy rule (from local) _typesOnmLev = _nmLev -- copy rule (down) _typesOtopInstanceNmL = _lhsItopInstanceNmL ( _typesIgUniq,_typesItopInstanceNmL) | True = types_ _typesOgUniq _typesOnmLev _typesOtopInstanceNmL in ( _lhsOconAndFldrefnames,_lhsOconrefnames,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Constructor_Infix :: Range -> T_Type -> Name -> T_Type -> T_Constructor sem_Constructor_Infix range_ leftType_ constructorOperator_ rightType_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconrefnames :: Names _lhsOconAndFldrefnames :: (AssocL Name Names) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _leftTypeOgUniq :: UID _leftTypeOnmLev :: NmLev _leftTypeOtopInstanceNmL :: ([HsName]) _rightTypeOgUniq :: UID _rightTypeOnmLev :: NmLev _rightTypeOtopInstanceNmL :: ([HsName]) _leftTypeIconNm :: Name _leftTypeIgUniq :: UID _leftTypeItopInstanceNmL :: ([HsName]) _rightTypeIconNm :: Name _rightTypeIgUniq :: UID _rightTypeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 66, column 9) _conrefname = hsnSetLevQual _lhsInmLev _lhsImoduleNm constructorOperator_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 73, column 9) _lhsOconrefnames = [_conrefname] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 38, column 9) _nmLev = _lhsInmLev + 1 -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 79, column 45) _lhsOconAndFldrefnames = [] -- copy rule (up) _lhsOgUniq = _rightTypeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _rightTypeItopInstanceNmL -- copy rule (down) _leftTypeOgUniq = _lhsIgUniq -- copy rule (from local) _leftTypeOnmLev = _nmLev -- copy rule (down) _leftTypeOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _rightTypeOgUniq = _leftTypeIgUniq -- copy rule (from local) _rightTypeOnmLev = _nmLev -- copy rule (chain) _rightTypeOtopInstanceNmL = _leftTypeItopInstanceNmL ( _leftTypeIconNm,_leftTypeIgUniq,_leftTypeItopInstanceNmL) | True = leftType_ _leftTypeOgUniq _leftTypeOnmLev _leftTypeOtopInstanceNmL ( _rightTypeIconNm,_rightTypeIgUniq,_rightTypeItopInstanceNmL) | True = rightType_ _rightTypeOgUniq _rightTypeOnmLev _rightTypeOtopInstanceNmL in ( _lhsOconAndFldrefnames,_lhsOconrefnames,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Constructor_Record :: Range -> Name -> T_FieldDeclarations -> T_Constructor sem_Constructor_Record range_ constructor_ fieldDeclarations_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconrefnames :: Names _lhsOconAndFldrefnames :: (AssocL Name Names) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _fieldDeclarationsOgUniq :: UID _fieldDeclarationsOmoduleNm :: HsName _fieldDeclarationsOnmLev :: NmLev _fieldDeclarationsOtopInstanceNmL :: ([HsName]) _fieldDeclarationsIfldrefnames :: Names _fieldDeclarationsIgUniq :: UID _fieldDeclarationsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 64, column 9) _conrefname = hsnSetLevQual _lhsInmLev _lhsImoduleNm constructor_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 76, column 9) _lhsOconrefnames = [_conrefname] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 87, column 9) _conAndFldrefnames = [(_conrefname,_fieldDeclarationsIfldrefnames)] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 79, column 45) _lhsOconAndFldrefnames = _conAndFldrefnames -- copy rule (up) _lhsOgUniq = _fieldDeclarationsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _fieldDeclarationsItopInstanceNmL -- copy rule (down) _fieldDeclarationsOgUniq = _lhsIgUniq -- copy rule (down) _fieldDeclarationsOmoduleNm = _lhsImoduleNm -- copy rule (down) _fieldDeclarationsOnmLev = _lhsInmLev -- copy rule (down) _fieldDeclarationsOtopInstanceNmL = _lhsItopInstanceNmL ( _fieldDeclarationsIfldrefnames,_fieldDeclarationsIgUniq,_fieldDeclarationsItopInstanceNmL) | True = fieldDeclarations_ _fieldDeclarationsOgUniq _fieldDeclarationsOmoduleNm _fieldDeclarationsOnmLev _fieldDeclarationsOtopInstanceNmL in ( _lhsOconAndFldrefnames,_lhsOconrefnames,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Constructor_Contexted :: Range -> T_ContextItems -> T_Constructor -> T_Constructor sem_Constructor_Contexted range_ context_ constructor_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconAndFldrefnames :: (AssocL Name Names) _lhsOconrefnames :: Names _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _contextOgUniq :: UID _contextOnmLev :: NmLev _contextOtopInstanceNmL :: ([HsName]) _constructorOgUniq :: UID _constructorOmoduleNm :: HsName _constructorOnmLev :: NmLev _constructorOtopInstanceNmL :: ([HsName]) _contextIgUniq :: UID _contextItopInstanceNmL :: ([HsName]) _constructorIconAndFldrefnames :: (AssocL Name Names) _constructorIconrefnames :: Names _constructorIgUniq :: UID _constructorItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 79, column 45) _lhsOconAndFldrefnames = _constructorIconAndFldrefnames -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 60, column 39) _lhsOconrefnames = _constructorIconrefnames -- copy rule (up) _lhsOgUniq = _constructorIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _constructorItopInstanceNmL -- copy rule (down) _contextOgUniq = _lhsIgUniq -- copy rule (down) _contextOnmLev = _lhsInmLev -- copy rule (down) _contextOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _constructorOgUniq = _contextIgUniq -- copy rule (down) _constructorOmoduleNm = _lhsImoduleNm -- copy rule (down) _constructorOnmLev = _lhsInmLev -- copy rule (chain) _constructorOtopInstanceNmL = _contextItopInstanceNmL ( _contextIgUniq,_contextItopInstanceNmL) | True = context_ _contextOgUniq _contextOnmLev _contextOtopInstanceNmL ( _constructorIconAndFldrefnames,_constructorIconrefnames,_constructorIgUniq,_constructorItopInstanceNmL) | True = constructor_ _constructorOgUniq _constructorOmoduleNm _constructorOnmLev _constructorOtopInstanceNmL in ( _lhsOconAndFldrefnames,_lhsOconrefnames,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Constructor_GADTFunction :: Range -> Name -> T_Type -> T_Constructor sem_Constructor_GADTFunction range_ constructor_ type_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconrefnames :: Names _lhsOconAndFldrefnames :: (AssocL Name Names) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 64, column 9) _conrefname = hsnSetLevQual _lhsInmLev _lhsImoduleNm constructor_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 71, column 9) _lhsOconrefnames = [_conrefname] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 38, column 9) _nmLev = _lhsInmLev + 1 -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 79, column 45) _lhsOconAndFldrefnames = [] -- copy rule (up) _lhsOgUniq = _typeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typeItopInstanceNmL -- copy rule (down) _typeOgUniq = _lhsIgUniq -- copy rule (from local) _typeOnmLev = _nmLev -- copy rule (down) _typeOtopInstanceNmL = _lhsItopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL in ( _lhsOconAndFldrefnames,_lhsOconrefnames,_lhsOgUniq,_lhsOtopInstanceNmL))) -- Constructors ------------------------------------------------ {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: conAndFldrefnames : AssocL Name Names conrefnames : Names alternatives: alternative Cons: child hd : Constructor child tl : Constructors alternative Nil: -} -- cata sem_Constructors :: Constructors -> T_Constructors sem_Constructors list = (Prelude.foldr sem_Constructors_Cons sem_Constructors_Nil (Prelude.map sem_Constructor list)) -- semantic domain type T_Constructors = UID -> HsName -> NmLev -> ([HsName]) -> ( (AssocL Name Names),Names,UID,([HsName])) sem_Constructors_Cons :: T_Constructor -> T_Constructors -> T_Constructors sem_Constructors_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconAndFldrefnames :: (AssocL Name Names) _lhsOconrefnames :: Names _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOtopInstanceNmL :: ([HsName]) _hdIconAndFldrefnames :: (AssocL Name Names) _hdIconrefnames :: Names _hdIgUniq :: UID _hdItopInstanceNmL :: ([HsName]) _tlIconAndFldrefnames :: (AssocL Name Names) _tlIconrefnames :: Names _tlIgUniq :: UID _tlItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 79, column 45) _lhsOconAndFldrefnames = _hdIconAndFldrefnames ++ _tlIconAndFldrefnames -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 60, column 39) _lhsOconrefnames = _hdIconrefnames ++ _tlIconrefnames -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIconAndFldrefnames,_hdIconrefnames,_hdIgUniq,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOtopInstanceNmL ( _tlIconAndFldrefnames,_tlIconrefnames,_tlIgUniq,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOtopInstanceNmL in ( _lhsOconAndFldrefnames,_lhsOconrefnames,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Constructors_Nil :: T_Constructors sem_Constructors_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconAndFldrefnames :: (AssocL Name Names) _lhsOconrefnames :: Names _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 79, column 45) _lhsOconAndFldrefnames = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 60, column 39) _lhsOconrefnames = [] -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOconAndFldrefnames,_lhsOconrefnames,_lhsOgUniq,_lhsOtopInstanceNmL))) -- ContextItem ------------------------------------------------- {- visit 0: inherited attribute: nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Class: child range : {Range} child name : {Name} child types : Types alternative Forall: child range : {Range} child typevariables : {Names} child context : ContextItem visit 0: local nmLev : _ alternative Arrow: child range : {Range} child argument : ContextItem child result : ContextItem alternative Implicits: child range : {Range} alternative NoImplicits: child range : {Range} alternative RowLacksLabel: child range : {Range} child rowvariable : {Name} child name : {Name} alternative Equal: child range : {Range} child type1 : Type child type2 : Type -} -- cata sem_ContextItem :: ContextItem -> T_ContextItem sem_ContextItem (ContextItem_Class _range _name _types) = (sem_ContextItem_Class _range _name (sem_Types _types)) sem_ContextItem (ContextItem_Forall _range _typevariables _context) = (sem_ContextItem_Forall _range _typevariables (sem_ContextItem _context)) sem_ContextItem (ContextItem_Arrow _range _argument _result) = (sem_ContextItem_Arrow _range (sem_ContextItem _argument) (sem_ContextItem _result)) sem_ContextItem (ContextItem_Implicits _range) = (sem_ContextItem_Implicits _range) sem_ContextItem (ContextItem_NoImplicits _range) = (sem_ContextItem_NoImplicits _range) sem_ContextItem (ContextItem_RowLacksLabel _range _rowvariable _name) = (sem_ContextItem_RowLacksLabel _range _rowvariable _name) sem_ContextItem (ContextItem_Equal _range _type1 _type2) = (sem_ContextItem_Equal _range (sem_Type _type1) (sem_Type _type2)) -- semantic domain type T_ContextItem = UID -> NmLev -> ([HsName]) -> ( UID,([HsName])) sem_ContextItem_Class :: Range -> Name -> T_Types -> T_ContextItem sem_ContextItem_Class range_ name_ types_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _typesOgUniq :: UID _typesOnmLev :: NmLev _typesOtopInstanceNmL :: ([HsName]) _typesIgUniq :: UID _typesItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _typesIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typesItopInstanceNmL -- copy rule (down) _typesOgUniq = _lhsIgUniq -- copy rule (down) _typesOnmLev = _lhsInmLev -- copy rule (down) _typesOtopInstanceNmL = _lhsItopInstanceNmL ( _typesIgUniq,_typesItopInstanceNmL) | True = types_ _typesOgUniq _typesOnmLev _typesOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_ContextItem_Forall :: Range -> Names -> T_ContextItem -> T_ContextItem sem_ContextItem_Forall range_ typevariables_ context_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _contextOgUniq :: UID _contextOnmLev :: NmLev _contextOtopInstanceNmL :: ([HsName]) _contextIgUniq :: UID _contextItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 46, column 9) _nmLev = _lhsInmLev + 1 -- copy rule (up) _lhsOgUniq = _contextIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _contextItopInstanceNmL -- copy rule (down) _contextOgUniq = _lhsIgUniq -- copy rule (from local) _contextOnmLev = _nmLev -- copy rule (down) _contextOtopInstanceNmL = _lhsItopInstanceNmL ( _contextIgUniq,_contextItopInstanceNmL) | True = context_ _contextOgUniq _contextOnmLev _contextOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_ContextItem_Arrow :: Range -> T_ContextItem -> T_ContextItem -> T_ContextItem sem_ContextItem_Arrow range_ argument_ result_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _argumentOgUniq :: UID _argumentOnmLev :: NmLev _argumentOtopInstanceNmL :: ([HsName]) _resultOgUniq :: UID _resultOnmLev :: NmLev _resultOtopInstanceNmL :: ([HsName]) _argumentIgUniq :: UID _argumentItopInstanceNmL :: ([HsName]) _resultIgUniq :: UID _resultItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _resultIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _resultItopInstanceNmL -- copy rule (down) _argumentOgUniq = _lhsIgUniq -- copy rule (down) _argumentOnmLev = _lhsInmLev -- copy rule (down) _argumentOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _resultOgUniq = _argumentIgUniq -- copy rule (down) _resultOnmLev = _lhsInmLev -- copy rule (chain) _resultOtopInstanceNmL = _argumentItopInstanceNmL ( _argumentIgUniq,_argumentItopInstanceNmL) | True = argument_ _argumentOgUniq _argumentOnmLev _argumentOtopInstanceNmL ( _resultIgUniq,_resultItopInstanceNmL) | True = result_ _resultOgUniq _resultOnmLev _resultOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_ContextItem_Implicits :: Range -> T_ContextItem sem_ContextItem_Implicits range_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_ContextItem_NoImplicits :: Range -> T_ContextItem sem_ContextItem_NoImplicits range_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_ContextItem_RowLacksLabel :: Range -> Name -> Name -> T_ContextItem sem_ContextItem_RowLacksLabel range_ rowvariable_ name_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_ContextItem_Equal :: Range -> T_Type -> T_Type -> T_ContextItem sem_ContextItem_Equal range_ type1_ type2_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _type1OgUniq :: UID _type1OnmLev :: NmLev _type1OtopInstanceNmL :: ([HsName]) _type2OgUniq :: UID _type2OnmLev :: NmLev _type2OtopInstanceNmL :: ([HsName]) _type1IconNm :: Name _type1IgUniq :: UID _type1ItopInstanceNmL :: ([HsName]) _type2IconNm :: Name _type2IgUniq :: UID _type2ItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _type2IgUniq -- copy rule (up) _lhsOtopInstanceNmL = _type2ItopInstanceNmL -- copy rule (down) _type1OgUniq = _lhsIgUniq -- copy rule (down) _type1OnmLev = _lhsInmLev -- copy rule (down) _type1OtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _type2OgUniq = _type1IgUniq -- copy rule (down) _type2OnmLev = _lhsInmLev -- copy rule (chain) _type2OtopInstanceNmL = _type1ItopInstanceNmL ( _type1IconNm,_type1IgUniq,_type1ItopInstanceNmL) | True = type1_ _type1OgUniq _type1OnmLev _type1OtopInstanceNmL ( _type2IconNm,_type2IgUniq,_type2ItopInstanceNmL) | True = type2_ _type2OgUniq _type2OnmLev _type2OtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- ContextItems ------------------------------------------------ {- visit 0: inherited attribute: nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Cons: child hd : ContextItem child tl : ContextItems alternative Nil: -} -- cata sem_ContextItems :: ContextItems -> T_ContextItems sem_ContextItems list = (Prelude.foldr sem_ContextItems_Cons sem_ContextItems_Nil (Prelude.map sem_ContextItem list)) -- semantic domain type T_ContextItems = UID -> NmLev -> ([HsName]) -> ( UID,([HsName])) sem_ContextItems_Cons :: T_ContextItem -> T_ContextItems -> T_ContextItems sem_ContextItems_Cons hd_ tl_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOnmLev :: NmLev _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOnmLev :: NmLev _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOnmLev _hdOtopInstanceNmL ( _tlIgUniq,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOnmLev _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_ContextItems_Nil :: T_ContextItems sem_ContextItems_Nil = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- ContextedExpression ----------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Contexted: child range : {Range} child expression : Expression child context : ContextItem -} -- cata sem_ContextedExpression :: ContextedExpression -> T_ContextedExpression sem_ContextedExpression (ContextedExpression_Contexted _range _expression _context) = (sem_ContextedExpression_Contexted _range (sem_Expression _expression) (sem_ContextItem _context)) -- semantic domain type T_ContextedExpression = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([HsName])) sem_ContextedExpression_Contexted :: Range -> T_Expression -> T_ContextItem -> T_ContextedExpression sem_ContextedExpression_Contexted range_ expression_ context_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _contextOgUniq :: UID _contextOnmLev :: NmLev _contextOtopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) _contextIgUniq :: UID _contextItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _contextIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _contextItopInstanceNmL -- copy rule (down) _expressionOgUniq = _lhsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionOnmLev = _lhsInmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (down) _expressionOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _contextOgUniq = _expressionIgUniq -- copy rule (down) _contextOnmLev = _lhsInmLev -- copy rule (chain) _contextOtopInstanceNmL = _expressionItopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL ( _contextIgUniq,_contextItopInstanceNmL) | True = context_ _contextOgUniq _contextOnmLev _contextOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- ContextedExpressions ---------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Cons: child hd : ContextedExpression child tl : ContextedExpressions alternative Nil: -} -- cata sem_ContextedExpressions :: ContextedExpressions -> T_ContextedExpressions sem_ContextedExpressions list = (Prelude.foldr sem_ContextedExpressions_Cons sem_ContextedExpressions_Nil (Prelude.map sem_ContextedExpression list)) -- semantic domain type T_ContextedExpressions = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([HsName])) sem_ContextedExpressions_Cons :: T_ContextedExpression -> T_ContextedExpressions -> T_ContextedExpressions sem_ContextedExpressions_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOopts :: EHCOpts _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOopts :: EHCOpts _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOopts = _lhsIopts -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (down) _tlOopts = _lhsIopts -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOopts _hdOtopInstanceNmL ( _tlIgUniq,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOopts _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_ContextedExpressions_Nil :: T_ContextedExpressions sem_ContextedExpressions_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- ContextedPattern -------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: idOccDefs : [IdOcc] alternatives: alternative Contexted: child range : {Range} child pattern : Pattern child context : ContextItem -} -- cata sem_ContextedPattern :: ContextedPattern -> T_ContextedPattern sem_ContextedPattern (ContextedPattern_Contexted _range _pattern _context) = (sem_ContextedPattern_Contexted _range (sem_Pattern _pattern) (sem_ContextItem _context)) -- semantic domain type T_ContextedPattern = UID -> HsName -> NmLev -> ([HsName]) -> ( UID,([IdOcc]),([HsName])) sem_ContextedPattern_Contexted :: Range -> T_Pattern -> T_ContextItem -> T_ContextedPattern sem_ContextedPattern_Contexted range_ pattern_ context_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _patternOgUniq :: UID _patternOmoduleNm :: HsName _patternOnmLev :: NmLev _patternOtopInstanceNmL :: ([HsName]) _contextOgUniq :: UID _contextOnmLev :: NmLev _contextOtopInstanceNmL :: ([HsName]) _patternIgUniq :: UID _patternIidOccDefs :: ([IdOcc]) _patternImainValExists :: Bool _patternImbTopRefname :: (Maybe HsName) _patternItopInstanceNmL :: ([HsName]) _contextIgUniq :: UID _contextItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _patternIidOccDefs -- copy rule (up) _lhsOgUniq = _contextIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _contextItopInstanceNmL -- copy rule (down) _patternOgUniq = _lhsIgUniq -- copy rule (down) _patternOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternOnmLev = _lhsInmLev -- copy rule (down) _patternOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _contextOgUniq = _patternIgUniq -- copy rule (down) _contextOnmLev = _lhsInmLev -- copy rule (chain) _contextOtopInstanceNmL = _patternItopInstanceNmL ( _patternIgUniq,_patternIidOccDefs,_patternImainValExists,_patternImbTopRefname,_patternItopInstanceNmL) | True = pattern_ _patternOgUniq _patternOmoduleNm _patternOnmLev _patternOtopInstanceNmL ( _contextIgUniq,_contextItopInstanceNmL) | True = context_ _contextOgUniq _contextOnmLev _contextOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL))) -- ContextedPatterns ------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: idOccDefs : [IdOcc] alternatives: alternative Cons: child hd : ContextedPattern child tl : ContextedPatterns alternative Nil: -} -- cata sem_ContextedPatterns :: ContextedPatterns -> T_ContextedPatterns sem_ContextedPatterns list = (Prelude.foldr sem_ContextedPatterns_Cons sem_ContextedPatterns_Nil (Prelude.map sem_ContextedPattern list)) -- semantic domain type T_ContextedPatterns = UID -> HsName -> NmLev -> ([HsName]) -> ( UID,([IdOcc]),([HsName])) sem_ContextedPatterns_Cons :: T_ContextedPattern -> T_ContextedPatterns -> T_ContextedPatterns sem_ContextedPatterns_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdIidOccDefs :: ([IdOcc]) _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlIidOccDefs :: ([IdOcc]) _tlItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _hdIidOccDefs ++ _tlIidOccDefs -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdIidOccDefs,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOtopInstanceNmL ( _tlIgUniq,_tlIidOccDefs,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL))) sem_ContextedPatterns_Nil :: T_ContextedPatterns sem_ContextedPatterns_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL))) -- Declaration ------------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: gathPragmas : Set.Set Pragma.Pragma idOccDefs : [IdOcc] mainValExists : Bool modDefsRel : ModEntRel modHideDefsRel : ModEntRel alternatives: alternative FunctionBindings: child range : {Range} child bindings : FunctionBindings visit 0: local idOccDefs : _ alternative PatternBinding: child range : {Range} child pattern : Pattern child righthandside : RightHandSide visit 0: local idOccDef : _ local idOccDefsPat : _ local idOccDefs : _ local lUniq : {UID} alternative TypeSignature: child range : {Range} child names : {Names} child type : Type visit 0: local refnames : _ local idOccDefs : _ local nmLev : _ alternative Fixity: child range : {Range} child fixity : {Fixity} child priority : {Maybe Int} child operators : {Names} visit 0: local oprefnames : _ alternative FusionDeclaration: child range : {Range} child fusename : {Name} visit 0: local idOccDef : _ local idOccDefs : _ local lUniq : {UID} alternative FusionConversion: child range : {Range} child absname : {Name} child conname : {Name} visit 0: local idOccDef : _ local idOccDefs : _ local lUniq : {UID} alternative Empty: child range : {Range} alternative Data: child range : {Range} child context : ContextItems child typelefthandside : TypeLeftHandSide child constructors : Constructors child derivings : Derivings visit 0: local modDefsRel : _ local modEntsSub : _ local typerefname : _ local idOccDef : _ local idOccDefsCon : _ local idOccDefsFld : _ local generMaxRemArity : _ local idOccDefsGener : _ local generArities : _ local idOccDefs : _ local nmLev : _ alternative Newtype: child range : {Range} child context : ContextItems child typelefthandside : TypeLeftHandSide child constructors : Constructor child derivings : Derivings visit 0: local modDefsRel : _ local modEntsSub : _ local typerefname : _ local idOccDef : _ local idOccDefsCon : _ local idOccDefsFld : _ local generMaxRemArity : _ local idOccDefsGener : _ local generArities : _ local idOccDefs : _ local nmLev : _ alternative GADT: child range : {Range} child context : ContextItems child typelefthandside : TypeLeftHandSide child constructors : Constructors child derivings : Derivings visit 0: local modDefsRel : _ local modEntsSub : _ local typerefname : _ local idOccDef : _ local idOccDefsCon : _ local idOccDefsFld : _ local generMaxRemArity : _ local idOccDefsGener : _ local generArities : _ local idOccDefs : _ local nmLev : _ alternative KindSignature: child range : {Range} child names : {Names} child kind : Kind visit 0: local refnames : _ local idOccDefs : _ local nmLev : _ alternative ForeignImport: child range : {Range} child callconvention : {FFIWay} child safety : {Maybe String} child importname : {Maybe String} child name : {Name} child type : Type visit 0: local refname : _ local idOccDef : _ local idOccDefs : _ alternative ForeignExport: child range : {Range} child callconvention : {FFIWay} child exportname : {Maybe String} child name : {Name} child type : Type visit 0: local exportrefname : _ local idOccDef : _ local idOccDefs : _ alternative Class: child range : {Range} child context : ContextItems child typelefthandside : TypeLeftHandSide child dependencies : FunctionalDependencies child where : MaybeDeclarations visit 0: local modDefsRel : _ local modHideDefsRel : _ local modEntsSub : _ local instancerefname : _ local classrefname : _ local idOccDef : _ local idOccDefVal : _ local idOccDefsSig : _ local idOccDefs : _ local instancename : _ local nmLev : _ local mbPrevInstancename : _ local generderivnames : _ local lUniq : {UID} alternative Instance: child range : {Range} child instVariant : {InstVariant} child maybeinstancename : {MaybeName} child useimplicitly : {Bool} child context : ContextItems child type : Type child where : MaybeDeclarations visit 0: local instancerefname : _ local idOccDef : _ local idOccDefVal : _ local idOccDefs : _ local instancename : _ local nmLev : _ local mbPrevInstancename : _ local lUniq : {UID} alternative InstanceUseImplicitly: child range : {Range} child expression : Expression child type : Type visit 0: local instancerefname : _ local idOccDef : _ local idOccDefVal : _ local idOccDefs : _ local instancename : _ local nmLev : _ local mbPrevInstancename : _ local lUniq : {UID} alternative Default: child range : {Range} child name : {MaybeName} child types : Types visit 0: local idOccDef : _ local idOccDefs : _ local defaultname : _ local nmLev : _ local lUniq : {UID} alternative Type: child range : {Range} child typelefthandside : TypeLeftHandSide child type : Type visit 0: local typerefname : _ local idOccDef : _ local idOccDefs : _ local nmLev : _ alternative Pragma: child range : {Range} child pragma : Pragma alternative Module: child range : {Range} child name : {MaybeName} child exports : MaybeExports -} -- cata sem_Declaration :: Declaration -> T_Declaration sem_Declaration (Declaration_FunctionBindings _range _bindings) = (sem_Declaration_FunctionBindings _range (sem_FunctionBindings _bindings)) sem_Declaration (Declaration_PatternBinding _range _pattern _righthandside) = (sem_Declaration_PatternBinding _range (sem_Pattern _pattern) (sem_RightHandSide _righthandside)) sem_Declaration (Declaration_TypeSignature _range _names _type) = (sem_Declaration_TypeSignature _range _names (sem_Type _type)) sem_Declaration (Declaration_Fixity _range _fixity _priority _operators) = (sem_Declaration_Fixity _range _fixity _priority _operators) sem_Declaration (Declaration_FusionDeclaration _range _fusename) = (sem_Declaration_FusionDeclaration _range _fusename) sem_Declaration (Declaration_FusionConversion _range _absname _conname) = (sem_Declaration_FusionConversion _range _absname _conname) sem_Declaration (Declaration_Empty _range) = (sem_Declaration_Empty _range) sem_Declaration (Declaration_Data _range _context _typelefthandside _constructors _derivings) = (sem_Declaration_Data _range (sem_ContextItems _context) (sem_TypeLeftHandSide _typelefthandside) (sem_Constructors _constructors) (sem_Derivings _derivings)) sem_Declaration (Declaration_Newtype _range _context _typelefthandside _constructors _derivings) = (sem_Declaration_Newtype _range (sem_ContextItems _context) (sem_TypeLeftHandSide _typelefthandside) (sem_Constructor _constructors) (sem_Derivings _derivings)) sem_Declaration (Declaration_GADT _range _context _typelefthandside _constructors _derivings) = (sem_Declaration_GADT _range (sem_ContextItems _context) (sem_TypeLeftHandSide _typelefthandside) (sem_Constructors _constructors) (sem_Derivings _derivings)) sem_Declaration (Declaration_KindSignature _range _names _kind) = (sem_Declaration_KindSignature _range _names (sem_Kind _kind)) sem_Declaration (Declaration_ForeignImport _range _callconvention _safety _importname _name _type) = (sem_Declaration_ForeignImport _range _callconvention _safety _importname _name (sem_Type _type)) sem_Declaration (Declaration_ForeignExport _range _callconvention _exportname _name _type) = (sem_Declaration_ForeignExport _range _callconvention _exportname _name (sem_Type _type)) sem_Declaration (Declaration_Class _range _context _typelefthandside _dependencies _where) = (sem_Declaration_Class _range (sem_ContextItems _context) (sem_TypeLeftHandSide _typelefthandside) (sem_FunctionalDependencies _dependencies) (sem_MaybeDeclarations _where)) sem_Declaration (Declaration_Instance _range _instVariant _maybeinstancename _useimplicitly _context _type _where) = (sem_Declaration_Instance _range _instVariant _maybeinstancename _useimplicitly (sem_ContextItems _context) (sem_Type _type) (sem_MaybeDeclarations _where)) sem_Declaration (Declaration_InstanceUseImplicitly _range _expression _type) = (sem_Declaration_InstanceUseImplicitly _range (sem_Expression _expression) (sem_Type _type)) sem_Declaration (Declaration_Default _range _name _types) = (sem_Declaration_Default _range _name (sem_Types _types)) sem_Declaration (Declaration_Type _range _typelefthandside _type) = (sem_Declaration_Type _range (sem_TypeLeftHandSide _typelefthandside) (sem_Type _type)) sem_Declaration (Declaration_Pragma _range _pragma) = (sem_Declaration_Pragma _range (sem_Pragma _pragma)) sem_Declaration (Declaration_Module _range _name _exports) = (sem_Declaration_Module _range _name (sem_MaybeExports _exports)) -- semantic domain type T_Declaration = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,(Set.Set Pragma.Pragma),([IdOcc]),Bool,ModEntRel,ModEntRel,([HsName])) sem_Declaration_FunctionBindings :: Range -> T_FunctionBindings -> T_Declaration sem_Declaration_FunctionBindings range_ bindings_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodDefsRel :: ModEntRel _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _bindingsOgUniq :: UID _bindingsOmoduleNm :: HsName _bindingsOnmLev :: NmLev _bindingsOopts :: EHCOpts _bindingsOtopInstanceNmL :: ([HsName]) _bindingsIgUniq :: UID _bindingsIidOccDefs :: ([IdOcc]) _bindingsImainValExists :: Bool _bindingsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 121, column 9) _lhsOmodDefsRel = Rel.fromList [ (hsnQualified (ioccNm o),ModEnt IdOcc_Val o Set.empty range_) | o <- _idOccDefs ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 111, column 9) _idOccDefs = _bindingsIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _bindingsImainValExists -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = Rel.empty -- copy rule (up) _lhsOgUniq = _bindingsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _bindingsItopInstanceNmL -- copy rule (down) _bindingsOgUniq = _lhsIgUniq -- copy rule (down) _bindingsOmoduleNm = _lhsImoduleNm -- copy rule (down) _bindingsOnmLev = _lhsInmLev -- copy rule (down) _bindingsOopts = _lhsIopts -- copy rule (down) _bindingsOtopInstanceNmL = _lhsItopInstanceNmL ( _bindingsIgUniq,_bindingsIidOccDefs,_bindingsImainValExists,_bindingsItopInstanceNmL) | True = bindings_ _bindingsOgUniq _bindingsOmoduleNm _bindingsOnmLev _bindingsOopts _bindingsOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_PatternBinding :: Range -> T_Pattern -> T_RightHandSide -> T_Declaration sem_Declaration_PatternBinding range_ pattern_ righthandside_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodDefsRel :: ModEntRel _patternOgUniq :: UID _lUniq :: UID _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _patternOmoduleNm :: HsName _patternOnmLev :: NmLev _patternOtopInstanceNmL :: ([HsName]) _righthandsideOgUniq :: UID _righthandsideOmoduleNm :: HsName _righthandsideOnmLev :: NmLev _righthandsideOopts :: EHCOpts _righthandsideOtopInstanceNmL :: ([HsName]) _patternIgUniq :: UID _patternIidOccDefs :: ([IdOcc]) _patternImainValExists :: Bool _patternImbTopRefname :: (Maybe HsName) _patternItopInstanceNmL :: ([HsName]) _righthandsideIgUniq :: UID _righthandsideItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 121, column 9) _lhsOmodDefsRel = Rel.fromList [ (hsnQualified (ioccNm o),ModEnt IdOcc_Val o Set.empty range_) | o <- _idOccDefs ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 113, column 9) _idOccDef = IdOcc (maybe (mkHNm _lUniq) id _patternImbTopRefname) IdOcc_Pat -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 113, column 9) _idOccDefsPat = [_idOccDef] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 113, column 9) _idOccDefs = _patternIidOccDefs -- -- generated by the unique rule mechanism. (_patternOgUniq,_lUniq) = let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} ) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _patternImainValExists -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = Rel.empty -- copy rule (up) _lhsOgUniq = _righthandsideIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _righthandsideItopInstanceNmL -- copy rule (down) _patternOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternOnmLev = _lhsInmLev -- copy rule (down) _patternOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _righthandsideOgUniq = _patternIgUniq -- copy rule (down) _righthandsideOmoduleNm = _lhsImoduleNm -- copy rule (down) _righthandsideOnmLev = _lhsInmLev -- copy rule (down) _righthandsideOopts = _lhsIopts -- copy rule (chain) _righthandsideOtopInstanceNmL = _patternItopInstanceNmL ( _patternIgUniq,_patternIidOccDefs,_patternImainValExists,_patternImbTopRefname,_patternItopInstanceNmL) | True = pattern_ _patternOgUniq _patternOmoduleNm _patternOnmLev _patternOtopInstanceNmL ( _righthandsideIgUniq,_righthandsideItopInstanceNmL) | True = righthandside_ _righthandsideOgUniq _righthandsideOmoduleNm _righthandsideOnmLev _righthandsideOopts _righthandsideOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_TypeSignature :: Range -> Names -> T_Type -> T_Declaration sem_Declaration_TypeSignature range_ names_ type_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodDefsRel :: ModEntRel _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 121, column 9) _lhsOmodDefsRel = Rel.fromList [ (hsnQualified (ioccNm o),ModEnt IdOcc_Val o Set.empty range_) | o <- _idOccDefs ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 14, column 9) _refnames = map (hsnSetLevQual _lhsInmLev _lhsImoduleNm) names_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 109, column 9) _idOccDefs = [ IdOcc n IdOcc_Val | n <- _refnames ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 17, column 9) _nmLev = _lhsInmLev + 1 -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = Rel.empty -- copy rule (up) _lhsOgUniq = _typeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typeItopInstanceNmL -- copy rule (down) _typeOgUniq = _lhsIgUniq -- copy rule (from local) _typeOnmLev = _nmLev -- copy rule (down) _typeOtopInstanceNmL = _lhsItopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_Fixity :: Range -> Fixity -> (Maybe Int) -> Names -> T_Declaration sem_Declaration_Fixity range_ fixity_ priority_ operators_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodDefsRel :: ModEntRel _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 12, column 9) _oprefnames = map (hsnSetLevQual _lhsInmLev _lhsImoduleNm) operators_ -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 115, column 26) _lhsOmodDefsRel = Rel.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = Rel.empty -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_FusionDeclaration :: Range -> Name -> T_Declaration sem_Declaration_FusionDeclaration range_ fusename_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lUniq :: UID _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodDefsRel :: ModEntRel _lhsOmodHideDefsRel :: ModEntRel _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 161, column 9) _idOccDef = IdOcc (mkHNm _lUniq) IdOcc_Fusion -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 161, column 9) _idOccDefs = [_idOccDef] -- -- generated by the unique rule mechanism. (_lhsOgUniq,_lUniq) = let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} ) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 115, column 26) _lhsOmodDefsRel = Rel.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = Rel.empty -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_FusionConversion :: Range -> Name -> Name -> T_Declaration sem_Declaration_FusionConversion range_ absname_ conname_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lUniq :: UID _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodDefsRel :: ModEntRel _lhsOmodHideDefsRel :: ModEntRel _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 161, column 9) _idOccDef = IdOcc (mkHNm _lUniq) IdOcc_Fusion -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 161, column 9) _idOccDefs = [_idOccDef] -- -- generated by the unique rule mechanism. (_lhsOgUniq,_lUniq) = let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} ) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 115, column 26) _lhsOmodDefsRel = Rel.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = Rel.empty -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_Empty :: Range -> T_Declaration sem_Declaration_Empty range_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodDefsRel :: ModEntRel _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 115, column 26) _lhsOmodDefsRel = Rel.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = Rel.empty -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_Data :: Range -> T_ContextItems -> T_TypeLeftHandSide -> T_Constructors -> T_Derivings -> T_Declaration sem_Declaration_Data range_ context_ typelefthandside_ constructors_ derivings_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodDefsRel :: ModEntRel _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _contextOgUniq :: UID _contextOnmLev :: NmLev _contextOtopInstanceNmL :: ([HsName]) _typelefthandsideOgUniq :: UID _typelefthandsideOmoduleNm :: HsName _typelefthandsideOnmLev :: NmLev _typelefthandsideOtopInstanceNmL :: ([HsName]) _constructorsOgUniq :: UID _constructorsOmoduleNm :: HsName _constructorsOnmLev :: NmLev _constructorsOtopInstanceNmL :: ([HsName]) _derivingsOgUniq :: UID _derivingsOmoduleNm :: HsName _derivingsOnmLev :: NmLev _derivingsOopts :: EHCOpts _derivingsOtopInstanceNmL :: ([HsName]) _contextIgUniq :: UID _contextItopInstanceNmL :: ([HsName]) _typelefthandsideIgUniq :: UID _typelefthandsideIidOccDefs :: ([IdOcc]) _typelefthandsideIname :: Name _typelefthandsideIrange :: Range _typelefthandsideItopInstanceNmL :: ([HsName]) _typelefthandsideItypevariables :: Names _constructorsIconAndFldrefnames :: (AssocL Name Names) _constructorsIconrefnames :: Names _constructorsIgUniq :: UID _constructorsItopInstanceNmL :: ([HsName]) _derivingsIgUniq :: UID _derivingsIgathPragmas :: (Set.Set Pragma.Pragma) _derivingsIhasGenericDeriving :: Bool _derivingsIidOccDefs :: ([IdOcc]) _derivingsImodDefsRel :: ModEntRel _derivingsImodHideDefsRel :: ModEntRel _derivingsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 125, column 9) _modDefsRel = Rel.singleton _typelefthandsideIname (ModEnt IdOcc_Data _idOccDef (Set.fromList _modEntsSub) range_) `Rel.union` _derivingsImodDefsRel -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 125, column 9) _modEntsSub = [ ModEnt (ioccKind o) o Set.empty range_ | o <- _idOccDefsCon ++ _idOccDefsFld ++ _idOccDefsGener ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 142, column 9) _lhsOmodDefsRel = _modDefsRel `Rel.union` Rel.fromList [ (hsnQualified $ ioccNm $ mentIdOcc e,e) | e <- _modEntsSub ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 18, column 9) _typerefname = hsnSetLevQual _lhsInmLev _lhsImoduleNm _typelefthandsideIname -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 119, column 9) _idOccDef = IdOcc _typerefname IdOcc_Type -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 119, column 9) _idOccDefsCon = [ IdOcc n IdOcc_Val | n <- _constructorsIconrefnames ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 119, column 9) _idOccDefsFld = concat [ [IdOcc n IdOcc_Val, IdOcc n IdOcc_Fld] | (_,ns) <- _constructorsIconAndFldrefnames, n <- ns ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 119, column 9) _generMaxRemArity = length _typelefthandsideItypevariables `min` 1 -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 124, column 29) (_idOccDefsGener,_generArities) = if ehcOptGenGenerics _lhsIopts || _derivingsIhasGenericDeriving then let arities = [0 .. _generMaxRemArity] in ([IdOcc (hsnNm2GenerReprSyn a _typerefname) IdOcc_Type | a <- arities], arities) else ([], []) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 119, column 9) _idOccDefs = [_idOccDef] ++ _idOccDefsCon ++ _idOccDefsFld ++ _idOccDefsGener -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 20, column 9) _nmLev = _lhsInmLev -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = _derivingsIgathPragmas -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = _derivingsImodHideDefsRel -- copy rule (up) _lhsOgUniq = _derivingsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _derivingsItopInstanceNmL -- copy rule (down) _contextOgUniq = _lhsIgUniq -- copy rule (from local) _contextOnmLev = _nmLev -- copy rule (down) _contextOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _typelefthandsideOgUniq = _contextIgUniq -- copy rule (down) _typelefthandsideOmoduleNm = _lhsImoduleNm -- copy rule (from local) _typelefthandsideOnmLev = _nmLev -- copy rule (chain) _typelefthandsideOtopInstanceNmL = _contextItopInstanceNmL -- copy rule (chain) _constructorsOgUniq = _typelefthandsideIgUniq -- copy rule (down) _constructorsOmoduleNm = _lhsImoduleNm -- copy rule (from local) _constructorsOnmLev = _nmLev -- copy rule (chain) _constructorsOtopInstanceNmL = _typelefthandsideItopInstanceNmL -- copy rule (chain) _derivingsOgUniq = _constructorsIgUniq -- copy rule (down) _derivingsOmoduleNm = _lhsImoduleNm -- copy rule (from local) _derivingsOnmLev = _nmLev -- copy rule (down) _derivingsOopts = _lhsIopts -- copy rule (chain) _derivingsOtopInstanceNmL = _constructorsItopInstanceNmL ( _contextIgUniq,_contextItopInstanceNmL) | True = context_ _contextOgUniq _contextOnmLev _contextOtopInstanceNmL ( _typelefthandsideIgUniq,_typelefthandsideIidOccDefs,_typelefthandsideIname,_typelefthandsideIrange,_typelefthandsideItopInstanceNmL,_typelefthandsideItypevariables) | True = typelefthandside_ _typelefthandsideOgUniq _typelefthandsideOmoduleNm _typelefthandsideOnmLev _typelefthandsideOtopInstanceNmL ( _constructorsIconAndFldrefnames,_constructorsIconrefnames,_constructorsIgUniq,_constructorsItopInstanceNmL) | True = constructors_ _constructorsOgUniq _constructorsOmoduleNm _constructorsOnmLev _constructorsOtopInstanceNmL ( _derivingsIgUniq,_derivingsIgathPragmas,_derivingsIhasGenericDeriving,_derivingsIidOccDefs,_derivingsImodDefsRel,_derivingsImodHideDefsRel,_derivingsItopInstanceNmL) | True = derivings_ _derivingsOgUniq _derivingsOmoduleNm _derivingsOnmLev _derivingsOopts _derivingsOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_Newtype :: Range -> T_ContextItems -> T_TypeLeftHandSide -> T_Constructor -> T_Derivings -> T_Declaration sem_Declaration_Newtype range_ context_ typelefthandside_ constructors_ derivings_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodDefsRel :: ModEntRel _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _contextOgUniq :: UID _contextOnmLev :: NmLev _contextOtopInstanceNmL :: ([HsName]) _typelefthandsideOgUniq :: UID _typelefthandsideOmoduleNm :: HsName _typelefthandsideOnmLev :: NmLev _typelefthandsideOtopInstanceNmL :: ([HsName]) _constructorsOgUniq :: UID _constructorsOmoduleNm :: HsName _constructorsOnmLev :: NmLev _constructorsOtopInstanceNmL :: ([HsName]) _derivingsOgUniq :: UID _derivingsOmoduleNm :: HsName _derivingsOnmLev :: NmLev _derivingsOopts :: EHCOpts _derivingsOtopInstanceNmL :: ([HsName]) _contextIgUniq :: UID _contextItopInstanceNmL :: ([HsName]) _typelefthandsideIgUniq :: UID _typelefthandsideIidOccDefs :: ([IdOcc]) _typelefthandsideIname :: Name _typelefthandsideIrange :: Range _typelefthandsideItopInstanceNmL :: ([HsName]) _typelefthandsideItypevariables :: Names _constructorsIconAndFldrefnames :: (AssocL Name Names) _constructorsIconrefnames :: Names _constructorsIgUniq :: UID _constructorsItopInstanceNmL :: ([HsName]) _derivingsIgUniq :: UID _derivingsIgathPragmas :: (Set.Set Pragma.Pragma) _derivingsIhasGenericDeriving :: Bool _derivingsIidOccDefs :: ([IdOcc]) _derivingsImodDefsRel :: ModEntRel _derivingsImodHideDefsRel :: ModEntRel _derivingsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 125, column 9) _modDefsRel = Rel.singleton _typelefthandsideIname (ModEnt IdOcc_Data _idOccDef (Set.fromList _modEntsSub) range_) `Rel.union` _derivingsImodDefsRel -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 125, column 9) _modEntsSub = [ ModEnt (ioccKind o) o Set.empty range_ | o <- _idOccDefsCon ++ _idOccDefsFld ++ _idOccDefsGener ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 142, column 9) _lhsOmodDefsRel = _modDefsRel `Rel.union` Rel.fromList [ (hsnQualified $ ioccNm $ mentIdOcc e,e) | e <- _modEntsSub ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 18, column 9) _typerefname = hsnSetLevQual _lhsInmLev _lhsImoduleNm _typelefthandsideIname -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 119, column 9) _idOccDef = IdOcc _typerefname IdOcc_Type -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 119, column 9) _idOccDefsCon = [ IdOcc n IdOcc_Val | n <- _constructorsIconrefnames ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 119, column 9) _idOccDefsFld = concat [ [IdOcc n IdOcc_Val, IdOcc n IdOcc_Fld] | (_,ns) <- _constructorsIconAndFldrefnames, n <- ns ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 119, column 9) _generMaxRemArity = length _typelefthandsideItypevariables `min` 1 -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 124, column 29) (_idOccDefsGener,_generArities) = if ehcOptGenGenerics _lhsIopts || _derivingsIhasGenericDeriving then let arities = [0 .. _generMaxRemArity] in ([IdOcc (hsnNm2GenerReprSyn a _typerefname) IdOcc_Type | a <- arities], arities) else ([], []) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 119, column 9) _idOccDefs = [_idOccDef] ++ _idOccDefsCon ++ _idOccDefsFld ++ _idOccDefsGener -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 20, column 9) _nmLev = _lhsInmLev -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = _derivingsIgathPragmas -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = _derivingsImodHideDefsRel -- copy rule (up) _lhsOgUniq = _derivingsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _derivingsItopInstanceNmL -- copy rule (down) _contextOgUniq = _lhsIgUniq -- copy rule (from local) _contextOnmLev = _nmLev -- copy rule (down) _contextOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _typelefthandsideOgUniq = _contextIgUniq -- copy rule (down) _typelefthandsideOmoduleNm = _lhsImoduleNm -- copy rule (from local) _typelefthandsideOnmLev = _nmLev -- copy rule (chain) _typelefthandsideOtopInstanceNmL = _contextItopInstanceNmL -- copy rule (chain) _constructorsOgUniq = _typelefthandsideIgUniq -- copy rule (down) _constructorsOmoduleNm = _lhsImoduleNm -- copy rule (from local) _constructorsOnmLev = _nmLev -- copy rule (chain) _constructorsOtopInstanceNmL = _typelefthandsideItopInstanceNmL -- copy rule (chain) _derivingsOgUniq = _constructorsIgUniq -- copy rule (down) _derivingsOmoduleNm = _lhsImoduleNm -- copy rule (from local) _derivingsOnmLev = _nmLev -- copy rule (down) _derivingsOopts = _lhsIopts -- copy rule (chain) _derivingsOtopInstanceNmL = _constructorsItopInstanceNmL ( _contextIgUniq,_contextItopInstanceNmL) | True = context_ _contextOgUniq _contextOnmLev _contextOtopInstanceNmL ( _typelefthandsideIgUniq,_typelefthandsideIidOccDefs,_typelefthandsideIname,_typelefthandsideIrange,_typelefthandsideItopInstanceNmL,_typelefthandsideItypevariables) | True = typelefthandside_ _typelefthandsideOgUniq _typelefthandsideOmoduleNm _typelefthandsideOnmLev _typelefthandsideOtopInstanceNmL ( _constructorsIconAndFldrefnames,_constructorsIconrefnames,_constructorsIgUniq,_constructorsItopInstanceNmL) | True = constructors_ _constructorsOgUniq _constructorsOmoduleNm _constructorsOnmLev _constructorsOtopInstanceNmL ( _derivingsIgUniq,_derivingsIgathPragmas,_derivingsIhasGenericDeriving,_derivingsIidOccDefs,_derivingsImodDefsRel,_derivingsImodHideDefsRel,_derivingsItopInstanceNmL) | True = derivings_ _derivingsOgUniq _derivingsOmoduleNm _derivingsOnmLev _derivingsOopts _derivingsOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_GADT :: Range -> T_ContextItems -> T_TypeLeftHandSide -> T_Constructors -> T_Derivings -> T_Declaration sem_Declaration_GADT range_ context_ typelefthandside_ constructors_ derivings_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodDefsRel :: ModEntRel _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _contextOgUniq :: UID _contextOnmLev :: NmLev _contextOtopInstanceNmL :: ([HsName]) _typelefthandsideOgUniq :: UID _typelefthandsideOmoduleNm :: HsName _typelefthandsideOnmLev :: NmLev _typelefthandsideOtopInstanceNmL :: ([HsName]) _constructorsOgUniq :: UID _constructorsOmoduleNm :: HsName _constructorsOnmLev :: NmLev _constructorsOtopInstanceNmL :: ([HsName]) _derivingsOgUniq :: UID _derivingsOmoduleNm :: HsName _derivingsOnmLev :: NmLev _derivingsOopts :: EHCOpts _derivingsOtopInstanceNmL :: ([HsName]) _contextIgUniq :: UID _contextItopInstanceNmL :: ([HsName]) _typelefthandsideIgUniq :: UID _typelefthandsideIidOccDefs :: ([IdOcc]) _typelefthandsideIname :: Name _typelefthandsideIrange :: Range _typelefthandsideItopInstanceNmL :: ([HsName]) _typelefthandsideItypevariables :: Names _constructorsIconAndFldrefnames :: (AssocL Name Names) _constructorsIconrefnames :: Names _constructorsIgUniq :: UID _constructorsItopInstanceNmL :: ([HsName]) _derivingsIgUniq :: UID _derivingsIgathPragmas :: (Set.Set Pragma.Pragma) _derivingsIhasGenericDeriving :: Bool _derivingsIidOccDefs :: ([IdOcc]) _derivingsImodDefsRel :: ModEntRel _derivingsImodHideDefsRel :: ModEntRel _derivingsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 125, column 9) _modDefsRel = Rel.singleton _typelefthandsideIname (ModEnt IdOcc_Data _idOccDef (Set.fromList _modEntsSub) range_) `Rel.union` _derivingsImodDefsRel -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 125, column 9) _modEntsSub = [ ModEnt (ioccKind o) o Set.empty range_ | o <- _idOccDefsCon ++ _idOccDefsFld ++ _idOccDefsGener ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 142, column 9) _lhsOmodDefsRel = _modDefsRel `Rel.union` Rel.fromList [ (hsnQualified $ ioccNm $ mentIdOcc e,e) | e <- _modEntsSub ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 18, column 9) _typerefname = hsnSetLevQual _lhsInmLev _lhsImoduleNm _typelefthandsideIname -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 119, column 9) _idOccDef = IdOcc _typerefname IdOcc_Type -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 119, column 9) _idOccDefsCon = [ IdOcc n IdOcc_Val | n <- _constructorsIconrefnames ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 119, column 9) _idOccDefsFld = concat [ [IdOcc n IdOcc_Val, IdOcc n IdOcc_Fld] | (_,ns) <- _constructorsIconAndFldrefnames, n <- ns ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 119, column 9) _generMaxRemArity = length _typelefthandsideItypevariables `min` 1 -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 124, column 29) (_idOccDefsGener,_generArities) = if ehcOptGenGenerics _lhsIopts || _derivingsIhasGenericDeriving then let arities = [0 .. _generMaxRemArity] in ([IdOcc (hsnNm2GenerReprSyn a _typerefname) IdOcc_Type | a <- arities], arities) else ([], []) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 119, column 9) _idOccDefs = [_idOccDef] ++ _idOccDefsCon ++ _idOccDefsFld ++ _idOccDefsGener -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 20, column 9) _nmLev = _lhsInmLev -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = _derivingsIgathPragmas -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = _derivingsImodHideDefsRel -- copy rule (up) _lhsOgUniq = _derivingsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _derivingsItopInstanceNmL -- copy rule (down) _contextOgUniq = _lhsIgUniq -- copy rule (from local) _contextOnmLev = _nmLev -- copy rule (down) _contextOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _typelefthandsideOgUniq = _contextIgUniq -- copy rule (down) _typelefthandsideOmoduleNm = _lhsImoduleNm -- copy rule (from local) _typelefthandsideOnmLev = _nmLev -- copy rule (chain) _typelefthandsideOtopInstanceNmL = _contextItopInstanceNmL -- copy rule (chain) _constructorsOgUniq = _typelefthandsideIgUniq -- copy rule (down) _constructorsOmoduleNm = _lhsImoduleNm -- copy rule (from local) _constructorsOnmLev = _nmLev -- copy rule (chain) _constructorsOtopInstanceNmL = _typelefthandsideItopInstanceNmL -- copy rule (chain) _derivingsOgUniq = _constructorsIgUniq -- copy rule (down) _derivingsOmoduleNm = _lhsImoduleNm -- copy rule (from local) _derivingsOnmLev = _nmLev -- copy rule (down) _derivingsOopts = _lhsIopts -- copy rule (chain) _derivingsOtopInstanceNmL = _constructorsItopInstanceNmL ( _contextIgUniq,_contextItopInstanceNmL) | True = context_ _contextOgUniq _contextOnmLev _contextOtopInstanceNmL ( _typelefthandsideIgUniq,_typelefthandsideIidOccDefs,_typelefthandsideIname,_typelefthandsideIrange,_typelefthandsideItopInstanceNmL,_typelefthandsideItypevariables) | True = typelefthandside_ _typelefthandsideOgUniq _typelefthandsideOmoduleNm _typelefthandsideOnmLev _typelefthandsideOtopInstanceNmL ( _constructorsIconAndFldrefnames,_constructorsIconrefnames,_constructorsIgUniq,_constructorsItopInstanceNmL) | True = constructors_ _constructorsOgUniq _constructorsOmoduleNm _constructorsOnmLev _constructorsOtopInstanceNmL ( _derivingsIgUniq,_derivingsIgathPragmas,_derivingsIhasGenericDeriving,_derivingsIidOccDefs,_derivingsImodDefsRel,_derivingsImodHideDefsRel,_derivingsItopInstanceNmL) | True = derivings_ _derivingsOgUniq _derivingsOmoduleNm _derivingsOnmLev _derivingsOopts _derivingsOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_KindSignature :: Range -> Names -> T_Kind -> T_Declaration sem_Declaration_KindSignature range_ names_ kind_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodDefsRel :: ModEntRel _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _kindOgUniq :: UID _kindOnmLev :: NmLev _kindOtopInstanceNmL :: ([HsName]) _kindIgUniq :: UID _kindItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 16, column 9) _refnames = map (hsnSetLevQual _lhsInmLev _lhsImoduleNm) names_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 134, column 9) _idOccDefs = [ IdOcc n IdOcc_Type | n <- _refnames ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 22, column 9) _nmLev = _lhsInmLev + 1 -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 115, column 26) _lhsOmodDefsRel = Rel.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = Rel.empty -- copy rule (up) _lhsOgUniq = _kindIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _kindItopInstanceNmL -- copy rule (down) _kindOgUniq = _lhsIgUniq -- copy rule (from local) _kindOnmLev = _nmLev -- copy rule (down) _kindOtopInstanceNmL = _lhsItopInstanceNmL ( _kindIgUniq,_kindItopInstanceNmL) | True = kind_ _kindOgUniq _kindOnmLev _kindOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_ForeignImport :: Range -> FFIWay -> (Maybe String) -> (Maybe String) -> Name -> T_Type -> T_Declaration sem_Declaration_ForeignImport range_ callconvention_ safety_ importname_ name_ type_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodDefsRel :: ModEntRel _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 121, column 9) _lhsOmodDefsRel = Rel.fromList [ (hsnQualified (ioccNm o),ModEnt IdOcc_Val o Set.empty range_) | o <- _idOccDefs ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 20, column 9) _refname = hsnSetLevQual _lhsInmLev _lhsImoduleNm name_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 155, column 9) _idOccDef = IdOcc _refname IdOcc_Val -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 155, column 9) _idOccDefs = [_idOccDef] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = Rel.empty -- copy rule (up) _lhsOgUniq = _typeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typeItopInstanceNmL -- copy rule (down) _typeOgUniq = _lhsIgUniq -- copy rule (down) _typeOnmLev = _lhsInmLev -- copy rule (down) _typeOtopInstanceNmL = _lhsItopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_ForeignExport :: Range -> FFIWay -> (Maybe String) -> Name -> T_Type -> T_Declaration sem_Declaration_ForeignExport range_ callconvention_ exportname_ name_ type_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodDefsRel :: ModEntRel _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 32, column 9) _exportrefname = hsnUniqify HsNameUniqifier_FFE name_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 158, column 9) _idOccDef = IdOcc _exportrefname IdOcc_Val -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 158, column 9) _idOccDefs = [_idOccDef] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 115, column 26) _lhsOmodDefsRel = Rel.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = Rel.empty -- copy rule (up) _lhsOgUniq = _typeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typeItopInstanceNmL -- copy rule (down) _typeOgUniq = _lhsIgUniq -- copy rule (down) _typeOnmLev = _lhsInmLev -- copy rule (down) _typeOtopInstanceNmL = _lhsItopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_Class :: Range -> T_ContextItems -> T_TypeLeftHandSide -> T_FunctionalDependencies -> T_MaybeDeclarations -> T_Declaration sem_Declaration_Class range_ context_ typelefthandside_ dependencies_ where_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodDefsRel :: ModEntRel _lhsOtopInstanceNmL :: ([HsName]) _contextOgUniq :: UID _lUniq :: UID _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _contextOnmLev :: NmLev _contextOtopInstanceNmL :: ([HsName]) _typelefthandsideOgUniq :: UID _typelefthandsideOmoduleNm :: HsName _typelefthandsideOnmLev :: NmLev _typelefthandsideOtopInstanceNmL :: ([HsName]) _dependenciesOgUniq :: UID _dependenciesOmoduleNm :: HsName _dependenciesOnmLev :: NmLev _dependenciesOopts :: EHCOpts _dependenciesOtopInstanceNmL :: ([HsName]) _whereOgUniq :: UID _whereOmoduleNm :: HsName _whereOnmLev :: NmLev _whereOopts :: EHCOpts _whereOtopInstanceNmL :: ([HsName]) _contextIgUniq :: UID _contextItopInstanceNmL :: ([HsName]) _typelefthandsideIgUniq :: UID _typelefthandsideIidOccDefs :: ([IdOcc]) _typelefthandsideIname :: Name _typelefthandsideIrange :: Range _typelefthandsideItopInstanceNmL :: ([HsName]) _typelefthandsideItypevariables :: Names _dependenciesIgUniq :: UID _dependenciesIgathPragmas :: (Set.Set Pragma.Pragma) _dependenciesIidOccDefs :: ([IdOcc]) _dependenciesItopInstanceNmL :: ([HsName]) _whereIgUniq :: UID _whereIgathPragmas :: (Set.Set Pragma.Pragma) _whereIidOccDefs :: ([IdOcc]) _whereImainValExists :: Bool _whereItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 135, column 9) _modDefsRel = Rel.singleton _typelefthandsideIname (ModEnt IdOcc_Class _idOccDef (Set.fromList _modEntsSub) range_) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 138, column 29) (_,_modHideDefsRel) = mkInstDefsRel False _instancename Nothing _idOccDef _idOccDefVal -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 135, column 9) _modEntsSub = [ ModEnt IdOcc_Val o Set.empty range_ | o <- _idOccDefsSig ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 142, column 9) _lhsOmodDefsRel = _modDefsRel `Rel.union` Rel.fromList [ (hsnQualified $ ioccNm $ mentIdOcc e,e) | e <- _modEntsSub ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 22, column 9) _instancerefname = hsnSetLevQual _lhsInmLev _lhsImoduleNm $ maybe _instancename id _mbPrevInstancename -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 26, column 9) _classrefname = hsnSetLevQual _lhsInmLev _lhsImoduleNm _typelefthandsideIname -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 136, column 9) _idOccDef = IdOcc _classrefname IdOcc_Class -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 136, column 9) _idOccDefVal = IdOcc _instancerefname IdOcc_Val -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 136, column 9) _idOccDefsSig = _whereIidOccDefs -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 136, column 9) _idOccDefs = [_idOccDef] ++ _idOccDefsSig -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 242, column 9) _instancename = hsnUniqifyUID HsNameUniqifier_Class _lUniq (mkHNm _typelefthandsideIname) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 24, column 9) _nmLev = _lhsInmLev -- "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 53, column 9) _lhsOtopInstanceNmL = _instancename : _lhsItopInstanceNmL -- "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 68, column 9) _mbPrevInstancename = Nothing -- "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 93, column 9) _generderivnames = [] -- -- generated by the unique rule mechanism. (_contextOgUniq,_lUniq) = let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} ) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = _dependenciesIgathPragmas `Set.union` _whereIgathPragmas -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _whereImainValExists -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = _modHideDefsRel -- copy rule (up) _lhsOgUniq = _whereIgUniq -- copy rule (from local) _contextOnmLev = _nmLev -- copy rule (down) _contextOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _typelefthandsideOgUniq = _contextIgUniq -- copy rule (down) _typelefthandsideOmoduleNm = _lhsImoduleNm -- copy rule (from local) _typelefthandsideOnmLev = _nmLev -- copy rule (chain) _typelefthandsideOtopInstanceNmL = _contextItopInstanceNmL -- copy rule (chain) _dependenciesOgUniq = _typelefthandsideIgUniq -- copy rule (down) _dependenciesOmoduleNm = _lhsImoduleNm -- copy rule (from local) _dependenciesOnmLev = _nmLev -- copy rule (down) _dependenciesOopts = _lhsIopts -- copy rule (chain) _dependenciesOtopInstanceNmL = _typelefthandsideItopInstanceNmL -- copy rule (chain) _whereOgUniq = _dependenciesIgUniq -- copy rule (down) _whereOmoduleNm = _lhsImoduleNm -- copy rule (from local) _whereOnmLev = _nmLev -- copy rule (down) _whereOopts = _lhsIopts -- copy rule (chain) _whereOtopInstanceNmL = _dependenciesItopInstanceNmL ( _contextIgUniq,_contextItopInstanceNmL) | True = context_ _contextOgUniq _contextOnmLev _contextOtopInstanceNmL ( _typelefthandsideIgUniq,_typelefthandsideIidOccDefs,_typelefthandsideIname,_typelefthandsideIrange,_typelefthandsideItopInstanceNmL,_typelefthandsideItypevariables) | True = typelefthandside_ _typelefthandsideOgUniq _typelefthandsideOmoduleNm _typelefthandsideOnmLev _typelefthandsideOtopInstanceNmL ( _dependenciesIgUniq,_dependenciesIgathPragmas,_dependenciesIidOccDefs,_dependenciesItopInstanceNmL) | True = dependencies_ _dependenciesOgUniq _dependenciesOmoduleNm _dependenciesOnmLev _dependenciesOopts _dependenciesOtopInstanceNmL ( _whereIgUniq,_whereIgathPragmas,_whereIidOccDefs,_whereImainValExists,_whereItopInstanceNmL) | True = where_ _whereOgUniq _whereOmoduleNm _whereOnmLev _whereOopts _whereOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_Instance :: Range -> InstVariant -> MaybeName -> Bool -> T_ContextItems -> T_Type -> T_MaybeDeclarations -> T_Declaration sem_Declaration_Instance range_ instVariant_ maybeinstancename_ useimplicitly_ context_ type_ where_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodDefsRel :: ModEntRel _lhsOmodHideDefsRel :: ModEntRel _lhsOtopInstanceNmL :: ([HsName]) _contextOgUniq :: UID _lUniq :: UID _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _contextOnmLev :: NmLev _contextOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _whereOgUniq :: UID _whereOmoduleNm :: HsName _whereOnmLev :: NmLev _whereOopts :: EHCOpts _whereOtopInstanceNmL :: ([HsName]) _contextIgUniq :: UID _contextItopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) _whereIgUniq :: UID _whereIgathPragmas :: (Set.Set Pragma.Pragma) _whereIidOccDefs :: ([IdOcc]) _whereImainValExists :: Bool _whereItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 146, column 29) (_lhsOmodDefsRel,_lhsOmodHideDefsRel) = mkInstDefsRel useimplicitly_ _instancename maybeinstancename_ _idOccDef _idOccDefVal -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 22, column 9) _instancerefname = hsnSetLevQual _lhsInmLev _lhsImoduleNm $ maybe _instancename id _mbPrevInstancename -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 141, column 9) _idOccDef = IdOcc _instancerefname IdOcc_Inst -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 141, column 9) _idOccDefVal = IdOcc _instancerefname IdOcc_Val -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 141, column 9) _idOccDefs = [_idOccDef,_idOccDefVal] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 240, column 9) _instancename = maybe (hsnUniqifyUID HsNameUniqifier_ClassDict _lUniq (_typeIconNm)) id maybeinstancename_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 26, column 9) _nmLev = _lhsInmLev -- "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 53, column 9) _lhsOtopInstanceNmL = _instancename : _lhsItopInstanceNmL -- "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 68, column 9) _mbPrevInstancename = Nothing -- -- generated by the unique rule mechanism. (_contextOgUniq,_lUniq) = let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} ) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = _whereIgathPragmas -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _whereImainValExists -- copy rule (up) _lhsOgUniq = _whereIgUniq -- copy rule (from local) _contextOnmLev = _nmLev -- copy rule (down) _contextOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _typeOgUniq = _contextIgUniq -- copy rule (from local) _typeOnmLev = _nmLev -- copy rule (chain) _typeOtopInstanceNmL = _contextItopInstanceNmL -- copy rule (chain) _whereOgUniq = _typeIgUniq -- copy rule (down) _whereOmoduleNm = _lhsImoduleNm -- copy rule (from local) _whereOnmLev = _nmLev -- copy rule (down) _whereOopts = _lhsIopts -- copy rule (chain) _whereOtopInstanceNmL = _typeItopInstanceNmL ( _contextIgUniq,_contextItopInstanceNmL) | True = context_ _contextOgUniq _contextOnmLev _contextOtopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL ( _whereIgUniq,_whereIgathPragmas,_whereIidOccDefs,_whereImainValExists,_whereItopInstanceNmL) | True = where_ _whereOgUniq _whereOmoduleNm _whereOnmLev _whereOopts _whereOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_InstanceUseImplicitly :: Range -> T_Expression -> T_Type -> T_Declaration sem_Declaration_InstanceUseImplicitly range_ expression_ type_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodDefsRel :: ModEntRel _lhsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _lUniq :: UID _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 149, column 9) _lhsOmodDefsRel = Rel.singleton _instancename (ModEnt IdOcc_Inst _idOccDef Set.empty range_) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 22, column 9) _instancerefname = hsnSetLevQual _lhsInmLev _lhsImoduleNm $ maybe _instancename id _mbPrevInstancename -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 145, column 9) _idOccDef = IdOcc _instancerefname IdOcc_Inst -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 145, column 9) _idOccDefVal = IdOcc _instancerefname IdOcc_Val -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 145, column 9) _idOccDefs = if ehcOptIsUnderDev UnderDev_NameAnalysis _lhsIopts then [_idOccDef,_idOccDefVal] else [_idOccDef] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 244, column 9) _instancename = mkHNm _lUniq -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 24, column 9) _nmLev = _lhsInmLev -- "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 53, column 9) _lhsOtopInstanceNmL = _instancename : _lhsItopInstanceNmL -- "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 68, column 9) _mbPrevInstancename = Nothing -- -- generated by the unique rule mechanism. (_expressionOgUniq,_lUniq) = let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} ) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = Rel.empty -- copy rule (up) _lhsOgUniq = _typeIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (from local) _expressionOnmLev = _nmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (down) _expressionOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _typeOgUniq = _expressionIgUniq -- copy rule (from local) _typeOnmLev = _nmLev -- copy rule (chain) _typeOtopInstanceNmL = _expressionItopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_Default :: Range -> MaybeName -> T_Types -> T_Declaration sem_Declaration_Default range_ name_ types_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _typesOgUniq :: UID _lUniq :: UID _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodDefsRel :: ModEntRel _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _typesOnmLev :: NmLev _typesOtopInstanceNmL :: ([HsName]) _typesIgUniq :: UID _typesItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 149, column 9) _idOccDef = IdOcc _defaultname IdOcc_Dflt -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 149, column 9) _idOccDefs = [_idOccDef] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 246, column 9) _defaultname = mkHNm _lUniq -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 24, column 9) _nmLev = _lhsInmLev -- -- generated by the unique rule mechanism. (_typesOgUniq,_lUniq) = let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} ) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 115, column 26) _lhsOmodDefsRel = Rel.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = Rel.empty -- copy rule (up) _lhsOgUniq = _typesIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typesItopInstanceNmL -- copy rule (from local) _typesOnmLev = _nmLev -- copy rule (down) _typesOtopInstanceNmL = _lhsItopInstanceNmL ( _typesIgUniq,_typesItopInstanceNmL) | True = types_ _typesOgUniq _typesOnmLev _typesOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_Type :: Range -> T_TypeLeftHandSide -> T_Type -> T_Declaration sem_Declaration_Type range_ typelefthandside_ type_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodDefsRel :: ModEntRel _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _typelefthandsideOgUniq :: UID _typelefthandsideOmoduleNm :: HsName _typelefthandsideOnmLev :: NmLev _typelefthandsideOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _typelefthandsideIgUniq :: UID _typelefthandsideIidOccDefs :: ([IdOcc]) _typelefthandsideIname :: Name _typelefthandsideIrange :: Range _typelefthandsideItopInstanceNmL :: ([HsName]) _typelefthandsideItypevariables :: Names _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 123, column 9) _lhsOmodDefsRel = Rel.fromList [ (hsnQualified (ioccNm o),ModEnt IdOcc_Type o Set.empty range_) | o <- _idOccDefs ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 28, column 9) _typerefname = hsnSetLevQual _lhsInmLev _lhsImoduleNm _typelefthandsideIname -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 152, column 9) _idOccDef = IdOcc _typerefname IdOcc_Type -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 152, column 9) _idOccDefs = [_idOccDef] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 29, column 9) _nmLev = _lhsInmLev -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = Rel.empty -- copy rule (up) _lhsOgUniq = _typeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typeItopInstanceNmL -- copy rule (down) _typelefthandsideOgUniq = _lhsIgUniq -- copy rule (down) _typelefthandsideOmoduleNm = _lhsImoduleNm -- copy rule (from local) _typelefthandsideOnmLev = _nmLev -- copy rule (down) _typelefthandsideOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _typeOgUniq = _typelefthandsideIgUniq -- copy rule (from local) _typeOnmLev = _nmLev -- copy rule (chain) _typeOtopInstanceNmL = _typelefthandsideItopInstanceNmL ( _typelefthandsideIgUniq,_typelefthandsideIidOccDefs,_typelefthandsideIname,_typelefthandsideIrange,_typelefthandsideItopInstanceNmL,_typelefthandsideItypevariables) | True = typelefthandside_ _typelefthandsideOgUniq _typelefthandsideOmoduleNm _typelefthandsideOnmLev _typelefthandsideOtopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_Pragma :: Range -> T_Pragma -> T_Declaration sem_Declaration_Pragma range_ pragma_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodDefsRel :: ModEntRel _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _pragmaOgUniq :: UID _pragmaOnmLev :: NmLev _pragmaOtopInstanceNmL :: ([HsName]) _pragmaIgUniq :: UID _pragmaIgathPragmas :: (Set.Set Pragma.Pragma) _pragmaItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = _pragmaIgathPragmas -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 115, column 26) _lhsOmodDefsRel = Rel.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = Rel.empty -- copy rule (up) _lhsOgUniq = _pragmaIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _pragmaItopInstanceNmL -- copy rule (down) _pragmaOgUniq = _lhsIgUniq -- copy rule (down) _pragmaOnmLev = _lhsInmLev -- copy rule (down) _pragmaOtopInstanceNmL = _lhsItopInstanceNmL ( _pragmaIgUniq,_pragmaIgathPragmas,_pragmaItopInstanceNmL) | True = pragma_ _pragmaOgUniq _pragmaOnmLev _pragmaOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declaration_Module :: Range -> MaybeName -> T_MaybeExports -> T_Declaration sem_Declaration_Module range_ name_ exports_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodDefsRel :: ModEntRel _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _exportsOgUniq :: UID _exportsOmoduleNm :: HsName _exportsOnmLev :: NmLev _exportsOopts :: EHCOpts _exportsOtopInstanceNmL :: ([HsName]) _exportsIgUniq :: UID _exportsImodExpsMb :: (Maybe [ModExp]) _exportsItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 115, column 26) _lhsOmodDefsRel = Rel.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = Rel.empty -- copy rule (up) _lhsOgUniq = _exportsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _exportsItopInstanceNmL -- copy rule (down) _exportsOgUniq = _lhsIgUniq -- copy rule (down) _exportsOmoduleNm = _lhsImoduleNm -- copy rule (down) _exportsOnmLev = _lhsInmLev -- copy rule (down) _exportsOopts = _lhsIopts -- copy rule (down) _exportsOtopInstanceNmL = _lhsItopInstanceNmL ( _exportsIgUniq,_exportsImodExpsMb,_exportsItopInstanceNmL) | True = exports_ _exportsOgUniq _exportsOmoduleNm _exportsOnmLev _exportsOopts _exportsOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) -- Declarations ------------------------------------------------ {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: gathPragmas : Set.Set Pragma.Pragma idOccDefs : [IdOcc] mainValExists : Bool modDefsRel : ModEntRel modHideDefsRel : ModEntRel alternatives: alternative Cons: child hd : Declaration child tl : Declarations alternative Nil: -} -- cata sem_Declarations :: Declarations -> T_Declarations sem_Declarations list = (Prelude.foldr sem_Declarations_Cons sem_Declarations_Nil (Prelude.map sem_Declaration list)) -- semantic domain type T_Declarations = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,(Set.Set Pragma.Pragma),([IdOcc]),Bool,ModEntRel,ModEntRel,([HsName])) sem_Declarations_Cons :: T_Declaration -> T_Declarations -> T_Declarations sem_Declarations_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodDefsRel :: ModEntRel _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOopts :: EHCOpts _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOopts :: EHCOpts _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdIgathPragmas :: (Set.Set Pragma.Pragma) _hdIidOccDefs :: ([IdOcc]) _hdImainValExists :: Bool _hdImodDefsRel :: ModEntRel _hdImodHideDefsRel :: ModEntRel _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlIgathPragmas :: (Set.Set Pragma.Pragma) _tlIidOccDefs :: ([IdOcc]) _tlImainValExists :: Bool _tlImodDefsRel :: ModEntRel _tlImodHideDefsRel :: ModEntRel _tlItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = _hdIgathPragmas `Set.union` _tlIgathPragmas -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _hdIidOccDefs ++ _tlIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _hdImainValExists || _tlImainValExists -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 115, column 26) _lhsOmodDefsRel = _hdImodDefsRel `Rel.union` _tlImodDefsRel -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = _hdImodHideDefsRel `Rel.union` _tlImodHideDefsRel -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOopts = _lhsIopts -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (down) _tlOopts = _lhsIopts -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdIgathPragmas,_hdIidOccDefs,_hdImainValExists,_hdImodDefsRel,_hdImodHideDefsRel,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOopts _hdOtopInstanceNmL ( _tlIgUniq,_tlIgathPragmas,_tlIidOccDefs,_tlImainValExists,_tlImodDefsRel,_tlImodHideDefsRel,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOopts _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Declarations_Nil :: T_Declarations sem_Declarations_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOmodDefsRel :: ModEntRel _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 115, column 26) _lhsOmodDefsRel = Rel.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = Rel.empty -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) -- Deriving ---------------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: gathPragmas : Set.Set Pragma.Pragma hasGenericDeriving : Bool idOccDefs : [IdOcc] modDefsRel : ModEntRel modHideDefsRel : ModEntRel alternatives: alternative Deriving: child range : {Range} child maybeinstancename : {MaybeName} child useimplicitly : {Bool} child name : {Name} visit 0: local instancerefname : _ local idOccDef : _ local idOccDefVal : _ local idOccDefs : _ local hasGenericDeriving : _ local instancename : _ local mbPrevInstancename : _ local lUniq : {UID} -} -- cata sem_Deriving :: Deriving -> T_Deriving sem_Deriving (Deriving_Deriving _range _maybeinstancename _useimplicitly _name) = (sem_Deriving_Deriving _range _maybeinstancename _useimplicitly _name) -- semantic domain type T_Deriving = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,(Set.Set Pragma.Pragma),Bool,([IdOcc]),ModEntRel,ModEntRel,([HsName])) sem_Deriving_Deriving :: Range -> MaybeName -> Bool -> Name -> T_Deriving sem_Deriving_Deriving range_ maybeinstancename_ useimplicitly_ name_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodDefsRel :: ModEntRel _lhsOmodHideDefsRel :: ModEntRel _lhsOtopInstanceNmL :: ([HsName]) _lhsOgUniq :: UID _lUniq :: UID _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOhasGenericDeriving :: Bool _lhsOidOccDefs :: ([IdOcc]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 153, column 29) (_lhsOmodDefsRel,_lhsOmodHideDefsRel) = if _hasGenericDeriving then (Rel.empty, Rel.empty) else mkInstDefsRel useimplicitly_ _instancename maybeinstancename_ _idOccDef _idOccDefVal -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 37, column 9) _instancerefname = hsnSetLevQual _lhsInmLev _lhsImoduleNm $ maybe _instancename id _mbPrevInstancename -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 190, column 9) _idOccDef = IdOcc _instancerefname IdOcc_Inst -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 190, column 9) _idOccDefVal = IdOcc _instancerefname IdOcc_Val -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 190, column 9) _idOccDefs = if _hasGenericDeriving then [] else [_idOccDef,_idOccDefVal] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 200, column 9) _hasGenericDeriving = name_ == (hsnQualified $ ehbnGenerClassGeneric $ ehcOptBuiltinNames $ _lhsIopts) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 254, column 9) _instancename = maybe (mkHNm _lUniq) id maybeinstancename_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 63, column 9) _lhsOtopInstanceNmL = _instancename : _lhsItopInstanceNmL -- "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 73, column 9) _mbPrevInstancename = Nothing -- -- generated by the unique rule mechanism. (_lhsOgUniq,_lUniq) = let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} ) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 196, column 43) _lhsOhasGenericDeriving = _hasGenericDeriving -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOhasGenericDeriving,_lhsOidOccDefs,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) -- Derivings --------------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: gathPragmas : Set.Set Pragma.Pragma hasGenericDeriving : Bool idOccDefs : [IdOcc] modDefsRel : ModEntRel modHideDefsRel : ModEntRel alternatives: alternative Cons: child hd : Deriving child tl : Derivings alternative Nil: -} -- cata sem_Derivings :: Derivings -> T_Derivings sem_Derivings list = (Prelude.foldr sem_Derivings_Cons sem_Derivings_Nil (Prelude.map sem_Deriving list)) -- semantic domain type T_Derivings = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,(Set.Set Pragma.Pragma),Bool,([IdOcc]),ModEntRel,ModEntRel,([HsName])) sem_Derivings_Cons :: T_Deriving -> T_Derivings -> T_Derivings sem_Derivings_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOhasGenericDeriving :: Bool _lhsOidOccDefs :: ([IdOcc]) _lhsOmodDefsRel :: ModEntRel _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOopts :: EHCOpts _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOopts :: EHCOpts _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdIgathPragmas :: (Set.Set Pragma.Pragma) _hdIhasGenericDeriving :: Bool _hdIidOccDefs :: ([IdOcc]) _hdImodDefsRel :: ModEntRel _hdImodHideDefsRel :: ModEntRel _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlIgathPragmas :: (Set.Set Pragma.Pragma) _tlIhasGenericDeriving :: Bool _tlIidOccDefs :: ([IdOcc]) _tlImodDefsRel :: ModEntRel _tlImodHideDefsRel :: ModEntRel _tlItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = _hdIgathPragmas `Set.union` _tlIgathPragmas -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 196, column 43) _lhsOhasGenericDeriving = _hdIhasGenericDeriving || _tlIhasGenericDeriving -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _hdIidOccDefs ++ _tlIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 115, column 26) _lhsOmodDefsRel = _hdImodDefsRel `Rel.union` _tlImodDefsRel -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = _hdImodHideDefsRel `Rel.union` _tlImodHideDefsRel -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOopts = _lhsIopts -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (down) _tlOopts = _lhsIopts -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdIgathPragmas,_hdIhasGenericDeriving,_hdIidOccDefs,_hdImodDefsRel,_hdImodHideDefsRel,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOopts _hdOtopInstanceNmL ( _tlIgUniq,_tlIgathPragmas,_tlIhasGenericDeriving,_tlIidOccDefs,_tlImodDefsRel,_tlImodHideDefsRel,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOopts _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOhasGenericDeriving,_lhsOidOccDefs,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) sem_Derivings_Nil :: T_Derivings sem_Derivings_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOhasGenericDeriving :: Bool _lhsOidOccDefs :: ([IdOcc]) _lhsOmodDefsRel :: ModEntRel _lhsOmodHideDefsRel :: ModEntRel _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 196, column 43) _lhsOhasGenericDeriving = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 115, column 26) _lhsOmodDefsRel = Rel.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 116, column 26) _lhsOmodHideDefsRel = Rel.empty -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOhasGenericDeriving,_lhsOidOccDefs,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL))) -- Export ------------------------------------------------------ {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: modExp : ModExp alternatives: alternative Variable: child range : {Range} child name : {Name} alternative TypeOrClass: child range : {Range} child name : {Name} child names : {MaybeNames} alternative TypeOrClassComplete: child range : {Range} child name : {Name} alternative Module: child range : {Range} child name : {Name} -} -- cata sem_Export :: Export -> T_Export sem_Export (Export_Variable _range _name) = (sem_Export_Variable _range _name) sem_Export (Export_TypeOrClass _range _name _names) = (sem_Export_TypeOrClass _range _name _names) sem_Export (Export_TypeOrClassComplete _range _name) = (sem_Export_TypeOrClassComplete _range _name) sem_Export (Export_Module _range _name) = (sem_Export_Module _range _name) -- semantic domain type T_Export = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,ModExp,([HsName])) sem_Export_Variable :: Range -> Name -> T_Export sem_Export_Variable range_ name_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodExp :: ModExp _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 74, column 9) _lhsOmodExp = ModExpEnt (ModEntSpec name_ range_ Nothing) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOmodExp,_lhsOtopInstanceNmL))) sem_Export_TypeOrClass :: Range -> Name -> MaybeNames -> T_Export sem_Export_TypeOrClass range_ name_ names_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodExp :: ModExp _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 76, column 9) _lhsOmodExp = case names_ of Just ns -> ModExpEnt (ModEntSpec name_ range_ (Just (ModEntSubs ns))) Nothing -> ModExpEnt (ModEntSpec name_ range_ Nothing) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOmodExp,_lhsOtopInstanceNmL))) sem_Export_TypeOrClassComplete :: Range -> Name -> T_Export sem_Export_TypeOrClassComplete range_ name_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodExp :: ModExp _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 80, column 9) _lhsOmodExp = ModExpEnt (ModEntSpec name_ range_ (Just ModEntSubAll)) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOmodExp,_lhsOtopInstanceNmL))) sem_Export_Module :: Range -> Name -> T_Export sem_Export_Module range_ name_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodExp :: ModExp _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 82, column 9) _lhsOmodExp = ModExpMod name_ -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOmodExp,_lhsOtopInstanceNmL))) -- Exports ----------------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: modExpL : [ModExp] alternatives: alternative Cons: child hd : Export child tl : Exports alternative Nil: -} -- cata sem_Exports :: Exports -> T_Exports sem_Exports list = (Prelude.foldr sem_Exports_Cons sem_Exports_Nil (Prelude.map sem_Export list)) -- semantic domain type T_Exports = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([ModExp]),([HsName])) sem_Exports_Cons :: T_Export -> T_Exports -> T_Exports sem_Exports_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodExpL :: ([ModExp]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOopts :: EHCOpts _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOopts :: EHCOpts _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdImodExp :: ModExp _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlImodExpL :: ([ModExp]) _tlItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 88, column 9) _lhsOmodExpL = _hdImodExp : _tlImodExpL -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOopts = _lhsIopts -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (down) _tlOopts = _lhsIopts -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdImodExp,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOopts _hdOtopInstanceNmL ( _tlIgUniq,_tlImodExpL,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOopts _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOmodExpL,_lhsOtopInstanceNmL))) sem_Exports_Nil :: T_Exports sem_Exports_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodExpL :: ([ModExp]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 90, column 9) _lhsOmodExpL = [] -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOmodExpL,_lhsOtopInstanceNmL))) -- Expression -------------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: conNm : Name alternatives: alternative Literal: child range : {Range} child literal : Literal alternative Variable: child range : {Range} child name : {Name} alternative Constructor: child range : {Range} child name : {Name} alternative TupleConstructor: child range : {Range} child arity : {Int} alternative Parenthesized: child range : {Range} child expression : Expression alternative NormalApplication: child range : {Range} child function : Expression child arguments : Expressions alternative SectionApplication: child range : {Range} child leftExpression : MaybeExpression child operator : Expression child rightExpression : MaybeExpression alternative InfixApplication: child range : {Range} child leftExpression : Expression child operator : Expression child rightExpression : Expression alternative InfixApplicationChainTop: child range : {Range} child expression : Expression alternative Lambda: child range : {Range} child patterns : Patterns child expression : Expression visit 0: local nmLev : _ alternative Let: child range : {Range} child isStrict : {Bool} child declarations : Declarations child expression : Expression visit 0: local nmLev : _ alternative Tuple: child range : {Range} child expressions : Expressions alternative Typed: child range : {Range} child expression : Expression child type : Type alternative Negate: child range : {Range} child expression : Expression alternative Annotate: child range : {Range} child annotation : ExpressionAnnotation child expression : Expression alternative ImpredicativeApplication: child range : {Range} child function : Expression child arguments : Expressions alternative If: child range : {Range} child guardExpression : Expression child thenExpression : Expression child elseExpression : Expression alternative Case: child range : {Range} child expression : Expression child alternatives : Alternatives alternative List: child range : {Range} child expressions : Expressions alternative Enum: child range : {Range} child from : Expression child then : MaybeExpression child to : MaybeExpression alternative Comprehension: child range : {Range} child expression : Expression child qualifiers : Qualifiers alternative RecordConstruction: child range : {Range} child name : {Name} child recordExpressionBindings : RecordExpressionBindings alternative RecordUpdate: child range : {Range} child expression : Expression child recordExpressionBindings : RecordExpressionBindings alternative RowRecordUpdate: child range : {Range} child expression : Expression child rowRecordExpressionUpdates : RowRecordExpressionUpdates alternative RowRecordEmpty: child range : {Range} alternative RowRecordSelect: child range : {Range} child expression : Expression child name : {Name} alternative Do: child range : {Range} child statements : Statements alternative ImplicitApplication: child range : {Range} child function : Expression child arguments : ContextedExpressions alternative ImplicitLambda: child range : {Range} child patterns : ContextedPatterns child expression : Expression -} -- cata sem_Expression :: Expression -> T_Expression sem_Expression (Expression_Literal _range _literal) = (sem_Expression_Literal _range (sem_Literal _literal)) sem_Expression (Expression_Variable _range _name) = (sem_Expression_Variable _range _name) sem_Expression (Expression_Constructor _range _name) = (sem_Expression_Constructor _range _name) sem_Expression (Expression_TupleConstructor _range _arity) = (sem_Expression_TupleConstructor _range _arity) sem_Expression (Expression_Parenthesized _range _expression) = (sem_Expression_Parenthesized _range (sem_Expression _expression)) sem_Expression (Expression_NormalApplication _range _function _arguments) = (sem_Expression_NormalApplication _range (sem_Expression _function) (sem_Expressions _arguments)) sem_Expression (Expression_SectionApplication _range _leftExpression _operator _rightExpression) = (sem_Expression_SectionApplication _range (sem_MaybeExpression _leftExpression) (sem_Expression _operator) (sem_MaybeExpression _rightExpression)) sem_Expression (Expression_InfixApplication _range _leftExpression _operator _rightExpression) = (sem_Expression_InfixApplication _range (sem_Expression _leftExpression) (sem_Expression _operator) (sem_Expression _rightExpression)) sem_Expression (Expression_InfixApplicationChainTop _range _expression) = (sem_Expression_InfixApplicationChainTop _range (sem_Expression _expression)) sem_Expression (Expression_Lambda _range _patterns _expression) = (sem_Expression_Lambda _range (sem_Patterns _patterns) (sem_Expression _expression)) sem_Expression (Expression_Let _range _isStrict _declarations _expression) = (sem_Expression_Let _range _isStrict (sem_Declarations _declarations) (sem_Expression _expression)) sem_Expression (Expression_Tuple _range _expressions) = (sem_Expression_Tuple _range (sem_Expressions _expressions)) sem_Expression (Expression_Typed _range _expression _type) = (sem_Expression_Typed _range (sem_Expression _expression) (sem_Type _type)) sem_Expression (Expression_Negate _range _expression) = (sem_Expression_Negate _range (sem_Expression _expression)) sem_Expression (Expression_Annotate _range _annotation _expression) = (sem_Expression_Annotate _range (sem_ExpressionAnnotation _annotation) (sem_Expression _expression)) sem_Expression (Expression_ImpredicativeApplication _range _function _arguments) = (sem_Expression_ImpredicativeApplication _range (sem_Expression _function) (sem_Expressions _arguments)) sem_Expression (Expression_If _range _guardExpression _thenExpression _elseExpression) = (sem_Expression_If _range (sem_Expression _guardExpression) (sem_Expression _thenExpression) (sem_Expression _elseExpression)) sem_Expression (Expression_Case _range _expression _alternatives) = (sem_Expression_Case _range (sem_Expression _expression) (sem_Alternatives _alternatives)) sem_Expression (Expression_List _range _expressions) = (sem_Expression_List _range (sem_Expressions _expressions)) sem_Expression (Expression_Enum _range _from _then _to) = (sem_Expression_Enum _range (sem_Expression _from) (sem_MaybeExpression _then) (sem_MaybeExpression _to)) sem_Expression (Expression_Comprehension _range _expression _qualifiers) = (sem_Expression_Comprehension _range (sem_Expression _expression) (sem_Qualifiers _qualifiers)) sem_Expression (Expression_RecordConstruction _range _name _recordExpressionBindings) = (sem_Expression_RecordConstruction _range _name (sem_RecordExpressionBindings _recordExpressionBindings)) sem_Expression (Expression_RecordUpdate _range _expression _recordExpressionBindings) = (sem_Expression_RecordUpdate _range (sem_Expression _expression) (sem_RecordExpressionBindings _recordExpressionBindings)) sem_Expression (Expression_RowRecordUpdate _range _expression _rowRecordExpressionUpdates) = (sem_Expression_RowRecordUpdate _range (sem_Expression _expression) (sem_RowRecordExpressionUpdates _rowRecordExpressionUpdates)) sem_Expression (Expression_RowRecordEmpty _range) = (sem_Expression_RowRecordEmpty _range) sem_Expression (Expression_RowRecordSelect _range _expression _name) = (sem_Expression_RowRecordSelect _range (sem_Expression _expression) _name) sem_Expression (Expression_Do _range _statements) = (sem_Expression_Do _range (sem_Statements _statements)) sem_Expression (Expression_ImplicitApplication _range _function _arguments) = (sem_Expression_ImplicitApplication _range (sem_Expression _function) (sem_ContextedExpressions _arguments)) sem_Expression (Expression_ImplicitLambda _range _patterns _expression) = (sem_Expression_ImplicitLambda _range (sem_ContextedPatterns _patterns) (sem_Expression _expression)) -- semantic domain type T_Expression = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( Name,UID,([HsName])) sem_Expression_Literal :: Range -> T_Literal -> T_Expression sem_Expression_Literal range_ literal_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _literalOgUniq :: UID _literalOnmLev :: NmLev _literalOtopInstanceNmL :: ([HsName]) _literalIgUniq :: UID _literalItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _literalIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _literalItopInstanceNmL -- copy rule (down) _literalOgUniq = _lhsIgUniq -- copy rule (down) _literalOnmLev = _lhsInmLev -- copy rule (down) _literalOtopInstanceNmL = _lhsItopInstanceNmL ( _literalIgUniq,_literalItopInstanceNmL) | True = literal_ _literalOgUniq _literalOnmLev _literalOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_Variable :: Range -> Name -> T_Expression sem_Expression_Variable range_ name_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_Constructor :: Range -> Name -> T_Expression sem_Expression_Constructor range_ name_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 270, column 9) _lhsOconNm = name_ -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_TupleConstructor :: Range -> Int -> T_Expression sem_Expression_TupleConstructor range_ arity_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_Parenthesized :: Range -> T_Expression -> T_Expression sem_Expression_Parenthesized range_ expression_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _expressionIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _expressionItopInstanceNmL -- copy rule (down) _expressionOgUniq = _lhsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionOnmLev = _lhsInmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (down) _expressionOtopInstanceNmL = _lhsItopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_NormalApplication :: Range -> T_Expression -> T_Expressions -> T_Expression sem_Expression_NormalApplication range_ function_ arguments_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _functionOgUniq :: UID _functionOmoduleNm :: HsName _functionOnmLev :: NmLev _functionOopts :: EHCOpts _functionOtopInstanceNmL :: ([HsName]) _argumentsOgUniq :: UID _argumentsOmoduleNm :: HsName _argumentsOnmLev :: NmLev _argumentsOopts :: EHCOpts _argumentsOtopInstanceNmL :: ([HsName]) _functionIconNm :: Name _functionIgUniq :: UID _functionItopInstanceNmL :: ([HsName]) _argumentsIgUniq :: UID _argumentsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _argumentsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _argumentsItopInstanceNmL -- copy rule (down) _functionOgUniq = _lhsIgUniq -- copy rule (down) _functionOmoduleNm = _lhsImoduleNm -- copy rule (down) _functionOnmLev = _lhsInmLev -- copy rule (down) _functionOopts = _lhsIopts -- copy rule (down) _functionOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _argumentsOgUniq = _functionIgUniq -- copy rule (down) _argumentsOmoduleNm = _lhsImoduleNm -- copy rule (down) _argumentsOnmLev = _lhsInmLev -- copy rule (down) _argumentsOopts = _lhsIopts -- copy rule (chain) _argumentsOtopInstanceNmL = _functionItopInstanceNmL ( _functionIconNm,_functionIgUniq,_functionItopInstanceNmL) | True = function_ _functionOgUniq _functionOmoduleNm _functionOnmLev _functionOopts _functionOtopInstanceNmL ( _argumentsIgUniq,_argumentsItopInstanceNmL) | True = arguments_ _argumentsOgUniq _argumentsOmoduleNm _argumentsOnmLev _argumentsOopts _argumentsOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_SectionApplication :: Range -> T_MaybeExpression -> T_Expression -> T_MaybeExpression -> T_Expression sem_Expression_SectionApplication range_ leftExpression_ operator_ rightExpression_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _leftExpressionOgUniq :: UID _leftExpressionOmoduleNm :: HsName _leftExpressionOnmLev :: NmLev _leftExpressionOopts :: EHCOpts _leftExpressionOtopInstanceNmL :: ([HsName]) _operatorOgUniq :: UID _operatorOmoduleNm :: HsName _operatorOnmLev :: NmLev _operatorOopts :: EHCOpts _operatorOtopInstanceNmL :: ([HsName]) _rightExpressionOgUniq :: UID _rightExpressionOmoduleNm :: HsName _rightExpressionOnmLev :: NmLev _rightExpressionOopts :: EHCOpts _rightExpressionOtopInstanceNmL :: ([HsName]) _leftExpressionIgUniq :: UID _leftExpressionItopInstanceNmL :: ([HsName]) _operatorIconNm :: Name _operatorIgUniq :: UID _operatorItopInstanceNmL :: ([HsName]) _rightExpressionIgUniq :: UID _rightExpressionItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _rightExpressionIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _rightExpressionItopInstanceNmL -- copy rule (down) _leftExpressionOgUniq = _lhsIgUniq -- copy rule (down) _leftExpressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _leftExpressionOnmLev = _lhsInmLev -- copy rule (down) _leftExpressionOopts = _lhsIopts -- copy rule (down) _leftExpressionOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _operatorOgUniq = _leftExpressionIgUniq -- copy rule (down) _operatorOmoduleNm = _lhsImoduleNm -- copy rule (down) _operatorOnmLev = _lhsInmLev -- copy rule (down) _operatorOopts = _lhsIopts -- copy rule (chain) _operatorOtopInstanceNmL = _leftExpressionItopInstanceNmL -- copy rule (chain) _rightExpressionOgUniq = _operatorIgUniq -- copy rule (down) _rightExpressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _rightExpressionOnmLev = _lhsInmLev -- copy rule (down) _rightExpressionOopts = _lhsIopts -- copy rule (chain) _rightExpressionOtopInstanceNmL = _operatorItopInstanceNmL ( _leftExpressionIgUniq,_leftExpressionItopInstanceNmL) | True = leftExpression_ _leftExpressionOgUniq _leftExpressionOmoduleNm _leftExpressionOnmLev _leftExpressionOopts _leftExpressionOtopInstanceNmL ( _operatorIconNm,_operatorIgUniq,_operatorItopInstanceNmL) | True = operator_ _operatorOgUniq _operatorOmoduleNm _operatorOnmLev _operatorOopts _operatorOtopInstanceNmL ( _rightExpressionIgUniq,_rightExpressionItopInstanceNmL) | True = rightExpression_ _rightExpressionOgUniq _rightExpressionOmoduleNm _rightExpressionOnmLev _rightExpressionOopts _rightExpressionOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_InfixApplication :: Range -> T_Expression -> T_Expression -> T_Expression -> T_Expression sem_Expression_InfixApplication range_ leftExpression_ operator_ rightExpression_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _leftExpressionOgUniq :: UID _leftExpressionOmoduleNm :: HsName _leftExpressionOnmLev :: NmLev _leftExpressionOopts :: EHCOpts _leftExpressionOtopInstanceNmL :: ([HsName]) _operatorOgUniq :: UID _operatorOmoduleNm :: HsName _operatorOnmLev :: NmLev _operatorOopts :: EHCOpts _operatorOtopInstanceNmL :: ([HsName]) _rightExpressionOgUniq :: UID _rightExpressionOmoduleNm :: HsName _rightExpressionOnmLev :: NmLev _rightExpressionOopts :: EHCOpts _rightExpressionOtopInstanceNmL :: ([HsName]) _leftExpressionIconNm :: Name _leftExpressionIgUniq :: UID _leftExpressionItopInstanceNmL :: ([HsName]) _operatorIconNm :: Name _operatorIgUniq :: UID _operatorItopInstanceNmL :: ([HsName]) _rightExpressionIconNm :: Name _rightExpressionIgUniq :: UID _rightExpressionItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _rightExpressionIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _rightExpressionItopInstanceNmL -- copy rule (down) _leftExpressionOgUniq = _lhsIgUniq -- copy rule (down) _leftExpressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _leftExpressionOnmLev = _lhsInmLev -- copy rule (down) _leftExpressionOopts = _lhsIopts -- copy rule (down) _leftExpressionOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _operatorOgUniq = _leftExpressionIgUniq -- copy rule (down) _operatorOmoduleNm = _lhsImoduleNm -- copy rule (down) _operatorOnmLev = _lhsInmLev -- copy rule (down) _operatorOopts = _lhsIopts -- copy rule (chain) _operatorOtopInstanceNmL = _leftExpressionItopInstanceNmL -- copy rule (chain) _rightExpressionOgUniq = _operatorIgUniq -- copy rule (down) _rightExpressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _rightExpressionOnmLev = _lhsInmLev -- copy rule (down) _rightExpressionOopts = _lhsIopts -- copy rule (chain) _rightExpressionOtopInstanceNmL = _operatorItopInstanceNmL ( _leftExpressionIconNm,_leftExpressionIgUniq,_leftExpressionItopInstanceNmL) | True = leftExpression_ _leftExpressionOgUniq _leftExpressionOmoduleNm _leftExpressionOnmLev _leftExpressionOopts _leftExpressionOtopInstanceNmL ( _operatorIconNm,_operatorIgUniq,_operatorItopInstanceNmL) | True = operator_ _operatorOgUniq _operatorOmoduleNm _operatorOnmLev _operatorOopts _operatorOtopInstanceNmL ( _rightExpressionIconNm,_rightExpressionIgUniq,_rightExpressionItopInstanceNmL) | True = rightExpression_ _rightExpressionOgUniq _rightExpressionOmoduleNm _rightExpressionOnmLev _rightExpressionOopts _rightExpressionOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_InfixApplicationChainTop :: Range -> T_Expression -> T_Expression sem_Expression_InfixApplicationChainTop range_ expression_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _expressionIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _expressionItopInstanceNmL -- copy rule (down) _expressionOgUniq = _lhsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionOnmLev = _lhsInmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (down) _expressionOtopInstanceNmL = _lhsItopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_Lambda :: Range -> T_Patterns -> T_Expression -> T_Expression sem_Expression_Lambda range_ patterns_ expression_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _patternsOgUniq :: UID _patternsOmoduleNm :: HsName _patternsOnmLev :: NmLev _patternsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _patternsIgUniq :: UID _patternsIidOccDefs :: ([IdOcc]) _patternsImainValExists :: Bool _patternsItopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 50, column 9) _nmLev = _lhsInmLev + 1 -- copy rule (up) _lhsOgUniq = _expressionIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _expressionItopInstanceNmL -- copy rule (down) _patternsOgUniq = _lhsIgUniq -- copy rule (down) _patternsOmoduleNm = _lhsImoduleNm -- copy rule (from local) _patternsOnmLev = _nmLev -- copy rule (down) _patternsOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _expressionOgUniq = _patternsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (from local) _expressionOnmLev = _nmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (chain) _expressionOtopInstanceNmL = _patternsItopInstanceNmL ( _patternsIgUniq,_patternsIidOccDefs,_patternsImainValExists,_patternsItopInstanceNmL) | True = patterns_ _patternsOgUniq _patternsOmoduleNm _patternsOnmLev _patternsOtopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_Let :: Range -> Bool -> T_Declarations -> T_Expression -> T_Expression sem_Expression_Let range_ isStrict_ declarations_ expression_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _declarationsOgUniq :: UID _declarationsOmoduleNm :: HsName _declarationsOnmLev :: NmLev _declarationsOopts :: EHCOpts _declarationsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _declarationsIgUniq :: UID _declarationsIgathPragmas :: (Set.Set Pragma.Pragma) _declarationsIidOccDefs :: ([IdOcc]) _declarationsImainValExists :: Bool _declarationsImodDefsRel :: ModEntRel _declarationsImodHideDefsRel :: ModEntRel _declarationsItopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 50, column 9) _nmLev = _lhsInmLev + 1 -- copy rule (up) _lhsOgUniq = _expressionIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _expressionItopInstanceNmL -- copy rule (down) _declarationsOgUniq = _lhsIgUniq -- copy rule (down) _declarationsOmoduleNm = _lhsImoduleNm -- copy rule (from local) _declarationsOnmLev = _nmLev -- copy rule (down) _declarationsOopts = _lhsIopts -- copy rule (down) _declarationsOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _expressionOgUniq = _declarationsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (from local) _expressionOnmLev = _nmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (chain) _expressionOtopInstanceNmL = _declarationsItopInstanceNmL ( _declarationsIgUniq,_declarationsIgathPragmas,_declarationsIidOccDefs,_declarationsImainValExists,_declarationsImodDefsRel,_declarationsImodHideDefsRel,_declarationsItopInstanceNmL) | True = declarations_ _declarationsOgUniq _declarationsOmoduleNm _declarationsOnmLev _declarationsOopts _declarationsOtopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_Tuple :: Range -> T_Expressions -> T_Expression sem_Expression_Tuple range_ expressions_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _expressionsOgUniq :: UID _expressionsOmoduleNm :: HsName _expressionsOnmLev :: NmLev _expressionsOopts :: EHCOpts _expressionsOtopInstanceNmL :: ([HsName]) _expressionsIgUniq :: UID _expressionsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _expressionsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _expressionsItopInstanceNmL -- copy rule (down) _expressionsOgUniq = _lhsIgUniq -- copy rule (down) _expressionsOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionsOnmLev = _lhsInmLev -- copy rule (down) _expressionsOopts = _lhsIopts -- copy rule (down) _expressionsOtopInstanceNmL = _lhsItopInstanceNmL ( _expressionsIgUniq,_expressionsItopInstanceNmL) | True = expressions_ _expressionsOgUniq _expressionsOmoduleNm _expressionsOnmLev _expressionsOopts _expressionsOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_Typed :: Range -> T_Expression -> T_Type -> T_Expression sem_Expression_Typed range_ expression_ type_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _typeOnmLev :: NmLev _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOtopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 52, column 9) _typeOnmLev = _lhsInmLev + 1 -- copy rule (up) _lhsOgUniq = _typeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typeItopInstanceNmL -- copy rule (down) _expressionOgUniq = _lhsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionOnmLev = _lhsInmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (down) _expressionOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _typeOgUniq = _expressionIgUniq -- copy rule (chain) _typeOtopInstanceNmL = _expressionItopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_Negate :: Range -> T_Expression -> T_Expression sem_Expression_Negate range_ expression_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _expressionIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _expressionItopInstanceNmL -- copy rule (down) _expressionOgUniq = _lhsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionOnmLev = _lhsInmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (down) _expressionOtopInstanceNmL = _lhsItopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_Annotate :: Range -> T_ExpressionAnnotation -> T_Expression -> T_Expression sem_Expression_Annotate range_ annotation_ expression_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _annotationOgUniq :: UID _annotationOmoduleNm :: HsName _annotationOnmLev :: NmLev _annotationOopts :: EHCOpts _annotationOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _annotationIgUniq :: UID _annotationItopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _expressionIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _expressionItopInstanceNmL -- copy rule (down) _annotationOgUniq = _lhsIgUniq -- copy rule (down) _annotationOmoduleNm = _lhsImoduleNm -- copy rule (down) _annotationOnmLev = _lhsInmLev -- copy rule (down) _annotationOopts = _lhsIopts -- copy rule (down) _annotationOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _expressionOgUniq = _annotationIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionOnmLev = _lhsInmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (chain) _expressionOtopInstanceNmL = _annotationItopInstanceNmL ( _annotationIgUniq,_annotationItopInstanceNmL) | True = annotation_ _annotationOgUniq _annotationOmoduleNm _annotationOnmLev _annotationOopts _annotationOtopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_ImpredicativeApplication :: Range -> T_Expression -> T_Expressions -> T_Expression sem_Expression_ImpredicativeApplication range_ function_ arguments_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _functionOgUniq :: UID _functionOmoduleNm :: HsName _functionOnmLev :: NmLev _functionOopts :: EHCOpts _functionOtopInstanceNmL :: ([HsName]) _argumentsOgUniq :: UID _argumentsOmoduleNm :: HsName _argumentsOnmLev :: NmLev _argumentsOopts :: EHCOpts _argumentsOtopInstanceNmL :: ([HsName]) _functionIconNm :: Name _functionIgUniq :: UID _functionItopInstanceNmL :: ([HsName]) _argumentsIgUniq :: UID _argumentsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _argumentsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _argumentsItopInstanceNmL -- copy rule (down) _functionOgUniq = _lhsIgUniq -- copy rule (down) _functionOmoduleNm = _lhsImoduleNm -- copy rule (down) _functionOnmLev = _lhsInmLev -- copy rule (down) _functionOopts = _lhsIopts -- copy rule (down) _functionOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _argumentsOgUniq = _functionIgUniq -- copy rule (down) _argumentsOmoduleNm = _lhsImoduleNm -- copy rule (down) _argumentsOnmLev = _lhsInmLev -- copy rule (down) _argumentsOopts = _lhsIopts -- copy rule (chain) _argumentsOtopInstanceNmL = _functionItopInstanceNmL ( _functionIconNm,_functionIgUniq,_functionItopInstanceNmL) | True = function_ _functionOgUniq _functionOmoduleNm _functionOnmLev _functionOopts _functionOtopInstanceNmL ( _argumentsIgUniq,_argumentsItopInstanceNmL) | True = arguments_ _argumentsOgUniq _argumentsOmoduleNm _argumentsOnmLev _argumentsOopts _argumentsOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_If :: Range -> T_Expression -> T_Expression -> T_Expression -> T_Expression sem_Expression_If range_ guardExpression_ thenExpression_ elseExpression_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _guardExpressionOgUniq :: UID _guardExpressionOmoduleNm :: HsName _guardExpressionOnmLev :: NmLev _guardExpressionOopts :: EHCOpts _guardExpressionOtopInstanceNmL :: ([HsName]) _thenExpressionOgUniq :: UID _thenExpressionOmoduleNm :: HsName _thenExpressionOnmLev :: NmLev _thenExpressionOopts :: EHCOpts _thenExpressionOtopInstanceNmL :: ([HsName]) _elseExpressionOgUniq :: UID _elseExpressionOmoduleNm :: HsName _elseExpressionOnmLev :: NmLev _elseExpressionOopts :: EHCOpts _elseExpressionOtopInstanceNmL :: ([HsName]) _guardExpressionIconNm :: Name _guardExpressionIgUniq :: UID _guardExpressionItopInstanceNmL :: ([HsName]) _thenExpressionIconNm :: Name _thenExpressionIgUniq :: UID _thenExpressionItopInstanceNmL :: ([HsName]) _elseExpressionIconNm :: Name _elseExpressionIgUniq :: UID _elseExpressionItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _elseExpressionIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _elseExpressionItopInstanceNmL -- copy rule (down) _guardExpressionOgUniq = _lhsIgUniq -- copy rule (down) _guardExpressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _guardExpressionOnmLev = _lhsInmLev -- copy rule (down) _guardExpressionOopts = _lhsIopts -- copy rule (down) _guardExpressionOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _thenExpressionOgUniq = _guardExpressionIgUniq -- copy rule (down) _thenExpressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _thenExpressionOnmLev = _lhsInmLev -- copy rule (down) _thenExpressionOopts = _lhsIopts -- copy rule (chain) _thenExpressionOtopInstanceNmL = _guardExpressionItopInstanceNmL -- copy rule (chain) _elseExpressionOgUniq = _thenExpressionIgUniq -- copy rule (down) _elseExpressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _elseExpressionOnmLev = _lhsInmLev -- copy rule (down) _elseExpressionOopts = _lhsIopts -- copy rule (chain) _elseExpressionOtopInstanceNmL = _thenExpressionItopInstanceNmL ( _guardExpressionIconNm,_guardExpressionIgUniq,_guardExpressionItopInstanceNmL) | True = guardExpression_ _guardExpressionOgUniq _guardExpressionOmoduleNm _guardExpressionOnmLev _guardExpressionOopts _guardExpressionOtopInstanceNmL ( _thenExpressionIconNm,_thenExpressionIgUniq,_thenExpressionItopInstanceNmL) | True = thenExpression_ _thenExpressionOgUniq _thenExpressionOmoduleNm _thenExpressionOnmLev _thenExpressionOopts _thenExpressionOtopInstanceNmL ( _elseExpressionIconNm,_elseExpressionIgUniq,_elseExpressionItopInstanceNmL) | True = elseExpression_ _elseExpressionOgUniq _elseExpressionOmoduleNm _elseExpressionOnmLev _elseExpressionOopts _elseExpressionOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_Case :: Range -> T_Expression -> T_Alternatives -> T_Expression sem_Expression_Case range_ expression_ alternatives_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _alternativesOgUniq :: UID _alternativesOmoduleNm :: HsName _alternativesOnmLev :: NmLev _alternativesOopts :: EHCOpts _alternativesOtopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) _alternativesIgUniq :: UID _alternativesItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _alternativesIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _alternativesItopInstanceNmL -- copy rule (down) _expressionOgUniq = _lhsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionOnmLev = _lhsInmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (down) _expressionOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _alternativesOgUniq = _expressionIgUniq -- copy rule (down) _alternativesOmoduleNm = _lhsImoduleNm -- copy rule (down) _alternativesOnmLev = _lhsInmLev -- copy rule (down) _alternativesOopts = _lhsIopts -- copy rule (chain) _alternativesOtopInstanceNmL = _expressionItopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL ( _alternativesIgUniq,_alternativesItopInstanceNmL) | True = alternatives_ _alternativesOgUniq _alternativesOmoduleNm _alternativesOnmLev _alternativesOopts _alternativesOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_List :: Range -> T_Expressions -> T_Expression sem_Expression_List range_ expressions_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _expressionsOgUniq :: UID _expressionsOmoduleNm :: HsName _expressionsOnmLev :: NmLev _expressionsOopts :: EHCOpts _expressionsOtopInstanceNmL :: ([HsName]) _expressionsIgUniq :: UID _expressionsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _expressionsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _expressionsItopInstanceNmL -- copy rule (down) _expressionsOgUniq = _lhsIgUniq -- copy rule (down) _expressionsOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionsOnmLev = _lhsInmLev -- copy rule (down) _expressionsOopts = _lhsIopts -- copy rule (down) _expressionsOtopInstanceNmL = _lhsItopInstanceNmL ( _expressionsIgUniq,_expressionsItopInstanceNmL) | True = expressions_ _expressionsOgUniq _expressionsOmoduleNm _expressionsOnmLev _expressionsOopts _expressionsOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_Enum :: Range -> T_Expression -> T_MaybeExpression -> T_MaybeExpression -> T_Expression sem_Expression_Enum range_ from_ then_ to_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _fromOgUniq :: UID _fromOmoduleNm :: HsName _fromOnmLev :: NmLev _fromOopts :: EHCOpts _fromOtopInstanceNmL :: ([HsName]) _thenOgUniq :: UID _thenOmoduleNm :: HsName _thenOnmLev :: NmLev _thenOopts :: EHCOpts _thenOtopInstanceNmL :: ([HsName]) _toOgUniq :: UID _toOmoduleNm :: HsName _toOnmLev :: NmLev _toOopts :: EHCOpts _toOtopInstanceNmL :: ([HsName]) _fromIconNm :: Name _fromIgUniq :: UID _fromItopInstanceNmL :: ([HsName]) _thenIgUniq :: UID _thenItopInstanceNmL :: ([HsName]) _toIgUniq :: UID _toItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _toIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _toItopInstanceNmL -- copy rule (down) _fromOgUniq = _lhsIgUniq -- copy rule (down) _fromOmoduleNm = _lhsImoduleNm -- copy rule (down) _fromOnmLev = _lhsInmLev -- copy rule (down) _fromOopts = _lhsIopts -- copy rule (down) _fromOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _thenOgUniq = _fromIgUniq -- copy rule (down) _thenOmoduleNm = _lhsImoduleNm -- copy rule (down) _thenOnmLev = _lhsInmLev -- copy rule (down) _thenOopts = _lhsIopts -- copy rule (chain) _thenOtopInstanceNmL = _fromItopInstanceNmL -- copy rule (chain) _toOgUniq = _thenIgUniq -- copy rule (down) _toOmoduleNm = _lhsImoduleNm -- copy rule (down) _toOnmLev = _lhsInmLev -- copy rule (down) _toOopts = _lhsIopts -- copy rule (chain) _toOtopInstanceNmL = _thenItopInstanceNmL ( _fromIconNm,_fromIgUniq,_fromItopInstanceNmL) | True = from_ _fromOgUniq _fromOmoduleNm _fromOnmLev _fromOopts _fromOtopInstanceNmL ( _thenIgUniq,_thenItopInstanceNmL) | True = then_ _thenOgUniq _thenOmoduleNm _thenOnmLev _thenOopts _thenOtopInstanceNmL ( _toIgUniq,_toItopInstanceNmL) | True = to_ _toOgUniq _toOmoduleNm _toOnmLev _toOopts _toOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_Comprehension :: Range -> T_Expression -> T_Qualifiers -> T_Expression sem_Expression_Comprehension range_ expression_ qualifiers_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _qualifiersOgUniq :: UID _qualifiersOmoduleNm :: HsName _qualifiersOnmLev :: NmLev _qualifiersOopts :: EHCOpts _qualifiersOtopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) _qualifiersIgUniq :: UID _qualifiersItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _qualifiersIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _qualifiersItopInstanceNmL -- copy rule (down) _expressionOgUniq = _lhsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionOnmLev = _lhsInmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (down) _expressionOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _qualifiersOgUniq = _expressionIgUniq -- copy rule (down) _qualifiersOmoduleNm = _lhsImoduleNm -- copy rule (down) _qualifiersOnmLev = _lhsInmLev -- copy rule (down) _qualifiersOopts = _lhsIopts -- copy rule (chain) _qualifiersOtopInstanceNmL = _expressionItopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL ( _qualifiersIgUniq,_qualifiersItopInstanceNmL) | True = qualifiers_ _qualifiersOgUniq _qualifiersOmoduleNm _qualifiersOnmLev _qualifiersOopts _qualifiersOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_RecordConstruction :: Range -> Name -> T_RecordExpressionBindings -> T_Expression sem_Expression_RecordConstruction range_ name_ recordExpressionBindings_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _recordExpressionBindingsOgUniq :: UID _recordExpressionBindingsOmoduleNm :: HsName _recordExpressionBindingsOnmLev :: NmLev _recordExpressionBindingsOopts :: EHCOpts _recordExpressionBindingsOtopInstanceNmL :: ([HsName]) _recordExpressionBindingsIgUniq :: UID _recordExpressionBindingsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _recordExpressionBindingsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _recordExpressionBindingsItopInstanceNmL -- copy rule (down) _recordExpressionBindingsOgUniq = _lhsIgUniq -- copy rule (down) _recordExpressionBindingsOmoduleNm = _lhsImoduleNm -- copy rule (down) _recordExpressionBindingsOnmLev = _lhsInmLev -- copy rule (down) _recordExpressionBindingsOopts = _lhsIopts -- copy rule (down) _recordExpressionBindingsOtopInstanceNmL = _lhsItopInstanceNmL ( _recordExpressionBindingsIgUniq,_recordExpressionBindingsItopInstanceNmL) | True = recordExpressionBindings_ _recordExpressionBindingsOgUniq _recordExpressionBindingsOmoduleNm _recordExpressionBindingsOnmLev _recordExpressionBindingsOopts _recordExpressionBindingsOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_RecordUpdate :: Range -> T_Expression -> T_RecordExpressionBindings -> T_Expression sem_Expression_RecordUpdate range_ expression_ recordExpressionBindings_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _recordExpressionBindingsOgUniq :: UID _recordExpressionBindingsOmoduleNm :: HsName _recordExpressionBindingsOnmLev :: NmLev _recordExpressionBindingsOopts :: EHCOpts _recordExpressionBindingsOtopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) _recordExpressionBindingsIgUniq :: UID _recordExpressionBindingsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _recordExpressionBindingsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _recordExpressionBindingsItopInstanceNmL -- copy rule (down) _expressionOgUniq = _lhsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionOnmLev = _lhsInmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (down) _expressionOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _recordExpressionBindingsOgUniq = _expressionIgUniq -- copy rule (down) _recordExpressionBindingsOmoduleNm = _lhsImoduleNm -- copy rule (down) _recordExpressionBindingsOnmLev = _lhsInmLev -- copy rule (down) _recordExpressionBindingsOopts = _lhsIopts -- copy rule (chain) _recordExpressionBindingsOtopInstanceNmL = _expressionItopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL ( _recordExpressionBindingsIgUniq,_recordExpressionBindingsItopInstanceNmL) | True = recordExpressionBindings_ _recordExpressionBindingsOgUniq _recordExpressionBindingsOmoduleNm _recordExpressionBindingsOnmLev _recordExpressionBindingsOopts _recordExpressionBindingsOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_RowRecordUpdate :: Range -> T_Expression -> T_RowRecordExpressionUpdates -> T_Expression sem_Expression_RowRecordUpdate range_ expression_ rowRecordExpressionUpdates_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _rowRecordExpressionUpdatesOgUniq :: UID _rowRecordExpressionUpdatesOmoduleNm :: HsName _rowRecordExpressionUpdatesOnmLev :: NmLev _rowRecordExpressionUpdatesOopts :: EHCOpts _rowRecordExpressionUpdatesOtopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) _rowRecordExpressionUpdatesIgUniq :: UID _rowRecordExpressionUpdatesItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _rowRecordExpressionUpdatesIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _rowRecordExpressionUpdatesItopInstanceNmL -- copy rule (down) _expressionOgUniq = _lhsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionOnmLev = _lhsInmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (down) _expressionOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _rowRecordExpressionUpdatesOgUniq = _expressionIgUniq -- copy rule (down) _rowRecordExpressionUpdatesOmoduleNm = _lhsImoduleNm -- copy rule (down) _rowRecordExpressionUpdatesOnmLev = _lhsInmLev -- copy rule (down) _rowRecordExpressionUpdatesOopts = _lhsIopts -- copy rule (chain) _rowRecordExpressionUpdatesOtopInstanceNmL = _expressionItopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL ( _rowRecordExpressionUpdatesIgUniq,_rowRecordExpressionUpdatesItopInstanceNmL) | True = rowRecordExpressionUpdates_ _rowRecordExpressionUpdatesOgUniq _rowRecordExpressionUpdatesOmoduleNm _rowRecordExpressionUpdatesOnmLev _rowRecordExpressionUpdatesOopts _rowRecordExpressionUpdatesOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_RowRecordEmpty :: Range -> T_Expression sem_Expression_RowRecordEmpty range_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_RowRecordSelect :: Range -> T_Expression -> Name -> T_Expression sem_Expression_RowRecordSelect range_ expression_ name_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _expressionIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _expressionItopInstanceNmL -- copy rule (down) _expressionOgUniq = _lhsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionOnmLev = _lhsInmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (down) _expressionOtopInstanceNmL = _lhsItopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_Do :: Range -> T_Statements -> T_Expression sem_Expression_Do range_ statements_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _statementsOgUniq :: UID _statementsOmoduleNm :: HsName _statementsOnmLev :: NmLev _statementsOopts :: EHCOpts _statementsOtopInstanceNmL :: ([HsName]) _statementsIgUniq :: UID _statementsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _statementsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _statementsItopInstanceNmL -- copy rule (down) _statementsOgUniq = _lhsIgUniq -- copy rule (down) _statementsOmoduleNm = _lhsImoduleNm -- copy rule (down) _statementsOnmLev = _lhsInmLev -- copy rule (down) _statementsOopts = _lhsIopts -- copy rule (down) _statementsOtopInstanceNmL = _lhsItopInstanceNmL ( _statementsIgUniq,_statementsItopInstanceNmL) | True = statements_ _statementsOgUniq _statementsOmoduleNm _statementsOnmLev _statementsOopts _statementsOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_ImplicitApplication :: Range -> T_Expression -> T_ContextedExpressions -> T_Expression sem_Expression_ImplicitApplication range_ function_ arguments_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _functionOgUniq :: UID _functionOmoduleNm :: HsName _functionOnmLev :: NmLev _functionOopts :: EHCOpts _functionOtopInstanceNmL :: ([HsName]) _argumentsOgUniq :: UID _argumentsOmoduleNm :: HsName _argumentsOnmLev :: NmLev _argumentsOopts :: EHCOpts _argumentsOtopInstanceNmL :: ([HsName]) _functionIconNm :: Name _functionIgUniq :: UID _functionItopInstanceNmL :: ([HsName]) _argumentsIgUniq :: UID _argumentsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _argumentsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _argumentsItopInstanceNmL -- copy rule (down) _functionOgUniq = _lhsIgUniq -- copy rule (down) _functionOmoduleNm = _lhsImoduleNm -- copy rule (down) _functionOnmLev = _lhsInmLev -- copy rule (down) _functionOopts = _lhsIopts -- copy rule (down) _functionOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _argumentsOgUniq = _functionIgUniq -- copy rule (down) _argumentsOmoduleNm = _lhsImoduleNm -- copy rule (down) _argumentsOnmLev = _lhsInmLev -- copy rule (down) _argumentsOopts = _lhsIopts -- copy rule (chain) _argumentsOtopInstanceNmL = _functionItopInstanceNmL ( _functionIconNm,_functionIgUniq,_functionItopInstanceNmL) | True = function_ _functionOgUniq _functionOmoduleNm _functionOnmLev _functionOopts _functionOtopInstanceNmL ( _argumentsIgUniq,_argumentsItopInstanceNmL) | True = arguments_ _argumentsOgUniq _argumentsOmoduleNm _argumentsOnmLev _argumentsOopts _argumentsOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expression_ImplicitLambda :: Range -> T_ContextedPatterns -> T_Expression -> T_Expression sem_Expression_ImplicitLambda range_ patterns_ expression_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _patternsOgUniq :: UID _patternsOmoduleNm :: HsName _patternsOnmLev :: NmLev _patternsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _patternsIgUniq :: UID _patternsIidOccDefs :: ([IdOcc]) _patternsItopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 272, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _expressionIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _expressionItopInstanceNmL -- copy rule (down) _patternsOgUniq = _lhsIgUniq -- copy rule (down) _patternsOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternsOnmLev = _lhsInmLev -- copy rule (down) _patternsOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _expressionOgUniq = _patternsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionOnmLev = _lhsInmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (chain) _expressionOtopInstanceNmL = _patternsItopInstanceNmL ( _patternsIgUniq,_patternsIidOccDefs,_patternsItopInstanceNmL) | True = patterns_ _patternsOgUniq _patternsOmoduleNm _patternsOnmLev _patternsOtopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) -- ExpressionAnnotation ---------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Empty: -} -- cata sem_ExpressionAnnotation :: ExpressionAnnotation -> T_ExpressionAnnotation sem_ExpressionAnnotation (ExpressionAnnotation_Empty) = (sem_ExpressionAnnotation_Empty) -- semantic domain type T_ExpressionAnnotation = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([HsName])) sem_ExpressionAnnotation_Empty :: T_ExpressionAnnotation sem_ExpressionAnnotation_Empty = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- Expressions ------------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Cons: child hd : Expression child tl : Expressions alternative Nil: -} -- cata sem_Expressions :: Expressions -> T_Expressions sem_Expressions list = (Prelude.foldr sem_Expressions_Cons sem_Expressions_Nil (Prelude.map sem_Expression list)) -- semantic domain type T_Expressions = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([HsName])) sem_Expressions_Cons :: T_Expression -> T_Expressions -> T_Expressions sem_Expressions_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOopts :: EHCOpts _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOopts :: EHCOpts _tlOtopInstanceNmL :: ([HsName]) _hdIconNm :: Name _hdIgUniq :: UID _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOopts = _lhsIopts -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (down) _tlOopts = _lhsIopts -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIconNm,_hdIgUniq,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOopts _hdOtopInstanceNmL ( _tlIgUniq,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOopts _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_Expressions_Nil :: T_Expressions sem_Expressions_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- FieldDeclaration -------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: fldrefnames : Names alternatives: alternative FieldDeclaration: child range : {Range} child names : {Names} child type : Type visit 0: local fldrefnames : _ local nmLev : _ -} -- cata sem_FieldDeclaration :: FieldDeclaration -> T_FieldDeclaration sem_FieldDeclaration (FieldDeclaration_FieldDeclaration _range _names _type) = (sem_FieldDeclaration_FieldDeclaration _range _names (sem_Type _type)) -- semantic domain type T_FieldDeclaration = UID -> HsName -> NmLev -> ([HsName]) -> ( Names,UID,([HsName])) sem_FieldDeclaration_FieldDeclaration :: Range -> Names -> T_Type -> T_FieldDeclaration sem_FieldDeclaration_FieldDeclaration range_ names_ type_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOfldrefnames :: Names _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 83, column 9) _fldrefnames = map (hsnSetLevQual _lhsInmLev _lhsImoduleNm) names_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 42, column 9) _nmLev = _lhsInmLev + 1 -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 78, column 44) _lhsOfldrefnames = _fldrefnames -- copy rule (up) _lhsOgUniq = _typeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typeItopInstanceNmL -- copy rule (down) _typeOgUniq = _lhsIgUniq -- copy rule (from local) _typeOnmLev = _nmLev -- copy rule (down) _typeOtopInstanceNmL = _lhsItopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL in ( _lhsOfldrefnames,_lhsOgUniq,_lhsOtopInstanceNmL))) -- FieldDeclarations ------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: fldrefnames : Names alternatives: alternative Cons: child hd : FieldDeclaration child tl : FieldDeclarations alternative Nil: -} -- cata sem_FieldDeclarations :: FieldDeclarations -> T_FieldDeclarations sem_FieldDeclarations list = (Prelude.foldr sem_FieldDeclarations_Cons sem_FieldDeclarations_Nil (Prelude.map sem_FieldDeclaration list)) -- semantic domain type T_FieldDeclarations = UID -> HsName -> NmLev -> ([HsName]) -> ( Names,UID,([HsName])) sem_FieldDeclarations_Cons :: T_FieldDeclaration -> T_FieldDeclarations -> T_FieldDeclarations sem_FieldDeclarations_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOfldrefnames :: Names _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOtopInstanceNmL :: ([HsName]) _hdIfldrefnames :: Names _hdIgUniq :: UID _hdItopInstanceNmL :: ([HsName]) _tlIfldrefnames :: Names _tlIgUniq :: UID _tlItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 78, column 44) _lhsOfldrefnames = _hdIfldrefnames ++ _tlIfldrefnames -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIfldrefnames,_hdIgUniq,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOtopInstanceNmL ( _tlIfldrefnames,_tlIgUniq,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOtopInstanceNmL in ( _lhsOfldrefnames,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_FieldDeclarations_Nil :: T_FieldDeclarations sem_FieldDeclarations_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOfldrefnames :: Names _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 78, column 44) _lhsOfldrefnames = [] -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOfldrefnames,_lhsOgUniq,_lhsOtopInstanceNmL))) -- FunctionBinding --------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: idOccDefs : [IdOcc] mainValExists : Bool alternatives: alternative FunctionBinding: child range : {Range} child lefthandside : LeftHandSide child righthandside : RightHandSide visit 0: local idOccDef : _ local idOccDefs : _ local nmLev : _ local nmLevFun : _ -} -- cata sem_FunctionBinding :: FunctionBinding -> T_FunctionBinding sem_FunctionBinding (FunctionBinding_FunctionBinding _range _lefthandside _righthandside) = (sem_FunctionBinding_FunctionBinding _range (sem_LeftHandSide _lefthandside) (sem_RightHandSide _righthandside)) -- semantic domain type T_FunctionBinding = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([IdOcc]),Bool,([HsName])) sem_FunctionBinding_FunctionBinding :: Range -> T_LeftHandSide -> T_RightHandSide -> T_FunctionBinding sem_FunctionBinding_FunctionBinding range_ lefthandside_ righthandside_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _lefthandsideOgUniq :: UID _lefthandsideOmoduleNm :: HsName _lefthandsideOnmLev :: NmLev _lefthandsideOnmLevFun :: NmLev _lefthandsideOopts :: EHCOpts _lefthandsideOtopInstanceNmL :: ([HsName]) _righthandsideOgUniq :: UID _righthandsideOmoduleNm :: HsName _righthandsideOnmLev :: NmLev _righthandsideOopts :: EHCOpts _righthandsideOtopInstanceNmL :: ([HsName]) _lefthandsideIgUniq :: UID _lefthandsideIidOccDefs :: ([IdOcc]) _lefthandsideImainValExists :: Bool _lefthandsideIrefname :: HsName _lefthandsideItopInstanceNmL :: ([HsName]) _righthandsideIgUniq :: UID _righthandsideItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 167, column 9) _idOccDef = IdOcc _lefthandsideIrefname IdOcc_Val -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 167, column 9) _idOccDefs = [_idOccDef] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 64, column 9) _nmLev = _lhsInmLev + 1 -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 64, column 9) _nmLevFun = _lhsInmLev -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _lefthandsideImainValExists -- copy rule (up) _lhsOgUniq = _righthandsideIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _righthandsideItopInstanceNmL -- copy rule (down) _lefthandsideOgUniq = _lhsIgUniq -- copy rule (down) _lefthandsideOmoduleNm = _lhsImoduleNm -- copy rule (from local) _lefthandsideOnmLev = _nmLev -- copy rule (from local) _lefthandsideOnmLevFun = _nmLevFun -- copy rule (down) _lefthandsideOopts = _lhsIopts -- copy rule (down) _lefthandsideOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _righthandsideOgUniq = _lefthandsideIgUniq -- copy rule (down) _righthandsideOmoduleNm = _lhsImoduleNm -- copy rule (from local) _righthandsideOnmLev = _nmLev -- copy rule (down) _righthandsideOopts = _lhsIopts -- copy rule (chain) _righthandsideOtopInstanceNmL = _lefthandsideItopInstanceNmL ( _lefthandsideIgUniq,_lefthandsideIidOccDefs,_lefthandsideImainValExists,_lefthandsideIrefname,_lefthandsideItopInstanceNmL) | True = lefthandside_ _lefthandsideOgUniq _lefthandsideOmoduleNm _lefthandsideOnmLev _lefthandsideOnmLevFun _lefthandsideOopts _lefthandsideOtopInstanceNmL ( _righthandsideIgUniq,_righthandsideItopInstanceNmL) | True = righthandside_ _righthandsideOgUniq _righthandsideOmoduleNm _righthandsideOnmLev _righthandsideOopts _righthandsideOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOtopInstanceNmL))) -- FunctionBindings -------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: idOccDefs : [IdOcc] mainValExists : Bool alternatives: alternative Cons: child hd : FunctionBinding child tl : FunctionBindings alternative Nil: -} -- cata sem_FunctionBindings :: FunctionBindings -> T_FunctionBindings sem_FunctionBindings list = (Prelude.foldr sem_FunctionBindings_Cons sem_FunctionBindings_Nil (Prelude.map sem_FunctionBinding list)) -- semantic domain type T_FunctionBindings = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([IdOcc]),Bool,([HsName])) sem_FunctionBindings_Cons :: T_FunctionBinding -> T_FunctionBindings -> T_FunctionBindings sem_FunctionBindings_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOopts :: EHCOpts _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOopts :: EHCOpts _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdIidOccDefs :: ([IdOcc]) _hdImainValExists :: Bool _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlIidOccDefs :: ([IdOcc]) _tlImainValExists :: Bool _tlItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _hdIidOccDefs ++ _tlIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _hdImainValExists || _tlImainValExists -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOopts = _lhsIopts -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (down) _tlOopts = _lhsIopts -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdIidOccDefs,_hdImainValExists,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOopts _hdOtopInstanceNmL ( _tlIgUniq,_tlIidOccDefs,_tlImainValExists,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOopts _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOtopInstanceNmL))) sem_FunctionBindings_Nil :: T_FunctionBindings sem_FunctionBindings_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOtopInstanceNmL))) -- FunctionalDependencies -------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: gathPragmas : Set.Set Pragma.Pragma idOccDefs : [IdOcc] alternatives: alternative Cons: child hd : FunctionalDependency child tl : FunctionalDependencies alternative Nil: -} -- cata sem_FunctionalDependencies :: FunctionalDependencies -> T_FunctionalDependencies sem_FunctionalDependencies list = (Prelude.foldr sem_FunctionalDependencies_Cons sem_FunctionalDependencies_Nil (Prelude.map sem_FunctionalDependency list)) -- semantic domain type T_FunctionalDependencies = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,(Set.Set Pragma.Pragma),([IdOcc]),([HsName])) sem_FunctionalDependencies_Cons :: T_FunctionalDependency -> T_FunctionalDependencies -> T_FunctionalDependencies sem_FunctionalDependencies_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOopts :: EHCOpts _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOopts :: EHCOpts _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdIgathPragmas :: (Set.Set Pragma.Pragma) _hdIidOccDefs :: ([IdOcc]) _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlIgathPragmas :: (Set.Set Pragma.Pragma) _tlIidOccDefs :: ([IdOcc]) _tlItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = _hdIgathPragmas `Set.union` _tlIgathPragmas -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _hdIidOccDefs ++ _tlIidOccDefs -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOopts = _lhsIopts -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (down) _tlOopts = _lhsIopts -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdIgathPragmas,_hdIidOccDefs,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOopts _hdOtopInstanceNmL ( _tlIgUniq,_tlIgathPragmas,_tlIidOccDefs,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOopts _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOtopInstanceNmL))) sem_FunctionalDependencies_Nil :: T_FunctionalDependencies sem_FunctionalDependencies_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOtopInstanceNmL))) -- FunctionalDependency ---------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: gathPragmas : Set.Set Pragma.Pragma idOccDefs : [IdOcc] alternatives: alternative Dependency: child range : {Range} child fromtypevariables : {Names} child totypevariables : {Names} -} -- cata sem_FunctionalDependency :: FunctionalDependency -> T_FunctionalDependency sem_FunctionalDependency (FunctionalDependency_Dependency _range _fromtypevariables _totypevariables) = (sem_FunctionalDependency_Dependency _range _fromtypevariables _totypevariables) -- semantic domain type T_FunctionalDependency = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,(Set.Set Pragma.Pragma),([IdOcc]),([HsName])) sem_FunctionalDependency_Dependency :: Range -> Names -> Names -> T_FunctionalDependency sem_FunctionalDependency_Dependency range_ fromtypevariables_ totypevariables_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOtopInstanceNmL))) -- GuardedExpression ------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative GuardedExpression: child range : {Range} child guard : Expression child expression : Expression -} -- cata sem_GuardedExpression :: GuardedExpression -> T_GuardedExpression sem_GuardedExpression (GuardedExpression_GuardedExpression _range _guard _expression) = (sem_GuardedExpression_GuardedExpression _range (sem_Expression _guard) (sem_Expression _expression)) -- semantic domain type T_GuardedExpression = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([HsName])) sem_GuardedExpression_GuardedExpression :: Range -> T_Expression -> T_Expression -> T_GuardedExpression sem_GuardedExpression_GuardedExpression range_ guard_ expression_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _guardOgUniq :: UID _guardOmoduleNm :: HsName _guardOnmLev :: NmLev _guardOopts :: EHCOpts _guardOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _guardIconNm :: Name _guardIgUniq :: UID _guardItopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _expressionIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _expressionItopInstanceNmL -- copy rule (down) _guardOgUniq = _lhsIgUniq -- copy rule (down) _guardOmoduleNm = _lhsImoduleNm -- copy rule (down) _guardOnmLev = _lhsInmLev -- copy rule (down) _guardOopts = _lhsIopts -- copy rule (down) _guardOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _expressionOgUniq = _guardIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionOnmLev = _lhsInmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (chain) _expressionOtopInstanceNmL = _guardItopInstanceNmL ( _guardIconNm,_guardIgUniq,_guardItopInstanceNmL) | True = guard_ _guardOgUniq _guardOmoduleNm _guardOnmLev _guardOopts _guardOtopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- GuardedExpressions ------------------------------------------ {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Cons: child hd : GuardedExpression child tl : GuardedExpressions alternative Nil: -} -- cata sem_GuardedExpressions :: GuardedExpressions -> T_GuardedExpressions sem_GuardedExpressions list = (Prelude.foldr sem_GuardedExpressions_Cons sem_GuardedExpressions_Nil (Prelude.map sem_GuardedExpression list)) -- semantic domain type T_GuardedExpressions = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([HsName])) sem_GuardedExpressions_Cons :: T_GuardedExpression -> T_GuardedExpressions -> T_GuardedExpressions sem_GuardedExpressions_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOopts :: EHCOpts _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOopts :: EHCOpts _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOopts = _lhsIopts -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (down) _tlOopts = _lhsIopts -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOopts _hdOtopInstanceNmL ( _tlIgUniq,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOopts _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_GuardedExpressions_Nil :: T_GuardedExpressions sem_GuardedExpressions_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- Import ------------------------------------------------------ {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: modEntSpec : ModEntSpec alternatives: alternative Variable: child range : {Range} child name : {Name} alternative TypeOrClass: child range : {Range} child name : {Name} child names : {MaybeNames} alternative TypeOrClassComplete: child range : {Range} child name : {Name} -} -- cata sem_Import :: Import -> T_Import sem_Import (Import_Variable _range _name) = (sem_Import_Variable _range _name) sem_Import (Import_TypeOrClass _range _name _names) = (sem_Import_TypeOrClass _range _name _names) sem_Import (Import_TypeOrClassComplete _range _name) = (sem_Import_TypeOrClassComplete _range _name) -- semantic domain type T_Import = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,ModEntSpec,([HsName])) sem_Import_Variable :: Range -> Name -> T_Import sem_Import_Variable range_ name_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodEntSpec :: ModEntSpec _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 5, column 9) _lhsOmodEntSpec = ModEntSpec name_ range_ Nothing -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOmodEntSpec,_lhsOtopInstanceNmL))) sem_Import_TypeOrClass :: Range -> Name -> MaybeNames -> T_Import sem_Import_TypeOrClass range_ name_ names_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodEntSpec :: ModEntSpec _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 7, column 9) _lhsOmodEntSpec = case names_ of Just ns -> ModEntSpec name_ range_ (Just (ModEntSubs ns)) Nothing -> ModEntSpec name_ range_ Nothing -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOmodEntSpec,_lhsOtopInstanceNmL))) sem_Import_TypeOrClassComplete :: Range -> Name -> T_Import sem_Import_TypeOrClassComplete range_ name_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodEntSpec :: ModEntSpec _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 11, column 9) _lhsOmodEntSpec = ModEntSpec name_ range_ (Just ModEntSubAll) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOmodEntSpec,_lhsOtopInstanceNmL))) -- ImportDeclaration ------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: modImpL : [ModImp] alternatives: alternative Import: child range : {Range} child qualified : {Bool} child name : {Name} child asname : {MaybeName} child importspecification : MaybeImportSpecification alternative Empty: child range : {Range} -} -- cata sem_ImportDeclaration :: ImportDeclaration -> T_ImportDeclaration sem_ImportDeclaration (ImportDeclaration_Import _range _qualified _name _asname _importspecification) = (sem_ImportDeclaration_Import _range _qualified _name _asname (sem_MaybeImportSpecification _importspecification)) sem_ImportDeclaration (ImportDeclaration_Empty _range) = (sem_ImportDeclaration_Empty _range) -- semantic domain type T_ImportDeclaration = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([ModImp]),([HsName])) sem_ImportDeclaration_Import :: Range -> Bool -> Name -> MaybeName -> T_MaybeImportSpecification -> T_ImportDeclaration sem_ImportDeclaration_Import range_ qualified_ name_ asname_ importspecification_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodImpL :: ([ModImp]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _importspecificationOgUniq :: UID _importspecificationOmoduleNm :: HsName _importspecificationOnmLev :: NmLev _importspecificationOopts :: EHCOpts _importspecificationOtopInstanceNmL :: ([HsName]) _importspecificationIgUniq :: UID _importspecificationIisHiding :: Bool _importspecificationImodEntSpecL :: ([ModEntSpec]) _importspecificationItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 39, column 9) _lhsOmodImpL = let as = maybe name_ id asname_ in [ModImp qualified_ name_ as _importspecificationIisHiding _importspecificationImodEntSpecL range_] -- copy rule (up) _lhsOgUniq = _importspecificationIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _importspecificationItopInstanceNmL -- copy rule (down) _importspecificationOgUniq = _lhsIgUniq -- copy rule (down) _importspecificationOmoduleNm = _lhsImoduleNm -- copy rule (down) _importspecificationOnmLev = _lhsInmLev -- copy rule (down) _importspecificationOopts = _lhsIopts -- copy rule (down) _importspecificationOtopInstanceNmL = _lhsItopInstanceNmL ( _importspecificationIgUniq,_importspecificationIisHiding,_importspecificationImodEntSpecL,_importspecificationItopInstanceNmL) | True = importspecification_ _importspecificationOgUniq _importspecificationOmoduleNm _importspecificationOnmLev _importspecificationOopts _importspecificationOtopInstanceNmL in ( _lhsOgUniq,_lhsOmodImpL,_lhsOtopInstanceNmL))) sem_ImportDeclaration_Empty :: Range -> T_ImportDeclaration sem_ImportDeclaration_Empty range_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodImpL :: ([ModImp]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 42, column 9) _lhsOmodImpL = [] -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOmodImpL,_lhsOtopInstanceNmL))) -- ImportDeclarations ------------------------------------------ {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: modImpL : [ModImp] alternatives: alternative Cons: child hd : ImportDeclaration child tl : ImportDeclarations alternative Nil: -} -- cata sem_ImportDeclarations :: ImportDeclarations -> T_ImportDeclarations sem_ImportDeclarations list = (Prelude.foldr sem_ImportDeclarations_Cons sem_ImportDeclarations_Nil (Prelude.map sem_ImportDeclaration list)) -- semantic domain type T_ImportDeclarations = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([ModImp]),([HsName])) sem_ImportDeclarations_Cons :: T_ImportDeclaration -> T_ImportDeclarations -> T_ImportDeclarations sem_ImportDeclarations_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodImpL :: ([ModImp]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOopts :: EHCOpts _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOopts :: EHCOpts _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdImodImpL :: ([ModImp]) _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlImodImpL :: ([ModImp]) _tlItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 35, column 46) _lhsOmodImpL = _hdImodImpL ++ _tlImodImpL -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOopts = _lhsIopts -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (down) _tlOopts = _lhsIopts -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdImodImpL,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOopts _hdOtopInstanceNmL ( _tlIgUniq,_tlImodImpL,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOopts _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOmodImpL,_lhsOtopInstanceNmL))) sem_ImportDeclarations_Nil :: T_ImportDeclarations sem_ImportDeclarations_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodImpL :: ([ModImp]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 35, column 46) _lhsOmodImpL = [] -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOmodImpL,_lhsOtopInstanceNmL))) -- ImportSpecification ----------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: isHiding : Bool modEntSpecL : [ModEntSpec] alternatives: alternative Import: child range : {Range} child hiding : {Bool} child imports : Imports -} -- cata sem_ImportSpecification :: ImportSpecification -> T_ImportSpecification sem_ImportSpecification (ImportSpecification_Import _range _hiding _imports) = (sem_ImportSpecification_Import _range _hiding (sem_Imports _imports)) -- semantic domain type T_ImportSpecification = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,Bool,([ModEntSpec]),([HsName])) sem_ImportSpecification_Import :: Range -> Bool -> T_Imports -> T_ImportSpecification sem_ImportSpecification_Import range_ hiding_ imports_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOisHiding :: Bool _lhsOgUniq :: UID _lhsOmodEntSpecL :: ([ModEntSpec]) _lhsOtopInstanceNmL :: ([HsName]) _importsOgUniq :: UID _importsOmoduleNm :: HsName _importsOnmLev :: NmLev _importsOopts :: EHCOpts _importsOtopInstanceNmL :: ([HsName]) _importsIgUniq :: UID _importsImodEntSpecL :: ([ModEntSpec]) _importsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 29, column 9) _lhsOisHiding = hiding_ -- copy rule (up) _lhsOgUniq = _importsIgUniq -- copy rule (up) _lhsOmodEntSpecL = _importsImodEntSpecL -- copy rule (up) _lhsOtopInstanceNmL = _importsItopInstanceNmL -- copy rule (down) _importsOgUniq = _lhsIgUniq -- copy rule (down) _importsOmoduleNm = _lhsImoduleNm -- copy rule (down) _importsOnmLev = _lhsInmLev -- copy rule (down) _importsOopts = _lhsIopts -- copy rule (down) _importsOtopInstanceNmL = _lhsItopInstanceNmL ( _importsIgUniq,_importsImodEntSpecL,_importsItopInstanceNmL) | True = imports_ _importsOgUniq _importsOmoduleNm _importsOnmLev _importsOopts _importsOtopInstanceNmL in ( _lhsOgUniq,_lhsOisHiding,_lhsOmodEntSpecL,_lhsOtopInstanceNmL))) -- Imports ----------------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: modEntSpecL : [ModEntSpec] alternatives: alternative Cons: child hd : Import child tl : Imports alternative Nil: -} -- cata sem_Imports :: Imports -> T_Imports sem_Imports list = (Prelude.foldr sem_Imports_Cons sem_Imports_Nil (Prelude.map sem_Import list)) -- semantic domain type T_Imports = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([ModEntSpec]),([HsName])) sem_Imports_Cons :: T_Import -> T_Imports -> T_Imports sem_Imports_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodEntSpecL :: ([ModEntSpec]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOopts :: EHCOpts _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOopts :: EHCOpts _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdImodEntSpec :: ModEntSpec _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlImodEntSpecL :: ([ModEntSpec]) _tlItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 17, column 9) _lhsOmodEntSpecL = _hdImodEntSpec : _tlImodEntSpecL -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOopts = _lhsIopts -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (down) _tlOopts = _lhsIopts -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdImodEntSpec,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOopts _hdOtopInstanceNmL ( _tlIgUniq,_tlImodEntSpecL,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOopts _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOmodEntSpecL,_lhsOtopInstanceNmL))) sem_Imports_Nil :: T_Imports sem_Imports_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodEntSpecL :: ([ModEntSpec]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 19, column 9) _lhsOmodEntSpecL = [] -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOmodEntSpecL,_lhsOtopInstanceNmL))) -- Kind -------------------------------------------------------- {- visit 0: inherited attribute: nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative NormalApplication: child range : {Range} child function : Kind child arguments : Kinds alternative InfixApplication: child range : {Range} child leftKind : Kind child operator : Kind child rightKind : Kind alternative Constructor: child range : {Range} child name : {Name} alternative Parenthesized: child range : {Range} child kind : Kind alternative Variable: child range : {Range} child name : {Name} alternative Forall: child range : {Range} child kindvariables : {Names} child kind : Kind alternative Annotate: child range : {Range} child annotation : KindAnnotation child kind : Kind -} -- cata sem_Kind :: Kind -> T_Kind sem_Kind (Kind_NormalApplication _range _function _arguments) = (sem_Kind_NormalApplication _range (sem_Kind _function) (sem_Kinds _arguments)) sem_Kind (Kind_InfixApplication _range _leftKind _operator _rightKind) = (sem_Kind_InfixApplication _range (sem_Kind _leftKind) (sem_Kind _operator) (sem_Kind _rightKind)) sem_Kind (Kind_Constructor _range _name) = (sem_Kind_Constructor _range _name) sem_Kind (Kind_Parenthesized _range _kind) = (sem_Kind_Parenthesized _range (sem_Kind _kind)) sem_Kind (Kind_Variable _range _name) = (sem_Kind_Variable _range _name) sem_Kind (Kind_Forall _range _kindvariables _kind) = (sem_Kind_Forall _range _kindvariables (sem_Kind _kind)) sem_Kind (Kind_Annotate _range _annotation _kind) = (sem_Kind_Annotate _range (sem_KindAnnotation _annotation) (sem_Kind _kind)) -- semantic domain type T_Kind = UID -> NmLev -> ([HsName]) -> ( UID,([HsName])) sem_Kind_NormalApplication :: Range -> T_Kind -> T_Kinds -> T_Kind sem_Kind_NormalApplication range_ function_ arguments_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _functionOgUniq :: UID _functionOnmLev :: NmLev _functionOtopInstanceNmL :: ([HsName]) _argumentsOgUniq :: UID _argumentsOnmLev :: NmLev _argumentsOtopInstanceNmL :: ([HsName]) _functionIgUniq :: UID _functionItopInstanceNmL :: ([HsName]) _argumentsIgUniq :: UID _argumentsItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _argumentsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _argumentsItopInstanceNmL -- copy rule (down) _functionOgUniq = _lhsIgUniq -- copy rule (down) _functionOnmLev = _lhsInmLev -- copy rule (down) _functionOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _argumentsOgUniq = _functionIgUniq -- copy rule (down) _argumentsOnmLev = _lhsInmLev -- copy rule (chain) _argumentsOtopInstanceNmL = _functionItopInstanceNmL ( _functionIgUniq,_functionItopInstanceNmL) | True = function_ _functionOgUniq _functionOnmLev _functionOtopInstanceNmL ( _argumentsIgUniq,_argumentsItopInstanceNmL) | True = arguments_ _argumentsOgUniq _argumentsOnmLev _argumentsOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_Kind_InfixApplication :: Range -> T_Kind -> T_Kind -> T_Kind -> T_Kind sem_Kind_InfixApplication range_ leftKind_ operator_ rightKind_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _leftKindOgUniq :: UID _leftKindOnmLev :: NmLev _leftKindOtopInstanceNmL :: ([HsName]) _operatorOgUniq :: UID _operatorOnmLev :: NmLev _operatorOtopInstanceNmL :: ([HsName]) _rightKindOgUniq :: UID _rightKindOnmLev :: NmLev _rightKindOtopInstanceNmL :: ([HsName]) _leftKindIgUniq :: UID _leftKindItopInstanceNmL :: ([HsName]) _operatorIgUniq :: UID _operatorItopInstanceNmL :: ([HsName]) _rightKindIgUniq :: UID _rightKindItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _rightKindIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _rightKindItopInstanceNmL -- copy rule (down) _leftKindOgUniq = _lhsIgUniq -- copy rule (down) _leftKindOnmLev = _lhsInmLev -- copy rule (down) _leftKindOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _operatorOgUniq = _leftKindIgUniq -- copy rule (down) _operatorOnmLev = _lhsInmLev -- copy rule (chain) _operatorOtopInstanceNmL = _leftKindItopInstanceNmL -- copy rule (chain) _rightKindOgUniq = _operatorIgUniq -- copy rule (down) _rightKindOnmLev = _lhsInmLev -- copy rule (chain) _rightKindOtopInstanceNmL = _operatorItopInstanceNmL ( _leftKindIgUniq,_leftKindItopInstanceNmL) | True = leftKind_ _leftKindOgUniq _leftKindOnmLev _leftKindOtopInstanceNmL ( _operatorIgUniq,_operatorItopInstanceNmL) | True = operator_ _operatorOgUniq _operatorOnmLev _operatorOtopInstanceNmL ( _rightKindIgUniq,_rightKindItopInstanceNmL) | True = rightKind_ _rightKindOgUniq _rightKindOnmLev _rightKindOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_Kind_Constructor :: Range -> Name -> T_Kind sem_Kind_Constructor range_ name_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_Kind_Parenthesized :: Range -> T_Kind -> T_Kind sem_Kind_Parenthesized range_ kind_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _kindOgUniq :: UID _kindOnmLev :: NmLev _kindOtopInstanceNmL :: ([HsName]) _kindIgUniq :: UID _kindItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _kindIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _kindItopInstanceNmL -- copy rule (down) _kindOgUniq = _lhsIgUniq -- copy rule (down) _kindOnmLev = _lhsInmLev -- copy rule (down) _kindOtopInstanceNmL = _lhsItopInstanceNmL ( _kindIgUniq,_kindItopInstanceNmL) | True = kind_ _kindOgUniq _kindOnmLev _kindOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_Kind_Variable :: Range -> Name -> T_Kind sem_Kind_Variable range_ name_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_Kind_Forall :: Range -> Names -> T_Kind -> T_Kind sem_Kind_Forall range_ kindvariables_ kind_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _kindOgUniq :: UID _kindOnmLev :: NmLev _kindOtopInstanceNmL :: ([HsName]) _kindIgUniq :: UID _kindItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _kindIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _kindItopInstanceNmL -- copy rule (down) _kindOgUniq = _lhsIgUniq -- copy rule (down) _kindOnmLev = _lhsInmLev -- copy rule (down) _kindOtopInstanceNmL = _lhsItopInstanceNmL ( _kindIgUniq,_kindItopInstanceNmL) | True = kind_ _kindOgUniq _kindOnmLev _kindOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_Kind_Annotate :: Range -> T_KindAnnotation -> T_Kind -> T_Kind sem_Kind_Annotate range_ annotation_ kind_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _annotationOgUniq :: UID _annotationOnmLev :: NmLev _annotationOtopInstanceNmL :: ([HsName]) _kindOgUniq :: UID _kindOnmLev :: NmLev _kindOtopInstanceNmL :: ([HsName]) _annotationIgUniq :: UID _annotationItopInstanceNmL :: ([HsName]) _kindIgUniq :: UID _kindItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _kindIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _kindItopInstanceNmL -- copy rule (down) _annotationOgUniq = _lhsIgUniq -- copy rule (down) _annotationOnmLev = _lhsInmLev -- copy rule (down) _annotationOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _kindOgUniq = _annotationIgUniq -- copy rule (down) _kindOnmLev = _lhsInmLev -- copy rule (chain) _kindOtopInstanceNmL = _annotationItopInstanceNmL ( _annotationIgUniq,_annotationItopInstanceNmL) | True = annotation_ _annotationOgUniq _annotationOnmLev _annotationOtopInstanceNmL ( _kindIgUniq,_kindItopInstanceNmL) | True = kind_ _kindOgUniq _kindOnmLev _kindOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- KindAnnotation ---------------------------------------------- {- visit 0: inherited attribute: nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Empty: -} -- cata sem_KindAnnotation :: KindAnnotation -> T_KindAnnotation sem_KindAnnotation (KindAnnotation_Empty) = (sem_KindAnnotation_Empty) -- semantic domain type T_KindAnnotation = UID -> NmLev -> ([HsName]) -> ( UID,([HsName])) sem_KindAnnotation_Empty :: T_KindAnnotation sem_KindAnnotation_Empty = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- Kinds ------------------------------------------------------- {- visit 0: inherited attribute: nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Cons: child hd : Kind child tl : Kinds alternative Nil: -} -- cata sem_Kinds :: Kinds -> T_Kinds sem_Kinds list = (Prelude.foldr sem_Kinds_Cons sem_Kinds_Nil (Prelude.map sem_Kind list)) -- semantic domain type T_Kinds = UID -> NmLev -> ([HsName]) -> ( UID,([HsName])) sem_Kinds_Cons :: T_Kind -> T_Kinds -> T_Kinds sem_Kinds_Cons hd_ tl_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOnmLev :: NmLev _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOnmLev :: NmLev _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOnmLev _hdOtopInstanceNmL ( _tlIgUniq,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOnmLev _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_Kinds_Nil :: T_Kinds sem_Kinds_Nil = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- LeftHandSide ------------------------------------------------ {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev nmLevFun : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: idOccDefs : [IdOcc] mainValExists : Bool refname : HsName alternatives: alternative Function: child range : {Range} child name : {Name} child patterns : Patterns visit 0: local refname : _ local mainValExists : _ alternative Infix: child range : {Range} child leftPattern : Pattern child operator : {Name} child rightPattern : Pattern visit 0: local refname : _ alternative Parenthesized: child range : {Range} child lefthandside : LeftHandSide child patterns : Patterns alternative Typed: child range : {Range} child lefthandside : LeftHandSide child type : Type -} -- cata sem_LeftHandSide :: LeftHandSide -> T_LeftHandSide sem_LeftHandSide (LeftHandSide_Function _range _name _patterns) = (sem_LeftHandSide_Function _range _name (sem_Patterns _patterns)) sem_LeftHandSide (LeftHandSide_Infix _range _leftPattern _operator _rightPattern) = (sem_LeftHandSide_Infix _range (sem_Pattern _leftPattern) _operator (sem_Pattern _rightPattern)) sem_LeftHandSide (LeftHandSide_Parenthesized _range _lefthandside _patterns) = (sem_LeftHandSide_Parenthesized _range (sem_LeftHandSide _lefthandside) (sem_Patterns _patterns)) sem_LeftHandSide (LeftHandSide_Typed _range _lefthandside _type) = (sem_LeftHandSide_Typed _range (sem_LeftHandSide _lefthandside) (sem_Type _type)) -- semantic domain type T_LeftHandSide = UID -> HsName -> NmLev -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([IdOcc]),Bool,HsName,([HsName])) sem_LeftHandSide_Function :: Range -> Name -> T_Patterns -> T_LeftHandSide sem_LeftHandSide_Function range_ name_ patterns_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsInmLevFun _lhsIopts _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOrefname :: HsName _lhsOtopInstanceNmL :: ([HsName]) _patternsOgUniq :: UID _patternsOmoduleNm :: HsName _patternsOnmLev :: NmLev _patternsOtopInstanceNmL :: ([HsName]) _patternsIgUniq :: UID _patternsIidOccDefs :: ([IdOcc]) _patternsImainValExists :: Bool _patternsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 47, column 9) _refname = hsnSetLevQual _lhsInmLevFun _lhsImoduleNm name_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 82, column 9) _mainValExists = name_ == hsnMain -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _patternsIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _mainValExists -- copy rule (up) _lhsOgUniq = _patternsIgUniq -- copy rule (from local) _lhsOrefname = _refname -- copy rule (up) _lhsOtopInstanceNmL = _patternsItopInstanceNmL -- copy rule (down) _patternsOgUniq = _lhsIgUniq -- copy rule (down) _patternsOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternsOnmLev = _lhsInmLev -- copy rule (down) _patternsOtopInstanceNmL = _lhsItopInstanceNmL ( _patternsIgUniq,_patternsIidOccDefs,_patternsImainValExists,_patternsItopInstanceNmL) | True = patterns_ _patternsOgUniq _patternsOmoduleNm _patternsOnmLev _patternsOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOrefname,_lhsOtopInstanceNmL))) sem_LeftHandSide_Infix :: Range -> T_Pattern -> Name -> T_Pattern -> T_LeftHandSide sem_LeftHandSide_Infix range_ leftPattern_ operator_ rightPattern_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsInmLevFun _lhsIopts _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOrefname :: HsName _lhsOtopInstanceNmL :: ([HsName]) _leftPatternOgUniq :: UID _leftPatternOmoduleNm :: HsName _leftPatternOnmLev :: NmLev _leftPatternOtopInstanceNmL :: ([HsName]) _rightPatternOgUniq :: UID _rightPatternOmoduleNm :: HsName _rightPatternOnmLev :: NmLev _rightPatternOtopInstanceNmL :: ([HsName]) _leftPatternIgUniq :: UID _leftPatternIidOccDefs :: ([IdOcc]) _leftPatternImainValExists :: Bool _leftPatternImbTopRefname :: (Maybe HsName) _leftPatternItopInstanceNmL :: ([HsName]) _rightPatternIgUniq :: UID _rightPatternIidOccDefs :: ([IdOcc]) _rightPatternImainValExists :: Bool _rightPatternImbTopRefname :: (Maybe HsName) _rightPatternItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 49, column 9) _refname = hsnSetLevQual _lhsInmLevFun _lhsImoduleNm operator_ -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _leftPatternIidOccDefs ++ _rightPatternIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _leftPatternImainValExists || _rightPatternImainValExists -- copy rule (up) _lhsOgUniq = _rightPatternIgUniq -- copy rule (from local) _lhsOrefname = _refname -- copy rule (up) _lhsOtopInstanceNmL = _rightPatternItopInstanceNmL -- copy rule (down) _leftPatternOgUniq = _lhsIgUniq -- copy rule (down) _leftPatternOmoduleNm = _lhsImoduleNm -- copy rule (down) _leftPatternOnmLev = _lhsInmLev -- copy rule (down) _leftPatternOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _rightPatternOgUniq = _leftPatternIgUniq -- copy rule (down) _rightPatternOmoduleNm = _lhsImoduleNm -- copy rule (down) _rightPatternOnmLev = _lhsInmLev -- copy rule (chain) _rightPatternOtopInstanceNmL = _leftPatternItopInstanceNmL ( _leftPatternIgUniq,_leftPatternIidOccDefs,_leftPatternImainValExists,_leftPatternImbTopRefname,_leftPatternItopInstanceNmL) | True = leftPattern_ _leftPatternOgUniq _leftPatternOmoduleNm _leftPatternOnmLev _leftPatternOtopInstanceNmL ( _rightPatternIgUniq,_rightPatternIidOccDefs,_rightPatternImainValExists,_rightPatternImbTopRefname,_rightPatternItopInstanceNmL) | True = rightPattern_ _rightPatternOgUniq _rightPatternOmoduleNm _rightPatternOnmLev _rightPatternOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOrefname,_lhsOtopInstanceNmL))) sem_LeftHandSide_Parenthesized :: Range -> T_LeftHandSide -> T_Patterns -> T_LeftHandSide sem_LeftHandSide_Parenthesized range_ lefthandside_ patterns_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsInmLevFun _lhsIopts _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOrefname :: HsName _lhsOtopInstanceNmL :: ([HsName]) _lefthandsideOgUniq :: UID _lefthandsideOmoduleNm :: HsName _lefthandsideOnmLev :: NmLev _lefthandsideOnmLevFun :: NmLev _lefthandsideOopts :: EHCOpts _lefthandsideOtopInstanceNmL :: ([HsName]) _patternsOgUniq :: UID _patternsOmoduleNm :: HsName _patternsOnmLev :: NmLev _patternsOtopInstanceNmL :: ([HsName]) _lefthandsideIgUniq :: UID _lefthandsideIidOccDefs :: ([IdOcc]) _lefthandsideImainValExists :: Bool _lefthandsideIrefname :: HsName _lefthandsideItopInstanceNmL :: ([HsName]) _patternsIgUniq :: UID _patternsIidOccDefs :: ([IdOcc]) _patternsImainValExists :: Bool _patternsItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _lefthandsideIidOccDefs ++ _patternsIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _lefthandsideImainValExists || _patternsImainValExists -- copy rule (up) _lhsOgUniq = _patternsIgUniq -- copy rule (up) _lhsOrefname = _lefthandsideIrefname -- copy rule (up) _lhsOtopInstanceNmL = _patternsItopInstanceNmL -- copy rule (down) _lefthandsideOgUniq = _lhsIgUniq -- copy rule (down) _lefthandsideOmoduleNm = _lhsImoduleNm -- copy rule (down) _lefthandsideOnmLev = _lhsInmLev -- copy rule (down) _lefthandsideOnmLevFun = _lhsInmLevFun -- copy rule (down) _lefthandsideOopts = _lhsIopts -- copy rule (down) _lefthandsideOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _patternsOgUniq = _lefthandsideIgUniq -- copy rule (down) _patternsOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternsOnmLev = _lhsInmLev -- copy rule (chain) _patternsOtopInstanceNmL = _lefthandsideItopInstanceNmL ( _lefthandsideIgUniq,_lefthandsideIidOccDefs,_lefthandsideImainValExists,_lefthandsideIrefname,_lefthandsideItopInstanceNmL) | True = lefthandside_ _lefthandsideOgUniq _lefthandsideOmoduleNm _lefthandsideOnmLev _lefthandsideOnmLevFun _lefthandsideOopts _lefthandsideOtopInstanceNmL ( _patternsIgUniq,_patternsIidOccDefs,_patternsImainValExists,_patternsItopInstanceNmL) | True = patterns_ _patternsOgUniq _patternsOmoduleNm _patternsOnmLev _patternsOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOrefname,_lhsOtopInstanceNmL))) sem_LeftHandSide_Typed :: Range -> T_LeftHandSide -> T_Type -> T_LeftHandSide sem_LeftHandSide_Typed range_ lefthandside_ type_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsInmLevFun _lhsIopts _lhsItopInstanceNmL -> (let _typeOnmLev :: NmLev _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOrefname :: HsName _lhsOtopInstanceNmL :: ([HsName]) _lefthandsideOgUniq :: UID _lefthandsideOmoduleNm :: HsName _lefthandsideOnmLev :: NmLev _lefthandsideOnmLevFun :: NmLev _lefthandsideOopts :: EHCOpts _lefthandsideOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOtopInstanceNmL :: ([HsName]) _lefthandsideIgUniq :: UID _lefthandsideIidOccDefs :: ([IdOcc]) _lefthandsideImainValExists :: Bool _lefthandsideIrefname :: HsName _lefthandsideItopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 60, column 9) _typeOnmLev = _lhsInmLev + 1 -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _lefthandsideIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _lefthandsideImainValExists -- copy rule (up) _lhsOgUniq = _typeIgUniq -- copy rule (up) _lhsOrefname = _lefthandsideIrefname -- copy rule (up) _lhsOtopInstanceNmL = _typeItopInstanceNmL -- copy rule (down) _lefthandsideOgUniq = _lhsIgUniq -- copy rule (down) _lefthandsideOmoduleNm = _lhsImoduleNm -- copy rule (down) _lefthandsideOnmLev = _lhsInmLev -- copy rule (down) _lefthandsideOnmLevFun = _lhsInmLevFun -- copy rule (down) _lefthandsideOopts = _lhsIopts -- copy rule (down) _lefthandsideOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _typeOgUniq = _lefthandsideIgUniq -- copy rule (chain) _typeOtopInstanceNmL = _lefthandsideItopInstanceNmL ( _lefthandsideIgUniq,_lefthandsideIidOccDefs,_lefthandsideImainValExists,_lefthandsideIrefname,_lefthandsideItopInstanceNmL) | True = lefthandside_ _lefthandsideOgUniq _lefthandsideOmoduleNm _lefthandsideOnmLev _lefthandsideOnmLevFun _lefthandsideOopts _lefthandsideOtopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOrefname,_lhsOtopInstanceNmL))) -- Literal ----------------------------------------------------- {- visit 0: inherited attribute: nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Int: child range : {Range} child base : {Int} child value : {String} alternative Char: child range : {Range} child value : {String} alternative String: child range : {Range} child value : {String} alternative Float: child range : {Range} child value : {String} -} -- cata sem_Literal :: Literal -> T_Literal sem_Literal (Literal_Int _range _base _value) = (sem_Literal_Int _range _base _value) sem_Literal (Literal_Char _range _value) = (sem_Literal_Char _range _value) sem_Literal (Literal_String _range _value) = (sem_Literal_String _range _value) sem_Literal (Literal_Float _range _value) = (sem_Literal_Float _range _value) -- semantic domain type T_Literal = UID -> NmLev -> ([HsName]) -> ( UID,([HsName])) sem_Literal_Int :: Range -> Int -> String -> T_Literal sem_Literal_Int range_ base_ value_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_Literal_Char :: Range -> String -> T_Literal sem_Literal_Char range_ value_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_Literal_String :: Range -> String -> T_Literal sem_Literal_String range_ value_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_Literal_Float :: Range -> String -> T_Literal sem_Literal_Float range_ value_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- MaybeDeclarations ------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: gathPragmas : Set.Set Pragma.Pragma idOccDefs : [IdOcc] mainValExists : Bool alternatives: alternative Just: child just : Declarations alternative Nothing: -} -- cata sem_MaybeDeclarations :: MaybeDeclarations -> T_MaybeDeclarations sem_MaybeDeclarations (Prelude.Just x) = (sem_MaybeDeclarations_Just (sem_Declarations x)) sem_MaybeDeclarations Prelude.Nothing = sem_MaybeDeclarations_Nothing -- semantic domain type T_MaybeDeclarations = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,(Set.Set Pragma.Pragma),([IdOcc]),Bool,([HsName])) sem_MaybeDeclarations_Just :: T_Declarations -> T_MaybeDeclarations sem_MaybeDeclarations_Just just_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _justOgUniq :: UID _justOmoduleNm :: HsName _justOnmLev :: NmLev _justOopts :: EHCOpts _justOtopInstanceNmL :: ([HsName]) _justIgUniq :: UID _justIgathPragmas :: (Set.Set Pragma.Pragma) _justIidOccDefs :: ([IdOcc]) _justImainValExists :: Bool _justImodDefsRel :: ModEntRel _justImodHideDefsRel :: ModEntRel _justItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = _justIgathPragmas -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _justIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _justImainValExists -- copy rule (up) _lhsOgUniq = _justIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _justItopInstanceNmL -- copy rule (down) _justOgUniq = _lhsIgUniq -- copy rule (down) _justOmoduleNm = _lhsImoduleNm -- copy rule (down) _justOnmLev = _lhsInmLev -- copy rule (down) _justOopts = _lhsIopts -- copy rule (down) _justOtopInstanceNmL = _lhsItopInstanceNmL ( _justIgUniq,_justIgathPragmas,_justIidOccDefs,_justImainValExists,_justImodDefsRel,_justImodHideDefsRel,_justItopInstanceNmL) | True = just_ _justOgUniq _justOmoduleNm _justOnmLev _justOopts _justOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOtopInstanceNmL))) sem_MaybeDeclarations_Nothing :: T_MaybeDeclarations sem_MaybeDeclarations_Nothing = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOtopInstanceNmL))) -- MaybeExports ------------------------------------------------ {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: modExpsMb : Maybe [ModExp] alternatives: alternative Just: child just : Exports alternative Nothing: -} -- cata sem_MaybeExports :: MaybeExports -> T_MaybeExports sem_MaybeExports (Prelude.Just x) = (sem_MaybeExports_Just (sem_Exports x)) sem_MaybeExports Prelude.Nothing = sem_MaybeExports_Nothing -- semantic domain type T_MaybeExports = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,(Maybe [ModExp]),([HsName])) sem_MaybeExports_Just :: T_Exports -> T_MaybeExports sem_MaybeExports_Just just_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodExpsMb :: (Maybe [ModExp]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _justOgUniq :: UID _justOmoduleNm :: HsName _justOnmLev :: NmLev _justOopts :: EHCOpts _justOtopInstanceNmL :: ([HsName]) _justIgUniq :: UID _justImodExpL :: ([ModExp]) _justItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 96, column 9) _lhsOmodExpsMb = Just _justImodExpL -- copy rule (up) _lhsOgUniq = _justIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _justItopInstanceNmL -- copy rule (down) _justOgUniq = _lhsIgUniq -- copy rule (down) _justOmoduleNm = _lhsImoduleNm -- copy rule (down) _justOnmLev = _lhsInmLev -- copy rule (down) _justOopts = _lhsIopts -- copy rule (down) _justOtopInstanceNmL = _lhsItopInstanceNmL ( _justIgUniq,_justImodExpL,_justItopInstanceNmL) | True = just_ _justOgUniq _justOmoduleNm _justOnmLev _justOopts _justOtopInstanceNmL in ( _lhsOgUniq,_lhsOmodExpsMb,_lhsOtopInstanceNmL))) sem_MaybeExports_Nothing :: T_MaybeExports sem_MaybeExports_Nothing = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodExpsMb :: (Maybe [ModExp]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 98, column 9) _lhsOmodExpsMb = Nothing -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOmodExpsMb,_lhsOtopInstanceNmL))) -- MaybeExpression --------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Just: child just : Expression alternative Nothing: -} -- cata sem_MaybeExpression :: MaybeExpression -> T_MaybeExpression sem_MaybeExpression (Prelude.Just x) = (sem_MaybeExpression_Just (sem_Expression x)) sem_MaybeExpression Prelude.Nothing = sem_MaybeExpression_Nothing -- semantic domain type T_MaybeExpression = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([HsName])) sem_MaybeExpression_Just :: T_Expression -> T_MaybeExpression sem_MaybeExpression_Just just_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _justOgUniq :: UID _justOmoduleNm :: HsName _justOnmLev :: NmLev _justOopts :: EHCOpts _justOtopInstanceNmL :: ([HsName]) _justIconNm :: Name _justIgUniq :: UID _justItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _justIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _justItopInstanceNmL -- copy rule (down) _justOgUniq = _lhsIgUniq -- copy rule (down) _justOmoduleNm = _lhsImoduleNm -- copy rule (down) _justOnmLev = _lhsInmLev -- copy rule (down) _justOopts = _lhsIopts -- copy rule (down) _justOtopInstanceNmL = _lhsItopInstanceNmL ( _justIconNm,_justIgUniq,_justItopInstanceNmL) | True = just_ _justOgUniq _justOmoduleNm _justOnmLev _justOopts _justOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_MaybeExpression_Nothing :: T_MaybeExpression sem_MaybeExpression_Nothing = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- MaybeImportSpecification ------------------------------------ {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: isHiding : Bool modEntSpecL : [ModEntSpec] alternatives: alternative Just: child just : ImportSpecification alternative Nothing: -} -- cata sem_MaybeImportSpecification :: MaybeImportSpecification -> T_MaybeImportSpecification sem_MaybeImportSpecification (Prelude.Just x) = (sem_MaybeImportSpecification_Just (sem_ImportSpecification x)) sem_MaybeImportSpecification Prelude.Nothing = sem_MaybeImportSpecification_Nothing -- semantic domain type T_MaybeImportSpecification = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,Bool,([ModEntSpec]),([HsName])) sem_MaybeImportSpecification_Just :: T_ImportSpecification -> T_MaybeImportSpecification sem_MaybeImportSpecification_Just just_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOisHiding :: Bool _lhsOmodEntSpecL :: ([ModEntSpec]) _lhsOtopInstanceNmL :: ([HsName]) _justOgUniq :: UID _justOmoduleNm :: HsName _justOnmLev :: NmLev _justOopts :: EHCOpts _justOtopInstanceNmL :: ([HsName]) _justIgUniq :: UID _justIisHiding :: Bool _justImodEntSpecL :: ([ModEntSpec]) _justItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _justIgUniq -- copy rule (up) _lhsOisHiding = _justIisHiding -- copy rule (up) _lhsOmodEntSpecL = _justImodEntSpecL -- copy rule (up) _lhsOtopInstanceNmL = _justItopInstanceNmL -- copy rule (down) _justOgUniq = _lhsIgUniq -- copy rule (down) _justOmoduleNm = _lhsImoduleNm -- copy rule (down) _justOnmLev = _lhsInmLev -- copy rule (down) _justOopts = _lhsIopts -- copy rule (down) _justOtopInstanceNmL = _lhsItopInstanceNmL ( _justIgUniq,_justIisHiding,_justImodEntSpecL,_justItopInstanceNmL) | True = just_ _justOgUniq _justOmoduleNm _justOnmLev _justOopts _justOtopInstanceNmL in ( _lhsOgUniq,_lhsOisHiding,_lhsOmodEntSpecL,_lhsOtopInstanceNmL))) sem_MaybeImportSpecification_Nothing :: T_MaybeImportSpecification sem_MaybeImportSpecification_Nothing = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodEntSpecL :: ([ModEntSpec]) _lhsOisHiding :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 23, column 9) _lhsOmodEntSpecL = [] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 33, column 9) _lhsOisHiding = True -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOisHiding,_lhsOmodEntSpecL,_lhsOtopInstanceNmL))) -- MaybeType --------------------------------------------------- {- visit 0: inherited attribute: nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Just: child just : Type alternative Nothing: -} -- cata sem_MaybeType :: MaybeType -> T_MaybeType sem_MaybeType (Prelude.Just x) = (sem_MaybeType_Just (sem_Type x)) sem_MaybeType Prelude.Nothing = sem_MaybeType_Nothing -- semantic domain type T_MaybeType = UID -> NmLev -> ([HsName]) -> ( UID,([HsName])) sem_MaybeType_Just :: T_Type -> T_MaybeType sem_MaybeType_Just just_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _justOgUniq :: UID _justOnmLev :: NmLev _justOtopInstanceNmL :: ([HsName]) _justIconNm :: Name _justIgUniq :: UID _justItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _justIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _justItopInstanceNmL -- copy rule (down) _justOgUniq = _lhsIgUniq -- copy rule (down) _justOnmLev = _lhsInmLev -- copy rule (down) _justOtopInstanceNmL = _lhsItopInstanceNmL ( _justIconNm,_justIgUniq,_justItopInstanceNmL) | True = just_ _justOgUniq _justOnmLev _justOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_MaybeType_Nothing :: T_MaybeType sem_MaybeType_Nothing = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- Module ------------------------------------------------------ {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: fileHeaderPragmas : Set.Set Pragma.Pragma mainValExists : Bool mod : Mod modImpNmS : Set.Set HsName realModuleNm : HsName alternatives: alternative Module: child range : {Range} child name : {MaybeName} child fileheaderpragmas : Pragmas child exports : MaybeExports child body : Body visit 0: local fileHeaderPragmas : _ local opts : _ local bodyModImpL : _ local modImpL : _ local prelModImpL : _ local realModuleNm : _ -} -- cata sem_Module :: Module -> T_Module sem_Module (Module_Module _range _name _fileheaderpragmas _exports _body) = (sem_Module_Module _range _name (sem_Pragmas _fileheaderpragmas) (sem_MaybeExports _exports) (sem_Body _body)) -- semantic domain type T_Module = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( (Set.Set Pragma.Pragma),UID,Bool,Mod,(Set.Set HsName),HsName,([HsName])) sem_Module_Module :: Range -> MaybeName -> T_Pragmas -> T_MaybeExports -> T_Body -> T_Module sem_Module_Module range_ name_ fileheaderpragmas_ exports_ body_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOmodImpNmS :: (Set.Set HsName) _lhsOmod :: Mod _lhsOfileHeaderPragmas :: (Set.Set Pragma.Pragma) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOrealModuleNm :: HsName _lhsOtopInstanceNmL :: ([HsName]) _fileheaderpragmasOgUniq :: UID _fileheaderpragmasOnmLev :: NmLev _fileheaderpragmasOtopInstanceNmL :: ([HsName]) _exportsOgUniq :: UID _exportsOmoduleNm :: HsName _exportsOnmLev :: NmLev _exportsOopts :: EHCOpts _exportsOtopInstanceNmL :: ([HsName]) _bodyOgUniq :: UID _bodyOmoduleNm :: HsName _bodyOnmLev :: NmLev _bodyOopts :: EHCOpts _bodyOtopInstanceNmL :: ([HsName]) _fileheaderpragmasIgUniq :: UID _fileheaderpragmasIgathPragmas :: (Set.Set Pragma.Pragma) _fileheaderpragmasItopInstanceNmL :: ([HsName]) _exportsIgUniq :: UID _exportsImodExpsMb :: (Maybe [ModExp]) _exportsItopInstanceNmL :: ([HsName]) _bodyIextraModImpL :: ([ModImp]) _bodyIgUniq :: UID _bodyImainValExists :: Bool _bodyImodDefsRel :: ModEntRel _bodyImodHideDefsRel :: ModEntRel _bodyImodImpL :: ([ModImp]) _bodyItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 27, column 9) _fileHeaderPragmas = _fileheaderpragmasIgathPragmas -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 27, column 9) _opts = fst $ ehcOptUpdateWithPragmas _fileHeaderPragmas _lhsIopts -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 46, column 9) _bodyModImpL = _bodyIextraModImpL ++ _bodyImodImpL -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 46, column 9) _modImpL = _prelModImpL ++ _bodyModImpL -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 46, column 9) _prelModImpL = if hsnModPrelude `elem` map mimpSource _bodyModImpL || _realModuleNm == hsnModPrelude || hsnIsInPrelude _realModuleNm || not (ehcOptUseAssumePrelude _lhsIopts) || Set.member Pragma.Pragma_NoImplicitPrelude _fileHeaderPragmas then [] else [modImpPrelude] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 61, column 9) _lhsOmodImpNmS = Set.fromList $ map mimpSource _modImpL -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 68, column 9) _realModuleNm = maybe _lhsImoduleNm id name_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Module.ag"(line 164, column 9) _lhsOmod = Mod _lhsImoduleNm name_ _exportsImodExpsMb _modImpL _bodyImodDefsRel _bodyImodHideDefsRel (reverse _bodyItopInstanceNmL) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 2, column 43) _lhsOfileHeaderPragmas = _fileHeaderPragmas -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _bodyImainValExists -- copy rule (up) _lhsOgUniq = _bodyIgUniq -- copy rule (from local) _lhsOrealModuleNm = _realModuleNm -- copy rule (up) _lhsOtopInstanceNmL = _bodyItopInstanceNmL -- copy rule (down) _fileheaderpragmasOgUniq = _lhsIgUniq -- copy rule (down) _fileheaderpragmasOnmLev = _lhsInmLev -- copy rule (down) _fileheaderpragmasOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _exportsOgUniq = _fileheaderpragmasIgUniq -- copy rule (down) _exportsOmoduleNm = _lhsImoduleNm -- copy rule (down) _exportsOnmLev = _lhsInmLev -- copy rule (from local) _exportsOopts = _opts -- copy rule (chain) _exportsOtopInstanceNmL = _fileheaderpragmasItopInstanceNmL -- copy rule (chain) _bodyOgUniq = _exportsIgUniq -- copy rule (down) _bodyOmoduleNm = _lhsImoduleNm -- copy rule (down) _bodyOnmLev = _lhsInmLev -- copy rule (from local) _bodyOopts = _opts -- copy rule (chain) _bodyOtopInstanceNmL = _exportsItopInstanceNmL ( _fileheaderpragmasIgUniq,_fileheaderpragmasIgathPragmas,_fileheaderpragmasItopInstanceNmL) | True = fileheaderpragmas_ _fileheaderpragmasOgUniq _fileheaderpragmasOnmLev _fileheaderpragmasOtopInstanceNmL ( _exportsIgUniq,_exportsImodExpsMb,_exportsItopInstanceNmL) | True = exports_ _exportsOgUniq _exportsOmoduleNm _exportsOnmLev _exportsOopts _exportsOtopInstanceNmL ( _bodyIextraModImpL,_bodyIgUniq,_bodyImainValExists,_bodyImodDefsRel,_bodyImodHideDefsRel,_bodyImodImpL,_bodyItopInstanceNmL) | True = body_ _bodyOgUniq _bodyOmoduleNm _bodyOnmLev _bodyOopts _bodyOtopInstanceNmL in ( _lhsOfileHeaderPragmas,_lhsOgUniq,_lhsOmainValExists,_lhsOmod,_lhsOmodImpNmS,_lhsOrealModuleNm,_lhsOtopInstanceNmL))) -- Pattern ----------------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: idOccDefs : [IdOcc] mainValExists : Bool mbTopRefname : Maybe HsName alternatives: alternative Literal: child range : {Range} child sign : {Int} child literal : Literal alternative Variable: child range : {Range} child name : {Name} visit 0: local refname : _ local isWildcard : _ local idOccDef : _ local idOccDefsNoWildcard : _ local idOccDefs : _ local mainValExists : _ alternative Constructor: child range : {Range} child name : {Name} child patterns : Patterns visit 0: local conNm : _ alternative Parenthesized: child range : {Range} child pattern : Pattern alternative As: child range : {Range} child name : {Name} child pattern : Pattern visit 0: local refname : _ local isWildcard : _ local idOccDef : _ local idOccDefsNoWildcard : _ local idOccDefs : _ alternative Wildcard: child range : {Range} alternative Tuple: child range : {Range} child arity : {Int} child patterns : Patterns alternative Annotate: child range : {Range} child annotation : PatternAnnotation child pattern : Pattern alternative Typed: child range : {Range} child pattern : Pattern child type : Type alternative InfixConstructor: child range : {Range} child leftPattern : Pattern child constructorOperator : {Name} child rightPattern : Pattern visit 0: local conNm : _ alternative List: child range : {Range} child patterns : Patterns alternative Record: child range : {Range} child name : {Name} child recordPatternBindings : RecordPatternBindings visit 0: local conNm : _ alternative RowRecordBinding: child range : {Range} child pattern : Pattern child rowRecordPattternBindings : RowRecordPatternBindings alternative RowRecordEmpty: child range : {Range} alternative Irrefutable: child range : {Range} child pattern : Pattern alternative Bang: child range : {Range} child pattern : Pattern -} -- cata sem_Pattern :: Pattern -> T_Pattern sem_Pattern (Pattern_Literal _range _sign _literal) = (sem_Pattern_Literal _range _sign (sem_Literal _literal)) sem_Pattern (Pattern_Variable _range _name) = (sem_Pattern_Variable _range _name) sem_Pattern (Pattern_Constructor _range _name _patterns) = (sem_Pattern_Constructor _range _name (sem_Patterns _patterns)) sem_Pattern (Pattern_Parenthesized _range _pattern) = (sem_Pattern_Parenthesized _range (sem_Pattern _pattern)) sem_Pattern (Pattern_As _range _name _pattern) = (sem_Pattern_As _range _name (sem_Pattern _pattern)) sem_Pattern (Pattern_Wildcard _range) = (sem_Pattern_Wildcard _range) sem_Pattern (Pattern_Tuple _range _arity _patterns) = (sem_Pattern_Tuple _range _arity (sem_Patterns _patterns)) sem_Pattern (Pattern_Annotate _range _annotation _pattern) = (sem_Pattern_Annotate _range (sem_PatternAnnotation _annotation) (sem_Pattern _pattern)) sem_Pattern (Pattern_Typed _range _pattern _type) = (sem_Pattern_Typed _range (sem_Pattern _pattern) (sem_Type _type)) sem_Pattern (Pattern_InfixConstructor _range _leftPattern _constructorOperator _rightPattern) = (sem_Pattern_InfixConstructor _range (sem_Pattern _leftPattern) _constructorOperator (sem_Pattern _rightPattern)) sem_Pattern (Pattern_List _range _patterns) = (sem_Pattern_List _range (sem_Patterns _patterns)) sem_Pattern (Pattern_Record _range _name _recordPatternBindings) = (sem_Pattern_Record _range _name (sem_RecordPatternBindings _recordPatternBindings)) sem_Pattern (Pattern_RowRecordBinding _range _pattern _rowRecordPattternBindings) = (sem_Pattern_RowRecordBinding _range (sem_Pattern _pattern) (sem_RowRecordPatternBindings _rowRecordPattternBindings)) sem_Pattern (Pattern_RowRecordEmpty _range) = (sem_Pattern_RowRecordEmpty _range) sem_Pattern (Pattern_Irrefutable _range _pattern) = (sem_Pattern_Irrefutable _range (sem_Pattern _pattern)) sem_Pattern (Pattern_Bang _range _pattern) = (sem_Pattern_Bang _range (sem_Pattern _pattern)) -- semantic domain type T_Pattern = UID -> HsName -> NmLev -> ([HsName]) -> ( UID,([IdOcc]),Bool,(Maybe HsName),([HsName])) sem_Pattern_Literal :: Range -> Int -> T_Literal -> T_Pattern sem_Pattern_Literal range_ sign_ literal_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOmbTopRefname :: (Maybe HsName) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _literalOgUniq :: UID _literalOnmLev :: NmLev _literalOtopInstanceNmL :: ([HsName]) _literalIgUniq :: UID _literalItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 236, column 9) _lhsOmbTopRefname = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- copy rule (up) _lhsOgUniq = _literalIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _literalItopInstanceNmL -- copy rule (down) _literalOgUniq = _lhsIgUniq -- copy rule (down) _literalOnmLev = _lhsInmLev -- copy rule (down) _literalOtopInstanceNmL = _lhsItopInstanceNmL ( _literalIgUniq,_literalItopInstanceNmL) | True = literal_ _literalOgUniq _literalOnmLev _literalOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmbTopRefname,_lhsOtopInstanceNmL))) sem_Pattern_Variable :: Range -> Name -> T_Pattern sem_Pattern_Variable range_ name_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOmbTopRefname :: (Maybe HsName) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 54, column 9) _refname = hsnSetLevQual _lhsInmLev _lhsImoduleNm name_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 96, column 9) _isWildcard = hsnIsWild name_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 172, column 9) _idOccDef = IdOcc _refname IdOcc_Val -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 172, column 9) _idOccDefsNoWildcard = if _isWildcard then [] else [_idOccDef] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 176, column 9) _idOccDefs = _idOccDefsNoWildcard -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 234, column 9) _lhsOmbTopRefname = if _isWildcard then Just _refname else Nothing -- "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 88, column 9) _mainValExists = name_ == hsnMain -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _mainValExists -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmbTopRefname,_lhsOtopInstanceNmL))) sem_Pattern_Constructor :: Range -> Name -> T_Patterns -> T_Pattern sem_Pattern_Constructor range_ name_ patterns_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOmbTopRefname :: (Maybe HsName) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _patternsOgUniq :: UID _patternsOmoduleNm :: HsName _patternsOnmLev :: NmLev _patternsOtopInstanceNmL :: ([HsName]) _patternsIgUniq :: UID _patternsIidOccDefs :: ([IdOcc]) _patternsImainValExists :: Bool _patternsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 226, column 9) _conNm = name_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 236, column 9) _lhsOmbTopRefname = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _patternsIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _patternsImainValExists -- copy rule (up) _lhsOgUniq = _patternsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _patternsItopInstanceNmL -- copy rule (down) _patternsOgUniq = _lhsIgUniq -- copy rule (down) _patternsOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternsOnmLev = _lhsInmLev -- copy rule (down) _patternsOtopInstanceNmL = _lhsItopInstanceNmL ( _patternsIgUniq,_patternsIidOccDefs,_patternsImainValExists,_patternsItopInstanceNmL) | True = patterns_ _patternsOgUniq _patternsOmoduleNm _patternsOnmLev _patternsOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmbTopRefname,_lhsOtopInstanceNmL))) sem_Pattern_Parenthesized :: Range -> T_Pattern -> T_Pattern sem_Pattern_Parenthesized range_ pattern_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOmbTopRefname :: (Maybe HsName) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _patternOgUniq :: UID _patternOmoduleNm :: HsName _patternOnmLev :: NmLev _patternOtopInstanceNmL :: ([HsName]) _patternIgUniq :: UID _patternIidOccDefs :: ([IdOcc]) _patternImainValExists :: Bool _patternImbTopRefname :: (Maybe HsName) _patternItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 236, column 9) _lhsOmbTopRefname = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _patternIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _patternImainValExists -- copy rule (up) _lhsOgUniq = _patternIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _patternItopInstanceNmL -- copy rule (down) _patternOgUniq = _lhsIgUniq -- copy rule (down) _patternOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternOnmLev = _lhsInmLev -- copy rule (down) _patternOtopInstanceNmL = _lhsItopInstanceNmL ( _patternIgUniq,_patternIidOccDefs,_patternImainValExists,_patternImbTopRefname,_patternItopInstanceNmL) | True = pattern_ _patternOgUniq _patternOmoduleNm _patternOnmLev _patternOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmbTopRefname,_lhsOtopInstanceNmL))) sem_Pattern_As :: Range -> Name -> T_Pattern -> T_Pattern sem_Pattern_As range_ name_ pattern_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOmbTopRefname :: (Maybe HsName) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _patternOgUniq :: UID _patternOmoduleNm :: HsName _patternOnmLev :: NmLev _patternOtopInstanceNmL :: ([HsName]) _patternIgUniq :: UID _patternIidOccDefs :: ([IdOcc]) _patternImainValExists :: Bool _patternImbTopRefname :: (Maybe HsName) _patternItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 54, column 9) _refname = hsnSetLevQual _lhsInmLev _lhsImoduleNm name_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 96, column 9) _isWildcard = hsnIsWild name_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 172, column 9) _idOccDef = IdOcc _refname IdOcc_Val -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 172, column 9) _idOccDefsNoWildcard = if _isWildcard then [] else [_idOccDef] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 178, column 9) _idOccDefs = _idOccDefsNoWildcard ++ _patternIidOccDefs -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 234, column 9) _lhsOmbTopRefname = if _isWildcard then Just _refname else Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _idOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _patternImainValExists -- copy rule (up) _lhsOgUniq = _patternIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _patternItopInstanceNmL -- copy rule (down) _patternOgUniq = _lhsIgUniq -- copy rule (down) _patternOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternOnmLev = _lhsInmLev -- copy rule (down) _patternOtopInstanceNmL = _lhsItopInstanceNmL ( _patternIgUniq,_patternIidOccDefs,_patternImainValExists,_patternImbTopRefname,_patternItopInstanceNmL) | True = pattern_ _patternOgUniq _patternOmoduleNm _patternOnmLev _patternOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmbTopRefname,_lhsOtopInstanceNmL))) sem_Pattern_Wildcard :: Range -> T_Pattern sem_Pattern_Wildcard range_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOmbTopRefname :: (Maybe HsName) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 236, column 9) _lhsOmbTopRefname = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmbTopRefname,_lhsOtopInstanceNmL))) sem_Pattern_Tuple :: Range -> Int -> T_Patterns -> T_Pattern sem_Pattern_Tuple range_ arity_ patterns_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOmbTopRefname :: (Maybe HsName) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _patternsOgUniq :: UID _patternsOmoduleNm :: HsName _patternsOnmLev :: NmLev _patternsOtopInstanceNmL :: ([HsName]) _patternsIgUniq :: UID _patternsIidOccDefs :: ([IdOcc]) _patternsImainValExists :: Bool _patternsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 236, column 9) _lhsOmbTopRefname = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _patternsIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _patternsImainValExists -- copy rule (up) _lhsOgUniq = _patternsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _patternsItopInstanceNmL -- copy rule (down) _patternsOgUniq = _lhsIgUniq -- copy rule (down) _patternsOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternsOnmLev = _lhsInmLev -- copy rule (down) _patternsOtopInstanceNmL = _lhsItopInstanceNmL ( _patternsIgUniq,_patternsIidOccDefs,_patternsImainValExists,_patternsItopInstanceNmL) | True = patterns_ _patternsOgUniq _patternsOmoduleNm _patternsOnmLev _patternsOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmbTopRefname,_lhsOtopInstanceNmL))) sem_Pattern_Annotate :: Range -> T_PatternAnnotation -> T_Pattern -> T_Pattern sem_Pattern_Annotate range_ annotation_ pattern_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOmbTopRefname :: (Maybe HsName) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _annotationOgUniq :: UID _annotationOmoduleNm :: HsName _annotationOnmLev :: NmLev _annotationOtopInstanceNmL :: ([HsName]) _patternOgUniq :: UID _patternOmoduleNm :: HsName _patternOnmLev :: NmLev _patternOtopInstanceNmL :: ([HsName]) _annotationIgUniq :: UID _annotationIidOccDefs :: ([IdOcc]) _annotationItopInstanceNmL :: ([HsName]) _patternIgUniq :: UID _patternIidOccDefs :: ([IdOcc]) _patternImainValExists :: Bool _patternImbTopRefname :: (Maybe HsName) _patternItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 236, column 9) _lhsOmbTopRefname = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _annotationIidOccDefs ++ _patternIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _patternImainValExists -- copy rule (up) _lhsOgUniq = _patternIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _patternItopInstanceNmL -- copy rule (down) _annotationOgUniq = _lhsIgUniq -- copy rule (down) _annotationOmoduleNm = _lhsImoduleNm -- copy rule (down) _annotationOnmLev = _lhsInmLev -- copy rule (down) _annotationOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _patternOgUniq = _annotationIgUniq -- copy rule (down) _patternOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternOnmLev = _lhsInmLev -- copy rule (chain) _patternOtopInstanceNmL = _annotationItopInstanceNmL ( _annotationIgUniq,_annotationIidOccDefs,_annotationItopInstanceNmL) | True = annotation_ _annotationOgUniq _annotationOmoduleNm _annotationOnmLev _annotationOtopInstanceNmL ( _patternIgUniq,_patternIidOccDefs,_patternImainValExists,_patternImbTopRefname,_patternItopInstanceNmL) | True = pattern_ _patternOgUniq _patternOmoduleNm _patternOnmLev _patternOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmbTopRefname,_lhsOtopInstanceNmL))) sem_Pattern_Typed :: Range -> T_Pattern -> T_Type -> T_Pattern sem_Pattern_Typed range_ pattern_ type_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOmbTopRefname :: (Maybe HsName) _typeOnmLev :: NmLev _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _patternOgUniq :: UID _patternOmoduleNm :: HsName _patternOnmLev :: NmLev _patternOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOtopInstanceNmL :: ([HsName]) _patternIgUniq :: UID _patternIidOccDefs :: ([IdOcc]) _patternImainValExists :: Bool _patternImbTopRefname :: (Maybe HsName) _patternItopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 236, column 9) _lhsOmbTopRefname = Nothing -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 56, column 9) _typeOnmLev = _lhsInmLev + 1 -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _patternIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _patternImainValExists -- copy rule (up) _lhsOgUniq = _typeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typeItopInstanceNmL -- copy rule (down) _patternOgUniq = _lhsIgUniq -- copy rule (down) _patternOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternOnmLev = _lhsInmLev -- copy rule (down) _patternOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _typeOgUniq = _patternIgUniq -- copy rule (chain) _typeOtopInstanceNmL = _patternItopInstanceNmL ( _patternIgUniq,_patternIidOccDefs,_patternImainValExists,_patternImbTopRefname,_patternItopInstanceNmL) | True = pattern_ _patternOgUniq _patternOmoduleNm _patternOnmLev _patternOtopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmbTopRefname,_lhsOtopInstanceNmL))) sem_Pattern_InfixConstructor :: Range -> T_Pattern -> Name -> T_Pattern -> T_Pattern sem_Pattern_InfixConstructor range_ leftPattern_ constructorOperator_ rightPattern_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOmbTopRefname :: (Maybe HsName) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _leftPatternOgUniq :: UID _leftPatternOmoduleNm :: HsName _leftPatternOnmLev :: NmLev _leftPatternOtopInstanceNmL :: ([HsName]) _rightPatternOgUniq :: UID _rightPatternOmoduleNm :: HsName _rightPatternOnmLev :: NmLev _rightPatternOtopInstanceNmL :: ([HsName]) _leftPatternIgUniq :: UID _leftPatternIidOccDefs :: ([IdOcc]) _leftPatternImainValExists :: Bool _leftPatternImbTopRefname :: (Maybe HsName) _leftPatternItopInstanceNmL :: ([HsName]) _rightPatternIgUniq :: UID _rightPatternIidOccDefs :: ([IdOcc]) _rightPatternImainValExists :: Bool _rightPatternImbTopRefname :: (Maybe HsName) _rightPatternItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 228, column 9) _conNm = constructorOperator_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 236, column 9) _lhsOmbTopRefname = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _leftPatternIidOccDefs ++ _rightPatternIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _leftPatternImainValExists || _rightPatternImainValExists -- copy rule (up) _lhsOgUniq = _rightPatternIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _rightPatternItopInstanceNmL -- copy rule (down) _leftPatternOgUniq = _lhsIgUniq -- copy rule (down) _leftPatternOmoduleNm = _lhsImoduleNm -- copy rule (down) _leftPatternOnmLev = _lhsInmLev -- copy rule (down) _leftPatternOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _rightPatternOgUniq = _leftPatternIgUniq -- copy rule (down) _rightPatternOmoduleNm = _lhsImoduleNm -- copy rule (down) _rightPatternOnmLev = _lhsInmLev -- copy rule (chain) _rightPatternOtopInstanceNmL = _leftPatternItopInstanceNmL ( _leftPatternIgUniq,_leftPatternIidOccDefs,_leftPatternImainValExists,_leftPatternImbTopRefname,_leftPatternItopInstanceNmL) | True = leftPattern_ _leftPatternOgUniq _leftPatternOmoduleNm _leftPatternOnmLev _leftPatternOtopInstanceNmL ( _rightPatternIgUniq,_rightPatternIidOccDefs,_rightPatternImainValExists,_rightPatternImbTopRefname,_rightPatternItopInstanceNmL) | True = rightPattern_ _rightPatternOgUniq _rightPatternOmoduleNm _rightPatternOnmLev _rightPatternOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmbTopRefname,_lhsOtopInstanceNmL))) sem_Pattern_List :: Range -> T_Patterns -> T_Pattern sem_Pattern_List range_ patterns_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOmbTopRefname :: (Maybe HsName) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _patternsOgUniq :: UID _patternsOmoduleNm :: HsName _patternsOnmLev :: NmLev _patternsOtopInstanceNmL :: ([HsName]) _patternsIgUniq :: UID _patternsIidOccDefs :: ([IdOcc]) _patternsImainValExists :: Bool _patternsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 236, column 9) _lhsOmbTopRefname = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _patternsIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _patternsImainValExists -- copy rule (up) _lhsOgUniq = _patternsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _patternsItopInstanceNmL -- copy rule (down) _patternsOgUniq = _lhsIgUniq -- copy rule (down) _patternsOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternsOnmLev = _lhsInmLev -- copy rule (down) _patternsOtopInstanceNmL = _lhsItopInstanceNmL ( _patternsIgUniq,_patternsIidOccDefs,_patternsImainValExists,_patternsItopInstanceNmL) | True = patterns_ _patternsOgUniq _patternsOmoduleNm _patternsOnmLev _patternsOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmbTopRefname,_lhsOtopInstanceNmL))) sem_Pattern_Record :: Range -> Name -> T_RecordPatternBindings -> T_Pattern sem_Pattern_Record range_ name_ recordPatternBindings_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOmbTopRefname :: (Maybe HsName) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _recordPatternBindingsOgUniq :: UID _recordPatternBindingsOmoduleNm :: HsName _recordPatternBindingsOnmLev :: NmLev _recordPatternBindingsOtopInstanceNmL :: ([HsName]) _recordPatternBindingsIgUniq :: UID _recordPatternBindingsIidOccDefs :: ([IdOcc]) _recordPatternBindingsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 226, column 9) _conNm = name_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 236, column 9) _lhsOmbTopRefname = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _recordPatternBindingsIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- copy rule (up) _lhsOgUniq = _recordPatternBindingsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _recordPatternBindingsItopInstanceNmL -- copy rule (down) _recordPatternBindingsOgUniq = _lhsIgUniq -- copy rule (down) _recordPatternBindingsOmoduleNm = _lhsImoduleNm -- copy rule (down) _recordPatternBindingsOnmLev = _lhsInmLev -- copy rule (down) _recordPatternBindingsOtopInstanceNmL = _lhsItopInstanceNmL ( _recordPatternBindingsIgUniq,_recordPatternBindingsIidOccDefs,_recordPatternBindingsItopInstanceNmL) | True = recordPatternBindings_ _recordPatternBindingsOgUniq _recordPatternBindingsOmoduleNm _recordPatternBindingsOnmLev _recordPatternBindingsOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmbTopRefname,_lhsOtopInstanceNmL))) sem_Pattern_RowRecordBinding :: Range -> T_Pattern -> T_RowRecordPatternBindings -> T_Pattern sem_Pattern_RowRecordBinding range_ pattern_ rowRecordPattternBindings_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOmbTopRefname :: (Maybe HsName) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _patternOgUniq :: UID _patternOmoduleNm :: HsName _patternOnmLev :: NmLev _patternOtopInstanceNmL :: ([HsName]) _rowRecordPattternBindingsOgUniq :: UID _rowRecordPattternBindingsOmoduleNm :: HsName _rowRecordPattternBindingsOnmLev :: NmLev _rowRecordPattternBindingsOtopInstanceNmL :: ([HsName]) _patternIgUniq :: UID _patternIidOccDefs :: ([IdOcc]) _patternImainValExists :: Bool _patternImbTopRefname :: (Maybe HsName) _patternItopInstanceNmL :: ([HsName]) _rowRecordPattternBindingsIgUniq :: UID _rowRecordPattternBindingsIidOccDefs :: ([IdOcc]) _rowRecordPattternBindingsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 236, column 9) _lhsOmbTopRefname = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _patternIidOccDefs ++ _rowRecordPattternBindingsIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _patternImainValExists -- copy rule (up) _lhsOgUniq = _rowRecordPattternBindingsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _rowRecordPattternBindingsItopInstanceNmL -- copy rule (down) _patternOgUniq = _lhsIgUniq -- copy rule (down) _patternOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternOnmLev = _lhsInmLev -- copy rule (down) _patternOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _rowRecordPattternBindingsOgUniq = _patternIgUniq -- copy rule (down) _rowRecordPattternBindingsOmoduleNm = _lhsImoduleNm -- copy rule (down) _rowRecordPattternBindingsOnmLev = _lhsInmLev -- copy rule (chain) _rowRecordPattternBindingsOtopInstanceNmL = _patternItopInstanceNmL ( _patternIgUniq,_patternIidOccDefs,_patternImainValExists,_patternImbTopRefname,_patternItopInstanceNmL) | True = pattern_ _patternOgUniq _patternOmoduleNm _patternOnmLev _patternOtopInstanceNmL ( _rowRecordPattternBindingsIgUniq,_rowRecordPattternBindingsIidOccDefs,_rowRecordPattternBindingsItopInstanceNmL) | True = rowRecordPattternBindings_ _rowRecordPattternBindingsOgUniq _rowRecordPattternBindingsOmoduleNm _rowRecordPattternBindingsOnmLev _rowRecordPattternBindingsOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmbTopRefname,_lhsOtopInstanceNmL))) sem_Pattern_RowRecordEmpty :: Range -> T_Pattern sem_Pattern_RowRecordEmpty range_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOmbTopRefname :: (Maybe HsName) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 236, column 9) _lhsOmbTopRefname = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmbTopRefname,_lhsOtopInstanceNmL))) sem_Pattern_Irrefutable :: Range -> T_Pattern -> T_Pattern sem_Pattern_Irrefutable range_ pattern_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOmbTopRefname :: (Maybe HsName) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _patternOgUniq :: UID _patternOmoduleNm :: HsName _patternOnmLev :: NmLev _patternOtopInstanceNmL :: ([HsName]) _patternIgUniq :: UID _patternIidOccDefs :: ([IdOcc]) _patternImainValExists :: Bool _patternImbTopRefname :: (Maybe HsName) _patternItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 236, column 9) _lhsOmbTopRefname = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _patternIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _patternImainValExists -- copy rule (up) _lhsOgUniq = _patternIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _patternItopInstanceNmL -- copy rule (down) _patternOgUniq = _lhsIgUniq -- copy rule (down) _patternOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternOnmLev = _lhsInmLev -- copy rule (down) _patternOtopInstanceNmL = _lhsItopInstanceNmL ( _patternIgUniq,_patternIidOccDefs,_patternImainValExists,_patternImbTopRefname,_patternItopInstanceNmL) | True = pattern_ _patternOgUniq _patternOmoduleNm _patternOnmLev _patternOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmbTopRefname,_lhsOtopInstanceNmL))) sem_Pattern_Bang :: Range -> T_Pattern -> T_Pattern sem_Pattern_Bang range_ pattern_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOmbTopRefname :: (Maybe HsName) _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _patternOgUniq :: UID _patternOmoduleNm :: HsName _patternOnmLev :: NmLev _patternOtopInstanceNmL :: ([HsName]) _patternIgUniq :: UID _patternIidOccDefs :: ([IdOcc]) _patternImainValExists :: Bool _patternImbTopRefname :: (Maybe HsName) _patternItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 236, column 9) _lhsOmbTopRefname = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _patternIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _patternImainValExists -- copy rule (up) _lhsOgUniq = _patternIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _patternItopInstanceNmL -- copy rule (down) _patternOgUniq = _lhsIgUniq -- copy rule (down) _patternOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternOnmLev = _lhsInmLev -- copy rule (down) _patternOtopInstanceNmL = _lhsItopInstanceNmL ( _patternIgUniq,_patternIidOccDefs,_patternImainValExists,_patternImbTopRefname,_patternItopInstanceNmL) | True = pattern_ _patternOgUniq _patternOmoduleNm _patternOnmLev _patternOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmbTopRefname,_lhsOtopInstanceNmL))) -- PatternAnnotation ------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: idOccDefs : [IdOcc] alternatives: alternative Empty: -} -- cata sem_PatternAnnotation :: PatternAnnotation -> T_PatternAnnotation sem_PatternAnnotation (PatternAnnotation_Empty) = (sem_PatternAnnotation_Empty) -- semantic domain type T_PatternAnnotation = UID -> HsName -> NmLev -> ([HsName]) -> ( UID,([IdOcc]),([HsName])) sem_PatternAnnotation_Empty :: T_PatternAnnotation sem_PatternAnnotation_Empty = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL))) -- Patterns ---------------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: idOccDefs : [IdOcc] mainValExists : Bool alternatives: alternative Cons: child hd : Pattern child tl : Patterns alternative Nil: -} -- cata sem_Patterns :: Patterns -> T_Patterns sem_Patterns list = (Prelude.foldr sem_Patterns_Cons sem_Patterns_Nil (Prelude.map sem_Pattern list)) -- semantic domain type T_Patterns = UID -> HsName -> NmLev -> ([HsName]) -> ( UID,([IdOcc]),Bool,([HsName])) sem_Patterns_Cons :: T_Pattern -> T_Patterns -> T_Patterns sem_Patterns_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdIidOccDefs :: ([IdOcc]) _hdImainValExists :: Bool _hdImbTopRefname :: (Maybe HsName) _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlIidOccDefs :: ([IdOcc]) _tlImainValExists :: Bool _tlItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _hdIidOccDefs ++ _tlIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = _hdImainValExists || _tlImainValExists -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdIidOccDefs,_hdImainValExists,_hdImbTopRefname,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOtopInstanceNmL ( _tlIgUniq,_tlIidOccDefs,_tlImainValExists,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOtopInstanceNmL))) sem_Patterns_Nil :: T_Patterns sem_Patterns_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOmainValExists :: Bool _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/ModImpExp.ag"(line 78, column 25) _lhsOmainValExists = False -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOtopInstanceNmL))) -- Pragma ------------------------------------------------------ {- visit 0: inherited attribute: nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: gathPragmas : Set.Set Pragma.Pragma alternatives: alternative Language: child range : {Range} child pragmas : {Names} visit 0: local pragmaNames : _ alternative OptionsUHC: child range : {Range} child options : {String} visit 0: local pragmaNames : _ alternative Derivable: child range : {Range} child className : {Name} child fieldName : {Name} child defaultName : {Name} alternative ExcludeIfTarget: child range : {Range} child targetNames : {[String]} visit 0: local targets : _ alternative CHR: child range : {Range} child chrRules : {String} -} -- cata sem_Pragma :: Pragma -> T_Pragma sem_Pragma (Pragma_Language _range _pragmas) = (sem_Pragma_Language _range _pragmas) sem_Pragma (Pragma_OptionsUHC _range _options) = (sem_Pragma_OptionsUHC _range _options) sem_Pragma (Pragma_Derivable _range _className _fieldName _defaultName) = (sem_Pragma_Derivable _range _className _fieldName _defaultName) sem_Pragma (Pragma_ExcludeIfTarget _range _targetNames) = (sem_Pragma_ExcludeIfTarget _range _targetNames) sem_Pragma (Pragma_CHR _range _chrRules) = (sem_Pragma_CHR _range _chrRules) -- semantic domain type T_Pragma = UID -> NmLev -> ([HsName]) -> ( UID,(Set.Set Pragma.Pragma),([HsName])) sem_Pragma_Language :: Range -> Names -> T_Pragma sem_Pragma_Language range_ pragmas_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 6, column 9) _pragmaNames = [ p | p <- map show pragmas_ ] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 12, column 9) _lhsOgathPragmas = Set.fromList $ catMaybes [ Map.lookup p Pragma.allSimplePragmaMp | p <- _pragmaNames ] -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOtopInstanceNmL))) sem_Pragma_OptionsUHC :: Range -> String -> T_Pragma sem_Pragma_OptionsUHC range_ options_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 8, column 9) _pragmaNames = [] -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 16, column 9) _lhsOgathPragmas = Set.singleton (Pragma.Pragma_OptionsUHC options_) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOtopInstanceNmL))) sem_Pragma_Derivable :: Range -> Name -> Name -> Name -> T_Pragma sem_Pragma_Derivable range_ className_ fieldName_ defaultName_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 14, column 9) _lhsOgathPragmas = Set.singleton (Pragma.Pragma_Derivable className_ fieldName_ defaultName_) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOtopInstanceNmL))) sem_Pragma_ExcludeIfTarget :: Range -> ([String]) -> T_Pragma sem_Pragma_ExcludeIfTarget range_ targetNames_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 18, column 9) _targets = catMaybes $ map (\t -> Map.lookup t supportedTargetMp) targetNames_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 19, column 9) _lhsOgathPragmas = Set.singleton (Pragma.Pragma_ExcludeIfTarget _targets) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOtopInstanceNmL))) sem_Pragma_CHR :: Range -> String -> T_Pragma sem_Pragma_CHR range_ chrRules_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOtopInstanceNmL))) -- Pragmas ----------------------------------------------------- {- visit 0: inherited attribute: nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: gathPragmas : Set.Set Pragma.Pragma alternatives: alternative Cons: child hd : Pragma child tl : Pragmas alternative Nil: -} -- cata sem_Pragmas :: Pragmas -> T_Pragmas sem_Pragmas list = (Prelude.foldr sem_Pragmas_Cons sem_Pragmas_Nil (Prelude.map sem_Pragma list)) -- semantic domain type T_Pragmas = UID -> NmLev -> ([HsName]) -> ( UID,(Set.Set Pragma.Pragma),([HsName])) sem_Pragmas_Cons :: T_Pragma -> T_Pragmas -> T_Pragmas sem_Pragmas_Cons hd_ tl_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOnmLev :: NmLev _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOnmLev :: NmLev _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdIgathPragmas :: (Set.Set Pragma.Pragma) _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlIgathPragmas :: (Set.Set Pragma.Pragma) _tlItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = _hdIgathPragmas `Set.union` _tlIgathPragmas -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdIgathPragmas,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOnmLev _hdOtopInstanceNmL ( _tlIgUniq,_tlIgathPragmas,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOnmLev _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOtopInstanceNmL))) sem_Pragmas_Nil :: T_Pragmas sem_Pragmas_Nil = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgathPragmas :: (Set.Set Pragma.Pragma) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 1, column 49) _lhsOgathPragmas = Set.empty -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOtopInstanceNmL))) -- Qualifier --------------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName opts : EHCOpts chained attributes: gUniq : UID nmLev : NmLev topInstanceNmL : [HsName] alternatives: alternative Guard: child range : {Range} child guard : Expression alternative Let: child range : {Range} child declarations : Declarations visit 0: local nmLev : _ alternative Generator: child range : {Range} child pattern : Pattern child expression : Expression visit 0: local nmLev : _ alternative Empty: child range : {Range} -} -- cata sem_Qualifier :: Qualifier -> T_Qualifier sem_Qualifier (Qualifier_Guard _range _guard) = (sem_Qualifier_Guard _range (sem_Expression _guard)) sem_Qualifier (Qualifier_Let _range _declarations) = (sem_Qualifier_Let _range (sem_Declarations _declarations)) sem_Qualifier (Qualifier_Generator _range _pattern _expression) = (sem_Qualifier_Generator _range (sem_Pattern _pattern) (sem_Expression _expression)) sem_Qualifier (Qualifier_Empty _range) = (sem_Qualifier_Empty _range) -- semantic domain type T_Qualifier = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,NmLev,([HsName])) sem_Qualifier_Guard :: Range -> T_Expression -> T_Qualifier sem_Qualifier_Guard range_ guard_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOnmLev :: NmLev _lhsOtopInstanceNmL :: ([HsName]) _guardOgUniq :: UID _guardOmoduleNm :: HsName _guardOnmLev :: NmLev _guardOopts :: EHCOpts _guardOtopInstanceNmL :: ([HsName]) _guardIconNm :: Name _guardIgUniq :: UID _guardItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _guardIgUniq -- copy rule (chain) _lhsOnmLev = _lhsInmLev -- copy rule (up) _lhsOtopInstanceNmL = _guardItopInstanceNmL -- copy rule (down) _guardOgUniq = _lhsIgUniq -- copy rule (down) _guardOmoduleNm = _lhsImoduleNm -- copy rule (down) _guardOnmLev = _lhsInmLev -- copy rule (down) _guardOopts = _lhsIopts -- copy rule (down) _guardOtopInstanceNmL = _lhsItopInstanceNmL ( _guardIconNm,_guardIgUniq,_guardItopInstanceNmL) | True = guard_ _guardOgUniq _guardOmoduleNm _guardOnmLev _guardOopts _guardOtopInstanceNmL in ( _lhsOgUniq,_lhsOnmLev,_lhsOtopInstanceNmL))) sem_Qualifier_Let :: Range -> T_Declarations -> T_Qualifier sem_Qualifier_Let range_ declarations_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOnmLev :: NmLev _lhsOtopInstanceNmL :: ([HsName]) _declarationsOgUniq :: UID _declarationsOmoduleNm :: HsName _declarationsOnmLev :: NmLev _declarationsOopts :: EHCOpts _declarationsOtopInstanceNmL :: ([HsName]) _declarationsIgUniq :: UID _declarationsIgathPragmas :: (Set.Set Pragma.Pragma) _declarationsIidOccDefs :: ([IdOcc]) _declarationsImainValExists :: Bool _declarationsImodDefsRel :: ModEntRel _declarationsImodHideDefsRel :: ModEntRel _declarationsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 77, column 9) _nmLev = _lhsInmLev + 1 -- copy rule (up) _lhsOgUniq = _declarationsIgUniq -- copy rule (from local) _lhsOnmLev = _nmLev -- copy rule (up) _lhsOtopInstanceNmL = _declarationsItopInstanceNmL -- copy rule (down) _declarationsOgUniq = _lhsIgUniq -- copy rule (down) _declarationsOmoduleNm = _lhsImoduleNm -- copy rule (from local) _declarationsOnmLev = _nmLev -- copy rule (down) _declarationsOopts = _lhsIopts -- copy rule (down) _declarationsOtopInstanceNmL = _lhsItopInstanceNmL ( _declarationsIgUniq,_declarationsIgathPragmas,_declarationsIidOccDefs,_declarationsImainValExists,_declarationsImodDefsRel,_declarationsImodHideDefsRel,_declarationsItopInstanceNmL) | True = declarations_ _declarationsOgUniq _declarationsOmoduleNm _declarationsOnmLev _declarationsOopts _declarationsOtopInstanceNmL in ( _lhsOgUniq,_lhsOnmLev,_lhsOtopInstanceNmL))) sem_Qualifier_Generator :: Range -> T_Pattern -> T_Expression -> T_Qualifier sem_Qualifier_Generator range_ pattern_ expression_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOnmLev :: NmLev _lhsOtopInstanceNmL :: ([HsName]) _patternOgUniq :: UID _patternOmoduleNm :: HsName _patternOnmLev :: NmLev _patternOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _patternIgUniq :: UID _patternIidOccDefs :: ([IdOcc]) _patternImainValExists :: Bool _patternImbTopRefname :: (Maybe HsName) _patternItopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 77, column 9) _nmLev = _lhsInmLev + 1 -- copy rule (up) _lhsOgUniq = _expressionIgUniq -- copy rule (from local) _lhsOnmLev = _nmLev -- copy rule (up) _lhsOtopInstanceNmL = _expressionItopInstanceNmL -- copy rule (down) _patternOgUniq = _lhsIgUniq -- copy rule (down) _patternOmoduleNm = _lhsImoduleNm -- copy rule (from local) _patternOnmLev = _nmLev -- copy rule (down) _patternOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _expressionOgUniq = _patternIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (from local) _expressionOnmLev = _nmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (chain) _expressionOtopInstanceNmL = _patternItopInstanceNmL ( _patternIgUniq,_patternIidOccDefs,_patternImainValExists,_patternImbTopRefname,_patternItopInstanceNmL) | True = pattern_ _patternOgUniq _patternOmoduleNm _patternOnmLev _patternOtopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL in ( _lhsOgUniq,_lhsOnmLev,_lhsOtopInstanceNmL))) sem_Qualifier_Empty :: Range -> T_Qualifier sem_Qualifier_Empty range_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOnmLev :: NmLev _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOnmLev = _lhsInmLev -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOnmLev,_lhsOtopInstanceNmL))) -- Qualifiers -------------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Cons: child hd : Qualifier child tl : Qualifiers alternative Nil: -} -- cata sem_Qualifiers :: Qualifiers -> T_Qualifiers sem_Qualifiers list = (Prelude.foldr sem_Qualifiers_Cons sem_Qualifiers_Nil (Prelude.map sem_Qualifier list)) -- semantic domain type T_Qualifiers = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([HsName])) sem_Qualifiers_Cons :: T_Qualifier -> T_Qualifiers -> T_Qualifiers sem_Qualifiers_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOopts :: EHCOpts _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOopts :: EHCOpts _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdInmLev :: NmLev _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOopts = _lhsIopts -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (chain) _tlOnmLev = _hdInmLev -- copy rule (down) _tlOopts = _lhsIopts -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdInmLev,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOopts _hdOtopInstanceNmL ( _tlIgUniq,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOopts _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_Qualifiers_Nil :: T_Qualifiers sem_Qualifiers_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- RecordExpressionBinding ------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Binding: child range : {Range} child name : {Name} child expression : Expression -} -- cata sem_RecordExpressionBinding :: RecordExpressionBinding -> T_RecordExpressionBinding sem_RecordExpressionBinding (RecordExpressionBinding_Binding _range _name _expression) = (sem_RecordExpressionBinding_Binding _range _name (sem_Expression _expression)) -- semantic domain type T_RecordExpressionBinding = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([HsName])) sem_RecordExpressionBinding_Binding :: Range -> Name -> T_Expression -> T_RecordExpressionBinding sem_RecordExpressionBinding_Binding range_ name_ expression_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _expressionIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _expressionItopInstanceNmL -- copy rule (down) _expressionOgUniq = _lhsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionOnmLev = _lhsInmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (down) _expressionOtopInstanceNmL = _lhsItopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- RecordExpressionBindings ------------------------------------ {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Cons: child hd : RecordExpressionBinding child tl : RecordExpressionBindings alternative Nil: -} -- cata sem_RecordExpressionBindings :: RecordExpressionBindings -> T_RecordExpressionBindings sem_RecordExpressionBindings list = (Prelude.foldr sem_RecordExpressionBindings_Cons sem_RecordExpressionBindings_Nil (Prelude.map sem_RecordExpressionBinding list)) -- semantic domain type T_RecordExpressionBindings = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([HsName])) sem_RecordExpressionBindings_Cons :: T_RecordExpressionBinding -> T_RecordExpressionBindings -> T_RecordExpressionBindings sem_RecordExpressionBindings_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOopts :: EHCOpts _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOopts :: EHCOpts _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOopts = _lhsIopts -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (down) _tlOopts = _lhsIopts -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOopts _hdOtopInstanceNmL ( _tlIgUniq,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOopts _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_RecordExpressionBindings_Nil :: T_RecordExpressionBindings sem_RecordExpressionBindings_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- RecordPatternBinding ---------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: idOccDefs : [IdOcc] alternatives: alternative Binding: child range : {Range} child name : {Name} child pattern : Pattern alternative Pun: child range : {Range} child name : {Name} visit 0: local refname : _ local idOccDef : _ -} -- cata sem_RecordPatternBinding :: RecordPatternBinding -> T_RecordPatternBinding sem_RecordPatternBinding (RecordPatternBinding_Binding _range _name _pattern) = (sem_RecordPatternBinding_Binding _range _name (sem_Pattern _pattern)) sem_RecordPatternBinding (RecordPatternBinding_Pun _range _name) = (sem_RecordPatternBinding_Pun _range _name) -- semantic domain type T_RecordPatternBinding = UID -> HsName -> NmLev -> ([HsName]) -> ( UID,([IdOcc]),([HsName])) sem_RecordPatternBinding_Binding :: Range -> Name -> T_Pattern -> T_RecordPatternBinding sem_RecordPatternBinding_Binding range_ name_ pattern_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _patternOgUniq :: UID _patternOmoduleNm :: HsName _patternOnmLev :: NmLev _patternOtopInstanceNmL :: ([HsName]) _patternIgUniq :: UID _patternIidOccDefs :: ([IdOcc]) _patternImainValExists :: Bool _patternImbTopRefname :: (Maybe HsName) _patternItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _patternIidOccDefs -- copy rule (up) _lhsOgUniq = _patternIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _patternItopInstanceNmL -- copy rule (down) _patternOgUniq = _lhsIgUniq -- copy rule (down) _patternOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternOnmLev = _lhsInmLev -- copy rule (down) _patternOtopInstanceNmL = _lhsItopInstanceNmL ( _patternIgUniq,_patternIidOccDefs,_patternImainValExists,_patternImbTopRefname,_patternItopInstanceNmL) | True = pattern_ _patternOgUniq _patternOmoduleNm _patternOnmLev _patternOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL))) sem_RecordPatternBinding_Pun :: Range -> Name -> T_RecordPatternBinding sem_RecordPatternBinding_Pun range_ name_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 92, column 9) _refname = hsnSetLevQual _lhsInmLev _lhsImoduleNm name_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 182, column 9) _idOccDef = IdOcc _refname IdOcc_Val -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL))) -- RecordPatternBindings --------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: idOccDefs : [IdOcc] alternatives: alternative Cons: child hd : RecordPatternBinding child tl : RecordPatternBindings alternative Nil: -} -- cata sem_RecordPatternBindings :: RecordPatternBindings -> T_RecordPatternBindings sem_RecordPatternBindings list = (Prelude.foldr sem_RecordPatternBindings_Cons sem_RecordPatternBindings_Nil (Prelude.map sem_RecordPatternBinding list)) -- semantic domain type T_RecordPatternBindings = UID -> HsName -> NmLev -> ([HsName]) -> ( UID,([IdOcc]),([HsName])) sem_RecordPatternBindings_Cons :: T_RecordPatternBinding -> T_RecordPatternBindings -> T_RecordPatternBindings sem_RecordPatternBindings_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdIidOccDefs :: ([IdOcc]) _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlIidOccDefs :: ([IdOcc]) _tlItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _hdIidOccDefs ++ _tlIidOccDefs -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdIidOccDefs,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOtopInstanceNmL ( _tlIgUniq,_tlIidOccDefs,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL))) sem_RecordPatternBindings_Nil :: T_RecordPatternBindings sem_RecordPatternBindings_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL))) -- RightHandSide ----------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Expression: child range : {Range} child expression : Expression child where : MaybeDeclarations visit 0: local nmLev : _ alternative Guarded: child range : {Range} child guardedexpressions : GuardedExpressions child where : MaybeDeclarations visit 0: local nmLev : _ -} -- cata sem_RightHandSide :: RightHandSide -> T_RightHandSide sem_RightHandSide (RightHandSide_Expression _range _expression _where) = (sem_RightHandSide_Expression _range (sem_Expression _expression) (sem_MaybeDeclarations _where)) sem_RightHandSide (RightHandSide_Guarded _range _guardedexpressions _where) = (sem_RightHandSide_Guarded _range (sem_GuardedExpressions _guardedexpressions) (sem_MaybeDeclarations _where)) -- semantic domain type T_RightHandSide = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([HsName])) sem_RightHandSide_Expression :: Range -> T_Expression -> T_MaybeDeclarations -> T_RightHandSide sem_RightHandSide_Expression range_ expression_ where_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _whereOgUniq :: UID _whereOmoduleNm :: HsName _whereOnmLev :: NmLev _whereOopts :: EHCOpts _whereOtopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) _whereIgUniq :: UID _whereIgathPragmas :: (Set.Set Pragma.Pragma) _whereIidOccDefs :: ([IdOcc]) _whereImainValExists :: Bool _whereItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 69, column 9) _nmLev = _lhsInmLev + 1 -- copy rule (up) _lhsOgUniq = _whereIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _whereItopInstanceNmL -- copy rule (down) _expressionOgUniq = _lhsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (from local) _expressionOnmLev = _nmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (down) _expressionOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _whereOgUniq = _expressionIgUniq -- copy rule (down) _whereOmoduleNm = _lhsImoduleNm -- copy rule (from local) _whereOnmLev = _nmLev -- copy rule (down) _whereOopts = _lhsIopts -- copy rule (chain) _whereOtopInstanceNmL = _expressionItopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL ( _whereIgUniq,_whereIgathPragmas,_whereIidOccDefs,_whereImainValExists,_whereItopInstanceNmL) | True = where_ _whereOgUniq _whereOmoduleNm _whereOnmLev _whereOopts _whereOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_RightHandSide_Guarded :: Range -> T_GuardedExpressions -> T_MaybeDeclarations -> T_RightHandSide sem_RightHandSide_Guarded range_ guardedexpressions_ where_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _guardedexpressionsOgUniq :: UID _guardedexpressionsOmoduleNm :: HsName _guardedexpressionsOnmLev :: NmLev _guardedexpressionsOopts :: EHCOpts _guardedexpressionsOtopInstanceNmL :: ([HsName]) _whereOgUniq :: UID _whereOmoduleNm :: HsName _whereOnmLev :: NmLev _whereOopts :: EHCOpts _whereOtopInstanceNmL :: ([HsName]) _guardedexpressionsIgUniq :: UID _guardedexpressionsItopInstanceNmL :: ([HsName]) _whereIgUniq :: UID _whereIgathPragmas :: (Set.Set Pragma.Pragma) _whereIidOccDefs :: ([IdOcc]) _whereImainValExists :: Bool _whereItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 69, column 9) _nmLev = _lhsInmLev + 1 -- copy rule (up) _lhsOgUniq = _whereIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _whereItopInstanceNmL -- copy rule (down) _guardedexpressionsOgUniq = _lhsIgUniq -- copy rule (down) _guardedexpressionsOmoduleNm = _lhsImoduleNm -- copy rule (from local) _guardedexpressionsOnmLev = _nmLev -- copy rule (down) _guardedexpressionsOopts = _lhsIopts -- copy rule (down) _guardedexpressionsOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _whereOgUniq = _guardedexpressionsIgUniq -- copy rule (down) _whereOmoduleNm = _lhsImoduleNm -- copy rule (from local) _whereOnmLev = _nmLev -- copy rule (down) _whereOopts = _lhsIopts -- copy rule (chain) _whereOtopInstanceNmL = _guardedexpressionsItopInstanceNmL ( _guardedexpressionsIgUniq,_guardedexpressionsItopInstanceNmL) | True = guardedexpressions_ _guardedexpressionsOgUniq _guardedexpressionsOmoduleNm _guardedexpressionsOnmLev _guardedexpressionsOopts _guardedexpressionsOtopInstanceNmL ( _whereIgUniq,_whereIgathPragmas,_whereIidOccDefs,_whereImainValExists,_whereItopInstanceNmL) | True = where_ _whereOgUniq _whereOmoduleNm _whereOnmLev _whereOopts _whereOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- RowRecordExpressionUpdate ----------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Update: child range : {Range} child name : {Name} child expression : Expression alternative Extends: child range : {Range} child name : {MaybeName} child expression : Expression -} -- cata sem_RowRecordExpressionUpdate :: RowRecordExpressionUpdate -> T_RowRecordExpressionUpdate sem_RowRecordExpressionUpdate (RowRecordExpressionUpdate_Update _range _name _expression) = (sem_RowRecordExpressionUpdate_Update _range _name (sem_Expression _expression)) sem_RowRecordExpressionUpdate (RowRecordExpressionUpdate_Extends _range _name _expression) = (sem_RowRecordExpressionUpdate_Extends _range _name (sem_Expression _expression)) -- semantic domain type T_RowRecordExpressionUpdate = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([HsName])) sem_RowRecordExpressionUpdate_Update :: Range -> Name -> T_Expression -> T_RowRecordExpressionUpdate sem_RowRecordExpressionUpdate_Update range_ name_ expression_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _expressionIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _expressionItopInstanceNmL -- copy rule (down) _expressionOgUniq = _lhsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionOnmLev = _lhsInmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (down) _expressionOtopInstanceNmL = _lhsItopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_RowRecordExpressionUpdate_Extends :: Range -> MaybeName -> T_Expression -> T_RowRecordExpressionUpdate sem_RowRecordExpressionUpdate_Extends range_ name_ expression_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _expressionIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _expressionItopInstanceNmL -- copy rule (down) _expressionOgUniq = _lhsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionOnmLev = _lhsInmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (down) _expressionOtopInstanceNmL = _lhsItopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- RowRecordExpressionUpdates ---------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Cons: child hd : RowRecordExpressionUpdate child tl : RowRecordExpressionUpdates alternative Nil: -} -- cata sem_RowRecordExpressionUpdates :: RowRecordExpressionUpdates -> T_RowRecordExpressionUpdates sem_RowRecordExpressionUpdates list = (Prelude.foldr sem_RowRecordExpressionUpdates_Cons sem_RowRecordExpressionUpdates_Nil (Prelude.map sem_RowRecordExpressionUpdate list)) -- semantic domain type T_RowRecordExpressionUpdates = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([HsName])) sem_RowRecordExpressionUpdates_Cons :: T_RowRecordExpressionUpdate -> T_RowRecordExpressionUpdates -> T_RowRecordExpressionUpdates sem_RowRecordExpressionUpdates_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOopts :: EHCOpts _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOopts :: EHCOpts _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOopts = _lhsIopts -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (down) _tlOopts = _lhsIopts -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOopts _hdOtopInstanceNmL ( _tlIgUniq,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOopts _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_RowRecordExpressionUpdates_Nil :: T_RowRecordExpressionUpdates sem_RowRecordExpressionUpdates_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- RowRecordPatternBinding ------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: idOccDefs : [IdOcc] alternatives: alternative Binding: child range : {Range} child name : {MaybeName} child pattern : Pattern -} -- cata sem_RowRecordPatternBinding :: RowRecordPatternBinding -> T_RowRecordPatternBinding sem_RowRecordPatternBinding (RowRecordPatternBinding_Binding _range _name _pattern) = (sem_RowRecordPatternBinding_Binding _range _name (sem_Pattern _pattern)) -- semantic domain type T_RowRecordPatternBinding = UID -> HsName -> NmLev -> ([HsName]) -> ( UID,([IdOcc]),([HsName])) sem_RowRecordPatternBinding_Binding :: Range -> MaybeName -> T_Pattern -> T_RowRecordPatternBinding sem_RowRecordPatternBinding_Binding range_ name_ pattern_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _patternOgUniq :: UID _patternOmoduleNm :: HsName _patternOnmLev :: NmLev _patternOtopInstanceNmL :: ([HsName]) _patternIgUniq :: UID _patternIidOccDefs :: ([IdOcc]) _patternImainValExists :: Bool _patternImbTopRefname :: (Maybe HsName) _patternItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _patternIidOccDefs -- copy rule (up) _lhsOgUniq = _patternIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _patternItopInstanceNmL -- copy rule (down) _patternOgUniq = _lhsIgUniq -- copy rule (down) _patternOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternOnmLev = _lhsInmLev -- copy rule (down) _patternOtopInstanceNmL = _lhsItopInstanceNmL ( _patternIgUniq,_patternIidOccDefs,_patternImainValExists,_patternImbTopRefname,_patternItopInstanceNmL) | True = pattern_ _patternOgUniq _patternOmoduleNm _patternOnmLev _patternOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL))) -- RowRecordPatternBindings ------------------------------------ {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: idOccDefs : [IdOcc] alternatives: alternative Cons: child hd : RowRecordPatternBinding child tl : RowRecordPatternBindings alternative Nil: -} -- cata sem_RowRecordPatternBindings :: RowRecordPatternBindings -> T_RowRecordPatternBindings sem_RowRecordPatternBindings list = (Prelude.foldr sem_RowRecordPatternBindings_Cons sem_RowRecordPatternBindings_Nil (Prelude.map sem_RowRecordPatternBinding list)) -- semantic domain type T_RowRecordPatternBindings = UID -> HsName -> NmLev -> ([HsName]) -> ( UID,([IdOcc]),([HsName])) sem_RowRecordPatternBindings_Cons :: T_RowRecordPatternBinding -> T_RowRecordPatternBindings -> T_RowRecordPatternBindings sem_RowRecordPatternBindings_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdIidOccDefs :: ([IdOcc]) _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlIidOccDefs :: ([IdOcc]) _tlItopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _hdIidOccDefs ++ _tlIidOccDefs -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdIidOccDefs,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOtopInstanceNmL ( _tlIgUniq,_tlIidOccDefs,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL))) sem_RowRecordPatternBindings_Nil :: T_RowRecordPatternBindings sem_RowRecordPatternBindings_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL))) -- RowTypeUpdate ----------------------------------------------- {- visit 0: inherited attribute: nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Extends: child range : {Range} child name : {MaybeName} child type : Type -} -- cata sem_RowTypeUpdate :: RowTypeUpdate -> T_RowTypeUpdate sem_RowTypeUpdate (RowTypeUpdate_Extends _range _name _type) = (sem_RowTypeUpdate_Extends _range _name (sem_Type _type)) -- semantic domain type T_RowTypeUpdate = UID -> NmLev -> ([HsName]) -> ( UID,([HsName])) sem_RowTypeUpdate_Extends :: Range -> MaybeName -> T_Type -> T_RowTypeUpdate sem_RowTypeUpdate_Extends range_ name_ type_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _typeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typeItopInstanceNmL -- copy rule (down) _typeOgUniq = _lhsIgUniq -- copy rule (down) _typeOnmLev = _lhsInmLev -- copy rule (down) _typeOtopInstanceNmL = _lhsItopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- RowTypeUpdates ---------------------------------------------- {- visit 0: inherited attribute: nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Cons: child hd : RowTypeUpdate child tl : RowTypeUpdates alternative Nil: -} -- cata sem_RowTypeUpdates :: RowTypeUpdates -> T_RowTypeUpdates sem_RowTypeUpdates list = (Prelude.foldr sem_RowTypeUpdates_Cons sem_RowTypeUpdates_Nil (Prelude.map sem_RowTypeUpdate list)) -- semantic domain type T_RowTypeUpdates = UID -> NmLev -> ([HsName]) -> ( UID,([HsName])) sem_RowTypeUpdates_Cons :: T_RowTypeUpdate -> T_RowTypeUpdates -> T_RowTypeUpdates sem_RowTypeUpdates_Cons hd_ tl_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOnmLev :: NmLev _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOnmLev :: NmLev _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOnmLev _hdOtopInstanceNmL ( _tlIgUniq,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOnmLev _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_RowTypeUpdates_Nil :: T_RowTypeUpdates sem_RowTypeUpdates_Nil = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- Statement --------------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName opts : EHCOpts chained attributes: gUniq : UID nmLev : NmLev topInstanceNmL : [HsName] alternatives: alternative Expression: child range : {Range} child expression : Expression alternative Let: child range : {Range} child declarations : Declarations visit 0: local nmLev : _ alternative Generator: child range : {Range} child pattern : Pattern child expression : Expression visit 0: local nmLev : _ alternative Empty: child range : {Range} -} -- cata sem_Statement :: Statement -> T_Statement sem_Statement (Statement_Expression _range _expression) = (sem_Statement_Expression _range (sem_Expression _expression)) sem_Statement (Statement_Let _range _declarations) = (sem_Statement_Let _range (sem_Declarations _declarations)) sem_Statement (Statement_Generator _range _pattern _expression) = (sem_Statement_Generator _range (sem_Pattern _pattern) (sem_Expression _expression)) sem_Statement (Statement_Empty _range) = (sem_Statement_Empty _range) -- semantic domain type T_Statement = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,NmLev,([HsName])) sem_Statement_Expression :: Range -> T_Expression -> T_Statement sem_Statement_Expression range_ expression_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOnmLev :: NmLev _lhsOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _expressionIgUniq -- copy rule (chain) _lhsOnmLev = _lhsInmLev -- copy rule (up) _lhsOtopInstanceNmL = _expressionItopInstanceNmL -- copy rule (down) _expressionOgUniq = _lhsIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (down) _expressionOnmLev = _lhsInmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (down) _expressionOtopInstanceNmL = _lhsItopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL in ( _lhsOgUniq,_lhsOnmLev,_lhsOtopInstanceNmL))) sem_Statement_Let :: Range -> T_Declarations -> T_Statement sem_Statement_Let range_ declarations_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOnmLev :: NmLev _lhsOtopInstanceNmL :: ([HsName]) _declarationsOgUniq :: UID _declarationsOmoduleNm :: HsName _declarationsOnmLev :: NmLev _declarationsOopts :: EHCOpts _declarationsOtopInstanceNmL :: ([HsName]) _declarationsIgUniq :: UID _declarationsIgathPragmas :: (Set.Set Pragma.Pragma) _declarationsIidOccDefs :: ([IdOcc]) _declarationsImainValExists :: Bool _declarationsImodDefsRel :: ModEntRel _declarationsImodHideDefsRel :: ModEntRel _declarationsItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 81, column 9) _nmLev = _lhsInmLev + 1 -- copy rule (up) _lhsOgUniq = _declarationsIgUniq -- copy rule (from local) _lhsOnmLev = _nmLev -- copy rule (up) _lhsOtopInstanceNmL = _declarationsItopInstanceNmL -- copy rule (down) _declarationsOgUniq = _lhsIgUniq -- copy rule (down) _declarationsOmoduleNm = _lhsImoduleNm -- copy rule (from local) _declarationsOnmLev = _nmLev -- copy rule (down) _declarationsOopts = _lhsIopts -- copy rule (down) _declarationsOtopInstanceNmL = _lhsItopInstanceNmL ( _declarationsIgUniq,_declarationsIgathPragmas,_declarationsIidOccDefs,_declarationsImainValExists,_declarationsImodDefsRel,_declarationsImodHideDefsRel,_declarationsItopInstanceNmL) | True = declarations_ _declarationsOgUniq _declarationsOmoduleNm _declarationsOnmLev _declarationsOopts _declarationsOtopInstanceNmL in ( _lhsOgUniq,_lhsOnmLev,_lhsOtopInstanceNmL))) sem_Statement_Generator :: Range -> T_Pattern -> T_Expression -> T_Statement sem_Statement_Generator range_ pattern_ expression_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOnmLev :: NmLev _lhsOtopInstanceNmL :: ([HsName]) _patternOgUniq :: UID _patternOmoduleNm :: HsName _patternOnmLev :: NmLev _patternOtopInstanceNmL :: ([HsName]) _expressionOgUniq :: UID _expressionOmoduleNm :: HsName _expressionOnmLev :: NmLev _expressionOopts :: EHCOpts _expressionOtopInstanceNmL :: ([HsName]) _patternIgUniq :: UID _patternIidOccDefs :: ([IdOcc]) _patternImainValExists :: Bool _patternImbTopRefname :: (Maybe HsName) _patternItopInstanceNmL :: ([HsName]) _expressionIconNm :: Name _expressionIgUniq :: UID _expressionItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 81, column 9) _nmLev = _lhsInmLev + 1 -- copy rule (up) _lhsOgUniq = _expressionIgUniq -- copy rule (from local) _lhsOnmLev = _nmLev -- copy rule (up) _lhsOtopInstanceNmL = _expressionItopInstanceNmL -- copy rule (down) _patternOgUniq = _lhsIgUniq -- copy rule (down) _patternOmoduleNm = _lhsImoduleNm -- copy rule (from local) _patternOnmLev = _nmLev -- copy rule (down) _patternOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _expressionOgUniq = _patternIgUniq -- copy rule (down) _expressionOmoduleNm = _lhsImoduleNm -- copy rule (from local) _expressionOnmLev = _nmLev -- copy rule (down) _expressionOopts = _lhsIopts -- copy rule (chain) _expressionOtopInstanceNmL = _patternItopInstanceNmL ( _patternIgUniq,_patternIidOccDefs,_patternImainValExists,_patternImbTopRefname,_patternItopInstanceNmL) | True = pattern_ _patternOgUniq _patternOmoduleNm _patternOnmLev _patternOtopInstanceNmL ( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True = expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL in ( _lhsOgUniq,_lhsOnmLev,_lhsOtopInstanceNmL))) sem_Statement_Empty :: Range -> T_Statement sem_Statement_Empty range_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOnmLev :: NmLev _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOnmLev = _lhsInmLev -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOnmLev,_lhsOtopInstanceNmL))) -- Statements -------------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev opts : EHCOpts chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Cons: child hd : Statement child tl : Statements alternative Nil: -} -- cata sem_Statements :: Statements -> T_Statements sem_Statements list = (Prelude.foldr sem_Statements_Cons sem_Statements_Nil (Prelude.map sem_Statement list)) -- semantic domain type T_Statements = UID -> HsName -> NmLev -> EHCOpts -> ([HsName]) -> ( UID,([HsName])) sem_Statements_Cons :: T_Statement -> T_Statements -> T_Statements sem_Statements_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOopts :: EHCOpts _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOopts :: EHCOpts _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdInmLev :: NmLev _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOopts = _lhsIopts -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (chain) _tlOnmLev = _hdInmLev -- copy rule (down) _tlOopts = _lhsIopts -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdInmLev,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOopts _hdOtopInstanceNmL ( _tlIgUniq,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOopts _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_Statements_Nil :: T_Statements sem_Statements_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsIopts _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- Strings ----------------------------------------------------- {- visit 0: inherited attribute: nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Cons: child hd : {String} child tl : Strings alternative Nil: -} -- cata sem_Strings :: Strings -> T_Strings sem_Strings list = (Prelude.foldr sem_Strings_Cons sem_Strings_Nil list) -- semantic domain type T_Strings = UID -> NmLev -> ([HsName]) -> ( UID,([HsName])) sem_Strings_Cons :: String -> T_Strings -> T_Strings sem_Strings_Cons hd_ tl_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOnmLev :: NmLev _tlOtopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _tlOgUniq = _lhsIgUniq -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (down) _tlOtopInstanceNmL = _lhsItopInstanceNmL ( _tlIgUniq,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOnmLev _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_Strings_Nil :: T_Strings sem_Strings_Nil = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- Type -------------------------------------------------------- {- visit 0: inherited attribute: nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: conNm : Name alternatives: alternative NormalApplication: child range : {Range} child function : Type child arguments : Types alternative InfixApplication: child range : {Range} child leftType : Type child operator : Type child rightType : Type alternative InfixApplicationChainTop: child range : {Range} child type : Type alternative Constructor: child range : {Range} child name : {Name} alternative Parenthesized: child range : {Range} child type : Type alternative SectionApplication: child range : {Range} child leftType : MaybeType child operator : Type child rightType : MaybeType alternative Annotate: child range : {Range} child annotation : TypeAnnotation child type : Type alternative Wildcard: child range : {Range} alternative MonoWildcard: child range : {Range} alternative Variable: child range : {Range} child name : {Name} alternative NamedWildcard: child range : {Range} child name : {Name} alternative Forall: child range : {Range} child typevariables : {Names} child type : Type visit 0: local nmLev : _ alternative Exists: child range : {Range} child typevariables : {Names} child type : Type visit 0: local nmLev : _ alternative RowUpdate: child range : {Range} child type : Type child rowTypeUpdates : RowTypeUpdates alternative RowEmpty: child range : {Range} alternative RowRecUpdate: child range : {Range} child type : Type child rowTypeUpdates : RowTypeUpdates alternative RowRecEmpty: child range : {Range} alternative RowSumUpdate: child range : {Range} child type : Type child rowTypeUpdates : RowTypeUpdates alternative RowSumEmpty: child range : {Range} alternative Qualified: child range : {Range} child context : ContextItems child type : Type alternative TupleConstructor: child range : {Range} child arity : {Int} -} -- cata sem_Type :: Type -> T_Type sem_Type (Type_NormalApplication _range _function _arguments) = (sem_Type_NormalApplication _range (sem_Type _function) (sem_Types _arguments)) sem_Type (Type_InfixApplication _range _leftType _operator _rightType) = (sem_Type_InfixApplication _range (sem_Type _leftType) (sem_Type _operator) (sem_Type _rightType)) sem_Type (Type_InfixApplicationChainTop _range _type) = (sem_Type_InfixApplicationChainTop _range (sem_Type _type)) sem_Type (Type_Constructor _range _name) = (sem_Type_Constructor _range _name) sem_Type (Type_Parenthesized _range _type) = (sem_Type_Parenthesized _range (sem_Type _type)) sem_Type (Type_SectionApplication _range _leftType _operator _rightType) = (sem_Type_SectionApplication _range (sem_MaybeType _leftType) (sem_Type _operator) (sem_MaybeType _rightType)) sem_Type (Type_Annotate _range _annotation _type) = (sem_Type_Annotate _range (sem_TypeAnnotation _annotation) (sem_Type _type)) sem_Type (Type_Wildcard _range) = (sem_Type_Wildcard _range) sem_Type (Type_MonoWildcard _range) = (sem_Type_MonoWildcard _range) sem_Type (Type_Variable _range _name) = (sem_Type_Variable _range _name) sem_Type (Type_NamedWildcard _range _name) = (sem_Type_NamedWildcard _range _name) sem_Type (Type_Forall _range _typevariables _type) = (sem_Type_Forall _range _typevariables (sem_Type _type)) sem_Type (Type_Exists _range _typevariables _type) = (sem_Type_Exists _range _typevariables (sem_Type _type)) sem_Type (Type_RowUpdate _range _type _rowTypeUpdates) = (sem_Type_RowUpdate _range (sem_Type _type) (sem_RowTypeUpdates _rowTypeUpdates)) sem_Type (Type_RowEmpty _range) = (sem_Type_RowEmpty _range) sem_Type (Type_RowRecUpdate _range _type _rowTypeUpdates) = (sem_Type_RowRecUpdate _range (sem_Type _type) (sem_RowTypeUpdates _rowTypeUpdates)) sem_Type (Type_RowRecEmpty _range) = (sem_Type_RowRecEmpty _range) sem_Type (Type_RowSumUpdate _range _type _rowTypeUpdates) = (sem_Type_RowSumUpdate _range (sem_Type _type) (sem_RowTypeUpdates _rowTypeUpdates)) sem_Type (Type_RowSumEmpty _range) = (sem_Type_RowSumEmpty _range) sem_Type (Type_Qualified _range _context _type) = (sem_Type_Qualified _range (sem_ContextItems _context) (sem_Type _type)) sem_Type (Type_TupleConstructor _range _arity) = (sem_Type_TupleConstructor _range _arity) -- semantic domain type T_Type = UID -> NmLev -> ([HsName]) -> ( Name,UID,([HsName])) sem_Type_NormalApplication :: Range -> T_Type -> T_Types -> T_Type sem_Type_NormalApplication range_ function_ arguments_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _functionOgUniq :: UID _functionOnmLev :: NmLev _functionOtopInstanceNmL :: ([HsName]) _argumentsOgUniq :: UID _argumentsOnmLev :: NmLev _argumentsOtopInstanceNmL :: ([HsName]) _functionIconNm :: Name _functionIgUniq :: UID _functionItopInstanceNmL :: ([HsName]) _argumentsIgUniq :: UID _argumentsItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOconNm = _functionIconNm -- copy rule (up) _lhsOgUniq = _argumentsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _argumentsItopInstanceNmL -- copy rule (down) _functionOgUniq = _lhsIgUniq -- copy rule (down) _functionOnmLev = _lhsInmLev -- copy rule (down) _functionOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _argumentsOgUniq = _functionIgUniq -- copy rule (down) _argumentsOnmLev = _lhsInmLev -- copy rule (chain) _argumentsOtopInstanceNmL = _functionItopInstanceNmL ( _functionIconNm,_functionIgUniq,_functionItopInstanceNmL) | True = function_ _functionOgUniq _functionOnmLev _functionOtopInstanceNmL ( _argumentsIgUniq,_argumentsItopInstanceNmL) | True = arguments_ _argumentsOgUniq _argumentsOnmLev _argumentsOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_InfixApplication :: Range -> T_Type -> T_Type -> T_Type -> T_Type sem_Type_InfixApplication range_ leftType_ operator_ rightType_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _leftTypeOgUniq :: UID _leftTypeOnmLev :: NmLev _leftTypeOtopInstanceNmL :: ([HsName]) _operatorOgUniq :: UID _operatorOnmLev :: NmLev _operatorOtopInstanceNmL :: ([HsName]) _rightTypeOgUniq :: UID _rightTypeOnmLev :: NmLev _rightTypeOtopInstanceNmL :: ([HsName]) _leftTypeIconNm :: Name _leftTypeIgUniq :: UID _leftTypeItopInstanceNmL :: ([HsName]) _operatorIconNm :: Name _operatorIgUniq :: UID _operatorItopInstanceNmL :: ([HsName]) _rightTypeIconNm :: Name _rightTypeIgUniq :: UID _rightTypeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 263, column 9) _lhsOconNm = _operatorIconNm -- copy rule (up) _lhsOgUniq = _rightTypeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _rightTypeItopInstanceNmL -- copy rule (down) _leftTypeOgUniq = _lhsIgUniq -- copy rule (down) _leftTypeOnmLev = _lhsInmLev -- copy rule (down) _leftTypeOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _operatorOgUniq = _leftTypeIgUniq -- copy rule (down) _operatorOnmLev = _lhsInmLev -- copy rule (chain) _operatorOtopInstanceNmL = _leftTypeItopInstanceNmL -- copy rule (chain) _rightTypeOgUniq = _operatorIgUniq -- copy rule (down) _rightTypeOnmLev = _lhsInmLev -- copy rule (chain) _rightTypeOtopInstanceNmL = _operatorItopInstanceNmL ( _leftTypeIconNm,_leftTypeIgUniq,_leftTypeItopInstanceNmL) | True = leftType_ _leftTypeOgUniq _leftTypeOnmLev _leftTypeOtopInstanceNmL ( _operatorIconNm,_operatorIgUniq,_operatorItopInstanceNmL) | True = operator_ _operatorOgUniq _operatorOnmLev _operatorOtopInstanceNmL ( _rightTypeIconNm,_rightTypeIgUniq,_rightTypeItopInstanceNmL) | True = rightType_ _rightTypeOgUniq _rightTypeOnmLev _rightTypeOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_InfixApplicationChainTop :: Range -> T_Type -> T_Type sem_Type_InfixApplicationChainTop range_ type_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOconNm = _typeIconNm -- copy rule (up) _lhsOgUniq = _typeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typeItopInstanceNmL -- copy rule (down) _typeOgUniq = _lhsIgUniq -- copy rule (down) _typeOnmLev = _lhsInmLev -- copy rule (down) _typeOtopInstanceNmL = _lhsItopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_Constructor :: Range -> Name -> T_Type sem_Type_Constructor range_ name_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 261, column 9) _lhsOconNm = name_ -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_Parenthesized :: Range -> T_Type -> T_Type sem_Type_Parenthesized range_ type_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 266, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _typeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typeItopInstanceNmL -- copy rule (down) _typeOgUniq = _lhsIgUniq -- copy rule (down) _typeOnmLev = _lhsInmLev -- copy rule (down) _typeOtopInstanceNmL = _lhsItopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_SectionApplication :: Range -> T_MaybeType -> T_Type -> T_MaybeType -> T_Type sem_Type_SectionApplication range_ leftType_ operator_ rightType_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _leftTypeOgUniq :: UID _leftTypeOnmLev :: NmLev _leftTypeOtopInstanceNmL :: ([HsName]) _operatorOgUniq :: UID _operatorOnmLev :: NmLev _operatorOtopInstanceNmL :: ([HsName]) _rightTypeOgUniq :: UID _rightTypeOnmLev :: NmLev _rightTypeOtopInstanceNmL :: ([HsName]) _leftTypeIgUniq :: UID _leftTypeItopInstanceNmL :: ([HsName]) _operatorIconNm :: Name _operatorIgUniq :: UID _operatorItopInstanceNmL :: ([HsName]) _rightTypeIgUniq :: UID _rightTypeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 266, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _rightTypeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _rightTypeItopInstanceNmL -- copy rule (down) _leftTypeOgUniq = _lhsIgUniq -- copy rule (down) _leftTypeOnmLev = _lhsInmLev -- copy rule (down) _leftTypeOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _operatorOgUniq = _leftTypeIgUniq -- copy rule (down) _operatorOnmLev = _lhsInmLev -- copy rule (chain) _operatorOtopInstanceNmL = _leftTypeItopInstanceNmL -- copy rule (chain) _rightTypeOgUniq = _operatorIgUniq -- copy rule (down) _rightTypeOnmLev = _lhsInmLev -- copy rule (chain) _rightTypeOtopInstanceNmL = _operatorItopInstanceNmL ( _leftTypeIgUniq,_leftTypeItopInstanceNmL) | True = leftType_ _leftTypeOgUniq _leftTypeOnmLev _leftTypeOtopInstanceNmL ( _operatorIconNm,_operatorIgUniq,_operatorItopInstanceNmL) | True = operator_ _operatorOgUniq _operatorOnmLev _operatorOtopInstanceNmL ( _rightTypeIgUniq,_rightTypeItopInstanceNmL) | True = rightType_ _rightTypeOgUniq _rightTypeOnmLev _rightTypeOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_Annotate :: Range -> T_TypeAnnotation -> T_Type -> T_Type sem_Type_Annotate range_ annotation_ type_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _annotationOgUniq :: UID _annotationOnmLev :: NmLev _annotationOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _annotationIgUniq :: UID _annotationItopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 266, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _typeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typeItopInstanceNmL -- copy rule (down) _annotationOgUniq = _lhsIgUniq -- copy rule (down) _annotationOnmLev = _lhsInmLev -- copy rule (down) _annotationOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _typeOgUniq = _annotationIgUniq -- copy rule (down) _typeOnmLev = _lhsInmLev -- copy rule (chain) _typeOtopInstanceNmL = _annotationItopInstanceNmL ( _annotationIgUniq,_annotationItopInstanceNmL) | True = annotation_ _annotationOgUniq _annotationOnmLev _annotationOtopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_Wildcard :: Range -> T_Type sem_Type_Wildcard range_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 266, column 9) _lhsOconNm = hsnUnknown -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_MonoWildcard :: Range -> T_Type sem_Type_MonoWildcard range_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 266, column 9) _lhsOconNm = hsnUnknown -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_Variable :: Range -> Name -> T_Type sem_Type_Variable range_ name_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 266, column 9) _lhsOconNm = hsnUnknown -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_NamedWildcard :: Range -> Name -> T_Type sem_Type_NamedWildcard range_ name_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 266, column 9) _lhsOconNm = hsnUnknown -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_Forall :: Range -> Names -> T_Type -> T_Type sem_Type_Forall range_ typevariables_ type_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 266, column 9) _lhsOconNm = hsnUnknown -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 33, column 9) _nmLev = _lhsInmLev + 1 -- copy rule (up) _lhsOgUniq = _typeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typeItopInstanceNmL -- copy rule (down) _typeOgUniq = _lhsIgUniq -- copy rule (from local) _typeOnmLev = _nmLev -- copy rule (down) _typeOtopInstanceNmL = _lhsItopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_Exists :: Range -> Names -> T_Type -> T_Type sem_Type_Exists range_ typevariables_ type_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 266, column 9) _lhsOconNm = hsnUnknown -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameLevel.ag"(line 33, column 9) _nmLev = _lhsInmLev + 1 -- copy rule (up) _lhsOgUniq = _typeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typeItopInstanceNmL -- copy rule (down) _typeOgUniq = _lhsIgUniq -- copy rule (from local) _typeOnmLev = _nmLev -- copy rule (down) _typeOtopInstanceNmL = _lhsItopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_RowUpdate :: Range -> T_Type -> T_RowTypeUpdates -> T_Type sem_Type_RowUpdate range_ type_ rowTypeUpdates_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _rowTypeUpdatesOgUniq :: UID _rowTypeUpdatesOnmLev :: NmLev _rowTypeUpdatesOtopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) _rowTypeUpdatesIgUniq :: UID _rowTypeUpdatesItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 266, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _rowTypeUpdatesIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _rowTypeUpdatesItopInstanceNmL -- copy rule (down) _typeOgUniq = _lhsIgUniq -- copy rule (down) _typeOnmLev = _lhsInmLev -- copy rule (down) _typeOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _rowTypeUpdatesOgUniq = _typeIgUniq -- copy rule (down) _rowTypeUpdatesOnmLev = _lhsInmLev -- copy rule (chain) _rowTypeUpdatesOtopInstanceNmL = _typeItopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL ( _rowTypeUpdatesIgUniq,_rowTypeUpdatesItopInstanceNmL) | True = rowTypeUpdates_ _rowTypeUpdatesOgUniq _rowTypeUpdatesOnmLev _rowTypeUpdatesOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_RowEmpty :: Range -> T_Type sem_Type_RowEmpty range_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 266, column 9) _lhsOconNm = hsnUnknown -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_RowRecUpdate :: Range -> T_Type -> T_RowTypeUpdates -> T_Type sem_Type_RowRecUpdate range_ type_ rowTypeUpdates_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _rowTypeUpdatesOgUniq :: UID _rowTypeUpdatesOnmLev :: NmLev _rowTypeUpdatesOtopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) _rowTypeUpdatesIgUniq :: UID _rowTypeUpdatesItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 266, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _rowTypeUpdatesIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _rowTypeUpdatesItopInstanceNmL -- copy rule (down) _typeOgUniq = _lhsIgUniq -- copy rule (down) _typeOnmLev = _lhsInmLev -- copy rule (down) _typeOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _rowTypeUpdatesOgUniq = _typeIgUniq -- copy rule (down) _rowTypeUpdatesOnmLev = _lhsInmLev -- copy rule (chain) _rowTypeUpdatesOtopInstanceNmL = _typeItopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL ( _rowTypeUpdatesIgUniq,_rowTypeUpdatesItopInstanceNmL) | True = rowTypeUpdates_ _rowTypeUpdatesOgUniq _rowTypeUpdatesOnmLev _rowTypeUpdatesOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_RowRecEmpty :: Range -> T_Type sem_Type_RowRecEmpty range_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 266, column 9) _lhsOconNm = hsnUnknown -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_RowSumUpdate :: Range -> T_Type -> T_RowTypeUpdates -> T_Type sem_Type_RowSumUpdate range_ type_ rowTypeUpdates_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _rowTypeUpdatesOgUniq :: UID _rowTypeUpdatesOnmLev :: NmLev _rowTypeUpdatesOtopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) _rowTypeUpdatesIgUniq :: UID _rowTypeUpdatesItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 266, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _rowTypeUpdatesIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _rowTypeUpdatesItopInstanceNmL -- copy rule (down) _typeOgUniq = _lhsIgUniq -- copy rule (down) _typeOnmLev = _lhsInmLev -- copy rule (down) _typeOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _rowTypeUpdatesOgUniq = _typeIgUniq -- copy rule (down) _rowTypeUpdatesOnmLev = _lhsInmLev -- copy rule (chain) _rowTypeUpdatesOtopInstanceNmL = _typeItopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL ( _rowTypeUpdatesIgUniq,_rowTypeUpdatesItopInstanceNmL) | True = rowTypeUpdates_ _rowTypeUpdatesOgUniq _rowTypeUpdatesOnmLev _rowTypeUpdatesOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_RowSumEmpty :: Range -> T_Type sem_Type_RowSumEmpty range_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 266, column 9) _lhsOconNm = hsnUnknown -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_Qualified :: Range -> T_ContextItems -> T_Type -> T_Type sem_Type_Qualified range_ context_ type_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _contextOgUniq :: UID _contextOnmLev :: NmLev _contextOtopInstanceNmL :: ([HsName]) _typeOgUniq :: UID _typeOnmLev :: NmLev _typeOtopInstanceNmL :: ([HsName]) _contextIgUniq :: UID _contextItopInstanceNmL :: ([HsName]) _typeIconNm :: Name _typeIgUniq :: UID _typeItopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 266, column 9) _lhsOconNm = hsnUnknown -- copy rule (up) _lhsOgUniq = _typeIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _typeItopInstanceNmL -- copy rule (down) _contextOgUniq = _lhsIgUniq -- copy rule (down) _contextOnmLev = _lhsInmLev -- copy rule (down) _contextOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _typeOgUniq = _contextIgUniq -- copy rule (down) _typeOnmLev = _lhsInmLev -- copy rule (chain) _typeOtopInstanceNmL = _contextItopInstanceNmL ( _contextIgUniq,_contextItopInstanceNmL) | True = context_ _contextOgUniq _contextOnmLev _contextOtopInstanceNmL ( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True = type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) sem_Type_TupleConstructor :: Range -> Int -> T_Type sem_Type_TupleConstructor range_ arity_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOconNm :: Name _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 266, column 9) _lhsOconNm = hsnUnknown -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL))) -- TypeAnnotation ---------------------------------------------- {- visit 0: inherited attribute: nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] alternatives: alternative Strict: alternative AnnotationName: child name : {Name} alternative AnnotationVar: child name : {Name} child var : {Name} -} -- cata sem_TypeAnnotation :: TypeAnnotation -> T_TypeAnnotation sem_TypeAnnotation (TypeAnnotation_Strict) = (sem_TypeAnnotation_Strict) sem_TypeAnnotation (TypeAnnotation_AnnotationName _name) = (sem_TypeAnnotation_AnnotationName _name) sem_TypeAnnotation (TypeAnnotation_AnnotationVar _name _var) = (sem_TypeAnnotation_AnnotationVar _name _var) -- semantic domain type T_TypeAnnotation = UID -> NmLev -> ([HsName]) -> ( UID,([HsName])) sem_TypeAnnotation_Strict :: T_TypeAnnotation sem_TypeAnnotation_Strict = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_TypeAnnotation_AnnotationName :: Name -> T_TypeAnnotation sem_TypeAnnotation_AnnotationName name_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_TypeAnnotation_AnnotationVar :: Name -> Name -> T_TypeAnnotation sem_TypeAnnotation_AnnotationVar name_ var_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) -- TypeLeftHandSide -------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attributes: idOccDefs : [IdOcc] name : Name range : Range typevariables : Names alternatives: alternative Function: child range : {Range} child name : {Name} child patterns : TypePatterns alternative Infix: child range : {Range} child leftPattern : TypePattern child operator : {Name} child rightPattern : TypePattern alternative Parenthesized: child range : {Range} child lefthandside : TypeLeftHandSide child patterns : TypePatterns -} -- cata sem_TypeLeftHandSide :: TypeLeftHandSide -> T_TypeLeftHandSide sem_TypeLeftHandSide (TypeLeftHandSide_Function _range _name _patterns) = (sem_TypeLeftHandSide_Function _range _name (sem_TypePatterns _patterns)) sem_TypeLeftHandSide (TypeLeftHandSide_Infix _range _leftPattern _operator _rightPattern) = (sem_TypeLeftHandSide_Infix _range (sem_TypePattern _leftPattern) _operator (sem_TypePattern _rightPattern)) sem_TypeLeftHandSide (TypeLeftHandSide_Parenthesized _range _lefthandside _patterns) = (sem_TypeLeftHandSide_Parenthesized _range (sem_TypeLeftHandSide _lefthandside) (sem_TypePatterns _patterns)) -- semantic domain type T_TypeLeftHandSide = UID -> HsName -> NmLev -> ([HsName]) -> ( UID,([IdOcc]),Name,Range,([HsName]),Names) sem_TypeLeftHandSide_Function :: Range -> Name -> T_TypePatterns -> T_TypeLeftHandSide sem_TypeLeftHandSide_Function range_ name_ patterns_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOrange :: Range _lhsOname :: Name _lhsOidOccDefs :: ([IdOcc]) _lhsOtypevariables :: Names _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _patternsOgUniq :: UID _patternsOmoduleNm :: HsName _patternsOnmLev :: NmLev _patternsOtopInstanceNmL :: ([HsName]) _patternsIgUniq :: UID _patternsItopInstanceNmL :: ([HsName]) _patternsItypevariables :: Names -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 212, column 9) _lhsOrange = range_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 212, column 9) _lhsOname = name_ -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 208, column 25) _lhsOtypevariables = _patternsItypevariables -- copy rule (up) _lhsOgUniq = _patternsIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _patternsItopInstanceNmL -- copy rule (down) _patternsOgUniq = _lhsIgUniq -- copy rule (down) _patternsOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternsOnmLev = _lhsInmLev -- copy rule (down) _patternsOtopInstanceNmL = _lhsItopInstanceNmL ( _patternsIgUniq,_patternsItopInstanceNmL,_patternsItypevariables) | True = patterns_ _patternsOgUniq _patternsOmoduleNm _patternsOnmLev _patternsOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOname,_lhsOrange,_lhsOtopInstanceNmL,_lhsOtypevariables))) sem_TypeLeftHandSide_Infix :: Range -> T_TypePattern -> Name -> T_TypePattern -> T_TypeLeftHandSide sem_TypeLeftHandSide_Infix range_ leftPattern_ operator_ rightPattern_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOrange :: Range _lhsOname :: Name _lhsOidOccDefs :: ([IdOcc]) _lhsOtypevariables :: Names _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _leftPatternOgUniq :: UID _leftPatternOmoduleNm :: HsName _leftPatternOnmLev :: NmLev _leftPatternOtopInstanceNmL :: ([HsName]) _rightPatternOgUniq :: UID _rightPatternOmoduleNm :: HsName _rightPatternOnmLev :: NmLev _rightPatternOtopInstanceNmL :: ([HsName]) _leftPatternIgUniq :: UID _leftPatternItopInstanceNmL :: ([HsName]) _leftPatternItypevariables :: Names _rightPatternIgUniq :: UID _rightPatternItopInstanceNmL :: ([HsName]) _rightPatternItypevariables :: Names -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 215, column 9) _lhsOrange = range_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 215, column 9) _lhsOname = operator_ -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 208, column 25) _lhsOtypevariables = _leftPatternItypevariables ++ _rightPatternItypevariables -- copy rule (up) _lhsOgUniq = _rightPatternIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _rightPatternItopInstanceNmL -- copy rule (down) _leftPatternOgUniq = _lhsIgUniq -- copy rule (down) _leftPatternOmoduleNm = _lhsImoduleNm -- copy rule (down) _leftPatternOnmLev = _lhsInmLev -- copy rule (down) _leftPatternOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _rightPatternOgUniq = _leftPatternIgUniq -- copy rule (down) _rightPatternOmoduleNm = _lhsImoduleNm -- copy rule (down) _rightPatternOnmLev = _lhsInmLev -- copy rule (chain) _rightPatternOtopInstanceNmL = _leftPatternItopInstanceNmL ( _leftPatternIgUniq,_leftPatternItopInstanceNmL,_leftPatternItypevariables) | True = leftPattern_ _leftPatternOgUniq _leftPatternOmoduleNm _leftPatternOnmLev _leftPatternOtopInstanceNmL ( _rightPatternIgUniq,_rightPatternItopInstanceNmL,_rightPatternItypevariables) | True = rightPattern_ _rightPatternOgUniq _rightPatternOmoduleNm _rightPatternOnmLev _rightPatternOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOname,_lhsOrange,_lhsOtopInstanceNmL,_lhsOtypevariables))) sem_TypeLeftHandSide_Parenthesized :: Range -> T_TypeLeftHandSide -> T_TypePatterns -> T_TypeLeftHandSide sem_TypeLeftHandSide_Parenthesized range_ lefthandside_ patterns_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOidOccDefs :: ([IdOcc]) _lhsOtypevariables :: Names _lhsOgUniq :: UID _lhsOname :: Name _lhsOrange :: Range _lhsOtopInstanceNmL :: ([HsName]) _lefthandsideOgUniq :: UID _lefthandsideOmoduleNm :: HsName _lefthandsideOnmLev :: NmLev _lefthandsideOtopInstanceNmL :: ([HsName]) _patternsOgUniq :: UID _patternsOmoduleNm :: HsName _patternsOnmLev :: NmLev _patternsOtopInstanceNmL :: ([HsName]) _lefthandsideIgUniq :: UID _lefthandsideIidOccDefs :: ([IdOcc]) _lefthandsideIname :: Name _lefthandsideIrange :: Range _lefthandsideItopInstanceNmL :: ([HsName]) _lefthandsideItypevariables :: Names _patternsIgUniq :: UID _patternsItopInstanceNmL :: ([HsName]) _patternsItypevariables :: Names -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 105, column 21) _lhsOidOccDefs = _lefthandsideIidOccDefs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 208, column 25) _lhsOtypevariables = _lefthandsideItypevariables ++ _patternsItypevariables -- copy rule (up) _lhsOgUniq = _patternsIgUniq -- copy rule (up) _lhsOname = _lefthandsideIname -- copy rule (up) _lhsOrange = _lefthandsideIrange -- copy rule (up) _lhsOtopInstanceNmL = _patternsItopInstanceNmL -- copy rule (down) _lefthandsideOgUniq = _lhsIgUniq -- copy rule (down) _lefthandsideOmoduleNm = _lhsImoduleNm -- copy rule (down) _lefthandsideOnmLev = _lhsInmLev -- copy rule (down) _lefthandsideOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _patternsOgUniq = _lefthandsideIgUniq -- copy rule (down) _patternsOmoduleNm = _lhsImoduleNm -- copy rule (down) _patternsOnmLev = _lhsInmLev -- copy rule (chain) _patternsOtopInstanceNmL = _lefthandsideItopInstanceNmL ( _lefthandsideIgUniq,_lefthandsideIidOccDefs,_lefthandsideIname,_lefthandsideIrange,_lefthandsideItopInstanceNmL,_lefthandsideItypevariables) | True = lefthandside_ _lefthandsideOgUniq _lefthandsideOmoduleNm _lefthandsideOnmLev _lefthandsideOtopInstanceNmL ( _patternsIgUniq,_patternsItopInstanceNmL,_patternsItypevariables) | True = patterns_ _patternsOgUniq _patternsOmoduleNm _patternsOnmLev _patternsOtopInstanceNmL in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOname,_lhsOrange,_lhsOtopInstanceNmL,_lhsOtypevariables))) -- TypePattern ------------------------------------------------- {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: typevariables : Names alternatives: alternative Variable: child range : {Range} child name : {Name} visit 0: local refname : _ -} -- cata sem_TypePattern :: TypePattern -> T_TypePattern sem_TypePattern (TypePattern_Variable _range _name) = (sem_TypePattern_Variable _range _name) -- semantic domain type T_TypePattern = UID -> HsName -> NmLev -> ([HsName]) -> ( UID,([HsName]),Names) sem_TypePattern_Variable :: Range -> Name -> T_TypePattern sem_TypePattern_Variable range_ name_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOtypevariables :: Names _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 58, column 9) _refname = hsnSetLevQual _lhsInmLev _lhsImoduleNm name_ -- "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 220, column 9) _lhsOtypevariables = [name_] -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL,_lhsOtypevariables))) -- TypePatterns ------------------------------------------------ {- visit 0: inherited attributes: moduleNm : HsName nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] synthesized attribute: typevariables : Names alternatives: alternative Cons: child hd : TypePattern child tl : TypePatterns alternative Nil: -} -- cata sem_TypePatterns :: TypePatterns -> T_TypePatterns sem_TypePatterns list = (Prelude.foldr sem_TypePatterns_Cons sem_TypePatterns_Nil (Prelude.map sem_TypePattern list)) -- semantic domain type T_TypePatterns = UID -> HsName -> NmLev -> ([HsName]) -> ( UID,([HsName]),Names) sem_TypePatterns_Cons :: T_TypePattern -> T_TypePatterns -> T_TypePatterns sem_TypePatterns_Cons hd_ tl_ = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOtypevariables :: Names _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOmoduleNm :: HsName _hdOnmLev :: NmLev _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOmoduleNm :: HsName _tlOnmLev :: NmLev _tlOtopInstanceNmL :: ([HsName]) _hdIgUniq :: UID _hdItopInstanceNmL :: ([HsName]) _hdItypevariables :: Names _tlIgUniq :: UID _tlItopInstanceNmL :: ([HsName]) _tlItypevariables :: Names -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 208, column 25) _lhsOtypevariables = _hdItypevariables ++ _tlItypevariables -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOmoduleNm = _lhsImoduleNm -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOmoduleNm = _lhsImoduleNm -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIgUniq,_hdItopInstanceNmL,_hdItypevariables) | True = hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOtopInstanceNmL ( _tlIgUniq,_tlItopInstanceNmL,_tlItypevariables) | True = tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL,_lhsOtypevariables))) sem_TypePatterns_Nil :: T_TypePatterns sem_TypePatterns_Nil = (\ _lhsIgUniq _lhsImoduleNm _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOtypevariables :: Names _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/HS/NameDef.ag"(line 208, column 25) _lhsOtypevariables = [] -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL,_lhsOtypevariables))) -- Types ------------------------------------------------------- {- visit 0: inherited attribute: nmLev : NmLev chained attributes: gUniq : UID topInstanceNmL : [HsName] 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 type T_Types = UID -> NmLev -> ([HsName]) -> ( UID,([HsName])) sem_Types_Cons :: T_Type -> T_Types -> T_Types sem_Types_Cons hd_ tl_ = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) _hdOgUniq :: UID _hdOnmLev :: NmLev _hdOtopInstanceNmL :: ([HsName]) _tlOgUniq :: UID _tlOnmLev :: NmLev _tlOtopInstanceNmL :: ([HsName]) _hdIconNm :: Name _hdIgUniq :: UID _hdItopInstanceNmL :: ([HsName]) _tlIgUniq :: UID _tlItopInstanceNmL :: ([HsName]) -- copy rule (up) _lhsOgUniq = _tlIgUniq -- copy rule (up) _lhsOtopInstanceNmL = _tlItopInstanceNmL -- copy rule (down) _hdOgUniq = _lhsIgUniq -- copy rule (down) _hdOnmLev = _lhsInmLev -- copy rule (down) _hdOtopInstanceNmL = _lhsItopInstanceNmL -- copy rule (chain) _tlOgUniq = _hdIgUniq -- copy rule (down) _tlOnmLev = _lhsInmLev -- copy rule (chain) _tlOtopInstanceNmL = _hdItopInstanceNmL ( _hdIconNm,_hdIgUniq,_hdItopInstanceNmL) | True = hd_ _hdOgUniq _hdOnmLev _hdOtopInstanceNmL ( _tlIgUniq,_tlItopInstanceNmL) | True = tl_ _tlOgUniq _tlOnmLev _tlOtopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL))) sem_Types_Nil :: T_Types sem_Types_Nil = (\ _lhsIgUniq _lhsInmLev _lhsItopInstanceNmL -> (let _lhsOgUniq :: UID _lhsOtopInstanceNmL :: ([HsName]) -- copy rule (chain) _lhsOgUniq = _lhsIgUniq -- copy rule (chain) _lhsOtopInstanceNmL = _lhsItopInstanceNmL in ( _lhsOgUniq,_lhsOtopInstanceNmL)))