uhc-light-1.1.9.3: src/UHC/Light/Compiler/HS/ModImpExp.hs
-- UUAGC 0.9.52.2 (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 23, column 9)
_fileHeaderPragmas =
_fileheaderpragmasIgathPragmas
-- "build/103/lib-ehc/UHC/Light/Compiler/HS/Pragmas.ag"(line 23, 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 : _
-}
-- 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)
-- 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)))
-- 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)))