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 qualified UHC.Util.Rel as Rel
import UHC.Light.Compiler.Module.ImportExport
import UHC.Light.Compiler.Base.Debug as Debug
import UHC.Util.Pretty
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)
sem_AGItf :: AGItf ->
T_AGItf
sem_AGItf (AGItf_AGItf _module) =
(sem_AGItf_AGItf (sem_Module _module))
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])
_nmLev =
nmLevModule
_topInstanceNmL =
[]
_lhsOfileHeaderPragmas =
_moduleIfileHeaderPragmas
_lhsOmainValExists =
_moduleImainValExists
_lhsOmod =
_moduleImod
_lhsOmodImpNmS =
_moduleImodImpNmS
_lhsOrealModuleNm =
_moduleIrealModuleNm
_moduleOgUniq =
_lhsIgUniq
_moduleOmoduleNm =
_lhsImoduleNm
_moduleOnmLev =
_nmLev
_moduleOopts =
_lhsIopts
_moduleOtopInstanceNmL =
_topInstanceNmL
( _moduleIfileHeaderPragmas,_moduleIgUniq,_moduleImainValExists,_moduleImod,_moduleImodImpNmS,_moduleIrealModuleNm,_moduleItopInstanceNmL) | True =
module_ _moduleOgUniq _moduleOmoduleNm _moduleOnmLev _moduleOopts _moduleOtopInstanceNmL
in ( _lhsOfileHeaderPragmas,_lhsOmainValExists,_lhsOmod,_lhsOmodImpNmS,_lhsOrealModuleNm)))
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)
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])
_nmLev =
_lhsInmLev + 1
_lhsOgUniq =
_righthandsideIgUniq
_lhsOtopInstanceNmL =
_righthandsideItopInstanceNmL
_patternOgUniq =
_lhsIgUniq
_patternOmoduleNm =
_lhsImoduleNm
_patternOnmLev =
_nmLev
_patternOtopInstanceNmL =
_lhsItopInstanceNmL
_righthandsideOgUniq =
_patternIgUniq
_righthandsideOmoduleNm =
_lhsImoduleNm
_righthandsideOnmLev =
_nmLev
_righthandsideOopts =
_lhsIopts
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_Alternatives :: Alternatives ->
T_Alternatives
sem_Alternatives list =
(Prelude.foldr sem_Alternatives_Cons sem_Alternatives_Nil (Prelude.map sem_Alternative list))
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])
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOopts =
_lhsIopts
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_tlOopts =
_lhsIopts
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_Body :: Body ->
T_Body
sem_Body (Body_Body _range _importdeclarations _declarations) =
(sem_Body_Body _range (sem_ImportDeclarations _importdeclarations) (sem_Declarations _declarations))
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])
_refmainname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm hsnMain
_idOccDefMain =
IdOcc hsnMain IdOcc_Val
_extraModImpL =
if ehcOptOverloadedStrings _lhsIopts
then [ModImp True hsnModDataString hsnModDataString False [ModEntSpec (hsnQualified hsnDataStringFromString) range_ Nothing] range_]
else []
_lhsOmainValExists =
_declarationsImainValExists
_lhsOmodDefsRel =
_declarationsImodDefsRel
_lhsOmodHideDefsRel =
_declarationsImodHideDefsRel
_lhsOmodImpL =
_importdeclarationsImodImpL
_lhsOextraModImpL =
_extraModImpL
_lhsOgUniq =
_declarationsIgUniq
_lhsOtopInstanceNmL =
_declarationsItopInstanceNmL
_importdeclarationsOgUniq =
_lhsIgUniq
_importdeclarationsOmoduleNm =
_lhsImoduleNm
_importdeclarationsOnmLev =
_lhsInmLev
_importdeclarationsOopts =
_lhsIopts
_importdeclarationsOtopInstanceNmL =
_lhsItopInstanceNmL
_declarationsOgUniq =
_importdeclarationsIgUniq
_declarationsOmoduleNm =
_lhsImoduleNm
_declarationsOnmLev =
_lhsInmLev
_declarationsOopts =
_lhsIopts
_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)))
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))
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])
_conrefname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm constructor_
_lhsOconrefnames =
[_conrefname]
_nmLev =
_lhsInmLev + 1
_lhsOconAndFldrefnames =
[]
_lhsOgUniq =
_typesIgUniq
_lhsOtopInstanceNmL =
_typesItopInstanceNmL
_typesOgUniq =
_lhsIgUniq
_typesOnmLev =
_nmLev
_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])
_conrefname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm constructorOperator_
_lhsOconrefnames =
[_conrefname]
_nmLev =
_lhsInmLev + 1
_lhsOconAndFldrefnames =
[]
_lhsOgUniq =
_rightTypeIgUniq
_lhsOtopInstanceNmL =
_rightTypeItopInstanceNmL
_leftTypeOgUniq =
_lhsIgUniq
_leftTypeOnmLev =
_nmLev
_leftTypeOtopInstanceNmL =
_lhsItopInstanceNmL
_rightTypeOgUniq =
_leftTypeIgUniq
_rightTypeOnmLev =
_nmLev
_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])
_conrefname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm constructor_
_lhsOconrefnames =
[_conrefname]
_conAndFldrefnames =
[(_conrefname,_fieldDeclarationsIfldrefnames)]
_lhsOconAndFldrefnames =
_conAndFldrefnames
_lhsOgUniq =
_fieldDeclarationsIgUniq
_lhsOtopInstanceNmL =
_fieldDeclarationsItopInstanceNmL
_fieldDeclarationsOgUniq =
_lhsIgUniq
_fieldDeclarationsOmoduleNm =
_lhsImoduleNm
_fieldDeclarationsOnmLev =
_lhsInmLev
_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])
_lhsOconAndFldrefnames =
_constructorIconAndFldrefnames
_lhsOconrefnames =
_constructorIconrefnames
_lhsOgUniq =
_constructorIgUniq
_lhsOtopInstanceNmL =
_constructorItopInstanceNmL
_contextOgUniq =
_lhsIgUniq
_contextOnmLev =
_lhsInmLev
_contextOtopInstanceNmL =
_lhsItopInstanceNmL
_constructorOgUniq =
_contextIgUniq
_constructorOmoduleNm =
_lhsImoduleNm
_constructorOnmLev =
_lhsInmLev
_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])
_conrefname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm constructor_
_lhsOconrefnames =
[_conrefname]
_nmLev =
_lhsInmLev + 1
_lhsOconAndFldrefnames =
[]
_lhsOgUniq =
_typeIgUniq
_lhsOtopInstanceNmL =
_typeItopInstanceNmL
_typeOgUniq =
_lhsIgUniq
_typeOnmLev =
_nmLev
_typeOtopInstanceNmL =
_lhsItopInstanceNmL
( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True =
type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL
in ( _lhsOconAndFldrefnames,_lhsOconrefnames,_lhsOgUniq,_lhsOtopInstanceNmL)))
sem_Constructors :: Constructors ->
T_Constructors
sem_Constructors list =
(Prelude.foldr sem_Constructors_Cons sem_Constructors_Nil (Prelude.map sem_Constructor list))
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])
_lhsOconAndFldrefnames =
_hdIconAndFldrefnames ++ _tlIconAndFldrefnames
_lhsOconrefnames =
_hdIconrefnames ++ _tlIconrefnames
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_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])
_lhsOconAndFldrefnames =
[]
_lhsOconrefnames =
[]
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOconAndFldrefnames,_lhsOconrefnames,_lhsOgUniq,_lhsOtopInstanceNmL)))
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))
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])
_lhsOgUniq =
_typesIgUniq
_lhsOtopInstanceNmL =
_typesItopInstanceNmL
_typesOgUniq =
_lhsIgUniq
_typesOnmLev =
_lhsInmLev
_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])
_nmLev =
_lhsInmLev + 1
_lhsOgUniq =
_contextIgUniq
_lhsOtopInstanceNmL =
_contextItopInstanceNmL
_contextOgUniq =
_lhsIgUniq
_contextOnmLev =
_nmLev
_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])
_lhsOgUniq =
_resultIgUniq
_lhsOtopInstanceNmL =
_resultItopInstanceNmL
_argumentOgUniq =
_lhsIgUniq
_argumentOnmLev =
_lhsInmLev
_argumentOtopInstanceNmL =
_lhsItopInstanceNmL
_resultOgUniq =
_argumentIgUniq
_resultOnmLev =
_lhsInmLev
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_ContextItem_NoImplicits :: Range ->
T_ContextItem
sem_ContextItem_NoImplicits range_ =
(\ _lhsIgUniq
_lhsInmLev
_lhsItopInstanceNmL ->
(let _lhsOgUniq :: UID
_lhsOtopInstanceNmL :: ([HsName])
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOgUniq =
_type2IgUniq
_lhsOtopInstanceNmL =
_type2ItopInstanceNmL
_type1OgUniq =
_lhsIgUniq
_type1OnmLev =
_lhsInmLev
_type1OtopInstanceNmL =
_lhsItopInstanceNmL
_type2OgUniq =
_type1IgUniq
_type2OnmLev =
_lhsInmLev
_type2OtopInstanceNmL =
_type1ItopInstanceNmL
( _type1IconNm,_type1IgUniq,_type1ItopInstanceNmL) | True =
type1_ _type1OgUniq _type1OnmLev _type1OtopInstanceNmL
( _type2IconNm,_type2IgUniq,_type2ItopInstanceNmL) | True =
type2_ _type2OgUniq _type2OnmLev _type2OtopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_ContextItems :: ContextItems ->
T_ContextItems
sem_ContextItems list =
(Prelude.foldr sem_ContextItems_Cons sem_ContextItems_Nil (Prelude.map sem_ContextItem list))
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])
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOnmLev =
_lhsInmLev
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOnmLev =
_lhsInmLev
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_ContextedExpression :: ContextedExpression ->
T_ContextedExpression
sem_ContextedExpression (ContextedExpression_Contexted _range _expression _context) =
(sem_ContextedExpression_Contexted _range (sem_Expression _expression) (sem_ContextItem _context))
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])
_lhsOgUniq =
_contextIgUniq
_lhsOtopInstanceNmL =
_contextItopInstanceNmL
_expressionOgUniq =
_lhsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_lhsInmLev
_expressionOopts =
_lhsIopts
_expressionOtopInstanceNmL =
_lhsItopInstanceNmL
_contextOgUniq =
_expressionIgUniq
_contextOnmLev =
_lhsInmLev
_contextOtopInstanceNmL =
_expressionItopInstanceNmL
( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True =
expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL
( _contextIgUniq,_contextItopInstanceNmL) | True =
context_ _contextOgUniq _contextOnmLev _contextOtopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_ContextedExpressions :: ContextedExpressions ->
T_ContextedExpressions
sem_ContextedExpressions list =
(Prelude.foldr sem_ContextedExpressions_Cons sem_ContextedExpressions_Nil (Prelude.map sem_ContextedExpression list))
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])
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOopts =
_lhsIopts
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_tlOopts =
_lhsIopts
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_ContextedPattern :: ContextedPattern ->
T_ContextedPattern
sem_ContextedPattern (ContextedPattern_Contexted _range _pattern _context) =
(sem_ContextedPattern_Contexted _range (sem_Pattern _pattern) (sem_ContextItem _context))
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])
_lhsOidOccDefs =
_patternIidOccDefs
_lhsOgUniq =
_contextIgUniq
_lhsOtopInstanceNmL =
_contextItopInstanceNmL
_patternOgUniq =
_lhsIgUniq
_patternOmoduleNm =
_lhsImoduleNm
_patternOnmLev =
_lhsInmLev
_patternOtopInstanceNmL =
_lhsItopInstanceNmL
_contextOgUniq =
_patternIgUniq
_contextOnmLev =
_lhsInmLev
_contextOtopInstanceNmL =
_patternItopInstanceNmL
( _patternIgUniq,_patternIidOccDefs,_patternImainValExists,_patternImbTopRefname,_patternItopInstanceNmL) | True =
pattern_ _patternOgUniq _patternOmoduleNm _patternOnmLev _patternOtopInstanceNmL
( _contextIgUniq,_contextItopInstanceNmL) | True =
context_ _contextOgUniq _contextOnmLev _contextOtopInstanceNmL
in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL)))
sem_ContextedPatterns :: ContextedPatterns ->
T_ContextedPatterns
sem_ContextedPatterns list =
(Prelude.foldr sem_ContextedPatterns_Cons sem_ContextedPatterns_Nil (Prelude.map sem_ContextedPattern list))
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])
_lhsOidOccDefs =
_hdIidOccDefs ++ _tlIidOccDefs
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_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])
_lhsOidOccDefs =
[]
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL)))
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 _name _types) =
(sem_Declaration_InstanceUseImplicitly _range (sem_Expression _expression) _name (sem_Types _types))
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))
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])
_lhsOmodDefsRel =
Rel.fromList [ (hsnQualified (ioccNm o),ModEnt IdOcc_Val o Set.empty range_) | o <- _idOccDefs ]
_idOccDefs =
_bindingsIidOccDefs
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
_bindingsImainValExists
_lhsOmodHideDefsRel =
Rel.empty
_lhsOgUniq =
_bindingsIgUniq
_lhsOtopInstanceNmL =
_bindingsItopInstanceNmL
_bindingsOgUniq =
_lhsIgUniq
_bindingsOmoduleNm =
_lhsImoduleNm
_bindingsOnmLev =
_lhsInmLev
_bindingsOopts =
_lhsIopts
_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])
_lhsOmodDefsRel =
Rel.fromList [ (hsnQualified (ioccNm o),ModEnt IdOcc_Val o Set.empty range_) | o <- _idOccDefs ]
_idOccDef =
IdOcc (maybe (mkHNm _lUniq) id _patternImbTopRefname) IdOcc_Pat
_idOccDefsPat =
[_idOccDef]
_idOccDefs =
_patternIidOccDefs
(_patternOgUniq,_lUniq) =
let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
_patternImainValExists
_lhsOmodHideDefsRel =
Rel.empty
_lhsOgUniq =
_righthandsideIgUniq
_lhsOtopInstanceNmL =
_righthandsideItopInstanceNmL
_patternOmoduleNm =
_lhsImoduleNm
_patternOnmLev =
_lhsInmLev
_patternOtopInstanceNmL =
_lhsItopInstanceNmL
_righthandsideOgUniq =
_patternIgUniq
_righthandsideOmoduleNm =
_lhsImoduleNm
_righthandsideOnmLev =
_lhsInmLev
_righthandsideOopts =
_lhsIopts
_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])
_lhsOmodDefsRel =
Rel.fromList [ (hsnQualified (ioccNm o),ModEnt IdOcc_Val o Set.empty range_) | o <- _idOccDefs ]
_refnames =
map (hsnSetLevQual _lhsInmLev _lhsImoduleNm) names_
_idOccDefs =
[ IdOcc n IdOcc_Val | n <- _refnames ]
_nmLev =
_lhsInmLev + 1
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
False
_lhsOmodHideDefsRel =
Rel.empty
_lhsOgUniq =
_typeIgUniq
_lhsOtopInstanceNmL =
_typeItopInstanceNmL
_typeOgUniq =
_lhsIgUniq
_typeOnmLev =
_nmLev
_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])
_oprefnames =
map (hsnSetLevQual _lhsInmLev _lhsImoduleNm) operators_
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
[]
_lhsOmainValExists =
False
_lhsOmodDefsRel =
Rel.empty
_lhsOmodHideDefsRel =
Rel.empty
_lhsOgUniq =
_lhsIgUniq
_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])
_idOccDef =
IdOcc (mkHNm _lUniq) IdOcc_Fusion
_idOccDefs =
[_idOccDef]
(_lhsOgUniq,_lUniq) =
let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
False
_lhsOmodDefsRel =
Rel.empty
_lhsOmodHideDefsRel =
Rel.empty
_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])
_idOccDef =
IdOcc (mkHNm _lUniq) IdOcc_Fusion
_idOccDefs =
[_idOccDef]
(_lhsOgUniq,_lUniq) =
let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
False
_lhsOmodDefsRel =
Rel.empty
_lhsOmodHideDefsRel =
Rel.empty
_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])
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
[]
_lhsOmainValExists =
False
_lhsOmodDefsRel =
Rel.empty
_lhsOmodHideDefsRel =
Rel.empty
_lhsOgUniq =
_lhsIgUniq
_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)
_derivingsIidOccDefs :: ([IdOcc])
_derivingsImodDefsRel :: ModEntRel
_derivingsImodHideDefsRel :: ModEntRel
_derivingsItopInstanceNmL :: ([HsName])
_modDefsRel =
Rel.singleton
_typelefthandsideIname
(ModEnt IdOcc_Data _idOccDef (Set.fromList _modEntsSub) range_)
`Rel.union`
_derivingsImodDefsRel
_modEntsSub =
[ ModEnt (ioccKind o) o Set.empty range_
| o <- _idOccDefsCon ++ _idOccDefsFld
++ _idOccDefsGener
]
_lhsOmodDefsRel =
_modDefsRel
`Rel.union`
Rel.fromList [ (hsnQualified $ ioccNm $ mentIdOcc e,e) | e <- _modEntsSub ]
_typerefname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm _typelefthandsideIname
_idOccDef =
IdOcc _typerefname IdOcc_Type
_idOccDefsCon =
[ IdOcc n IdOcc_Val | n <- _constructorsIconrefnames ]
_idOccDefsFld =
concat [ [IdOcc n IdOcc_Val, IdOcc n IdOcc_Fld] | (_,ns) <- _constructorsIconAndFldrefnames, n <- ns ]
_generMaxRemArity =
length _typelefthandsideItypevariables `min` 1
_idOccDefsGener =
if ehcOptGenGenerics _lhsIopts
then [ IdOcc (hsnNm2GenerReprSyn arity _typerefname) IdOcc_Type | arity <- [0 .. _generMaxRemArity] ]
else []
_idOccDefs =
[_idOccDef]
++ _idOccDefsCon
++ _idOccDefsFld
++ _idOccDefsGener
_nmLev =
_lhsInmLev
_lhsOgathPragmas =
_derivingsIgathPragmas
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
False
_lhsOmodHideDefsRel =
_derivingsImodHideDefsRel
_lhsOgUniq =
_derivingsIgUniq
_lhsOtopInstanceNmL =
_derivingsItopInstanceNmL
_contextOgUniq =
_lhsIgUniq
_contextOnmLev =
_nmLev
_contextOtopInstanceNmL =
_lhsItopInstanceNmL
_typelefthandsideOgUniq =
_contextIgUniq
_typelefthandsideOmoduleNm =
_lhsImoduleNm
_typelefthandsideOnmLev =
_nmLev
_typelefthandsideOtopInstanceNmL =
_contextItopInstanceNmL
_constructorsOgUniq =
_typelefthandsideIgUniq
_constructorsOmoduleNm =
_lhsImoduleNm
_constructorsOnmLev =
_nmLev
_constructorsOtopInstanceNmL =
_typelefthandsideItopInstanceNmL
_derivingsOgUniq =
_constructorsIgUniq
_derivingsOmoduleNm =
_lhsImoduleNm
_derivingsOnmLev =
_nmLev
_derivingsOopts =
_lhsIopts
_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,_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)
_derivingsIidOccDefs :: ([IdOcc])
_derivingsImodDefsRel :: ModEntRel
_derivingsImodHideDefsRel :: ModEntRel
_derivingsItopInstanceNmL :: ([HsName])
_modDefsRel =
Rel.singleton
_typelefthandsideIname
(ModEnt IdOcc_Data _idOccDef (Set.fromList _modEntsSub) range_)
`Rel.union`
_derivingsImodDefsRel
_modEntsSub =
[ ModEnt (ioccKind o) o Set.empty range_
| o <- _idOccDefsCon ++ _idOccDefsFld
++ _idOccDefsGener
]
_lhsOmodDefsRel =
_modDefsRel
`Rel.union`
Rel.fromList [ (hsnQualified $ ioccNm $ mentIdOcc e,e) | e <- _modEntsSub ]
_typerefname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm _typelefthandsideIname
_idOccDef =
IdOcc _typerefname IdOcc_Type
_idOccDefsCon =
[ IdOcc n IdOcc_Val | n <- _constructorsIconrefnames ]
_idOccDefsFld =
concat [ [IdOcc n IdOcc_Val, IdOcc n IdOcc_Fld] | (_,ns) <- _constructorsIconAndFldrefnames, n <- ns ]
_generMaxRemArity =
length _typelefthandsideItypevariables `min` 1
_idOccDefsGener =
if ehcOptGenGenerics _lhsIopts
then [ IdOcc (hsnNm2GenerReprSyn arity _typerefname) IdOcc_Type | arity <- [0 .. _generMaxRemArity] ]
else []
_idOccDefs =
[_idOccDef]
++ _idOccDefsCon
++ _idOccDefsFld
++ _idOccDefsGener
_nmLev =
_lhsInmLev
_lhsOgathPragmas =
_derivingsIgathPragmas
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
False
_lhsOmodHideDefsRel =
_derivingsImodHideDefsRel
_lhsOgUniq =
_derivingsIgUniq
_lhsOtopInstanceNmL =
_derivingsItopInstanceNmL
_contextOgUniq =
_lhsIgUniq
_contextOnmLev =
_nmLev
_contextOtopInstanceNmL =
_lhsItopInstanceNmL
_typelefthandsideOgUniq =
_contextIgUniq
_typelefthandsideOmoduleNm =
_lhsImoduleNm
_typelefthandsideOnmLev =
_nmLev
_typelefthandsideOtopInstanceNmL =
_contextItopInstanceNmL
_constructorsOgUniq =
_typelefthandsideIgUniq
_constructorsOmoduleNm =
_lhsImoduleNm
_constructorsOnmLev =
_nmLev
_constructorsOtopInstanceNmL =
_typelefthandsideItopInstanceNmL
_derivingsOgUniq =
_constructorsIgUniq
_derivingsOmoduleNm =
_lhsImoduleNm
_derivingsOnmLev =
_nmLev
_derivingsOopts =
_lhsIopts
_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,_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)
_derivingsIidOccDefs :: ([IdOcc])
_derivingsImodDefsRel :: ModEntRel
_derivingsImodHideDefsRel :: ModEntRel
_derivingsItopInstanceNmL :: ([HsName])
_modDefsRel =
Rel.singleton
_typelefthandsideIname
(ModEnt IdOcc_Data _idOccDef (Set.fromList _modEntsSub) range_)
`Rel.union`
_derivingsImodDefsRel
_modEntsSub =
[ ModEnt (ioccKind o) o Set.empty range_
| o <- _idOccDefsCon ++ _idOccDefsFld
++ _idOccDefsGener
]
_lhsOmodDefsRel =
_modDefsRel
`Rel.union`
Rel.fromList [ (hsnQualified $ ioccNm $ mentIdOcc e,e) | e <- _modEntsSub ]
_typerefname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm _typelefthandsideIname
_idOccDef =
IdOcc _typerefname IdOcc_Type
_idOccDefsCon =
[ IdOcc n IdOcc_Val | n <- _constructorsIconrefnames ]
_idOccDefsFld =
concat [ [IdOcc n IdOcc_Val, IdOcc n IdOcc_Fld] | (_,ns) <- _constructorsIconAndFldrefnames, n <- ns ]
_generMaxRemArity =
length _typelefthandsideItypevariables `min` 1
_idOccDefsGener =
if ehcOptGenGenerics _lhsIopts
then [ IdOcc (hsnNm2GenerReprSyn arity _typerefname) IdOcc_Type | arity <- [0 .. _generMaxRemArity] ]
else []
_idOccDefs =
[_idOccDef]
++ _idOccDefsCon
++ _idOccDefsFld
++ _idOccDefsGener
_nmLev =
_lhsInmLev
_lhsOgathPragmas =
_derivingsIgathPragmas
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
False
_lhsOmodHideDefsRel =
_derivingsImodHideDefsRel
_lhsOgUniq =
_derivingsIgUniq
_lhsOtopInstanceNmL =
_derivingsItopInstanceNmL
_contextOgUniq =
_lhsIgUniq
_contextOnmLev =
_nmLev
_contextOtopInstanceNmL =
_lhsItopInstanceNmL
_typelefthandsideOgUniq =
_contextIgUniq
_typelefthandsideOmoduleNm =
_lhsImoduleNm
_typelefthandsideOnmLev =
_nmLev
_typelefthandsideOtopInstanceNmL =
_contextItopInstanceNmL
_constructorsOgUniq =
_typelefthandsideIgUniq
_constructorsOmoduleNm =
_lhsImoduleNm
_constructorsOnmLev =
_nmLev
_constructorsOtopInstanceNmL =
_typelefthandsideItopInstanceNmL
_derivingsOgUniq =
_constructorsIgUniq
_derivingsOmoduleNm =
_lhsImoduleNm
_derivingsOnmLev =
_nmLev
_derivingsOopts =
_lhsIopts
_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,_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])
_refnames =
map (hsnSetLevQual _lhsInmLev _lhsImoduleNm) names_
_idOccDefs =
[ IdOcc n IdOcc_Type | n <- _refnames ]
_nmLev =
_lhsInmLev + 1
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
False
_lhsOmodDefsRel =
Rel.empty
_lhsOmodHideDefsRel =
Rel.empty
_lhsOgUniq =
_kindIgUniq
_lhsOtopInstanceNmL =
_kindItopInstanceNmL
_kindOgUniq =
_lhsIgUniq
_kindOnmLev =
_nmLev
_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])
_lhsOmodDefsRel =
Rel.fromList [ (hsnQualified (ioccNm o),ModEnt IdOcc_Val o Set.empty range_) | o <- _idOccDefs ]
_refname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm name_
_idOccDef =
IdOcc _refname IdOcc_Val
_idOccDefs =
[_idOccDef]
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
False
_lhsOmodHideDefsRel =
Rel.empty
_lhsOgUniq =
_typeIgUniq
_lhsOtopInstanceNmL =
_typeItopInstanceNmL
_typeOgUniq =
_lhsIgUniq
_typeOnmLev =
_lhsInmLev
_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])
_exportrefname =
hsnUniqify HsNameUniqifier_FFE name_
_idOccDef =
IdOcc _exportrefname IdOcc_Val
_idOccDefs =
[_idOccDef]
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
False
_lhsOmodDefsRel =
Rel.empty
_lhsOmodHideDefsRel =
Rel.empty
_lhsOgUniq =
_typeIgUniq
_lhsOtopInstanceNmL =
_typeItopInstanceNmL
_typeOgUniq =
_lhsIgUniq
_typeOnmLev =
_lhsInmLev
_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])
_modDefsRel =
Rel.singleton
_typelefthandsideIname
(ModEnt IdOcc_Class _idOccDef (Set.fromList _modEntsSub) range_)
(_,_modHideDefsRel) =
mkInstDefsRel False _instancename Nothing _idOccDef _idOccDefVal
_modEntsSub =
[ ModEnt IdOcc_Val o Set.empty range_ | o <- _idOccDefsSig ]
_lhsOmodDefsRel =
_modDefsRel
`Rel.union`
Rel.fromList [ (hsnQualified $ ioccNm $ mentIdOcc e,e) | e <- _modEntsSub ]
_instancerefname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm
$ maybe _instancename id _mbPrevInstancename
_classrefname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm _typelefthandsideIname
_extranames =
[]
_idOccDef =
IdOcc _classrefname IdOcc_Class
_idOccDefVal =
IdOcc _instancerefname IdOcc_Val
_idOccDefsSig =
_whereIidOccDefs
_idOccDefs =
[_idOccDef] ++ _idOccDefsSig
_instancename =
hsnUniqifyUID HsNameUniqifier_Class _lUniq (mkHNm _typelefthandsideIname)
_nmLev =
_lhsInmLev
_lhsOtopInstanceNmL =
_instancename : _lhsItopInstanceNmL
_mbPrevInstancename =
Nothing
_generDerivInfoL =
[]
(_contextOgUniq,_lUniq) =
let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )
_lhsOgathPragmas =
_dependenciesIgathPragmas `Set.union` _whereIgathPragmas
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
_whereImainValExists
_lhsOmodHideDefsRel =
_modHideDefsRel
_lhsOgUniq =
_whereIgUniq
_contextOnmLev =
_nmLev
_contextOtopInstanceNmL =
_lhsItopInstanceNmL
_typelefthandsideOgUniq =
_contextIgUniq
_typelefthandsideOmoduleNm =
_lhsImoduleNm
_typelefthandsideOnmLev =
_nmLev
_typelefthandsideOtopInstanceNmL =
_contextItopInstanceNmL
_dependenciesOgUniq =
_typelefthandsideIgUniq
_dependenciesOmoduleNm =
_lhsImoduleNm
_dependenciesOnmLev =
_nmLev
_dependenciesOopts =
_lhsIopts
_dependenciesOtopInstanceNmL =
_typelefthandsideItopInstanceNmL
_whereOgUniq =
_dependenciesIgUniq
_whereOmoduleNm =
_lhsImoduleNm
_whereOnmLev =
_nmLev
_whereOopts =
_lhsIopts
_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])
(_lhsOmodDefsRel,_lhsOmodHideDefsRel) =
mkInstDefsRel useimplicitly_ _instancename maybeinstancename_ _idOccDef _idOccDefVal
_instancerefname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm
$ maybe _instancename id _mbPrevInstancename
_idOccDef =
IdOcc _instancerefname IdOcc_Inst
_idOccDefVal =
IdOcc _instancerefname IdOcc_Val
_idOccDefs =
[_idOccDef,_idOccDefVal]
_instancename =
maybe (hsnUniqifyUID HsNameUniqifier_ClassDict _lUniq (_typeIconNm)) id maybeinstancename_
_nmLev =
_lhsInmLev
_lhsOtopInstanceNmL =
_instancename : _lhsItopInstanceNmL
_mbPrevInstancename =
Nothing
(_contextOgUniq,_lUniq) =
let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )
_lhsOgathPragmas =
_whereIgathPragmas
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
_whereImainValExists
_lhsOgUniq =
_whereIgUniq
_contextOnmLev =
_nmLev
_contextOtopInstanceNmL =
_lhsItopInstanceNmL
_typeOgUniq =
_contextIgUniq
_typeOnmLev =
_nmLev
_typeOtopInstanceNmL =
_contextItopInstanceNmL
_whereOgUniq =
_typeIgUniq
_whereOmoduleNm =
_lhsImoduleNm
_whereOnmLev =
_nmLev
_whereOopts =
_lhsIopts
_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 ->
Name ->
T_Types ->
T_Declaration
sem_Declaration_InstanceUseImplicitly range_ expression_ name_ types_ =
(\ _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])
_typesOgUniq :: UID
_typesOnmLev :: NmLev
_typesOtopInstanceNmL :: ([HsName])
_expressionIconNm :: Name
_expressionIgUniq :: UID
_expressionItopInstanceNmL :: ([HsName])
_typesIgUniq :: UID
_typesItopInstanceNmL :: ([HsName])
_lhsOmodDefsRel =
Rel.singleton _instancename (ModEnt IdOcc_Inst _idOccDef Set.empty range_)
_instancerefname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm
$ maybe _instancename id _mbPrevInstancename
_idOccDef =
IdOcc _instancerefname IdOcc_Inst
_idOccDefs =
[_idOccDef]
_instancename =
mkHNm _lUniq
_nmLev =
_lhsInmLev
_lhsOtopInstanceNmL =
_instancename : _lhsItopInstanceNmL
_mbPrevInstancename =
Nothing
(_expressionOgUniq,_lUniq) =
let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
False
_lhsOmodHideDefsRel =
Rel.empty
_lhsOgUniq =
_typesIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_nmLev
_expressionOopts =
_lhsIopts
_expressionOtopInstanceNmL =
_lhsItopInstanceNmL
_typesOgUniq =
_expressionIgUniq
_typesOnmLev =
_nmLev
_typesOtopInstanceNmL =
_expressionItopInstanceNmL
( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True =
expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL
( _typesIgUniq,_typesItopInstanceNmL) | True =
types_ _typesOgUniq _typesOnmLev _typesOtopInstanceNmL
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])
_idOccDef =
IdOcc _defaultname IdOcc_Dflt
_idOccDefs =
[_idOccDef]
_defaultname =
mkHNm _lUniq
_nmLev =
_lhsInmLev
(_typesOgUniq,_lUniq) =
let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
False
_lhsOmodDefsRel =
Rel.empty
_lhsOmodHideDefsRel =
Rel.empty
_lhsOgUniq =
_typesIgUniq
_lhsOtopInstanceNmL =
_typesItopInstanceNmL
_typesOnmLev =
_nmLev
_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])
_lhsOmodDefsRel =
Rel.fromList [ (hsnQualified (ioccNm o),ModEnt IdOcc_Type o Set.empty range_) | o <- _idOccDefs ]
_typerefname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm _typelefthandsideIname
_idOccDef =
IdOcc _typerefname IdOcc_Type
_idOccDefs =
[_idOccDef]
_nmLev =
_lhsInmLev
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
False
_lhsOmodHideDefsRel =
Rel.empty
_lhsOgUniq =
_typeIgUniq
_lhsOtopInstanceNmL =
_typeItopInstanceNmL
_typelefthandsideOgUniq =
_lhsIgUniq
_typelefthandsideOmoduleNm =
_lhsImoduleNm
_typelefthandsideOnmLev =
_nmLev
_typelefthandsideOtopInstanceNmL =
_lhsItopInstanceNmL
_typeOgUniq =
_typelefthandsideIgUniq
_typeOnmLev =
_nmLev
_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])
_lhsOgathPragmas =
_pragmaIgathPragmas
_lhsOidOccDefs =
[]
_lhsOmainValExists =
False
_lhsOmodDefsRel =
Rel.empty
_lhsOmodHideDefsRel =
Rel.empty
_lhsOgUniq =
_pragmaIgUniq
_lhsOtopInstanceNmL =
_pragmaItopInstanceNmL
_pragmaOgUniq =
_lhsIgUniq
_pragmaOnmLev =
_lhsInmLev
_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])
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
[]
_lhsOmainValExists =
False
_lhsOmodDefsRel =
Rel.empty
_lhsOmodHideDefsRel =
Rel.empty
_lhsOgUniq =
_exportsIgUniq
_lhsOtopInstanceNmL =
_exportsItopInstanceNmL
_exportsOgUniq =
_lhsIgUniq
_exportsOmoduleNm =
_lhsImoduleNm
_exportsOnmLev =
_lhsInmLev
_exportsOopts =
_lhsIopts
_exportsOtopInstanceNmL =
_lhsItopInstanceNmL
( _exportsIgUniq,_exportsImodExpsMb,_exportsItopInstanceNmL) | True =
exports_ _exportsOgUniq _exportsOmoduleNm _exportsOnmLev _exportsOopts _exportsOtopInstanceNmL
in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL)))
sem_Declarations :: Declarations ->
T_Declarations
sem_Declarations list =
(Prelude.foldr sem_Declarations_Cons sem_Declarations_Nil (Prelude.map sem_Declaration list))
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])
_lhsOgathPragmas =
_hdIgathPragmas `Set.union` _tlIgathPragmas
_lhsOidOccDefs =
_hdIidOccDefs ++ _tlIidOccDefs
_lhsOmainValExists =
_hdImainValExists || _tlImainValExists
_lhsOmodDefsRel =
_hdImodDefsRel `Rel.union` _tlImodDefsRel
_lhsOmodHideDefsRel =
_hdImodHideDefsRel `Rel.union` _tlImodHideDefsRel
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOopts =
_lhsIopts
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_tlOopts =
_lhsIopts
_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])
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
[]
_lhsOmainValExists =
False
_lhsOmodDefsRel =
Rel.empty
_lhsOmodHideDefsRel =
Rel.empty
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL)))
sem_Deriving :: Deriving ->
T_Deriving
sem_Deriving (Deriving_Deriving _range _maybeinstancename _useimplicitly _name) =
(sem_Deriving_Deriving _range _maybeinstancename _useimplicitly _name)
type T_Deriving = UID ->
HsName ->
NmLev ->
EHCOpts ->
([HsName]) ->
( UID,(Set.Set Pragma.Pragma),([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)
_lhsOidOccDefs :: ([IdOcc])
(_lhsOmodDefsRel,_lhsOmodHideDefsRel) =
mkInstDefsRel useimplicitly_ _instancename maybeinstancename_ _idOccDef _idOccDefVal
_instancerefname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm
$ maybe _instancename id _mbPrevInstancename
_idOccDef =
IdOcc _instancerefname IdOcc_Inst
_idOccDefVal =
IdOcc _instancerefname IdOcc_Val
_idOccDefs =
[_idOccDef,_idOccDefVal]
_instancename =
maybe (mkHNm _lUniq) id maybeinstancename_
_lhsOtopInstanceNmL =
_instancename : _lhsItopInstanceNmL
_mbPrevInstancename =
Nothing
(_lhsOgUniq,_lUniq) =
let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
_idOccDefs
in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL)))
sem_Derivings :: Derivings ->
T_Derivings
sem_Derivings list =
(Prelude.foldr sem_Derivings_Cons sem_Derivings_Nil (Prelude.map sem_Deriving list))
type T_Derivings = UID ->
HsName ->
NmLev ->
EHCOpts ->
([HsName]) ->
( UID,(Set.Set Pragma.Pragma),([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)
_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)
_hdIidOccDefs :: ([IdOcc])
_hdImodDefsRel :: ModEntRel
_hdImodHideDefsRel :: ModEntRel
_hdItopInstanceNmL :: ([HsName])
_tlIgUniq :: UID
_tlIgathPragmas :: (Set.Set Pragma.Pragma)
_tlIidOccDefs :: ([IdOcc])
_tlImodDefsRel :: ModEntRel
_tlImodHideDefsRel :: ModEntRel
_tlItopInstanceNmL :: ([HsName])
_lhsOgathPragmas =
_hdIgathPragmas `Set.union` _tlIgathPragmas
_lhsOidOccDefs =
_hdIidOccDefs ++ _tlIidOccDefs
_lhsOmodDefsRel =
_hdImodDefsRel `Rel.union` _tlImodDefsRel
_lhsOmodHideDefsRel =
_hdImodHideDefsRel `Rel.union` _tlImodHideDefsRel
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOopts =
_lhsIopts
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_tlOopts =
_lhsIopts
_tlOtopInstanceNmL =
_hdItopInstanceNmL
( _hdIgUniq,_hdIgathPragmas,_hdIidOccDefs,_hdImodDefsRel,_hdImodHideDefsRel,_hdItopInstanceNmL) | True =
hd_ _hdOgUniq _hdOmoduleNm _hdOnmLev _hdOopts _hdOtopInstanceNmL
( _tlIgUniq,_tlIgathPragmas,_tlIidOccDefs,_tlImodDefsRel,_tlImodHideDefsRel,_tlItopInstanceNmL) | True =
tl_ _tlOgUniq _tlOmoduleNm _tlOnmLev _tlOopts _tlOtopInstanceNmL
in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL)))
sem_Derivings_Nil :: T_Derivings
sem_Derivings_Nil =
(\ _lhsIgUniq
_lhsImoduleNm
_lhsInmLev
_lhsIopts
_lhsItopInstanceNmL ->
(let _lhsOgathPragmas :: (Set.Set Pragma.Pragma)
_lhsOidOccDefs :: ([IdOcc])
_lhsOmodDefsRel :: ModEntRel
_lhsOmodHideDefsRel :: ModEntRel
_lhsOgUniq :: UID
_lhsOtopInstanceNmL :: ([HsName])
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
[]
_lhsOmodDefsRel =
Rel.empty
_lhsOmodHideDefsRel =
Rel.empty
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmodDefsRel,_lhsOmodHideDefsRel,_lhsOtopInstanceNmL)))
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)
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])
_lhsOmodExp =
ModExpEnt (ModEntSpec name_ range_ Nothing)
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOmodExp =
case names_ of
Just ns -> ModExpEnt (ModEntSpec name_ range_ (Just (ModEntSubs ns)))
Nothing -> ModExpEnt (ModEntSpec name_ range_ Nothing)
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOmodExp =
ModExpEnt (ModEntSpec name_ range_ (Just ModEntSubAll))
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOmodExp =
ModExpMod name_
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOmodExp,_lhsOtopInstanceNmL)))
sem_Exports :: Exports ->
T_Exports
sem_Exports list =
(Prelude.foldr sem_Exports_Cons sem_Exports_Nil (Prelude.map sem_Export list))
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])
_lhsOmodExpL =
_hdImodExp : _tlImodExpL
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOopts =
_lhsIopts
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_tlOopts =
_lhsIopts
_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])
_lhsOmodExpL =
[]
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOmodExpL,_lhsOtopInstanceNmL)))
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))
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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_literalIgUniq
_lhsOtopInstanceNmL =
_literalItopInstanceNmL
_literalOgUniq =
_lhsIgUniq
_literalOnmLev =
_lhsInmLev
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOconNm =
name_
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_expressionIgUniq
_lhsOtopInstanceNmL =
_expressionItopInstanceNmL
_expressionOgUniq =
_lhsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_lhsInmLev
_expressionOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_argumentsIgUniq
_lhsOtopInstanceNmL =
_argumentsItopInstanceNmL
_functionOgUniq =
_lhsIgUniq
_functionOmoduleNm =
_lhsImoduleNm
_functionOnmLev =
_lhsInmLev
_functionOopts =
_lhsIopts
_functionOtopInstanceNmL =
_lhsItopInstanceNmL
_argumentsOgUniq =
_functionIgUniq
_argumentsOmoduleNm =
_lhsImoduleNm
_argumentsOnmLev =
_lhsInmLev
_argumentsOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_rightExpressionIgUniq
_lhsOtopInstanceNmL =
_rightExpressionItopInstanceNmL
_leftExpressionOgUniq =
_lhsIgUniq
_leftExpressionOmoduleNm =
_lhsImoduleNm
_leftExpressionOnmLev =
_lhsInmLev
_leftExpressionOopts =
_lhsIopts
_leftExpressionOtopInstanceNmL =
_lhsItopInstanceNmL
_operatorOgUniq =
_leftExpressionIgUniq
_operatorOmoduleNm =
_lhsImoduleNm
_operatorOnmLev =
_lhsInmLev
_operatorOopts =
_lhsIopts
_operatorOtopInstanceNmL =
_leftExpressionItopInstanceNmL
_rightExpressionOgUniq =
_operatorIgUniq
_rightExpressionOmoduleNm =
_lhsImoduleNm
_rightExpressionOnmLev =
_lhsInmLev
_rightExpressionOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_rightExpressionIgUniq
_lhsOtopInstanceNmL =
_rightExpressionItopInstanceNmL
_leftExpressionOgUniq =
_lhsIgUniq
_leftExpressionOmoduleNm =
_lhsImoduleNm
_leftExpressionOnmLev =
_lhsInmLev
_leftExpressionOopts =
_lhsIopts
_leftExpressionOtopInstanceNmL =
_lhsItopInstanceNmL
_operatorOgUniq =
_leftExpressionIgUniq
_operatorOmoduleNm =
_lhsImoduleNm
_operatorOnmLev =
_lhsInmLev
_operatorOopts =
_lhsIopts
_operatorOtopInstanceNmL =
_leftExpressionItopInstanceNmL
_rightExpressionOgUniq =
_operatorIgUniq
_rightExpressionOmoduleNm =
_lhsImoduleNm
_rightExpressionOnmLev =
_lhsInmLev
_rightExpressionOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_expressionIgUniq
_lhsOtopInstanceNmL =
_expressionItopInstanceNmL
_expressionOgUniq =
_lhsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_lhsInmLev
_expressionOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_nmLev =
_lhsInmLev + 1
_lhsOgUniq =
_expressionIgUniq
_lhsOtopInstanceNmL =
_expressionItopInstanceNmL
_patternsOgUniq =
_lhsIgUniq
_patternsOmoduleNm =
_lhsImoduleNm
_patternsOnmLev =
_nmLev
_patternsOtopInstanceNmL =
_lhsItopInstanceNmL
_expressionOgUniq =
_patternsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_nmLev
_expressionOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_nmLev =
_lhsInmLev + 1
_lhsOgUniq =
_expressionIgUniq
_lhsOtopInstanceNmL =
_expressionItopInstanceNmL
_declarationsOgUniq =
_lhsIgUniq
_declarationsOmoduleNm =
_lhsImoduleNm
_declarationsOnmLev =
_nmLev
_declarationsOopts =
_lhsIopts
_declarationsOtopInstanceNmL =
_lhsItopInstanceNmL
_expressionOgUniq =
_declarationsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_nmLev
_expressionOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_expressionsIgUniq
_lhsOtopInstanceNmL =
_expressionsItopInstanceNmL
_expressionsOgUniq =
_lhsIgUniq
_expressionsOmoduleNm =
_lhsImoduleNm
_expressionsOnmLev =
_lhsInmLev
_expressionsOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_typeOnmLev =
_lhsInmLev + 1
_lhsOgUniq =
_typeIgUniq
_lhsOtopInstanceNmL =
_typeItopInstanceNmL
_expressionOgUniq =
_lhsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_lhsInmLev
_expressionOopts =
_lhsIopts
_expressionOtopInstanceNmL =
_lhsItopInstanceNmL
_typeOgUniq =
_expressionIgUniq
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_expressionIgUniq
_lhsOtopInstanceNmL =
_expressionItopInstanceNmL
_expressionOgUniq =
_lhsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_lhsInmLev
_expressionOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_expressionIgUniq
_lhsOtopInstanceNmL =
_expressionItopInstanceNmL
_annotationOgUniq =
_lhsIgUniq
_annotationOmoduleNm =
_lhsImoduleNm
_annotationOnmLev =
_lhsInmLev
_annotationOopts =
_lhsIopts
_annotationOtopInstanceNmL =
_lhsItopInstanceNmL
_expressionOgUniq =
_annotationIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_lhsInmLev
_expressionOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_argumentsIgUniq
_lhsOtopInstanceNmL =
_argumentsItopInstanceNmL
_functionOgUniq =
_lhsIgUniq
_functionOmoduleNm =
_lhsImoduleNm
_functionOnmLev =
_lhsInmLev
_functionOopts =
_lhsIopts
_functionOtopInstanceNmL =
_lhsItopInstanceNmL
_argumentsOgUniq =
_functionIgUniq
_argumentsOmoduleNm =
_lhsImoduleNm
_argumentsOnmLev =
_lhsInmLev
_argumentsOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_elseExpressionIgUniq
_lhsOtopInstanceNmL =
_elseExpressionItopInstanceNmL
_guardExpressionOgUniq =
_lhsIgUniq
_guardExpressionOmoduleNm =
_lhsImoduleNm
_guardExpressionOnmLev =
_lhsInmLev
_guardExpressionOopts =
_lhsIopts
_guardExpressionOtopInstanceNmL =
_lhsItopInstanceNmL
_thenExpressionOgUniq =
_guardExpressionIgUniq
_thenExpressionOmoduleNm =
_lhsImoduleNm
_thenExpressionOnmLev =
_lhsInmLev
_thenExpressionOopts =
_lhsIopts
_thenExpressionOtopInstanceNmL =
_guardExpressionItopInstanceNmL
_elseExpressionOgUniq =
_thenExpressionIgUniq
_elseExpressionOmoduleNm =
_lhsImoduleNm
_elseExpressionOnmLev =
_lhsInmLev
_elseExpressionOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_alternativesIgUniq
_lhsOtopInstanceNmL =
_alternativesItopInstanceNmL
_expressionOgUniq =
_lhsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_lhsInmLev
_expressionOopts =
_lhsIopts
_expressionOtopInstanceNmL =
_lhsItopInstanceNmL
_alternativesOgUniq =
_expressionIgUniq
_alternativesOmoduleNm =
_lhsImoduleNm
_alternativesOnmLev =
_lhsInmLev
_alternativesOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_expressionsIgUniq
_lhsOtopInstanceNmL =
_expressionsItopInstanceNmL
_expressionsOgUniq =
_lhsIgUniq
_expressionsOmoduleNm =
_lhsImoduleNm
_expressionsOnmLev =
_lhsInmLev
_expressionsOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_toIgUniq
_lhsOtopInstanceNmL =
_toItopInstanceNmL
_fromOgUniq =
_lhsIgUniq
_fromOmoduleNm =
_lhsImoduleNm
_fromOnmLev =
_lhsInmLev
_fromOopts =
_lhsIopts
_fromOtopInstanceNmL =
_lhsItopInstanceNmL
_thenOgUniq =
_fromIgUniq
_thenOmoduleNm =
_lhsImoduleNm
_thenOnmLev =
_lhsInmLev
_thenOopts =
_lhsIopts
_thenOtopInstanceNmL =
_fromItopInstanceNmL
_toOgUniq =
_thenIgUniq
_toOmoduleNm =
_lhsImoduleNm
_toOnmLev =
_lhsInmLev
_toOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_qualifiersIgUniq
_lhsOtopInstanceNmL =
_qualifiersItopInstanceNmL
_expressionOgUniq =
_lhsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_lhsInmLev
_expressionOopts =
_lhsIopts
_expressionOtopInstanceNmL =
_lhsItopInstanceNmL
_qualifiersOgUniq =
_expressionIgUniq
_qualifiersOmoduleNm =
_lhsImoduleNm
_qualifiersOnmLev =
_lhsInmLev
_qualifiersOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_recordExpressionBindingsIgUniq
_lhsOtopInstanceNmL =
_recordExpressionBindingsItopInstanceNmL
_recordExpressionBindingsOgUniq =
_lhsIgUniq
_recordExpressionBindingsOmoduleNm =
_lhsImoduleNm
_recordExpressionBindingsOnmLev =
_lhsInmLev
_recordExpressionBindingsOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_recordExpressionBindingsIgUniq
_lhsOtopInstanceNmL =
_recordExpressionBindingsItopInstanceNmL
_expressionOgUniq =
_lhsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_lhsInmLev
_expressionOopts =
_lhsIopts
_expressionOtopInstanceNmL =
_lhsItopInstanceNmL
_recordExpressionBindingsOgUniq =
_expressionIgUniq
_recordExpressionBindingsOmoduleNm =
_lhsImoduleNm
_recordExpressionBindingsOnmLev =
_lhsInmLev
_recordExpressionBindingsOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_rowRecordExpressionUpdatesIgUniq
_lhsOtopInstanceNmL =
_rowRecordExpressionUpdatesItopInstanceNmL
_expressionOgUniq =
_lhsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_lhsInmLev
_expressionOopts =
_lhsIopts
_expressionOtopInstanceNmL =
_lhsItopInstanceNmL
_rowRecordExpressionUpdatesOgUniq =
_expressionIgUniq
_rowRecordExpressionUpdatesOmoduleNm =
_lhsImoduleNm
_rowRecordExpressionUpdatesOnmLev =
_lhsInmLev
_rowRecordExpressionUpdatesOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_expressionIgUniq
_lhsOtopInstanceNmL =
_expressionItopInstanceNmL
_expressionOgUniq =
_lhsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_lhsInmLev
_expressionOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_statementsIgUniq
_lhsOtopInstanceNmL =
_statementsItopInstanceNmL
_statementsOgUniq =
_lhsIgUniq
_statementsOmoduleNm =
_lhsImoduleNm
_statementsOnmLev =
_lhsInmLev
_statementsOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_argumentsIgUniq
_lhsOtopInstanceNmL =
_argumentsItopInstanceNmL
_functionOgUniq =
_lhsIgUniq
_functionOmoduleNm =
_lhsImoduleNm
_functionOnmLev =
_lhsInmLev
_functionOopts =
_lhsIopts
_functionOtopInstanceNmL =
_lhsItopInstanceNmL
_argumentsOgUniq =
_functionIgUniq
_argumentsOmoduleNm =
_lhsImoduleNm
_argumentsOnmLev =
_lhsInmLev
_argumentsOopts =
_lhsIopts
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_expressionIgUniq
_lhsOtopInstanceNmL =
_expressionItopInstanceNmL
_patternsOgUniq =
_lhsIgUniq
_patternsOmoduleNm =
_lhsImoduleNm
_patternsOnmLev =
_lhsInmLev
_patternsOtopInstanceNmL =
_lhsItopInstanceNmL
_expressionOgUniq =
_patternsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_lhsInmLev
_expressionOopts =
_lhsIopts
_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)))
sem_ExpressionAnnotation :: ExpressionAnnotation ->
T_ExpressionAnnotation
sem_ExpressionAnnotation (ExpressionAnnotation_Empty) =
(sem_ExpressionAnnotation_Empty)
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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_Expressions :: Expressions ->
T_Expressions
sem_Expressions list =
(Prelude.foldr sem_Expressions_Cons sem_Expressions_Nil (Prelude.map sem_Expression list))
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])
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOopts =
_lhsIopts
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_tlOopts =
_lhsIopts
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_FieldDeclaration :: FieldDeclaration ->
T_FieldDeclaration
sem_FieldDeclaration (FieldDeclaration_FieldDeclaration _range _names _type) =
(sem_FieldDeclaration_FieldDeclaration _range _names (sem_Type _type))
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])
_fldrefnames =
map (hsnSetLevQual _lhsInmLev _lhsImoduleNm) names_
_nmLev =
_lhsInmLev + 1
_lhsOfldrefnames =
_fldrefnames
_lhsOgUniq =
_typeIgUniq
_lhsOtopInstanceNmL =
_typeItopInstanceNmL
_typeOgUniq =
_lhsIgUniq
_typeOnmLev =
_nmLev
_typeOtopInstanceNmL =
_lhsItopInstanceNmL
( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True =
type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL
in ( _lhsOfldrefnames,_lhsOgUniq,_lhsOtopInstanceNmL)))
sem_FieldDeclarations :: FieldDeclarations ->
T_FieldDeclarations
sem_FieldDeclarations list =
(Prelude.foldr sem_FieldDeclarations_Cons sem_FieldDeclarations_Nil (Prelude.map sem_FieldDeclaration list))
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])
_lhsOfldrefnames =
_hdIfldrefnames ++ _tlIfldrefnames
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_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])
_lhsOfldrefnames =
[]
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOfldrefnames,_lhsOgUniq,_lhsOtopInstanceNmL)))
sem_FunctionBinding :: FunctionBinding ->
T_FunctionBinding
sem_FunctionBinding (FunctionBinding_FunctionBinding _range _lefthandside _righthandside) =
(sem_FunctionBinding_FunctionBinding _range (sem_LeftHandSide _lefthandside) (sem_RightHandSide _righthandside))
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])
_idOccDef =
IdOcc _lefthandsideIrefname IdOcc_Val
_idOccDefs =
[_idOccDef]
_nmLev =
_lhsInmLev + 1
_nmLevFun =
_lhsInmLev
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
_lefthandsideImainValExists
_lhsOgUniq =
_righthandsideIgUniq
_lhsOtopInstanceNmL =
_righthandsideItopInstanceNmL
_lefthandsideOgUniq =
_lhsIgUniq
_lefthandsideOmoduleNm =
_lhsImoduleNm
_lefthandsideOnmLev =
_nmLev
_lefthandsideOnmLevFun =
_nmLevFun
_lefthandsideOopts =
_lhsIopts
_lefthandsideOtopInstanceNmL =
_lhsItopInstanceNmL
_righthandsideOgUniq =
_lefthandsideIgUniq
_righthandsideOmoduleNm =
_lhsImoduleNm
_righthandsideOnmLev =
_nmLev
_righthandsideOopts =
_lhsIopts
_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)))
sem_FunctionBindings :: FunctionBindings ->
T_FunctionBindings
sem_FunctionBindings list =
(Prelude.foldr sem_FunctionBindings_Cons sem_FunctionBindings_Nil (Prelude.map sem_FunctionBinding list))
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])
_lhsOidOccDefs =
_hdIidOccDefs ++ _tlIidOccDefs
_lhsOmainValExists =
_hdImainValExists || _tlImainValExists
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOopts =
_lhsIopts
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_tlOopts =
_lhsIopts
_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])
_lhsOidOccDefs =
[]
_lhsOmainValExists =
False
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOtopInstanceNmL)))
sem_FunctionalDependencies :: FunctionalDependencies ->
T_FunctionalDependencies
sem_FunctionalDependencies list =
(Prelude.foldr sem_FunctionalDependencies_Cons sem_FunctionalDependencies_Nil (Prelude.map sem_FunctionalDependency list))
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])
_lhsOgathPragmas =
_hdIgathPragmas `Set.union` _tlIgathPragmas
_lhsOidOccDefs =
_hdIidOccDefs ++ _tlIidOccDefs
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOopts =
_lhsIopts
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_tlOopts =
_lhsIopts
_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])
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
[]
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOtopInstanceNmL)))
sem_FunctionalDependency :: FunctionalDependency ->
T_FunctionalDependency
sem_FunctionalDependency (FunctionalDependency_Dependency _range _fromtypevariables _totypevariables) =
(sem_FunctionalDependency_Dependency _range _fromtypevariables _totypevariables)
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])
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
[]
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOtopInstanceNmL)))
sem_GuardedExpression :: GuardedExpression ->
T_GuardedExpression
sem_GuardedExpression (GuardedExpression_GuardedExpression _range _guard _expression) =
(sem_GuardedExpression_GuardedExpression _range (sem_Expression _guard) (sem_Expression _expression))
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])
_lhsOgUniq =
_expressionIgUniq
_lhsOtopInstanceNmL =
_expressionItopInstanceNmL
_guardOgUniq =
_lhsIgUniq
_guardOmoduleNm =
_lhsImoduleNm
_guardOnmLev =
_lhsInmLev
_guardOopts =
_lhsIopts
_guardOtopInstanceNmL =
_lhsItopInstanceNmL
_expressionOgUniq =
_guardIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_lhsInmLev
_expressionOopts =
_lhsIopts
_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)))
sem_GuardedExpressions :: GuardedExpressions ->
T_GuardedExpressions
sem_GuardedExpressions list =
(Prelude.foldr sem_GuardedExpressions_Cons sem_GuardedExpressions_Nil (Prelude.map sem_GuardedExpression list))
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])
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOopts =
_lhsIopts
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_tlOopts =
_lhsIopts
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
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)
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])
_lhsOmodEntSpec =
ModEntSpec name_ range_ Nothing
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOmodEntSpec =
case names_ of
Just ns -> ModEntSpec name_ range_ (Just (ModEntSubs ns))
Nothing -> ModEntSpec name_ range_ Nothing
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOmodEntSpec =
ModEntSpec name_ range_ (Just ModEntSubAll)
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOmodEntSpec,_lhsOtopInstanceNmL)))
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)
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])
_lhsOmodImpL =
let as = maybe name_ id asname_
in [ModImp qualified_ name_ as _importspecificationIisHiding _importspecificationImodEntSpecL range_]
_lhsOgUniq =
_importspecificationIgUniq
_lhsOtopInstanceNmL =
_importspecificationItopInstanceNmL
_importspecificationOgUniq =
_lhsIgUniq
_importspecificationOmoduleNm =
_lhsImoduleNm
_importspecificationOnmLev =
_lhsInmLev
_importspecificationOopts =
_lhsIopts
_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])
_lhsOmodImpL =
[]
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOmodImpL,_lhsOtopInstanceNmL)))
sem_ImportDeclarations :: ImportDeclarations ->
T_ImportDeclarations
sem_ImportDeclarations list =
(Prelude.foldr sem_ImportDeclarations_Cons sem_ImportDeclarations_Nil (Prelude.map sem_ImportDeclaration list))
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])
_lhsOmodImpL =
_hdImodImpL ++ _tlImodImpL
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOopts =
_lhsIopts
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_tlOopts =
_lhsIopts
_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])
_lhsOmodImpL =
[]
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOmodImpL,_lhsOtopInstanceNmL)))
sem_ImportSpecification :: ImportSpecification ->
T_ImportSpecification
sem_ImportSpecification (ImportSpecification_Import _range _hiding _imports) =
(sem_ImportSpecification_Import _range _hiding (sem_Imports _imports))
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])
_lhsOisHiding =
hiding_
_lhsOgUniq =
_importsIgUniq
_lhsOmodEntSpecL =
_importsImodEntSpecL
_lhsOtopInstanceNmL =
_importsItopInstanceNmL
_importsOgUniq =
_lhsIgUniq
_importsOmoduleNm =
_lhsImoduleNm
_importsOnmLev =
_lhsInmLev
_importsOopts =
_lhsIopts
_importsOtopInstanceNmL =
_lhsItopInstanceNmL
( _importsIgUniq,_importsImodEntSpecL,_importsItopInstanceNmL) | True =
imports_ _importsOgUniq _importsOmoduleNm _importsOnmLev _importsOopts _importsOtopInstanceNmL
in ( _lhsOgUniq,_lhsOisHiding,_lhsOmodEntSpecL,_lhsOtopInstanceNmL)))
sem_Imports :: Imports ->
T_Imports
sem_Imports list =
(Prelude.foldr sem_Imports_Cons sem_Imports_Nil (Prelude.map sem_Import list))
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])
_lhsOmodEntSpecL =
_hdImodEntSpec : _tlImodEntSpecL
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOopts =
_lhsIopts
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_tlOopts =
_lhsIopts
_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])
_lhsOmodEntSpecL =
[]
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOmodEntSpecL,_lhsOtopInstanceNmL)))
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))
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])
_lhsOgUniq =
_argumentsIgUniq
_lhsOtopInstanceNmL =
_argumentsItopInstanceNmL
_functionOgUniq =
_lhsIgUniq
_functionOnmLev =
_lhsInmLev
_functionOtopInstanceNmL =
_lhsItopInstanceNmL
_argumentsOgUniq =
_functionIgUniq
_argumentsOnmLev =
_lhsInmLev
_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])
_lhsOgUniq =
_rightKindIgUniq
_lhsOtopInstanceNmL =
_rightKindItopInstanceNmL
_leftKindOgUniq =
_lhsIgUniq
_leftKindOnmLev =
_lhsInmLev
_leftKindOtopInstanceNmL =
_lhsItopInstanceNmL
_operatorOgUniq =
_leftKindIgUniq
_operatorOnmLev =
_lhsInmLev
_operatorOtopInstanceNmL =
_leftKindItopInstanceNmL
_rightKindOgUniq =
_operatorIgUniq
_rightKindOnmLev =
_lhsInmLev
_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])
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOgUniq =
_kindIgUniq
_lhsOtopInstanceNmL =
_kindItopInstanceNmL
_kindOgUniq =
_lhsIgUniq
_kindOnmLev =
_lhsInmLev
_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])
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOgUniq =
_kindIgUniq
_lhsOtopInstanceNmL =
_kindItopInstanceNmL
_kindOgUniq =
_lhsIgUniq
_kindOnmLev =
_lhsInmLev
_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])
_lhsOgUniq =
_kindIgUniq
_lhsOtopInstanceNmL =
_kindItopInstanceNmL
_annotationOgUniq =
_lhsIgUniq
_annotationOnmLev =
_lhsInmLev
_annotationOtopInstanceNmL =
_lhsItopInstanceNmL
_kindOgUniq =
_annotationIgUniq
_kindOnmLev =
_lhsInmLev
_kindOtopInstanceNmL =
_annotationItopInstanceNmL
( _annotationIgUniq,_annotationItopInstanceNmL) | True =
annotation_ _annotationOgUniq _annotationOnmLev _annotationOtopInstanceNmL
( _kindIgUniq,_kindItopInstanceNmL) | True =
kind_ _kindOgUniq _kindOnmLev _kindOtopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_KindAnnotation :: KindAnnotation ->
T_KindAnnotation
sem_KindAnnotation (KindAnnotation_Empty) =
(sem_KindAnnotation_Empty)
type T_KindAnnotation = UID ->
NmLev ->
([HsName]) ->
( UID,([HsName]))
sem_KindAnnotation_Empty :: T_KindAnnotation
sem_KindAnnotation_Empty =
(\ _lhsIgUniq
_lhsInmLev
_lhsItopInstanceNmL ->
(let _lhsOgUniq :: UID
_lhsOtopInstanceNmL :: ([HsName])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_Kinds :: Kinds ->
T_Kinds
sem_Kinds list =
(Prelude.foldr sem_Kinds_Cons sem_Kinds_Nil (Prelude.map sem_Kind list))
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])
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOnmLev =
_lhsInmLev
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOnmLev =
_lhsInmLev
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
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))
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])
_refname =
hsnSetLevQual _lhsInmLevFun _lhsImoduleNm name_
_mainValExists =
name_ == hsnMain
_lhsOidOccDefs =
_patternsIidOccDefs
_lhsOmainValExists =
_mainValExists
_lhsOgUniq =
_patternsIgUniq
_lhsOrefname =
_refname
_lhsOtopInstanceNmL =
_patternsItopInstanceNmL
_patternsOgUniq =
_lhsIgUniq
_patternsOmoduleNm =
_lhsImoduleNm
_patternsOnmLev =
_lhsInmLev
_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])
_refname =
hsnSetLevQual _lhsInmLevFun _lhsImoduleNm operator_
_lhsOidOccDefs =
_leftPatternIidOccDefs ++ _rightPatternIidOccDefs
_lhsOmainValExists =
_leftPatternImainValExists || _rightPatternImainValExists
_lhsOgUniq =
_rightPatternIgUniq
_lhsOrefname =
_refname
_lhsOtopInstanceNmL =
_rightPatternItopInstanceNmL
_leftPatternOgUniq =
_lhsIgUniq
_leftPatternOmoduleNm =
_lhsImoduleNm
_leftPatternOnmLev =
_lhsInmLev
_leftPatternOtopInstanceNmL =
_lhsItopInstanceNmL
_rightPatternOgUniq =
_leftPatternIgUniq
_rightPatternOmoduleNm =
_lhsImoduleNm
_rightPatternOnmLev =
_lhsInmLev
_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])
_lhsOidOccDefs =
_lefthandsideIidOccDefs ++ _patternsIidOccDefs
_lhsOmainValExists =
_lefthandsideImainValExists || _patternsImainValExists
_lhsOgUniq =
_patternsIgUniq
_lhsOrefname =
_lefthandsideIrefname
_lhsOtopInstanceNmL =
_patternsItopInstanceNmL
_lefthandsideOgUniq =
_lhsIgUniq
_lefthandsideOmoduleNm =
_lhsImoduleNm
_lefthandsideOnmLev =
_lhsInmLev
_lefthandsideOnmLevFun =
_lhsInmLevFun
_lefthandsideOopts =
_lhsIopts
_lefthandsideOtopInstanceNmL =
_lhsItopInstanceNmL
_patternsOgUniq =
_lefthandsideIgUniq
_patternsOmoduleNm =
_lhsImoduleNm
_patternsOnmLev =
_lhsInmLev
_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])
_typeOnmLev =
_lhsInmLev + 1
_lhsOidOccDefs =
_lefthandsideIidOccDefs
_lhsOmainValExists =
_lefthandsideImainValExists
_lhsOgUniq =
_typeIgUniq
_lhsOrefname =
_lefthandsideIrefname
_lhsOtopInstanceNmL =
_typeItopInstanceNmL
_lefthandsideOgUniq =
_lhsIgUniq
_lefthandsideOmoduleNm =
_lhsImoduleNm
_lefthandsideOnmLev =
_lhsInmLev
_lefthandsideOnmLevFun =
_lhsInmLevFun
_lefthandsideOopts =
_lhsIopts
_lefthandsideOtopInstanceNmL =
_lhsItopInstanceNmL
_typeOgUniq =
_lefthandsideIgUniq
_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)))
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)
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])
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_MaybeDeclarations :: MaybeDeclarations ->
T_MaybeDeclarations
sem_MaybeDeclarations (Prelude.Just x) =
(sem_MaybeDeclarations_Just (sem_Declarations x))
sem_MaybeDeclarations Prelude.Nothing =
sem_MaybeDeclarations_Nothing
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])
_lhsOgathPragmas =
_justIgathPragmas
_lhsOidOccDefs =
_justIidOccDefs
_lhsOmainValExists =
_justImainValExists
_lhsOgUniq =
_justIgUniq
_lhsOtopInstanceNmL =
_justItopInstanceNmL
_justOgUniq =
_lhsIgUniq
_justOmoduleNm =
_lhsImoduleNm
_justOnmLev =
_lhsInmLev
_justOopts =
_lhsIopts
_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])
_lhsOgathPragmas =
Set.empty
_lhsOidOccDefs =
[]
_lhsOmainValExists =
False
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOidOccDefs,_lhsOmainValExists,_lhsOtopInstanceNmL)))
sem_MaybeExports :: MaybeExports ->
T_MaybeExports
sem_MaybeExports (Prelude.Just x) =
(sem_MaybeExports_Just (sem_Exports x))
sem_MaybeExports Prelude.Nothing =
sem_MaybeExports_Nothing
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])
_lhsOmodExpsMb =
Just _justImodExpL
_lhsOgUniq =
_justIgUniq
_lhsOtopInstanceNmL =
_justItopInstanceNmL
_justOgUniq =
_lhsIgUniq
_justOmoduleNm =
_lhsImoduleNm
_justOnmLev =
_lhsInmLev
_justOopts =
_lhsIopts
_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])
_lhsOmodExpsMb =
Nothing
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOmodExpsMb,_lhsOtopInstanceNmL)))
sem_MaybeExpression :: MaybeExpression ->
T_MaybeExpression
sem_MaybeExpression (Prelude.Just x) =
(sem_MaybeExpression_Just (sem_Expression x))
sem_MaybeExpression Prelude.Nothing =
sem_MaybeExpression_Nothing
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])
_lhsOgUniq =
_justIgUniq
_lhsOtopInstanceNmL =
_justItopInstanceNmL
_justOgUniq =
_lhsIgUniq
_justOmoduleNm =
_lhsImoduleNm
_justOnmLev =
_lhsInmLev
_justOopts =
_lhsIopts
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_MaybeImportSpecification :: MaybeImportSpecification ->
T_MaybeImportSpecification
sem_MaybeImportSpecification (Prelude.Just x) =
(sem_MaybeImportSpecification_Just (sem_ImportSpecification x))
sem_MaybeImportSpecification Prelude.Nothing =
sem_MaybeImportSpecification_Nothing
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])
_lhsOgUniq =
_justIgUniq
_lhsOisHiding =
_justIisHiding
_lhsOmodEntSpecL =
_justImodEntSpecL
_lhsOtopInstanceNmL =
_justItopInstanceNmL
_justOgUniq =
_lhsIgUniq
_justOmoduleNm =
_lhsImoduleNm
_justOnmLev =
_lhsInmLev
_justOopts =
_lhsIopts
_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])
_lhsOmodEntSpecL =
[]
_lhsOisHiding =
True
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOisHiding,_lhsOmodEntSpecL,_lhsOtopInstanceNmL)))
sem_MaybeType :: MaybeType ->
T_MaybeType
sem_MaybeType (Prelude.Just x) =
(sem_MaybeType_Just (sem_Type x))
sem_MaybeType Prelude.Nothing =
sem_MaybeType_Nothing
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])
_lhsOgUniq =
_justIgUniq
_lhsOtopInstanceNmL =
_justItopInstanceNmL
_justOgUniq =
_lhsIgUniq
_justOnmLev =
_lhsInmLev
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
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))
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])
_fileHeaderPragmas =
_fileheaderpragmasIgathPragmas
_opts =
fst $ ehcOptUpdateWithPragmas _fileHeaderPragmas _lhsIopts
_bodyModImpL =
_bodyIextraModImpL ++ _bodyImodImpL
_modImpL =
_prelModImpL ++ _bodyModImpL
_prelModImpL =
if hsnModPrelude `elem` map mimpSource _bodyModImpL
|| _realModuleNm == hsnModPrelude
|| hsnIsInPrelude _realModuleNm
|| not (ehcOptUseAssumePrelude _lhsIopts)
|| Set.member Pragma.Pragma_NoImplicitPrelude _fileHeaderPragmas
then []
else [modImpPrelude]
_lhsOmodImpNmS =
Set.fromList $ map mimpSource _modImpL
_realModuleNm =
maybe _lhsImoduleNm id name_
_lhsOmod =
Mod _lhsImoduleNm name_
_exportsImodExpsMb _modImpL
_bodyImodDefsRel _bodyImodHideDefsRel
(reverse _bodyItopInstanceNmL)
_lhsOfileHeaderPragmas =
_fileHeaderPragmas
_lhsOmainValExists =
_bodyImainValExists
_lhsOgUniq =
_bodyIgUniq
_lhsOrealModuleNm =
_realModuleNm
_lhsOtopInstanceNmL =
_bodyItopInstanceNmL
_fileheaderpragmasOgUniq =
_lhsIgUniq
_fileheaderpragmasOnmLev =
_lhsInmLev
_fileheaderpragmasOtopInstanceNmL =
_lhsItopInstanceNmL
_exportsOgUniq =
_fileheaderpragmasIgUniq
_exportsOmoduleNm =
_lhsImoduleNm
_exportsOnmLev =
_lhsInmLev
_exportsOopts =
_opts
_exportsOtopInstanceNmL =
_fileheaderpragmasItopInstanceNmL
_bodyOgUniq =
_exportsIgUniq
_bodyOmoduleNm =
_lhsImoduleNm
_bodyOnmLev =
_lhsInmLev
_bodyOopts =
_opts
_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)))
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))
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])
_lhsOmbTopRefname =
Nothing
_lhsOidOccDefs =
[]
_lhsOmainValExists =
False
_lhsOgUniq =
_literalIgUniq
_lhsOtopInstanceNmL =
_literalItopInstanceNmL
_literalOgUniq =
_lhsIgUniq
_literalOnmLev =
_lhsInmLev
_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])
_refname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm name_
_isWildcard =
hsnIsWild name_
_idOccDef =
IdOcc _refname IdOcc_Val
_idOccDefsNoWildcard =
if _isWildcard then [] else [_idOccDef]
_idOccDefs =
_idOccDefsNoWildcard
_lhsOmbTopRefname =
if _isWildcard then Just _refname else Nothing
_mainValExists =
name_ == hsnMain
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
_mainValExists
_lhsOgUniq =
_lhsIgUniq
_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])
_conNm =
name_
_lhsOmbTopRefname =
Nothing
_lhsOidOccDefs =
_patternsIidOccDefs
_lhsOmainValExists =
_patternsImainValExists
_lhsOgUniq =
_patternsIgUniq
_lhsOtopInstanceNmL =
_patternsItopInstanceNmL
_patternsOgUniq =
_lhsIgUniq
_patternsOmoduleNm =
_lhsImoduleNm
_patternsOnmLev =
_lhsInmLev
_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])
_lhsOmbTopRefname =
Nothing
_lhsOidOccDefs =
_patternIidOccDefs
_lhsOmainValExists =
_patternImainValExists
_lhsOgUniq =
_patternIgUniq
_lhsOtopInstanceNmL =
_patternItopInstanceNmL
_patternOgUniq =
_lhsIgUniq
_patternOmoduleNm =
_lhsImoduleNm
_patternOnmLev =
_lhsInmLev
_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])
_refname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm name_
_isWildcard =
hsnIsWild name_
_idOccDef =
IdOcc _refname IdOcc_Val
_idOccDefsNoWildcard =
if _isWildcard then [] else [_idOccDef]
_idOccDefs =
_idOccDefsNoWildcard ++ _patternIidOccDefs
_lhsOmbTopRefname =
if _isWildcard then Just _refname else Nothing
_lhsOidOccDefs =
_idOccDefs
_lhsOmainValExists =
_patternImainValExists
_lhsOgUniq =
_patternIgUniq
_lhsOtopInstanceNmL =
_patternItopInstanceNmL
_patternOgUniq =
_lhsIgUniq
_patternOmoduleNm =
_lhsImoduleNm
_patternOnmLev =
_lhsInmLev
_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])
_lhsOmbTopRefname =
Nothing
_lhsOidOccDefs =
[]
_lhsOmainValExists =
False
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOmbTopRefname =
Nothing
_lhsOidOccDefs =
_patternsIidOccDefs
_lhsOmainValExists =
_patternsImainValExists
_lhsOgUniq =
_patternsIgUniq
_lhsOtopInstanceNmL =
_patternsItopInstanceNmL
_patternsOgUniq =
_lhsIgUniq
_patternsOmoduleNm =
_lhsImoduleNm
_patternsOnmLev =
_lhsInmLev
_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])
_lhsOmbTopRefname =
Nothing
_lhsOidOccDefs =
_annotationIidOccDefs ++ _patternIidOccDefs
_lhsOmainValExists =
_patternImainValExists
_lhsOgUniq =
_patternIgUniq
_lhsOtopInstanceNmL =
_patternItopInstanceNmL
_annotationOgUniq =
_lhsIgUniq
_annotationOmoduleNm =
_lhsImoduleNm
_annotationOnmLev =
_lhsInmLev
_annotationOtopInstanceNmL =
_lhsItopInstanceNmL
_patternOgUniq =
_annotationIgUniq
_patternOmoduleNm =
_lhsImoduleNm
_patternOnmLev =
_lhsInmLev
_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])
_lhsOmbTopRefname =
Nothing
_typeOnmLev =
_lhsInmLev + 1
_lhsOidOccDefs =
_patternIidOccDefs
_lhsOmainValExists =
_patternImainValExists
_lhsOgUniq =
_typeIgUniq
_lhsOtopInstanceNmL =
_typeItopInstanceNmL
_patternOgUniq =
_lhsIgUniq
_patternOmoduleNm =
_lhsImoduleNm
_patternOnmLev =
_lhsInmLev
_patternOtopInstanceNmL =
_lhsItopInstanceNmL
_typeOgUniq =
_patternIgUniq
_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])
_conNm =
constructorOperator_
_lhsOmbTopRefname =
Nothing
_lhsOidOccDefs =
_leftPatternIidOccDefs ++ _rightPatternIidOccDefs
_lhsOmainValExists =
_leftPatternImainValExists || _rightPatternImainValExists
_lhsOgUniq =
_rightPatternIgUniq
_lhsOtopInstanceNmL =
_rightPatternItopInstanceNmL
_leftPatternOgUniq =
_lhsIgUniq
_leftPatternOmoduleNm =
_lhsImoduleNm
_leftPatternOnmLev =
_lhsInmLev
_leftPatternOtopInstanceNmL =
_lhsItopInstanceNmL
_rightPatternOgUniq =
_leftPatternIgUniq
_rightPatternOmoduleNm =
_lhsImoduleNm
_rightPatternOnmLev =
_lhsInmLev
_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])
_lhsOmbTopRefname =
Nothing
_lhsOidOccDefs =
_patternsIidOccDefs
_lhsOmainValExists =
_patternsImainValExists
_lhsOgUniq =
_patternsIgUniq
_lhsOtopInstanceNmL =
_patternsItopInstanceNmL
_patternsOgUniq =
_lhsIgUniq
_patternsOmoduleNm =
_lhsImoduleNm
_patternsOnmLev =
_lhsInmLev
_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])
_conNm =
name_
_lhsOmbTopRefname =
Nothing
_lhsOidOccDefs =
_recordPatternBindingsIidOccDefs
_lhsOmainValExists =
False
_lhsOgUniq =
_recordPatternBindingsIgUniq
_lhsOtopInstanceNmL =
_recordPatternBindingsItopInstanceNmL
_recordPatternBindingsOgUniq =
_lhsIgUniq
_recordPatternBindingsOmoduleNm =
_lhsImoduleNm
_recordPatternBindingsOnmLev =
_lhsInmLev
_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])
_lhsOmbTopRefname =
Nothing
_lhsOidOccDefs =
_patternIidOccDefs ++ _rowRecordPattternBindingsIidOccDefs
_lhsOmainValExists =
_patternImainValExists
_lhsOgUniq =
_rowRecordPattternBindingsIgUniq
_lhsOtopInstanceNmL =
_rowRecordPattternBindingsItopInstanceNmL
_patternOgUniq =
_lhsIgUniq
_patternOmoduleNm =
_lhsImoduleNm
_patternOnmLev =
_lhsInmLev
_patternOtopInstanceNmL =
_lhsItopInstanceNmL
_rowRecordPattternBindingsOgUniq =
_patternIgUniq
_rowRecordPattternBindingsOmoduleNm =
_lhsImoduleNm
_rowRecordPattternBindingsOnmLev =
_lhsInmLev
_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])
_lhsOmbTopRefname =
Nothing
_lhsOidOccDefs =
[]
_lhsOmainValExists =
False
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOmbTopRefname =
Nothing
_lhsOidOccDefs =
_patternIidOccDefs
_lhsOmainValExists =
_patternImainValExists
_lhsOgUniq =
_patternIgUniq
_lhsOtopInstanceNmL =
_patternItopInstanceNmL
_patternOgUniq =
_lhsIgUniq
_patternOmoduleNm =
_lhsImoduleNm
_patternOnmLev =
_lhsInmLev
_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])
_lhsOmbTopRefname =
Nothing
_lhsOidOccDefs =
_patternIidOccDefs
_lhsOmainValExists =
_patternImainValExists
_lhsOgUniq =
_patternIgUniq
_lhsOtopInstanceNmL =
_patternItopInstanceNmL
_patternOgUniq =
_lhsIgUniq
_patternOmoduleNm =
_lhsImoduleNm
_patternOnmLev =
_lhsInmLev
_patternOtopInstanceNmL =
_lhsItopInstanceNmL
( _patternIgUniq,_patternIidOccDefs,_patternImainValExists,_patternImbTopRefname,_patternItopInstanceNmL) | True =
pattern_ _patternOgUniq _patternOmoduleNm _patternOnmLev _patternOtopInstanceNmL
in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOmbTopRefname,_lhsOtopInstanceNmL)))
sem_PatternAnnotation :: PatternAnnotation ->
T_PatternAnnotation
sem_PatternAnnotation (PatternAnnotation_Empty) =
(sem_PatternAnnotation_Empty)
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])
_lhsOidOccDefs =
[]
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL)))
sem_Patterns :: Patterns ->
T_Patterns
sem_Patterns list =
(Prelude.foldr sem_Patterns_Cons sem_Patterns_Nil (Prelude.map sem_Pattern list))
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])
_lhsOidOccDefs =
_hdIidOccDefs ++ _tlIidOccDefs
_lhsOmainValExists =
_hdImainValExists || _tlImainValExists
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_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])
_lhsOidOccDefs =
[]
_lhsOmainValExists =
False
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOmainValExists,_lhsOtopInstanceNmL)))
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)
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])
_pragmaNames =
[ p | p <- map show pragmas_ ]
_lhsOgathPragmas =
Set.fromList $ catMaybes [ Map.lookup p Pragma.allSimplePragmaMp | p <- _pragmaNames ]
_lhsOgUniq =
_lhsIgUniq
_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])
_pragmaNames =
[]
_lhsOgathPragmas =
Set.singleton (Pragma.Pragma_OptionsUHC options_)
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOgathPragmas =
Set.singleton (Pragma.Pragma_Derivable className_ fieldName_ defaultName_)
_lhsOgUniq =
_lhsIgUniq
_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])
_targets =
catMaybes $ map (\t -> Map.lookup t supportedTargetMp) targetNames_
_lhsOgathPragmas =
Set.singleton (Pragma.Pragma_ExcludeIfTarget _targets)
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOtopInstanceNmL)))
sem_Pragmas :: Pragmas ->
T_Pragmas
sem_Pragmas list =
(Prelude.foldr sem_Pragmas_Cons sem_Pragmas_Nil (Prelude.map sem_Pragma list))
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])
_lhsOgathPragmas =
_hdIgathPragmas `Set.union` _tlIgathPragmas
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOnmLev =
_lhsInmLev
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOnmLev =
_lhsInmLev
_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])
_lhsOgathPragmas =
Set.empty
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOgathPragmas,_lhsOtopInstanceNmL)))
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)
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])
_lhsOgUniq =
_guardIgUniq
_lhsOnmLev =
_lhsInmLev
_lhsOtopInstanceNmL =
_guardItopInstanceNmL
_guardOgUniq =
_lhsIgUniq
_guardOmoduleNm =
_lhsImoduleNm
_guardOnmLev =
_lhsInmLev
_guardOopts =
_lhsIopts
_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])
_nmLev =
_lhsInmLev + 1
_lhsOgUniq =
_declarationsIgUniq
_lhsOnmLev =
_nmLev
_lhsOtopInstanceNmL =
_declarationsItopInstanceNmL
_declarationsOgUniq =
_lhsIgUniq
_declarationsOmoduleNm =
_lhsImoduleNm
_declarationsOnmLev =
_nmLev
_declarationsOopts =
_lhsIopts
_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])
_nmLev =
_lhsInmLev + 1
_lhsOgUniq =
_expressionIgUniq
_lhsOnmLev =
_nmLev
_lhsOtopInstanceNmL =
_expressionItopInstanceNmL
_patternOgUniq =
_lhsIgUniq
_patternOmoduleNm =
_lhsImoduleNm
_patternOnmLev =
_nmLev
_patternOtopInstanceNmL =
_lhsItopInstanceNmL
_expressionOgUniq =
_patternIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_nmLev
_expressionOopts =
_lhsIopts
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOnmLev =
_lhsInmLev
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOnmLev,_lhsOtopInstanceNmL)))
sem_Qualifiers :: Qualifiers ->
T_Qualifiers
sem_Qualifiers list =
(Prelude.foldr sem_Qualifiers_Cons sem_Qualifiers_Nil (Prelude.map sem_Qualifier list))
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])
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOopts =
_lhsIopts
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_hdInmLev
_tlOopts =
_lhsIopts
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_RecordExpressionBinding :: RecordExpressionBinding ->
T_RecordExpressionBinding
sem_RecordExpressionBinding (RecordExpressionBinding_Binding _range _name _expression) =
(sem_RecordExpressionBinding_Binding _range _name (sem_Expression _expression))
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])
_lhsOgUniq =
_expressionIgUniq
_lhsOtopInstanceNmL =
_expressionItopInstanceNmL
_expressionOgUniq =
_lhsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_lhsInmLev
_expressionOopts =
_lhsIopts
_expressionOtopInstanceNmL =
_lhsItopInstanceNmL
( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True =
expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_RecordExpressionBindings :: RecordExpressionBindings ->
T_RecordExpressionBindings
sem_RecordExpressionBindings list =
(Prelude.foldr sem_RecordExpressionBindings_Cons sem_RecordExpressionBindings_Nil (Prelude.map sem_RecordExpressionBinding list))
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])
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOopts =
_lhsIopts
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_tlOopts =
_lhsIopts
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
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)
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])
_lhsOidOccDefs =
_patternIidOccDefs
_lhsOgUniq =
_patternIgUniq
_lhsOtopInstanceNmL =
_patternItopInstanceNmL
_patternOgUniq =
_lhsIgUniq
_patternOmoduleNm =
_lhsImoduleNm
_patternOnmLev =
_lhsInmLev
_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])
_refname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm name_
_idOccDef =
IdOcc _refname IdOcc_Val
_lhsOidOccDefs =
[]
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL)))
sem_RecordPatternBindings :: RecordPatternBindings ->
T_RecordPatternBindings
sem_RecordPatternBindings list =
(Prelude.foldr sem_RecordPatternBindings_Cons sem_RecordPatternBindings_Nil (Prelude.map sem_RecordPatternBinding list))
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])
_lhsOidOccDefs =
_hdIidOccDefs ++ _tlIidOccDefs
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_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])
_lhsOidOccDefs =
[]
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL)))
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))
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])
_nmLev =
_lhsInmLev + 1
_lhsOgUniq =
_whereIgUniq
_lhsOtopInstanceNmL =
_whereItopInstanceNmL
_expressionOgUniq =
_lhsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_nmLev
_expressionOopts =
_lhsIopts
_expressionOtopInstanceNmL =
_lhsItopInstanceNmL
_whereOgUniq =
_expressionIgUniq
_whereOmoduleNm =
_lhsImoduleNm
_whereOnmLev =
_nmLev
_whereOopts =
_lhsIopts
_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])
_nmLev =
_lhsInmLev + 1
_lhsOgUniq =
_whereIgUniq
_lhsOtopInstanceNmL =
_whereItopInstanceNmL
_guardedexpressionsOgUniq =
_lhsIgUniq
_guardedexpressionsOmoduleNm =
_lhsImoduleNm
_guardedexpressionsOnmLev =
_nmLev
_guardedexpressionsOopts =
_lhsIopts
_guardedexpressionsOtopInstanceNmL =
_lhsItopInstanceNmL
_whereOgUniq =
_guardedexpressionsIgUniq
_whereOmoduleNm =
_lhsImoduleNm
_whereOnmLev =
_nmLev
_whereOopts =
_lhsIopts
_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)))
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))
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])
_lhsOgUniq =
_expressionIgUniq
_lhsOtopInstanceNmL =
_expressionItopInstanceNmL
_expressionOgUniq =
_lhsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_lhsInmLev
_expressionOopts =
_lhsIopts
_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])
_lhsOgUniq =
_expressionIgUniq
_lhsOtopInstanceNmL =
_expressionItopInstanceNmL
_expressionOgUniq =
_lhsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_lhsInmLev
_expressionOopts =
_lhsIopts
_expressionOtopInstanceNmL =
_lhsItopInstanceNmL
( _expressionIconNm,_expressionIgUniq,_expressionItopInstanceNmL) | True =
expression_ _expressionOgUniq _expressionOmoduleNm _expressionOnmLev _expressionOopts _expressionOtopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_RowRecordExpressionUpdates :: RowRecordExpressionUpdates ->
T_RowRecordExpressionUpdates
sem_RowRecordExpressionUpdates list =
(Prelude.foldr sem_RowRecordExpressionUpdates_Cons sem_RowRecordExpressionUpdates_Nil (Prelude.map sem_RowRecordExpressionUpdate list))
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])
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOopts =
_lhsIopts
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_tlOopts =
_lhsIopts
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_RowRecordPatternBinding :: RowRecordPatternBinding ->
T_RowRecordPatternBinding
sem_RowRecordPatternBinding (RowRecordPatternBinding_Binding _range _name _pattern) =
(sem_RowRecordPatternBinding_Binding _range _name (sem_Pattern _pattern))
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])
_lhsOidOccDefs =
_patternIidOccDefs
_lhsOgUniq =
_patternIgUniq
_lhsOtopInstanceNmL =
_patternItopInstanceNmL
_patternOgUniq =
_lhsIgUniq
_patternOmoduleNm =
_lhsImoduleNm
_patternOnmLev =
_lhsInmLev
_patternOtopInstanceNmL =
_lhsItopInstanceNmL
( _patternIgUniq,_patternIidOccDefs,_patternImainValExists,_patternImbTopRefname,_patternItopInstanceNmL) | True =
pattern_ _patternOgUniq _patternOmoduleNm _patternOnmLev _patternOtopInstanceNmL
in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL)))
sem_RowRecordPatternBindings :: RowRecordPatternBindings ->
T_RowRecordPatternBindings
sem_RowRecordPatternBindings list =
(Prelude.foldr sem_RowRecordPatternBindings_Cons sem_RowRecordPatternBindings_Nil (Prelude.map sem_RowRecordPatternBinding list))
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])
_lhsOidOccDefs =
_hdIidOccDefs ++ _tlIidOccDefs
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_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])
_lhsOidOccDefs =
[]
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOidOccDefs,_lhsOtopInstanceNmL)))
sem_RowTypeUpdate :: RowTypeUpdate ->
T_RowTypeUpdate
sem_RowTypeUpdate (RowTypeUpdate_Extends _range _name _type) =
(sem_RowTypeUpdate_Extends _range _name (sem_Type _type))
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])
_lhsOgUniq =
_typeIgUniq
_lhsOtopInstanceNmL =
_typeItopInstanceNmL
_typeOgUniq =
_lhsIgUniq
_typeOnmLev =
_lhsInmLev
_typeOtopInstanceNmL =
_lhsItopInstanceNmL
( _typeIconNm,_typeIgUniq,_typeItopInstanceNmL) | True =
type_ _typeOgUniq _typeOnmLev _typeOtopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_RowTypeUpdates :: RowTypeUpdates ->
T_RowTypeUpdates
sem_RowTypeUpdates list =
(Prelude.foldr sem_RowTypeUpdates_Cons sem_RowTypeUpdates_Nil (Prelude.map sem_RowTypeUpdate list))
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])
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOnmLev =
_lhsInmLev
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOnmLev =
_lhsInmLev
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
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)
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])
_lhsOgUniq =
_expressionIgUniq
_lhsOnmLev =
_lhsInmLev
_lhsOtopInstanceNmL =
_expressionItopInstanceNmL
_expressionOgUniq =
_lhsIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_lhsInmLev
_expressionOopts =
_lhsIopts
_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])
_nmLev =
_lhsInmLev + 1
_lhsOgUniq =
_declarationsIgUniq
_lhsOnmLev =
_nmLev
_lhsOtopInstanceNmL =
_declarationsItopInstanceNmL
_declarationsOgUniq =
_lhsIgUniq
_declarationsOmoduleNm =
_lhsImoduleNm
_declarationsOnmLev =
_nmLev
_declarationsOopts =
_lhsIopts
_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])
_nmLev =
_lhsInmLev + 1
_lhsOgUniq =
_expressionIgUniq
_lhsOnmLev =
_nmLev
_lhsOtopInstanceNmL =
_expressionItopInstanceNmL
_patternOgUniq =
_lhsIgUniq
_patternOmoduleNm =
_lhsImoduleNm
_patternOnmLev =
_nmLev
_patternOtopInstanceNmL =
_lhsItopInstanceNmL
_expressionOgUniq =
_patternIgUniq
_expressionOmoduleNm =
_lhsImoduleNm
_expressionOnmLev =
_nmLev
_expressionOopts =
_lhsIopts
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOnmLev =
_lhsInmLev
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOnmLev,_lhsOtopInstanceNmL)))
sem_Statements :: Statements ->
T_Statements
sem_Statements list =
(Prelude.foldr sem_Statements_Cons sem_Statements_Nil (Prelude.map sem_Statement list))
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])
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOopts =
_lhsIopts
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_hdInmLev
_tlOopts =
_lhsIopts
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_Strings :: Strings ->
T_Strings
sem_Strings list =
(Prelude.foldr sem_Strings_Cons sem_Strings_Nil list)
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])
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_tlOgUniq =
_lhsIgUniq
_tlOnmLev =
_lhsInmLev
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
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)
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])
_lhsOconNm =
_functionIconNm
_lhsOgUniq =
_argumentsIgUniq
_lhsOtopInstanceNmL =
_argumentsItopInstanceNmL
_functionOgUniq =
_lhsIgUniq
_functionOnmLev =
_lhsInmLev
_functionOtopInstanceNmL =
_lhsItopInstanceNmL
_argumentsOgUniq =
_functionIgUniq
_argumentsOnmLev =
_lhsInmLev
_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])
_lhsOconNm =
_operatorIconNm
_lhsOgUniq =
_rightTypeIgUniq
_lhsOtopInstanceNmL =
_rightTypeItopInstanceNmL
_leftTypeOgUniq =
_lhsIgUniq
_leftTypeOnmLev =
_lhsInmLev
_leftTypeOtopInstanceNmL =
_lhsItopInstanceNmL
_operatorOgUniq =
_leftTypeIgUniq
_operatorOnmLev =
_lhsInmLev
_operatorOtopInstanceNmL =
_leftTypeItopInstanceNmL
_rightTypeOgUniq =
_operatorIgUniq
_rightTypeOnmLev =
_lhsInmLev
_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])
_lhsOconNm =
_typeIconNm
_lhsOgUniq =
_typeIgUniq
_lhsOtopInstanceNmL =
_typeItopInstanceNmL
_typeOgUniq =
_lhsIgUniq
_typeOnmLev =
_lhsInmLev
_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])
_lhsOconNm =
name_
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_typeIgUniq
_lhsOtopInstanceNmL =
_typeItopInstanceNmL
_typeOgUniq =
_lhsIgUniq
_typeOnmLev =
_lhsInmLev
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_rightTypeIgUniq
_lhsOtopInstanceNmL =
_rightTypeItopInstanceNmL
_leftTypeOgUniq =
_lhsIgUniq
_leftTypeOnmLev =
_lhsInmLev
_leftTypeOtopInstanceNmL =
_lhsItopInstanceNmL
_operatorOgUniq =
_leftTypeIgUniq
_operatorOnmLev =
_lhsInmLev
_operatorOtopInstanceNmL =
_leftTypeItopInstanceNmL
_rightTypeOgUniq =
_operatorIgUniq
_rightTypeOnmLev =
_lhsInmLev
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_typeIgUniq
_lhsOtopInstanceNmL =
_typeItopInstanceNmL
_annotationOgUniq =
_lhsIgUniq
_annotationOnmLev =
_lhsInmLev
_annotationOtopInstanceNmL =
_lhsItopInstanceNmL
_typeOgUniq =
_annotationIgUniq
_typeOnmLev =
_lhsInmLev
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOconNm =
hsnUnknown
_nmLev =
_lhsInmLev + 1
_lhsOgUniq =
_typeIgUniq
_lhsOtopInstanceNmL =
_typeItopInstanceNmL
_typeOgUniq =
_lhsIgUniq
_typeOnmLev =
_nmLev
_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])
_lhsOconNm =
hsnUnknown
_nmLev =
_lhsInmLev + 1
_lhsOgUniq =
_typeIgUniq
_lhsOtopInstanceNmL =
_typeItopInstanceNmL
_typeOgUniq =
_lhsIgUniq
_typeOnmLev =
_nmLev
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_rowTypeUpdatesIgUniq
_lhsOtopInstanceNmL =
_rowTypeUpdatesItopInstanceNmL
_typeOgUniq =
_lhsIgUniq
_typeOnmLev =
_lhsInmLev
_typeOtopInstanceNmL =
_lhsItopInstanceNmL
_rowTypeUpdatesOgUniq =
_typeIgUniq
_rowTypeUpdatesOnmLev =
_lhsInmLev
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_rowTypeUpdatesIgUniq
_lhsOtopInstanceNmL =
_rowTypeUpdatesItopInstanceNmL
_typeOgUniq =
_lhsIgUniq
_typeOnmLev =
_lhsInmLev
_typeOtopInstanceNmL =
_lhsItopInstanceNmL
_rowTypeUpdatesOgUniq =
_typeIgUniq
_rowTypeUpdatesOnmLev =
_lhsInmLev
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_rowTypeUpdatesIgUniq
_lhsOtopInstanceNmL =
_rowTypeUpdatesItopInstanceNmL
_typeOgUniq =
_lhsIgUniq
_typeOnmLev =
_lhsInmLev
_typeOtopInstanceNmL =
_lhsItopInstanceNmL
_rowTypeUpdatesOgUniq =
_typeIgUniq
_rowTypeUpdatesOnmLev =
_lhsInmLev
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_typeIgUniq
_lhsOtopInstanceNmL =
_typeItopInstanceNmL
_contextOgUniq =
_lhsIgUniq
_contextOnmLev =
_lhsInmLev
_contextOtopInstanceNmL =
_lhsItopInstanceNmL
_typeOgUniq =
_contextIgUniq
_typeOnmLev =
_lhsInmLev
_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])
_lhsOconNm =
hsnUnknown
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOconNm,_lhsOgUniq,_lhsOtopInstanceNmL)))
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)
type T_TypeAnnotation = UID ->
NmLev ->
([HsName]) ->
( UID,([HsName]))
sem_TypeAnnotation_Strict :: T_TypeAnnotation
sem_TypeAnnotation_Strict =
(\ _lhsIgUniq
_lhsInmLev
_lhsItopInstanceNmL ->
(let _lhsOgUniq :: UID
_lhsOtopInstanceNmL :: ([HsName])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
sem_TypeAnnotation_AnnotationName :: Name ->
T_TypeAnnotation
sem_TypeAnnotation_AnnotationName name_ =
(\ _lhsIgUniq
_lhsInmLev
_lhsItopInstanceNmL ->
(let _lhsOgUniq :: UID
_lhsOtopInstanceNmL :: ([HsName])
_lhsOgUniq =
_lhsIgUniq
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))
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))
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
_lhsOrange =
range_
_lhsOname =
name_
_lhsOidOccDefs =
[]
_lhsOtypevariables =
_patternsItypevariables
_lhsOgUniq =
_patternsIgUniq
_lhsOtopInstanceNmL =
_patternsItopInstanceNmL
_patternsOgUniq =
_lhsIgUniq
_patternsOmoduleNm =
_lhsImoduleNm
_patternsOnmLev =
_lhsInmLev
_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
_lhsOrange =
range_
_lhsOname =
operator_
_lhsOidOccDefs =
[]
_lhsOtypevariables =
_leftPatternItypevariables ++ _rightPatternItypevariables
_lhsOgUniq =
_rightPatternIgUniq
_lhsOtopInstanceNmL =
_rightPatternItopInstanceNmL
_leftPatternOgUniq =
_lhsIgUniq
_leftPatternOmoduleNm =
_lhsImoduleNm
_leftPatternOnmLev =
_lhsInmLev
_leftPatternOtopInstanceNmL =
_lhsItopInstanceNmL
_rightPatternOgUniq =
_leftPatternIgUniq
_rightPatternOmoduleNm =
_lhsImoduleNm
_rightPatternOnmLev =
_lhsInmLev
_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
_lhsOidOccDefs =
_lefthandsideIidOccDefs
_lhsOtypevariables =
_lefthandsideItypevariables ++ _patternsItypevariables
_lhsOgUniq =
_patternsIgUniq
_lhsOname =
_lefthandsideIname
_lhsOrange =
_lefthandsideIrange
_lhsOtopInstanceNmL =
_patternsItopInstanceNmL
_lefthandsideOgUniq =
_lhsIgUniq
_lefthandsideOmoduleNm =
_lhsImoduleNm
_lefthandsideOnmLev =
_lhsInmLev
_lefthandsideOtopInstanceNmL =
_lhsItopInstanceNmL
_patternsOgUniq =
_lefthandsideIgUniq
_patternsOmoduleNm =
_lhsImoduleNm
_patternsOnmLev =
_lhsInmLev
_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)))
sem_TypePattern :: TypePattern ->
T_TypePattern
sem_TypePattern (TypePattern_Variable _range _name) =
(sem_TypePattern_Variable _range _name)
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])
_refname =
hsnSetLevQual _lhsInmLev _lhsImoduleNm name_
_lhsOtypevariables =
[name_]
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL,_lhsOtypevariables)))
sem_TypePatterns :: TypePatterns ->
T_TypePatterns
sem_TypePatterns list =
(Prelude.foldr sem_TypePatterns_Cons sem_TypePatterns_Nil (Prelude.map sem_TypePattern list))
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
_lhsOtypevariables =
_hdItypevariables ++ _tlItypevariables
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOmoduleNm =
_lhsImoduleNm
_hdOnmLev =
_lhsInmLev
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOmoduleNm =
_lhsImoduleNm
_tlOnmLev =
_lhsInmLev
_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])
_lhsOtypevariables =
[]
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL,_lhsOtypevariables)))
sem_Types :: Types ->
T_Types
sem_Types list =
(Prelude.foldr sem_Types_Cons sem_Types_Nil (Prelude.map sem_Type list))
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])
_lhsOgUniq =
_tlIgUniq
_lhsOtopInstanceNmL =
_tlItopInstanceNmL
_hdOgUniq =
_lhsIgUniq
_hdOnmLev =
_lhsInmLev
_hdOtopInstanceNmL =
_lhsItopInstanceNmL
_tlOgUniq =
_hdIgUniq
_tlOnmLev =
_lhsInmLev
_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])
_lhsOgUniq =
_lhsIgUniq
_lhsOtopInstanceNmL =
_lhsItopInstanceNmL
in ( _lhsOgUniq,_lhsOtopInstanceNmL)))