-- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/ToGrin.ag) module UHC.Light.Compiler.Core.ToGrin(Inh_CodeAGItf (..), Syn_CodeAGItf (..), wrap_CodeAGItf, sem_CodeAGItf) where import Data.Char import Data.Maybe import Data.List import qualified Data.Set as Set import qualified Data.Map as Map import UHC.Util.Utils import UHC.Util.Pretty import UHC.Light.Compiler.Base.Common import UHC.Light.Compiler.Base.TermLike import UHC.Light.Compiler.Opts import UHC.Light.Compiler.Base.HsName.Builtin import UHC.Light.Compiler.CodeGen.BuiltinSizeInfo import UHC.Light.Compiler.LamInfo import UHC.Light.Compiler.Core import UHC.Light.Compiler.Ty import UHC.Light.Compiler.Gam.Full import UHC.Light.Compiler.Core.FFI import Debug.Trace import Control.Monad import Control.Monad.State import UHC.Light.Compiler.Foreign.Extract import UHC.Light.Compiler.CodeGen.ImportUsedModules import UHC.Light.Compiler.CodeGen.BuiltinPrims deriving instance Typeable Syn_CodeAGItf -- CAlt -------------------------------------------------------- {- visit 0: chained attribute: gUniq : UID visit 1: inherited attributes: dataGam : DataGam evalCtx : EvalCtx lamMp : LamMp lev : Int modNm : HsName opts : EHCOpts synthesized attribute: fvS : FvS alternatives: alternative Alt: child pat : CPat child expr : CExpr visit 1: local whatAbove : {WhatExpr} local lev : _ local fvS : _ -} -- cata sem_CAlt :: CAlt -> T_CAlt sem_CAlt (CAlt_Alt _pat _expr) = (sem_CAlt_Alt (sem_CPat _pat) (sem_CExpr _expr)) -- semantic domain type T_CAlt = UID -> ( UID,T_CAlt_1) type T_CAlt_1 = DataGam -> EvalCtx -> LamMp -> Int -> HsName -> EHCOpts -> ( FvS) sem_CAlt_Alt :: T_CPat -> T_CExpr -> T_CAlt sem_CAlt_Alt pat_ expr_ = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _patOgUniq -> (case (pat_ _patOgUniq) of { ( _patIgUniq,pat_1) -> (case (_patIgUniq) of { _exprOgUniq -> (case (expr_) of { ( _exprIgathLamMp,_exprIgrLamArgL,expr_1) -> (case (expr_1 _exprOgUniq) of { ( _exprIgUniq,expr_2) -> (case (_exprIgUniq) of { _lhsOgUniq -> (case ((let sem_CAlt_Alt_1 :: T_CAlt_1 sem_CAlt_Alt_1 = (\ _lhsIdataGam _lhsIevalCtx _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case (ExprIsOther) of { _whatAbove -> (case (_whatAbove) of { _exprOwhatAbove -> (case (_lhsIopts) of { _exprOopts -> (case (_lhsImodNm) of { _exprOmodNm -> (case (_lhsIlev + 1) of { _lev -> (case (_lev) of { _exprOlev -> (case (_lhsIlamMp) of { _exprOlamMp -> (case (_lhsIevalCtx) of { _exprOevalCtx -> (case (_lhsIdataGam) of { _exprOdataGam -> (case (True) of { _exprOisTopTup -> (case (True) of { _exprOisTopApp -> (case (expr_2 _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmodNm _exprOopts _exprOwhatAbove) of { ( _exprIappFunKind,_exprIfvS,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIwhatBelow) -> (case (_lhsIopts) of { _patOopts -> (case (_lhsImodNm) of { _patOmodNm -> (case (_lev) of { _patOlev -> (case (_lhsIlamMp) of { _patOlamMp -> (case (_lhsIdataGam) of { _patOdataGam -> (case (pat_1 _patOdataGam _patOlamMp _patOlev _patOmodNm _patOopts) of { ( _patIfldNmL,_patIfvS,_patInmL) -> (case (_exprIfvS `Set.difference` Set.fromList _patInmL) of { _fvS -> (case (_fvS) of { _lhsOfvS -> ( _lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CAlt_Alt_1)) of { ( sem_CAlt_1) -> ( _lhsOgUniq,sem_CAlt_1) }) }) }) }) }) }) })) -- CAltL ------------------------------------------------------- {- visit 0: chained attribute: gUniq : UID visit 1: inherited attributes: dataGam : DataGam evalCtx : EvalCtx lamMp : LamMp lev : Int modNm : HsName opts : EHCOpts synthesized attribute: fvS : FvS alternatives: alternative Cons: child hd : CAlt child tl : CAltL alternative Nil: -} -- cata sem_CAltL :: CAltL -> T_CAltL sem_CAltL list = (Prelude.foldr sem_CAltL_Cons sem_CAltL_Nil (Prelude.map sem_CAlt list)) -- semantic domain type T_CAltL = UID -> ( UID,T_CAltL_1) type T_CAltL_1 = DataGam -> EvalCtx -> LamMp -> Int -> HsName -> EHCOpts -> ( FvS) sem_CAltL_Cons :: T_CAlt -> T_CAltL -> T_CAltL sem_CAltL_Cons hd_ tl_ = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _hdOgUniq -> (case (hd_ _hdOgUniq) of { ( _hdIgUniq,hd_1) -> (case (_hdIgUniq) of { _tlOgUniq -> (case (tl_ _tlOgUniq) of { ( _tlIgUniq,tl_1) -> (case (_tlIgUniq) of { _lhsOgUniq -> (case ((let sem_CAltL_Cons_1 :: T_CAltL_1 sem_CAltL_Cons_1 = (\ _lhsIdataGam _lhsIevalCtx _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case (_lhsIopts) of { _tlOopts -> (case (_lhsImodNm) of { _tlOmodNm -> (case (_lhsIlev) of { _tlOlev -> (case (_lhsIlamMp) of { _tlOlamMp -> (case (_lhsIevalCtx) of { _tlOevalCtx -> (case (_lhsIdataGam) of { _tlOdataGam -> (case (tl_1 _tlOdataGam _tlOevalCtx _tlOlamMp _tlOlev _tlOmodNm _tlOopts) of { ( _tlIfvS) -> (case (_lhsIopts) of { _hdOopts -> (case (_lhsImodNm) of { _hdOmodNm -> (case (_lhsIlev) of { _hdOlev -> (case (_lhsIlamMp) of { _hdOlamMp -> (case (_lhsIevalCtx) of { _hdOevalCtx -> (case (_lhsIdataGam) of { _hdOdataGam -> (case (hd_1 _hdOdataGam _hdOevalCtx _hdOlamMp _hdOlev _hdOmodNm _hdOopts) of { ( _hdIfvS) -> (case (_hdIfvS `Set.union` _tlIfvS) of { _lhsOfvS -> ( _lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CAltL_Cons_1)) of { ( sem_CAltL_1) -> ( _lhsOgUniq,sem_CAltL_1) }) }) }) }) }) })) sem_CAltL_Nil :: T_CAltL sem_CAltL_Nil = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _lhsOgUniq -> (case ((let sem_CAltL_Nil_1 :: T_CAltL_1 sem_CAltL_Nil_1 = (\ _lhsIdataGam _lhsIevalCtx _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case (Set.empty) of { _lhsOfvS -> ( _lhsOfvS) })) in sem_CAltL_Nil_1)) of { ( sem_CAltL_1) -> ( _lhsOgUniq,sem_CAltL_1) }) })) -- CBind ------------------------------------------------------- {- visit 0: synthesized attributes: bindLamMp : LamMp nm : HsName visit 1: chained attribute: gUniq : UID visit 2: inherited attributes: dataGam : DataGam evalCtx : EvalCtx isGlobal : Bool lamMp : LamMp letBindingsCateg : CBindCateg lev : Int modNm : HsName opts : EHCOpts synthesized attributes: fvS : FvS fvSMp : FvSMp nmL : [HsName] alternatives: alternative Bind: child nm : {HsName} child bindAspects : CBoundL -} -- cata sem_CBind :: CBind -> T_CBind sem_CBind (CBind_Bind _nm _bindAspects) = (sem_CBind_Bind _nm (sem_CBoundL _bindAspects)) -- semantic domain type T_CBind = ( LamMp,HsName,T_CBind_1) type T_CBind_1 = UID -> ( UID,T_CBind_2) type T_CBind_2 = DataGam -> EvalCtx -> Bool -> LamMp -> CBindCateg -> Int -> HsName -> EHCOpts -> ( FvS,FvSMp,([HsName])) sem_CBind_Bind :: HsName -> T_CBoundL -> T_CBind sem_CBind_Bind nm_ bindAspects_ = (case (nm_) of { _bindAspectsOnm -> (case (bindAspects_ _bindAspectsOnm) of { ( _bindAspectsIbindLamMp,bindAspects_1) -> (case (_bindAspectsIbindLamMp) of { _lhsObindLamMp -> (case (nm_) of { _lhsOnm -> (case ((let sem_CBind_Bind_1 :: T_CBind_1 sem_CBind_Bind_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _bindAspectsOgUniq -> (case (bindAspects_1 _bindAspectsOgUniq) of { ( _bindAspectsIgUniq,bindAspects_2) -> (case (_bindAspectsIgUniq) of { _lhsOgUniq -> (case ((let sem_CBind_Bind_2 :: T_CBind_2 sem_CBind_Bind_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisGlobal _lhsIlamMp _lhsIletBindingsCateg _lhsIlev _lhsImodNm _lhsIopts -> (case (_lhsIopts) of { _bindAspectsOopts -> (case (_lhsImodNm) of { _bindAspectsOmodNm -> (case (_lhsIlev) of { _bindAspectsOlev -> (case (_lhsIletBindingsCateg) of { _bindAspectsOletBindingsCateg -> (case (_lhsIlamMp) of { _bindAspectsOlamMp -> (case (_lhsIisGlobal) of { _bindAspectsOisGlobal -> (case (_lhsIevalCtx) of { _bindAspectsOevalCtx -> (case (_lhsIdataGam) of { _bindAspectsOdataGam -> (case (bindAspects_2 _bindAspectsOdataGam _bindAspectsOevalCtx _bindAspectsOisGlobal _bindAspectsOlamMp _bindAspectsOletBindingsCateg _bindAspectsOlev _bindAspectsOmodNm _bindAspectsOopts) of { ( _bindAspectsIfvS,_bindAspectsIfvSMp,_bindAspectsInmL) -> (case (_bindAspectsIfvS) of { _lhsOfvS -> (case (Map.singleton nm_ _bindAspectsIfvS) of { _lhsOfvSMp -> (case ([nm_]) of { _lhsOnmL -> ( _lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CBind_Bind_2)) of { ( sem_CBind_2) -> ( _lhsOgUniq,sem_CBind_2) }) }) }) })) in sem_CBind_Bind_1)) of { ( sem_CBind_1) -> ( _lhsObindLamMp,_lhsOnm,sem_CBind_1) }) }) }) }) }) -- CBindAnn ---------------------------------------------------- {- visit 0: chained attribute: gUniq : UID visit 1: inherited attributes: dataGam : DataGam lamMp : LamMp lev : Int modNm : HsName opts : EHCOpts synthesized attributes: fvS : FvS nmL : [HsName] alternatives: alternative Coe: child coe : {()} -} -- cata sem_CBindAnn :: CBindAnn -> T_CBindAnn sem_CBindAnn (CBindAnn_Coe _coe) = (sem_CBindAnn_Coe _coe) -- semantic domain type T_CBindAnn = UID -> ( UID,T_CBindAnn_1) type T_CBindAnn_1 = DataGam -> LamMp -> Int -> HsName -> EHCOpts -> ( FvS,([HsName])) sem_CBindAnn_Coe :: (()) -> T_CBindAnn sem_CBindAnn_Coe coe_ = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _lhsOgUniq -> (case ((let sem_CBindAnn_Coe_1 :: T_CBindAnn_1 sem_CBindAnn_Coe_1 = (\ _lhsIdataGam _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case (Set.empty) of { _lhsOfvS -> (case ([]) of { _lhsOnmL -> ( _lhsOfvS,_lhsOnmL) }) })) in sem_CBindAnn_Coe_1)) of { ( sem_CBindAnn_1) -> ( _lhsOgUniq,sem_CBindAnn_1) }) })) -- CBindAnnL --------------------------------------------------- {- visit 0: chained attribute: gUniq : UID visit 1: inherited attributes: dataGam : DataGam lamMp : LamMp lev : Int modNm : HsName opts : EHCOpts synthesized attributes: fvS : FvS nmL : [HsName] alternatives: alternative Cons: child hd : CBindAnn child tl : CBindAnnL alternative Nil: -} -- cata sem_CBindAnnL :: CBindAnnL -> T_CBindAnnL sem_CBindAnnL list = (Prelude.foldr sem_CBindAnnL_Cons sem_CBindAnnL_Nil (Prelude.map sem_CBindAnn list)) -- semantic domain type T_CBindAnnL = UID -> ( UID,T_CBindAnnL_1) type T_CBindAnnL_1 = DataGam -> LamMp -> Int -> HsName -> EHCOpts -> ( FvS,([HsName])) sem_CBindAnnL_Cons :: T_CBindAnn -> T_CBindAnnL -> T_CBindAnnL sem_CBindAnnL_Cons hd_ tl_ = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _hdOgUniq -> (case (hd_ _hdOgUniq) of { ( _hdIgUniq,hd_1) -> (case (_hdIgUniq) of { _tlOgUniq -> (case (tl_ _tlOgUniq) of { ( _tlIgUniq,tl_1) -> (case (_tlIgUniq) of { _lhsOgUniq -> (case ((let sem_CBindAnnL_Cons_1 :: T_CBindAnnL_1 sem_CBindAnnL_Cons_1 = (\ _lhsIdataGam _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case (_lhsIopts) of { _tlOopts -> (case (_lhsImodNm) of { _tlOmodNm -> (case (_lhsIlev) of { _tlOlev -> (case (_lhsIlamMp) of { _tlOlamMp -> (case (_lhsIdataGam) of { _tlOdataGam -> (case (tl_1 _tlOdataGam _tlOlamMp _tlOlev _tlOmodNm _tlOopts) of { ( _tlIfvS,_tlInmL) -> (case (_lhsIopts) of { _hdOopts -> (case (_lhsImodNm) of { _hdOmodNm -> (case (_lhsIlev) of { _hdOlev -> (case (_lhsIlamMp) of { _hdOlamMp -> (case (_lhsIdataGam) of { _hdOdataGam -> (case (hd_1 _hdOdataGam _hdOlamMp _hdOlev _hdOmodNm _hdOopts) of { ( _hdIfvS,_hdInmL) -> (case (_hdIfvS `Set.union` _tlIfvS) of { _lhsOfvS -> (case (_hdInmL ++ _tlInmL) of { _lhsOnmL -> ( _lhsOfvS,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CBindAnnL_Cons_1)) of { ( sem_CBindAnnL_1) -> ( _lhsOgUniq,sem_CBindAnnL_1) }) }) }) }) }) })) sem_CBindAnnL_Nil :: T_CBindAnnL sem_CBindAnnL_Nil = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _lhsOgUniq -> (case ((let sem_CBindAnnL_Nil_1 :: T_CBindAnnL_1 sem_CBindAnnL_Nil_1 = (\ _lhsIdataGam _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case (Set.empty) of { _lhsOfvS -> (case ([]) of { _lhsOnmL -> ( _lhsOfvS,_lhsOnmL) }) })) in sem_CBindAnnL_Nil_1)) of { ( sem_CBindAnnL_1) -> ( _lhsOgUniq,sem_CBindAnnL_1) }) })) -- CBindL ------------------------------------------------------ {- visit 0: synthesized attribute: bindLamMp : LamMp visit 1: chained attribute: gUniq : UID visit 2: inherited attributes: dataGam : DataGam evalCtx : EvalCtx isGlobal : Bool lamMp : LamMp letBindingsCateg : CBindCateg lev : Int modNm : HsName opts : EHCOpts synthesized attributes: fvS : FvS fvSMp : FvSMp nmL : [HsName] alternatives: alternative Cons: child hd : CBind child tl : CBindL alternative Nil: -} -- cata sem_CBindL :: CBindL -> T_CBindL sem_CBindL list = (Prelude.foldr sem_CBindL_Cons sem_CBindL_Nil (Prelude.map sem_CBind list)) -- semantic domain type T_CBindL = ( LamMp,T_CBindL_1) type T_CBindL_1 = UID -> ( UID,T_CBindL_2) type T_CBindL_2 = DataGam -> EvalCtx -> Bool -> LamMp -> CBindCateg -> Int -> HsName -> EHCOpts -> ( FvS,FvSMp,([HsName])) sem_CBindL_Cons :: T_CBind -> T_CBindL -> T_CBindL sem_CBindL_Cons hd_ tl_ = (case (tl_) of { ( _tlIbindLamMp,tl_1) -> (case (hd_) of { ( _hdIbindLamMp,_hdInm,hd_1) -> (case (_hdIbindLamMp `lamMpUnionBindAspMp` _tlIbindLamMp) of { _lhsObindLamMp -> (case ((let sem_CBindL_Cons_1 :: T_CBindL_1 sem_CBindL_Cons_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _hdOgUniq -> (case (hd_1 _hdOgUniq) of { ( _hdIgUniq,hd_2) -> (case (_hdIgUniq) of { _tlOgUniq -> (case (tl_1 _tlOgUniq) of { ( _tlIgUniq,tl_2) -> (case (_tlIgUniq) of { _lhsOgUniq -> (case ((let sem_CBindL_Cons_2 :: T_CBindL_2 sem_CBindL_Cons_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisGlobal _lhsIlamMp _lhsIletBindingsCateg _lhsIlev _lhsImodNm _lhsIopts -> (case (_lhsIopts) of { _tlOopts -> (case (_lhsImodNm) of { _tlOmodNm -> (case (_lhsIlev) of { _tlOlev -> (case (_lhsIletBindingsCateg) of { _tlOletBindingsCateg -> (case (_lhsIlamMp) of { _tlOlamMp -> (case (_lhsIisGlobal) of { _tlOisGlobal -> (case (_lhsIevalCtx) of { _tlOevalCtx -> (case (_lhsIdataGam) of { _tlOdataGam -> (case (tl_2 _tlOdataGam _tlOevalCtx _tlOisGlobal _tlOlamMp _tlOletBindingsCateg _tlOlev _tlOmodNm _tlOopts) of { ( _tlIfvS,_tlIfvSMp,_tlInmL) -> (case (_lhsIopts) of { _hdOopts -> (case (_lhsImodNm) of { _hdOmodNm -> (case (_lhsIlev) of { _hdOlev -> (case (_lhsIletBindingsCateg) of { _hdOletBindingsCateg -> (case (_lhsIlamMp) of { _hdOlamMp -> (case (_lhsIisGlobal) of { _hdOisGlobal -> (case (_lhsIevalCtx) of { _hdOevalCtx -> (case (_lhsIdataGam) of { _hdOdataGam -> (case (hd_2 _hdOdataGam _hdOevalCtx _hdOisGlobal _hdOlamMp _hdOletBindingsCateg _hdOlev _hdOmodNm _hdOopts) of { ( _hdIfvS,_hdIfvSMp,_hdInmL) -> (case (_hdIfvS `Set.union` _tlIfvS) of { _lhsOfvS -> (case (_hdIfvSMp `Map.union` _tlIfvSMp) of { _lhsOfvSMp -> (case (_hdInmL ++ _tlInmL) of { _lhsOnmL -> ( _lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CBindL_Cons_2)) of { ( sem_CBindL_2) -> ( _lhsOgUniq,sem_CBindL_2) }) }) }) }) }) })) in sem_CBindL_Cons_1)) of { ( sem_CBindL_1) -> ( _lhsObindLamMp,sem_CBindL_1) }) }) }) }) sem_CBindL_Nil :: T_CBindL sem_CBindL_Nil = (case (Map.empty) of { _lhsObindLamMp -> (case ((let sem_CBindL_Nil_1 :: T_CBindL_1 sem_CBindL_Nil_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _lhsOgUniq -> (case ((let sem_CBindL_Nil_2 :: T_CBindL_2 sem_CBindL_Nil_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisGlobal _lhsIlamMp _lhsIletBindingsCateg _lhsIlev _lhsImodNm _lhsIopts -> (case (Set.empty) of { _lhsOfvS -> (case (Map.empty) of { _lhsOfvSMp -> (case ([]) of { _lhsOnmL -> ( _lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) })) in sem_CBindL_Nil_2)) of { ( sem_CBindL_2) -> ( _lhsOgUniq,sem_CBindL_2) }) })) in sem_CBindL_Nil_1)) of { ( sem_CBindL_1) -> ( _lhsObindLamMp,sem_CBindL_1) }) }) -- CBound ------------------------------------------------------ {- visit 0: inherited attribute: nm : HsName synthesized attribute: bindLamMp : LamMp visit 1: chained attribute: gUniq : UID visit 2: inherited attributes: dataGam : DataGam evalCtx : EvalCtx isGlobal : Bool isTopApp : Bool isTopTup : Bool lamMp : LamMp letBindingsCateg : CBindCateg lev : Int modNm : HsName opts : EHCOpts synthesized attributes: fvS : FvS fvSMp : FvSMp nmL : [HsName] alternatives: alternative Bind: child expr : CExpr visit 2: local whatAbove : {WhatExpr} alternative Val: child aspectKeyS : {ACoreBindAspectKeyS} child mlev : {MetaLev} child lbl : {CLbl} child expr : CExpr visit 2: local whatAbove : {WhatExpr} alternative Ty: child aspectKeyS : {ACoreBindAspectKeyS} child ty : {Ty} alternative FFE: child callconv : {FFIWay} child expEnt : {ForeignEnt} child expr : CExpr child ty : {Ty} visit 2: local whatAbove : {WhatExpr} -} -- cata sem_CBound :: CBound -> T_CBound sem_CBound (CBound_Bind _expr) = (sem_CBound_Bind (sem_CExpr _expr)) sem_CBound (CBound_Val _aspectKeyS _mlev _lbl _expr) = (sem_CBound_Val _aspectKeyS _mlev _lbl (sem_CExpr _expr)) sem_CBound (CBound_Ty _aspectKeyS _ty) = (sem_CBound_Ty _aspectKeyS _ty) sem_CBound (CBound_FFE _callconv _expEnt _expr _ty) = (sem_CBound_FFE _callconv _expEnt (sem_CExpr _expr) _ty) -- semantic domain type T_CBound = HsName -> ( LamMp,T_CBound_1) type T_CBound_1 = UID -> ( UID,T_CBound_2) type T_CBound_2 = DataGam -> EvalCtx -> Bool -> Bool -> Bool -> LamMp -> CBindCateg -> Int -> HsName -> EHCOpts -> ( FvS,FvSMp,([HsName])) sem_CBound_Bind :: T_CExpr -> T_CBound sem_CBound_Bind expr_ = (\ _lhsInm -> (case (expr_) of { ( _exprIgathLamMp,_exprIgrLamArgL,expr_1) -> (case (Map.singleton _lhsInm (emptyLamInfo {laminfoArity = length _exprIgrLamArgL})) of { _lhsObindLamMp -> (case ((let sem_CBound_Bind_1 :: T_CBound_1 sem_CBound_Bind_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _exprOgUniq -> (case (expr_1 _exprOgUniq) of { ( _exprIgUniq,expr_2) -> (case (_exprIgUniq) of { _lhsOgUniq -> (case ((let sem_CBound_Bind_2 :: T_CBound_2 sem_CBound_Bind_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisGlobal _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIletBindingsCateg _lhsIlev _lhsImodNm _lhsIopts -> (case (ExprIsBind _lhsInm) of { _whatAbove -> (case (_whatAbove) of { _exprOwhatAbove -> (case (_lhsIopts) of { _exprOopts -> (case (_lhsImodNm) of { _exprOmodNm -> (case (_lhsIlev) of { _exprOlev -> (case (_lhsIlamMp) of { _exprOlamMp -> (case (_lhsIevalCtx) of { _exprOevalCtx -> (case (_lhsIdataGam) of { _exprOdataGam -> (case (True) of { _exprOisTopTup -> (case (True) of { _exprOisTopApp -> (case (expr_2 _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmodNm _exprOopts _exprOwhatAbove) of { ( _exprIappFunKind,_exprIfvS,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIwhatBelow) -> (case (_exprIfvS) of { _lhsOfvS -> (case (Map.empty) of { _lhsOfvSMp -> (case ([]) of { _lhsOnmL -> ( _lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CBound_Bind_2)) of { ( sem_CBound_2) -> ( _lhsOgUniq,sem_CBound_2) }) }) }) })) in sem_CBound_Bind_1)) of { ( sem_CBound_1) -> ( _lhsObindLamMp,sem_CBound_1) }) }) })) sem_CBound_Val :: ACoreBindAspectKeyS -> MetaLev -> CLbl -> T_CExpr -> T_CBound sem_CBound_Val aspectKeyS_ mlev_ lbl_ expr_ = (\ _lhsInm -> (case (Map.empty) of { _lhsObindLamMp -> (case ((let sem_CBound_Val_1 :: T_CBound_1 sem_CBound_Val_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _exprOgUniq -> (case (expr_) of { ( _exprIgathLamMp,_exprIgrLamArgL,expr_1) -> (case (expr_1 _exprOgUniq) of { ( _exprIgUniq,expr_2) -> (case (_exprIgUniq) of { _lhsOgUniq -> (case ((let sem_CBound_Val_2 :: T_CBound_2 sem_CBound_Val_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisGlobal _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIletBindingsCateg _lhsIlev _lhsImodNm _lhsIopts -> (case (ExprIsBind _lhsInm) of { _whatAbove -> (case (_whatAbove) of { _exprOwhatAbove -> (case (_lhsIopts) of { _exprOopts -> (case (_lhsImodNm) of { _exprOmodNm -> (case (_lhsIlev) of { _exprOlev -> (case (_lhsIlamMp) of { _exprOlamMp -> (case (_lhsIisTopTup) of { _exprOisTopTup -> (case (_lhsIisTopApp) of { _exprOisTopApp -> (case (_lhsIevalCtx) of { _exprOevalCtx -> (case (_lhsIdataGam) of { _exprOdataGam -> (case (expr_2 _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmodNm _exprOopts _exprOwhatAbove) of { ( _exprIappFunKind,_exprIfvS,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIwhatBelow) -> (case (_exprIfvS) of { _lhsOfvS -> (case (Map.empty) of { _lhsOfvSMp -> (case ([]) of { _lhsOnmL -> ( _lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CBound_Val_2)) of { ( sem_CBound_2) -> ( _lhsOgUniq,sem_CBound_2) }) }) }) }) })) in sem_CBound_Val_1)) of { ( sem_CBound_1) -> ( _lhsObindLamMp,sem_CBound_1) }) })) sem_CBound_Ty :: ACoreBindAspectKeyS -> Ty -> T_CBound sem_CBound_Ty aspectKeyS_ ty_ = (\ _lhsInm -> (case (Map.empty) of { _lhsObindLamMp -> (case ((let sem_CBound_Ty_1 :: T_CBound_1 sem_CBound_Ty_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _lhsOgUniq -> (case ((let sem_CBound_Ty_2 :: T_CBound_2 sem_CBound_Ty_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisGlobal _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIletBindingsCateg _lhsIlev _lhsImodNm _lhsIopts -> (case (Set.empty) of { _lhsOfvS -> (case (Map.empty) of { _lhsOfvSMp -> (case ([]) of { _lhsOnmL -> ( _lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) })) in sem_CBound_Ty_2)) of { ( sem_CBound_2) -> ( _lhsOgUniq,sem_CBound_2) }) })) in sem_CBound_Ty_1)) of { ( sem_CBound_1) -> ( _lhsObindLamMp,sem_CBound_1) }) })) sem_CBound_FFE :: FFIWay -> ForeignEnt -> T_CExpr -> Ty -> T_CBound sem_CBound_FFE callconv_ expEnt_ expr_ ty_ = (\ _lhsInm -> (case (Map.empty) of { _lhsObindLamMp -> (case ((let sem_CBound_FFE_1 :: T_CBound_1 sem_CBound_FFE_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _exprOgUniq -> (case (expr_) of { ( _exprIgathLamMp,_exprIgrLamArgL,expr_1) -> (case (expr_1 _exprOgUniq) of { ( _exprIgUniq,expr_2) -> (case (_exprIgUniq) of { _lhsOgUniq -> (case ((let sem_CBound_FFE_2 :: T_CBound_2 sem_CBound_FFE_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisGlobal _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIletBindingsCateg _lhsIlev _lhsImodNm _lhsIopts -> (case (ExprIsLam 0 Nothing) of { _whatAbove -> (case (_whatAbove) of { _exprOwhatAbove -> (case (_lhsIopts) of { _exprOopts -> (case (_lhsImodNm) of { _exprOmodNm -> (case (_lhsIlev) of { _exprOlev -> (case (_lhsIlamMp) of { _exprOlamMp -> (case (_lhsIevalCtx) of { _exprOevalCtx -> (case (_lhsIdataGam) of { _exprOdataGam -> (case (True) of { _exprOisTopTup -> (case (True) of { _exprOisTopApp -> (case (expr_2 _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmodNm _exprOopts _exprOwhatAbove) of { ( _exprIappFunKind,_exprIfvS,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIwhatBelow) -> (case (_exprIfvS) of { _lhsOfvS -> (case (Map.empty) of { _lhsOfvSMp -> (case ([]) of { _lhsOnmL -> ( _lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CBound_FFE_2)) of { ( sem_CBound_2) -> ( _lhsOgUniq,sem_CBound_2) }) }) }) }) })) in sem_CBound_FFE_1)) of { ( sem_CBound_1) -> ( _lhsObindLamMp,sem_CBound_1) }) })) -- CBoundL ----------------------------------------------------- {- visit 0: inherited attribute: nm : HsName synthesized attribute: bindLamMp : LamMp visit 1: chained attribute: gUniq : UID visit 2: inherited attributes: dataGam : DataGam evalCtx : EvalCtx isGlobal : Bool lamMp : LamMp letBindingsCateg : CBindCateg lev : Int modNm : HsName opts : EHCOpts synthesized attributes: fvS : FvS fvSMp : FvSMp nmL : [HsName] alternatives: alternative Cons: child hd : CBound child tl : CBoundL alternative Nil: -} -- cata sem_CBoundL :: CBoundL -> T_CBoundL sem_CBoundL list = (Prelude.foldr sem_CBoundL_Cons sem_CBoundL_Nil (Prelude.map sem_CBound list)) -- semantic domain type T_CBoundL = HsName -> ( LamMp,T_CBoundL_1) type T_CBoundL_1 = UID -> ( UID,T_CBoundL_2) type T_CBoundL_2 = DataGam -> EvalCtx -> Bool -> LamMp -> CBindCateg -> Int -> HsName -> EHCOpts -> ( FvS,FvSMp,([HsName])) sem_CBoundL_Cons :: T_CBound -> T_CBoundL -> T_CBoundL sem_CBoundL_Cons hd_ tl_ = (\ _lhsInm -> (case (_lhsInm) of { _tlOnm -> (case (_lhsInm) of { _hdOnm -> (case (tl_ _tlOnm) of { ( _tlIbindLamMp,tl_1) -> (case (hd_ _hdOnm) of { ( _hdIbindLamMp,hd_1) -> (case (_hdIbindLamMp `lamMpUnionBindAspMp` _tlIbindLamMp) of { _lhsObindLamMp -> (case ((let sem_CBoundL_Cons_1 :: T_CBoundL_1 sem_CBoundL_Cons_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _hdOgUniq -> (case (hd_1 _hdOgUniq) of { ( _hdIgUniq,hd_2) -> (case (_hdIgUniq) of { _tlOgUniq -> (case (tl_1 _tlOgUniq) of { ( _tlIgUniq,tl_2) -> (case (_tlIgUniq) of { _lhsOgUniq -> (case ((let sem_CBoundL_Cons_2 :: T_CBoundL_2 sem_CBoundL_Cons_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisGlobal _lhsIlamMp _lhsIletBindingsCateg _lhsIlev _lhsImodNm _lhsIopts -> (case (_lhsIopts) of { _tlOopts -> (case (_lhsImodNm) of { _tlOmodNm -> (case (_lhsIlev) of { _tlOlev -> (case (_lhsIletBindingsCateg) of { _tlOletBindingsCateg -> (case (_lhsIlamMp) of { _tlOlamMp -> (case (_lhsIisGlobal) of { _tlOisGlobal -> (case (_lhsIevalCtx) of { _tlOevalCtx -> (case (_lhsIdataGam) of { _tlOdataGam -> (case (tl_2 _tlOdataGam _tlOevalCtx _tlOisGlobal _tlOlamMp _tlOletBindingsCateg _tlOlev _tlOmodNm _tlOopts) of { ( _tlIfvS,_tlIfvSMp,_tlInmL) -> (case (_lhsIopts) of { _hdOopts -> (case (_lhsImodNm) of { _hdOmodNm -> (case (_lhsIlev) of { _hdOlev -> (case (_lhsIletBindingsCateg) of { _hdOletBindingsCateg -> (case (_lhsIlamMp) of { _hdOlamMp -> (case (_lhsIisGlobal) of { _hdOisGlobal -> (case (_lhsIevalCtx) of { _hdOevalCtx -> (case (_lhsIdataGam) of { _hdOdataGam -> (case (True) of { _hdOisTopTup -> (case (True) of { _hdOisTopApp -> (case (hd_2 _hdOdataGam _hdOevalCtx _hdOisGlobal _hdOisTopApp _hdOisTopTup _hdOlamMp _hdOletBindingsCateg _hdOlev _hdOmodNm _hdOopts) of { ( _hdIfvS,_hdIfvSMp,_hdInmL) -> (case (_hdIfvS `Set.union` _tlIfvS) of { _lhsOfvS -> (case (_hdIfvSMp `Map.union` _tlIfvSMp) of { _lhsOfvSMp -> (case (_hdInmL ++ _tlInmL) of { _lhsOnmL -> ( _lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CBoundL_Cons_2)) of { ( sem_CBoundL_2) -> ( _lhsOgUniq,sem_CBoundL_2) }) }) }) }) }) })) in sem_CBoundL_Cons_1)) of { ( sem_CBoundL_1) -> ( _lhsObindLamMp,sem_CBoundL_1) }) }) }) }) }) })) sem_CBoundL_Nil :: T_CBoundL sem_CBoundL_Nil = (\ _lhsInm -> (case (Map.empty) of { _lhsObindLamMp -> (case ((let sem_CBoundL_Nil_1 :: T_CBoundL_1 sem_CBoundL_Nil_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _lhsOgUniq -> (case ((let sem_CBoundL_Nil_2 :: T_CBoundL_2 sem_CBoundL_Nil_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisGlobal _lhsIlamMp _lhsIletBindingsCateg _lhsIlev _lhsImodNm _lhsIopts -> (case (Set.empty) of { _lhsOfvS -> (case (Map.empty) of { _lhsOfvSMp -> (case ([]) of { _lhsOnmL -> ( _lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) })) in sem_CBoundL_Nil_2)) of { ( sem_CBoundL_2) -> ( _lhsOgUniq,sem_CBoundL_2) }) })) in sem_CBoundL_Nil_1)) of { ( sem_CBoundL_1) -> ( _lhsObindLamMp,sem_CBoundL_1) }) })) -- CDataCon ---------------------------------------------------- {- visit 0: synthesized attribute: dataConstrTagMp : DataConstrTagMp alternatives: alternative Con: child conNm : {HsName} child tagNr : {Int} child arity : {Int} visit 0: local dti : _ -} -- cata sem_CDataCon :: CDataCon -> T_CDataCon sem_CDataCon (CDataCon_Con _conNm _tagNr _arity) = (sem_CDataCon_Con _conNm _tagNr _arity) -- semantic domain type T_CDataCon = ( DataConstrTagMp) sem_CDataCon_Con :: HsName -> Int -> Int -> T_CDataCon sem_CDataCon_Con conNm_ tagNr_ arity_ = (case (emptyDataTagInfo { dtiConNm = conNm_ , dtiCTag = mkOnlyConInfoCTag conNm_ tagNr_ arity_ }) of { _dti -> (case (Map.singleton conNm_ _dti) of { _lhsOdataConstrTagMp -> ( _lhsOdataConstrTagMp) }) }) -- CDataConL --------------------------------------------------- {- visit 0: synthesized attribute: dataConstrTagMp : DataConstrTagMp alternatives: alternative Cons: child hd : CDataCon child tl : CDataConL alternative Nil: -} -- cata sem_CDataConL :: CDataConL -> T_CDataConL sem_CDataConL list = (Prelude.foldr sem_CDataConL_Cons sem_CDataConL_Nil (Prelude.map sem_CDataCon list)) -- semantic domain type T_CDataConL = ( DataConstrTagMp) sem_CDataConL_Cons :: T_CDataCon -> T_CDataConL -> T_CDataConL sem_CDataConL_Cons hd_ tl_ = (case (tl_) of { ( _tlIdataConstrTagMp) -> (case (hd_) of { ( _hdIdataConstrTagMp) -> (case (_hdIdataConstrTagMp `Map.union` _tlIdataConstrTagMp) of { _lhsOdataConstrTagMp -> ( _lhsOdataConstrTagMp) }) }) }) sem_CDataConL_Nil :: T_CDataConL sem_CDataConL_Nil = (case (Map.empty) of { _lhsOdataConstrTagMp -> ( _lhsOdataConstrTagMp) }) -- CDeclMeta --------------------------------------------------- {- visit 0: synthesized attribute: gathDataGam : DataGam alternatives: alternative Data: child tyNm : {HsName} child dataCons : CDataConL -} -- cata sem_CDeclMeta :: CDeclMeta -> T_CDeclMeta sem_CDeclMeta (CDeclMeta_Data _tyNm _dataCons) = (sem_CDeclMeta_Data _tyNm (sem_CDataConL _dataCons)) -- semantic domain type T_CDeclMeta = ( DataGam) sem_CDeclMeta_Data :: HsName -> T_CDataConL -> T_CDeclMeta sem_CDeclMeta_Data tyNm_ dataCons_ = (case (dataCons_) of { ( _dataConsIdataConstrTagMp) -> (case (gamSingleton tyNm_ $ mkDGIForCodegenOnly tyNm_ _dataConsIdataConstrTagMp) of { _lhsOgathDataGam -> ( _lhsOgathDataGam) }) }) -- CDeclMetaL -------------------------------------------------- {- visit 0: synthesized attribute: gathDataGam : DataGam alternatives: alternative Cons: child hd : CDeclMeta child tl : CDeclMetaL alternative Nil: -} -- cata sem_CDeclMetaL :: CDeclMetaL -> T_CDeclMetaL sem_CDeclMetaL list = (Prelude.foldr sem_CDeclMetaL_Cons sem_CDeclMetaL_Nil (Prelude.map sem_CDeclMeta list)) -- semantic domain type T_CDeclMetaL = ( DataGam) sem_CDeclMetaL_Cons :: T_CDeclMeta -> T_CDeclMetaL -> T_CDeclMetaL sem_CDeclMetaL_Cons hd_ tl_ = (case (tl_) of { ( _tlIgathDataGam) -> (case (hd_) of { ( _hdIgathDataGam) -> (case (_hdIgathDataGam `gamUnion` _tlIgathDataGam) of { _lhsOgathDataGam -> ( _lhsOgathDataGam) }) }) }) sem_CDeclMetaL_Nil :: T_CDeclMetaL sem_CDeclMetaL_Nil = (case (emptyGam) of { _lhsOgathDataGam -> ( _lhsOgathDataGam) }) -- CExport ----------------------------------------------------- {- alternatives: alternative Export: child nm : {HsName} alternative ExportData: child nm : {HsName} child mbConNmL : {Maybe [HsName]} -} -- cata sem_CExport :: CExport -> T_CExport sem_CExport (CExport_Export _nm) = (sem_CExport_Export _nm) sem_CExport (CExport_ExportData _nm _mbConNmL) = (sem_CExport_ExportData _nm _mbConNmL) -- semantic domain type T_CExport = ( ) sem_CExport_Export :: HsName -> T_CExport sem_CExport_Export nm_ = ( ) sem_CExport_ExportData :: HsName -> (Maybe [HsName]) -> T_CExport sem_CExport_ExportData nm_ mbConNmL_ = ( ) -- CExportL ---------------------------------------------------- {- alternatives: alternative Cons: child hd : CExport child tl : CExportL alternative Nil: -} -- cata sem_CExportL :: CExportL -> T_CExportL sem_CExportL list = (Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list)) -- semantic domain type T_CExportL = ( ) sem_CExportL_Cons :: T_CExport -> T_CExportL -> T_CExportL sem_CExportL_Cons hd_ tl_ = ( ) sem_CExportL_Nil :: T_CExportL sem_CExportL_Nil = ( ) -- CExpr ------------------------------------------------------- {- visit 0: synthesized attributes: gathLamMp : LamMp grLamArgL : [HsName] visit 1: chained attribute: gUniq : UID visit 2: inherited attributes: dataGam : DataGam evalCtx : EvalCtx isTopApp : Bool isTopTup : Bool lamMp : LamMp lev : Int modNm : HsName opts : EHCOpts whatAbove : WhatExpr synthesized attributes: appFunKind : AppFunKind fvS : FvS mbFFIApp : Maybe ( Ty , Bool , FFIWay , ForeignEnt , [Ty] ) mbLam : Maybe [HsName] mbVar : Maybe HsName whatBelow : WhatExpr alternatives: alternative Var: child ref : {ACoreBindRef} visit 1: local _tup1 : _ visit 2: local nm : {HsName} local mbVar : {Maybe HsName} local whatBelow : _ alternative Int: child int : {Int} visit 1: local _tup2 : _ visit 2: local whatBelow : _ alternative Char: child char : {Char} visit 1: local _tup3 : _ visit 2: local whatBelow : _ alternative String: child str : {String} visit 1: local _tup4 : _ visit 2: local whatBelow : _ alternative Integer: child integer : {Integer} visit 1: local _tup5 : _ visit 2: local whatBelow : _ alternative Tup: child tag : {CTag} visit 2: local whatBelow : _ alternative Let: child categ : {CBindCateg} child binds : CBindL child body : CExpr visit 2: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} local evalCtx : _ local letBindingsCateg : _ local isGlobal : _ local fvS : _ local whatBelow : _ alternative App: child func : CExpr child arg : CBound visit 1: local _tup6 : _ visit 2: local whatAbove : {WhatExpr} local isTopTup : _ local letBindingsCateg : _ local isGlobal : _ local fvS : _ local whatBelow : _ alternative Lam: child bind : CBind child body : CExpr visit 0: local argNm : _ visit 1: intra argNm : _ visit 2: local whatAbove : {WhatExpr} local lev : _ local isTopTup : _ local isTopApp : {Bool} local fvS : _ local whatBelow : _ intra argNm : _ alternative Case: child expr : CExpr child alts : CAltL child dflt : CExpr visit 1: local _tup7 : _ visit 2: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} local whatBelow : _ alternative CaseAltFail: child failReason : {CaseAltFailReason} child errorExpr : CExpr visit 2: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} alternative TupDel: child expr : CExpr child tag : {CTag} child nm : {HsName} child offset : CExpr visit 1: local _tup8 : _ visit 2: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} local whatBelow : _ alternative TupIns: child expr : CExpr child tag : {CTag} child nm : {HsName} child offset : CExpr child fldExpr : CExpr visit 1: local _tup9 : _ visit 2: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} local whatBelow : _ alternative TupUpd: child expr : CExpr child tag : {CTag} child nm : {HsName} child offset : CExpr child fldExpr : CExpr visit 1: local _tup10 : _ visit 2: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} local whatBelow : _ alternative FFI: child callconv : {FFIWay} child safety : {String} child impEnt : {ForeignEnt} child ty : {Ty} visit 1: local _tup11 : _ visit 2: local foreignEntInfo : _ local mbPrimNeedEval : {Maybe PrimitiveNeedsEval} local primResNeedsEval : {Bool} local argTyLresTy : {( TyL, Ty )} local resTy : _ local argTyL : {TyL} local whatBelow : _ alternative Dbg: child info : {String} visit 2: local whatBelow : _ alternative Hole: child uid : {UID} visit 2: local whatBelow : _ alternative HoleLet: child bindsUid : {UID} child body : CExpr visit 2: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} local whatBelow : _ alternative CoeArg: visit 2: local whatBelow : _ alternative ImplsApp: child func : CExpr child uid : {ImplsVarId} visit 2: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} local whatBelow : _ alternative ImplsLam: child uid : {ImplsVarId} child body : CExpr visit 2: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} local whatBelow : _ alternative Ann: child ann : CExprAnn child expr : CExpr -} -- cata sem_CExpr :: CExpr -> T_CExpr sem_CExpr (CExpr_Var _ref) = (sem_CExpr_Var _ref) sem_CExpr (CExpr_Int _int) = (sem_CExpr_Int _int) sem_CExpr (CExpr_Char _char) = (sem_CExpr_Char _char) sem_CExpr (CExpr_String _str) = (sem_CExpr_String _str) sem_CExpr (CExpr_Integer _integer) = (sem_CExpr_Integer _integer) sem_CExpr (CExpr_Tup _tag) = (sem_CExpr_Tup _tag) sem_CExpr (CExpr_Let _categ _binds _body) = (sem_CExpr_Let _categ (sem_CBindL _binds) (sem_CExpr _body)) sem_CExpr (CExpr_App _func _arg) = (sem_CExpr_App (sem_CExpr _func) (sem_CBound _arg)) sem_CExpr (CExpr_Lam _bind _body) = (sem_CExpr_Lam (sem_CBind _bind) (sem_CExpr _body)) sem_CExpr (CExpr_Case _expr _alts _dflt) = (sem_CExpr_Case (sem_CExpr _expr) (sem_CAltL _alts) (sem_CExpr _dflt)) sem_CExpr (CExpr_CaseAltFail _failReason _errorExpr) = (sem_CExpr_CaseAltFail _failReason (sem_CExpr _errorExpr)) sem_CExpr (CExpr_TupDel _expr _tag _nm _offset) = (sem_CExpr_TupDel (sem_CExpr _expr) _tag _nm (sem_CExpr _offset)) sem_CExpr (CExpr_TupIns _expr _tag _nm _offset _fldExpr) = (sem_CExpr_TupIns (sem_CExpr _expr) _tag _nm (sem_CExpr _offset) (sem_CExpr _fldExpr)) sem_CExpr (CExpr_TupUpd _expr _tag _nm _offset _fldExpr) = (sem_CExpr_TupUpd (sem_CExpr _expr) _tag _nm (sem_CExpr _offset) (sem_CExpr _fldExpr)) sem_CExpr (CExpr_FFI _callconv _safety _impEnt _ty) = (sem_CExpr_FFI _callconv _safety _impEnt _ty) sem_CExpr (CExpr_Dbg _info) = (sem_CExpr_Dbg _info) sem_CExpr (CExpr_Hole _uid) = (sem_CExpr_Hole _uid) sem_CExpr (CExpr_HoleLet _bindsUid _body) = (sem_CExpr_HoleLet _bindsUid (sem_CExpr _body)) sem_CExpr (CExpr_CoeArg) = (sem_CExpr_CoeArg) sem_CExpr (CExpr_ImplsApp _func _uid) = (sem_CExpr_ImplsApp (sem_CExpr _func) _uid) sem_CExpr (CExpr_ImplsLam _uid _body) = (sem_CExpr_ImplsLam _uid (sem_CExpr _body)) sem_CExpr (CExpr_Ann _ann _expr) = (sem_CExpr_Ann (sem_CExprAnn _ann) (sem_CExpr _expr)) -- semantic domain type T_CExpr = ( LamMp,([HsName]),T_CExpr_1) type T_CExpr_1 = UID -> ( UID,T_CExpr_2) type T_CExpr_2 = DataGam -> EvalCtx -> Bool -> Bool -> LamMp -> Int -> HsName -> EHCOpts -> WhatExpr -> ( AppFunKind,FvS,(Maybe ( Ty , Bool , FFIWay , ForeignEnt , [Ty] )),(Maybe [HsName]),(Maybe HsName),WhatExpr) sem_CExpr_Var :: ACoreBindRef -> T_CExpr sem_CExpr_Var ref_ = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_Var_1 :: T_CExpr_1 sem_CExpr_Var_1 = (\ _lhsIgUniq -> (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )) of { __tup1 -> (case (__tup1) of { (_lhsOgUniq,_) -> (case ((let sem_CExpr_Var_2 :: T_CExpr_2 sem_CExpr_Var_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_Fun ref_) of { _lhsOappFunKind -> (case (acbrefNm ref_) of { _nm -> (case (Set.singleton _nm) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Just _nm) of { _mbVar -> (case (_mbVar) of { _lhsOmbVar -> (case (ExprIsVar _nm) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) })) in sem_CExpr_Var_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) })) in sem_CExpr_Var_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_Int :: Int -> T_CExpr sem_CExpr_Int int_ = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_Int_1 :: T_CExpr_1 sem_CExpr_Int_1 = (\ _lhsIgUniq -> (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )) of { __tup2 -> (case (__tup2) of { (_lhsOgUniq,_) -> (case ((let sem_CExpr_Int_2 :: T_CExpr_2 sem_CExpr_Int_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind -> (case (Set.empty) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (ExprIsInt int_) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) })) in sem_CExpr_Int_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) })) in sem_CExpr_Int_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_Char :: Char -> T_CExpr sem_CExpr_Char char_ = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_Char_1 :: T_CExpr_1 sem_CExpr_Char_1 = (\ _lhsIgUniq -> (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )) of { __tup3 -> (case (__tup3) of { (_lhsOgUniq,_) -> (case ((let sem_CExpr_Char_2 :: T_CExpr_2 sem_CExpr_Char_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind -> (case (Set.empty) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (ExprIsOtherWHNF) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) })) in sem_CExpr_Char_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) })) in sem_CExpr_Char_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_String :: String -> T_CExpr sem_CExpr_String str_ = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_String_1 :: T_CExpr_1 sem_CExpr_String_1 = (\ _lhsIgUniq -> (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )) of { __tup4 -> (case (__tup4) of { (_lhsOgUniq,_) -> (case ((let sem_CExpr_String_2 :: T_CExpr_2 sem_CExpr_String_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind -> (case (Set.empty) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (ExprIsOtherWHNF) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) })) in sem_CExpr_String_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) })) in sem_CExpr_String_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_Integer :: Integer -> T_CExpr sem_CExpr_Integer integer_ = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_Integer_1 :: T_CExpr_1 sem_CExpr_Integer_1 = (\ _lhsIgUniq -> (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )) of { __tup5 -> (case (__tup5) of { (_lhsOgUniq,_) -> (case ((let sem_CExpr_Integer_2 :: T_CExpr_2 sem_CExpr_Integer_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind -> (case (Set.empty) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (ExprIsOtherWHNF) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) })) in sem_CExpr_Integer_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) })) in sem_CExpr_Integer_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_Tup :: CTag -> T_CExpr sem_CExpr_Tup tag_ = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_Tup_1 :: T_CExpr_1 sem_CExpr_Tup_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _lhsOgUniq -> (case ((let sem_CExpr_Tup_2 :: T_CExpr_2 sem_CExpr_Tup_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_Tag tag_) of { _lhsOappFunKind -> (case (Set.empty) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (ExprIsTup tag_) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) })) in sem_CExpr_Tup_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) })) in sem_CExpr_Tup_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_Let :: CBindCateg -> T_CBindL -> T_CExpr -> T_CExpr sem_CExpr_Let categ_ binds_ body_ = (case (body_) of { ( _bodyIgathLamMp,_bodyIgrLamArgL,body_1) -> (case (binds_) of { ( _bindsIbindLamMp,binds_1) -> (case (_bindsIbindLamMp `Map.union` _bodyIgathLamMp) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_Let_1 :: T_CExpr_1 sem_CExpr_Let_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _bindsOgUniq -> (case (binds_1 _bindsOgUniq) of { ( _bindsIgUniq,binds_2) -> (case (_bindsIgUniq) of { _bodyOgUniq -> (case (body_1 _bodyOgUniq) of { ( _bodyIgUniq,body_2) -> (case (_bodyIgUniq) of { _lhsOgUniq -> (case ((let sem_CExpr_Let_2 :: T_CExpr_2 sem_CExpr_Let_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind -> (case (ExprIsOther) of { _whatAbove -> (case (_whatAbove) of { _bodyOwhatAbove -> (case (_lhsIopts) of { _bodyOopts -> (case (_lhsImodNm) of { _bodyOmodNm -> (case (_lhsIlev) of { _bodyOlev -> (case (_lhsIlamMp) of { _bodyOlamMp -> (case (True) of { _isTopTup -> (case (_isTopTup) of { _bodyOisTopTup -> (case (True) of { _isTopApp -> (case (_isTopApp) of { _bodyOisTopApp -> (case (if categ_ == CBindCateg_Strict then EvalCtx_Eval else EvalCtx_Thunk) of { _evalCtx -> (case (_evalCtx) of { _bodyOevalCtx -> (case (_lhsIdataGam) of { _bodyOdataGam -> (case (body_2 _bodyOdataGam _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlamMp _bodyOlev _bodyOmodNm _bodyOopts _bodyOwhatAbove) of { ( _bodyIappFunKind,_bodyIfvS,_bodyImbFFIApp,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) -> (case (_lhsIopts) of { _bindsOopts -> (case (_lhsImodNm) of { _bindsOmodNm -> (case (categ_) of { _letBindingsCateg -> (case (_letBindingsCateg) of { _bindsOletBindingsCateg -> (case (_lhsIlamMp) of { _bindsOlamMp -> (case (_lhsIlev == cLevModule) of { _isGlobal -> (case (_isGlobal) of { _bindsOisGlobal -> (case (_evalCtx) of { _bindsOevalCtx -> (case (_lhsIdataGam) of { _bindsOdataGam -> (case (_lhsIlev + 1) of { _bindsOlev -> (case (binds_2 _bindsOdataGam _bindsOevalCtx _bindsOisGlobal _bindsOlamMp _bindsOletBindingsCateg _bindsOlev _bindsOmodNm _bindsOopts) of { ( _bindsIfvS,_bindsIfvSMp,_bindsInmL) -> (case ((_bodyIfvS `Set.union` _bindsIfvS) `Set.difference` Set.fromList _bindsInmL) of { _fvS -> (case (_fvS) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CExpr_Let_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) }) }) }) })) in sem_CExpr_Let_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) }) }) sem_CExpr_App :: T_CExpr -> T_CBound -> T_CExpr sem_CExpr_App func_ arg_ = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_App_1 :: T_CExpr_1 sem_CExpr_App_1 = (\ _lhsIgUniq -> (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq2) -> (__cont,lUniq,lUniq2)}} )) of { __tup6 -> (case (__tup6) of { (_funcOgUniq,_,_) -> (case (func_) of { ( _funcIgathLamMp,_funcIgrLamArgL,func_1) -> (case (func_1 _funcOgUniq) of { ( _funcIgUniq,func_2) -> (case (_funcIgUniq) of { _argOgUniq -> (case (hsnUnknown) of { _argOnm -> (case (arg_ _argOnm) of { ( _argIbindLamMp,arg_1) -> (case (arg_1 _argOgUniq) of { ( _argIgUniq,arg_2) -> (case (_argIgUniq) of { _lhsOgUniq -> (case ((let sem_CExpr_App_2 :: T_CExpr_2 sem_CExpr_App_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (maybe (ExprIsApp 1 ExprIsOther) (\(a,w) -> ExprIsApp (a + 1) w) $ whatExprMbApp _lhsIwhatAbove) of { _whatAbove -> (case (_whatAbove) of { _funcOwhatAbove -> (case (_lhsIopts) of { _funcOopts -> (case (_lhsImodNm) of { _funcOmodNm -> (case (_lhsIlev) of { _funcOlev -> (case (_lhsIlamMp) of { _funcOlamMp -> (case (True) of { _isTopTup -> (case (_isTopTup) of { _funcOisTopTup -> (case (_lhsIevalCtx) of { _funcOevalCtx -> (case (_lhsIdataGam) of { _funcOdataGam -> (case (False) of { _funcOisTopApp -> (case (func_2 _funcOdataGam _funcOevalCtx _funcOisTopApp _funcOisTopTup _funcOlamMp _funcOlev _funcOmodNm _funcOopts _funcOwhatAbove) of { ( _funcIappFunKind,_funcIfvS,_funcImbFFIApp,_funcImbLam,_funcImbVar,_funcIwhatBelow) -> (case (_funcIappFunKind) of { _lhsOappFunKind -> (case (_lhsIopts) of { _argOopts -> (case (_lhsImodNm) of { _argOmodNm -> (case (_lhsIlev) of { _argOlev -> (case (acoreBindcategPlain) of { _letBindingsCateg -> (case (_letBindingsCateg) of { _argOletBindingsCateg -> (case (_lhsIlamMp) of { _argOlamMp -> (case (_isTopTup) of { _argOisTopTup -> (case (False) of { _isGlobal -> (case (_isGlobal) of { _argOisGlobal -> (case (_lhsIdataGam) of { _argOdataGam -> (case (EvalCtx_Thunk) of { _argOevalCtx -> (case (True) of { _argOisTopApp -> (case (arg_2 _argOdataGam _argOevalCtx _argOisGlobal _argOisTopApp _argOisTopTup _argOlamMp _argOletBindingsCateg _argOlev _argOmodNm _argOopts) of { ( _argIfvS,_argIfvSMp,_argInmL) -> (case (_funcIfvS `Set.union` _argIfvS) of { _fvS -> (case (_fvS) of { _lhsOfvS -> (case (_funcImbFFIApp) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (maybe (ExprIsApp 1 _funcIwhatBelow) (\(a,w) -> ExprIsApp (a + 1) w) $ whatExprMbApp _funcIwhatBelow) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CExpr_App_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) }) }) }) }) }) }) }) })) in sem_CExpr_App_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_Lam :: T_CBind -> T_CExpr -> T_CExpr sem_CExpr_Lam bind_ body_ = (case (Map.empty) of { _lhsOgathLamMp -> (case (bind_) of { ( _bindIbindLamMp,_bindInm,bind_1) -> (case (_bindInm) of { _argNm -> (case (body_) of { ( _bodyIgathLamMp,_bodyIgrLamArgL,body_1) -> (case (_argNm : _bodyIgrLamArgL) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_Lam_1 :: T_CExpr_1 sem_CExpr_Lam_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _bindOgUniq -> (case (bind_1 _bindOgUniq) of { ( _bindIgUniq,bind_2) -> (case (_bindIgUniq) of { _bodyOgUniq -> (case (body_1 _bodyOgUniq) of { ( _bodyIgUniq,body_2) -> (case (_bodyIgUniq) of { _lhsOgUniq -> (case ((let sem_CExpr_Lam_2 :: T_CExpr_2 sem_CExpr_Lam_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind -> (case (case _lhsIwhatAbove of ExprIsLam a mbnm -> ExprIsLam (a + 1) mbnm ExprIsBind nm -> ExprIsLam 1 (Just nm) _ -> ExprIsLam 1 Nothing) of { _whatAbove -> (case (_whatAbove) of { _bodyOwhatAbove -> (case (_lhsIopts) of { _bodyOopts -> (case (_lhsImodNm) of { _bodyOmodNm -> (case (_lhsIlev + 1) of { _lev -> (case (_lev) of { _bodyOlev -> (case (True) of { _isTopTup -> (case (_isTopTup) of { _bodyOisTopTup -> (case (True) of { _isTopApp -> (case (_isTopApp) of { _bodyOisTopApp -> (case (_lhsIevalCtx) of { _bodyOevalCtx -> (case (_lhsIdataGam) of { _bodyOdataGam -> (case (Map.delete _argNm _lhsIlamMp) of { _bodyOlamMp -> (case (body_2 _bodyOdataGam _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlamMp _bodyOlev _bodyOmodNm _bodyOopts _bodyOwhatAbove) of { ( _bodyIappFunKind,_bodyIfvS,_bodyImbFFIApp,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) -> (case (_argNm `Set.delete` _bodyIfvS) of { _fvS -> (case (_fvS) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Just $ maybe [_argNm] (_argNm:) _bodyImbLam) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (maybe (ExprIsLam 1 Nothing) (\a -> ExprIsLam (a + 1) Nothing) $ whatExprMbLam _bodyIwhatBelow) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CExpr_Lam_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) }) }) }) })) in sem_CExpr_Lam_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) }) }) }) sem_CExpr_Case :: T_CExpr -> T_CAltL -> T_CExpr -> T_CExpr sem_CExpr_Case expr_ alts_ dflt_ = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_Case_1 :: T_CExpr_1 sem_CExpr_Case_1 = (\ _lhsIgUniq -> (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )) of { __tup7 -> (case (__tup7) of { (_exprOgUniq,_) -> (case (expr_) of { ( _exprIgathLamMp,_exprIgrLamArgL,expr_1) -> (case (expr_1 _exprOgUniq) of { ( _exprIgUniq,expr_2) -> (case (_exprIgUniq) of { _altsOgUniq -> (case (alts_ _altsOgUniq) of { ( _altsIgUniq,alts_1) -> (case (_altsIgUniq) of { _dfltOgUniq -> (case (dflt_) of { ( _dfltIgathLamMp,_dfltIgrLamArgL,dflt_1) -> (case (dflt_1 _dfltOgUniq) of { ( _dfltIgUniq,dflt_2) -> (case (_dfltIgUniq) of { _lhsOgUniq -> (case ((let sem_CExpr_Case_2 :: T_CExpr_2 sem_CExpr_Case_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind -> (case (ExprIsOther) of { _whatAbove -> (case (_whatAbove) of { _dfltOwhatAbove -> (case (_lhsIopts) of { _dfltOopts -> (case (_lhsImodNm) of { _dfltOmodNm -> (case (_lhsIlev) of { _dfltOlev -> (case (_lhsIlamMp) of { _dfltOlamMp -> (case (True) of { _isTopTup -> (case (_isTopTup) of { _dfltOisTopTup -> (case (True) of { _isTopApp -> (case (_isTopApp) of { _dfltOisTopApp -> (case (_lhsIevalCtx) of { _dfltOevalCtx -> (case (_lhsIdataGam) of { _dfltOdataGam -> (case (dflt_2 _dfltOdataGam _dfltOevalCtx _dfltOisTopApp _dfltOisTopTup _dfltOlamMp _dfltOlev _dfltOmodNm _dfltOopts _dfltOwhatAbove) of { ( _dfltIappFunKind,_dfltIfvS,_dfltImbFFIApp,_dfltImbLam,_dfltImbVar,_dfltIwhatBelow) -> (case (_lhsIopts) of { _altsOopts -> (case (_lhsImodNm) of { _altsOmodNm -> (case (_lhsIlev) of { _altsOlev -> (case (_lhsIlamMp) of { _altsOlamMp -> (case (_lhsIevalCtx) of { _altsOevalCtx -> (case (_lhsIdataGam) of { _altsOdataGam -> (case (alts_1 _altsOdataGam _altsOevalCtx _altsOlamMp _altsOlev _altsOmodNm _altsOopts) of { ( _altsIfvS) -> (case (_whatAbove) of { _exprOwhatAbove -> (case (_lhsIopts) of { _exprOopts -> (case (_lhsImodNm) of { _exprOmodNm -> (case (_lhsIlev) of { _exprOlev -> (case (_lhsIlamMp) of { _exprOlamMp -> (case (_isTopTup) of { _exprOisTopTup -> (case (_isTopApp) of { _exprOisTopApp -> (case (_lhsIevalCtx) of { _exprOevalCtx -> (case (_lhsIdataGam) of { _exprOdataGam -> (case (expr_2 _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmodNm _exprOopts _exprOwhatAbove) of { ( _exprIappFunKind,_exprIfvS,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIwhatBelow) -> (case (_exprIfvS `Set.union` _altsIfvS `Set.union` _dfltIfvS) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CExpr_Case_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) }) }) }) }) }) }) }) }) })) in sem_CExpr_Case_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_CaseAltFail :: CaseAltFailReason -> T_CExpr -> T_CExpr sem_CExpr_CaseAltFail failReason_ errorExpr_ = (case (errorExpr_) of { ( _errorExprIgathLamMp,_errorExprIgrLamArgL,errorExpr_1) -> (case (_errorExprIgathLamMp) of { _lhsOgathLamMp -> (case (_errorExprIgrLamArgL) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_CaseAltFail_1 :: T_CExpr_1 sem_CExpr_CaseAltFail_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _errorExprOgUniq -> (case (errorExpr_1 _errorExprOgUniq) of { ( _errorExprIgUniq,errorExpr_2) -> (case (_errorExprIgUniq) of { _lhsOgUniq -> (case ((let sem_CExpr_CaseAltFail_2 :: T_CExpr_2 sem_CExpr_CaseAltFail_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (ExprIsOther) of { _whatAbove -> (case (_whatAbove) of { _errorExprOwhatAbove -> (case (_lhsIopts) of { _errorExprOopts -> (case (_lhsImodNm) of { _errorExprOmodNm -> (case (_lhsIlev) of { _errorExprOlev -> (case (_lhsIlamMp) of { _errorExprOlamMp -> (case (True) of { _isTopTup -> (case (_isTopTup) of { _errorExprOisTopTup -> (case (True) of { _isTopApp -> (case (_isTopApp) of { _errorExprOisTopApp -> (case (_lhsIevalCtx) of { _errorExprOevalCtx -> (case (_lhsIdataGam) of { _errorExprOdataGam -> (case (errorExpr_2 _errorExprOdataGam _errorExprOevalCtx _errorExprOisTopApp _errorExprOisTopTup _errorExprOlamMp _errorExprOlev _errorExprOmodNm _errorExprOopts _errorExprOwhatAbove) of { ( _errorExprIappFunKind,_errorExprIfvS,_errorExprImbFFIApp,_errorExprImbLam,_errorExprImbVar,_errorExprIwhatBelow) -> (case (_errorExprIappFunKind) of { _lhsOappFunKind -> (case (_errorExprIfvS) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (_errorExprImbLam) of { _lhsOmbLam -> (case (_errorExprImbVar) of { _lhsOmbVar -> (case (_errorExprIwhatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CExpr_CaseAltFail_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) }) })) in sem_CExpr_CaseAltFail_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) }) sem_CExpr_TupDel :: T_CExpr -> CTag -> HsName -> T_CExpr -> T_CExpr sem_CExpr_TupDel expr_ tag_ nm_ offset_ = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_TupDel_1 :: T_CExpr_1 sem_CExpr_TupDel_1 = (\ _lhsIgUniq -> (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )) of { __tup8 -> (case (__tup8) of { (_exprOgUniq,_) -> (case (expr_) of { ( _exprIgathLamMp,_exprIgrLamArgL,expr_1) -> (case (expr_1 _exprOgUniq) of { ( _exprIgUniq,expr_2) -> (case (_exprIgUniq) of { _offsetOgUniq -> (case (offset_) of { ( _offsetIgathLamMp,_offsetIgrLamArgL,offset_1) -> (case (offset_1 _offsetOgUniq) of { ( _offsetIgUniq,offset_2) -> (case (_offsetIgUniq) of { _lhsOgUniq -> (case ((let sem_CExpr_TupDel_2 :: T_CExpr_2 sem_CExpr_TupDel_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind -> (case (ExprIsOther) of { _whatAbove -> (case (_whatAbove) of { _offsetOwhatAbove -> (case (_lhsIopts) of { _offsetOopts -> (case (_lhsImodNm) of { _offsetOmodNm -> (case (_lhsIlev) of { _offsetOlev -> (case (_lhsIlamMp) of { _offsetOlamMp -> (case (True) of { _isTopTup -> (case (_isTopTup) of { _offsetOisTopTup -> (case (True) of { _isTopApp -> (case (_isTopApp) of { _offsetOisTopApp -> (case (_lhsIevalCtx) of { _offsetOevalCtx -> (case (_lhsIdataGam) of { _offsetOdataGam -> (case (offset_2 _offsetOdataGam _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlamMp _offsetOlev _offsetOmodNm _offsetOopts _offsetOwhatAbove) of { ( _offsetIappFunKind,_offsetIfvS,_offsetImbFFIApp,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) -> (case (_whatAbove) of { _exprOwhatAbove -> (case (_lhsIopts) of { _exprOopts -> (case (_lhsImodNm) of { _exprOmodNm -> (case (_lhsIlev) of { _exprOlev -> (case (_lhsIlamMp) of { _exprOlamMp -> (case (_isTopApp) of { _exprOisTopApp -> (case (_lhsIevalCtx) of { _exprOevalCtx -> (case (_lhsIdataGam) of { _exprOdataGam -> (case (False) of { _exprOisTopTup -> (case (expr_2 _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmodNm _exprOopts _exprOwhatAbove) of { ( _exprIappFunKind,_exprIfvS,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIwhatBelow) -> (case (_exprIfvS `Set.union` _offsetIfvS) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CExpr_TupDel_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) }) }) }) }) }) }) })) in sem_CExpr_TupDel_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_TupIns :: T_CExpr -> CTag -> HsName -> T_CExpr -> T_CExpr -> T_CExpr sem_CExpr_TupIns expr_ tag_ nm_ offset_ fldExpr_ = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_TupIns_1 :: T_CExpr_1 sem_CExpr_TupIns_1 = (\ _lhsIgUniq -> (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )) of { __tup9 -> (case (__tup9) of { (_exprOgUniq,_) -> (case (expr_) of { ( _exprIgathLamMp,_exprIgrLamArgL,expr_1) -> (case (expr_1 _exprOgUniq) of { ( _exprIgUniq,expr_2) -> (case (_exprIgUniq) of { _offsetOgUniq -> (case (offset_) of { ( _offsetIgathLamMp,_offsetIgrLamArgL,offset_1) -> (case (offset_1 _offsetOgUniq) of { ( _offsetIgUniq,offset_2) -> (case (_offsetIgUniq) of { _fldExprOgUniq -> (case (fldExpr_) of { ( _fldExprIgathLamMp,_fldExprIgrLamArgL,fldExpr_1) -> (case (fldExpr_1 _fldExprOgUniq) of { ( _fldExprIgUniq,fldExpr_2) -> (case (_fldExprIgUniq) of { _lhsOgUniq -> (case ((let sem_CExpr_TupIns_2 :: T_CExpr_2 sem_CExpr_TupIns_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind -> (case (ExprIsOther) of { _whatAbove -> (case (_whatAbove) of { _fldExprOwhatAbove -> (case (_lhsIopts) of { _fldExprOopts -> (case (_lhsImodNm) of { _fldExprOmodNm -> (case (_lhsIlev) of { _fldExprOlev -> (case (_lhsIlamMp) of { _fldExprOlamMp -> (case (True) of { _isTopTup -> (case (_isTopTup) of { _fldExprOisTopTup -> (case (True) of { _isTopApp -> (case (_isTopApp) of { _fldExprOisTopApp -> (case (_lhsIevalCtx) of { _fldExprOevalCtx -> (case (_lhsIdataGam) of { _fldExprOdataGam -> (case (fldExpr_2 _fldExprOdataGam _fldExprOevalCtx _fldExprOisTopApp _fldExprOisTopTup _fldExprOlamMp _fldExprOlev _fldExprOmodNm _fldExprOopts _fldExprOwhatAbove) of { ( _fldExprIappFunKind,_fldExprIfvS,_fldExprImbFFIApp,_fldExprImbLam,_fldExprImbVar,_fldExprIwhatBelow) -> (case (_whatAbove) of { _offsetOwhatAbove -> (case (_lhsIopts) of { _offsetOopts -> (case (_lhsImodNm) of { _offsetOmodNm -> (case (_lhsIlev) of { _offsetOlev -> (case (_lhsIlamMp) of { _offsetOlamMp -> (case (_isTopTup) of { _offsetOisTopTup -> (case (_isTopApp) of { _offsetOisTopApp -> (case (_lhsIevalCtx) of { _offsetOevalCtx -> (case (_lhsIdataGam) of { _offsetOdataGam -> (case (offset_2 _offsetOdataGam _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlamMp _offsetOlev _offsetOmodNm _offsetOopts _offsetOwhatAbove) of { ( _offsetIappFunKind,_offsetIfvS,_offsetImbFFIApp,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) -> (case (_whatAbove) of { _exprOwhatAbove -> (case (_lhsIopts) of { _exprOopts -> (case (_lhsImodNm) of { _exprOmodNm -> (case (_lhsIlev) of { _exprOlev -> (case (_lhsIlamMp) of { _exprOlamMp -> (case (_isTopApp) of { _exprOisTopApp -> (case (_lhsIevalCtx) of { _exprOevalCtx -> (case (_lhsIdataGam) of { _exprOdataGam -> (case (False) of { _exprOisTopTup -> (case (expr_2 _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmodNm _exprOopts _exprOwhatAbove) of { ( _exprIappFunKind,_exprIfvS,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIwhatBelow) -> (case (_exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CExpr_TupIns_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CExpr_TupIns_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_TupUpd :: T_CExpr -> CTag -> HsName -> T_CExpr -> T_CExpr -> T_CExpr sem_CExpr_TupUpd expr_ tag_ nm_ offset_ fldExpr_ = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_TupUpd_1 :: T_CExpr_1 sem_CExpr_TupUpd_1 = (\ _lhsIgUniq -> (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )) of { __tup10 -> (case (__tup10) of { (_exprOgUniq,_) -> (case (expr_) of { ( _exprIgathLamMp,_exprIgrLamArgL,expr_1) -> (case (expr_1 _exprOgUniq) of { ( _exprIgUniq,expr_2) -> (case (_exprIgUniq) of { _offsetOgUniq -> (case (offset_) of { ( _offsetIgathLamMp,_offsetIgrLamArgL,offset_1) -> (case (offset_1 _offsetOgUniq) of { ( _offsetIgUniq,offset_2) -> (case (_offsetIgUniq) of { _fldExprOgUniq -> (case (fldExpr_) of { ( _fldExprIgathLamMp,_fldExprIgrLamArgL,fldExpr_1) -> (case (fldExpr_1 _fldExprOgUniq) of { ( _fldExprIgUniq,fldExpr_2) -> (case (_fldExprIgUniq) of { _lhsOgUniq -> (case ((let sem_CExpr_TupUpd_2 :: T_CExpr_2 sem_CExpr_TupUpd_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind -> (case (ExprIsOther) of { _whatAbove -> (case (_whatAbove) of { _fldExprOwhatAbove -> (case (_lhsIopts) of { _fldExprOopts -> (case (_lhsImodNm) of { _fldExprOmodNm -> (case (_lhsIlev) of { _fldExprOlev -> (case (_lhsIlamMp) of { _fldExprOlamMp -> (case (True) of { _isTopTup -> (case (_isTopTup) of { _fldExprOisTopTup -> (case (True) of { _isTopApp -> (case (_isTopApp) of { _fldExprOisTopApp -> (case (_lhsIevalCtx) of { _fldExprOevalCtx -> (case (_lhsIdataGam) of { _fldExprOdataGam -> (case (fldExpr_2 _fldExprOdataGam _fldExprOevalCtx _fldExprOisTopApp _fldExprOisTopTup _fldExprOlamMp _fldExprOlev _fldExprOmodNm _fldExprOopts _fldExprOwhatAbove) of { ( _fldExprIappFunKind,_fldExprIfvS,_fldExprImbFFIApp,_fldExprImbLam,_fldExprImbVar,_fldExprIwhatBelow) -> (case (_whatAbove) of { _offsetOwhatAbove -> (case (_lhsIopts) of { _offsetOopts -> (case (_lhsImodNm) of { _offsetOmodNm -> (case (_lhsIlev) of { _offsetOlev -> (case (_lhsIlamMp) of { _offsetOlamMp -> (case (_isTopTup) of { _offsetOisTopTup -> (case (_isTopApp) of { _offsetOisTopApp -> (case (_lhsIevalCtx) of { _offsetOevalCtx -> (case (_lhsIdataGam) of { _offsetOdataGam -> (case (offset_2 _offsetOdataGam _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlamMp _offsetOlev _offsetOmodNm _offsetOopts _offsetOwhatAbove) of { ( _offsetIappFunKind,_offsetIfvS,_offsetImbFFIApp,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) -> (case (_whatAbove) of { _exprOwhatAbove -> (case (_lhsIopts) of { _exprOopts -> (case (_lhsImodNm) of { _exprOmodNm -> (case (_lhsIlev) of { _exprOlev -> (case (_lhsIlamMp) of { _exprOlamMp -> (case (_isTopApp) of { _exprOisTopApp -> (case (_lhsIevalCtx) of { _exprOevalCtx -> (case (_lhsIdataGam) of { _exprOdataGam -> (case (False) of { _exprOisTopTup -> (case (expr_2 _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmodNm _exprOopts _exprOwhatAbove) of { ( _exprIappFunKind,_exprIfvS,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIwhatBelow) -> (case (_exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CExpr_TupUpd_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CExpr_TupUpd_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_FFI :: FFIWay -> String -> ForeignEnt -> Ty -> T_CExpr sem_CExpr_FFI callconv_ safety_ impEnt_ ty_ = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_FFI_1 :: T_CExpr_1 sem_CExpr_FFI_1 = (\ _lhsIgUniq -> (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )) of { __tup11 -> (case (__tup11) of { (_lhsOgUniq,_) -> (case ((let sem_CExpr_FFI_2 :: T_CExpr_2 sem_CExpr_FFI_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_FFI) of { _lhsOappFunKind -> (case (Set.empty) of { _lhsOfvS -> (case (foreignEntExtract impEnt_) of { _foreignEntInfo -> (case (maybe Nothing lookupPrimNeedsEval $ forextractMbEnt _foreignEntInfo) of { _mbPrimNeedEval -> (case (maybe False primResNeedEval _mbPrimNeedEval) of { _primResNeedsEval -> (case (appUnArr ty_) of { _argTyLresTy -> (case (snd _argTyLresTy) of { _resTy -> (case (fst _argTyLresTy) of { _argTyL -> (case (Just ( _resTy , _primResNeedsEval , callconv_ , impEnt_ , _argTyL )) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (ExprIsFFI) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CExpr_FFI_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) })) in sem_CExpr_FFI_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_Dbg :: String -> T_CExpr sem_CExpr_Dbg info_ = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_Dbg_1 :: T_CExpr_1 sem_CExpr_Dbg_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _lhsOgUniq -> (case ((let sem_CExpr_Dbg_2 :: T_CExpr_2 sem_CExpr_Dbg_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind -> (case (Set.empty) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) })) in sem_CExpr_Dbg_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) })) in sem_CExpr_Dbg_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_Hole :: UID -> T_CExpr sem_CExpr_Hole uid_ = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_Hole_1 :: T_CExpr_1 sem_CExpr_Hole_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _lhsOgUniq -> (case ((let sem_CExpr_Hole_2 :: T_CExpr_2 sem_CExpr_Hole_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind -> (case (Set.empty) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) })) in sem_CExpr_Hole_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) })) in sem_CExpr_Hole_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_HoleLet :: UID -> T_CExpr -> T_CExpr sem_CExpr_HoleLet bindsUid_ body_ = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_HoleLet_1 :: T_CExpr_1 sem_CExpr_HoleLet_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _bodyOgUniq -> (case (body_) of { ( _bodyIgathLamMp,_bodyIgrLamArgL,body_1) -> (case (body_1 _bodyOgUniq) of { ( _bodyIgUniq,body_2) -> (case (_bodyIgUniq) of { _lhsOgUniq -> (case ((let sem_CExpr_HoleLet_2 :: T_CExpr_2 sem_CExpr_HoleLet_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind -> (case (ExprIsOther) of { _whatAbove -> (case (_whatAbove) of { _bodyOwhatAbove -> (case (_lhsIopts) of { _bodyOopts -> (case (_lhsImodNm) of { _bodyOmodNm -> (case (_lhsIlev) of { _bodyOlev -> (case (_lhsIlamMp) of { _bodyOlamMp -> (case (True) of { _isTopTup -> (case (_isTopTup) of { _bodyOisTopTup -> (case (True) of { _isTopApp -> (case (_isTopApp) of { _bodyOisTopApp -> (case (_lhsIevalCtx) of { _bodyOevalCtx -> (case (_lhsIdataGam) of { _bodyOdataGam -> (case (body_2 _bodyOdataGam _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlamMp _bodyOlev _bodyOmodNm _bodyOopts _bodyOwhatAbove) of { ( _bodyIappFunKind,_bodyIfvS,_bodyImbFFIApp,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) -> (case (_bodyIfvS) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CExpr_HoleLet_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) }) }) })) in sem_CExpr_HoleLet_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_CoeArg :: T_CExpr sem_CExpr_CoeArg = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_CoeArg_1 :: T_CExpr_1 sem_CExpr_CoeArg_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _lhsOgUniq -> (case ((let sem_CExpr_CoeArg_2 :: T_CExpr_2 sem_CExpr_CoeArg_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind -> (case (Set.empty) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) })) in sem_CExpr_CoeArg_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) })) in sem_CExpr_CoeArg_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_ImplsApp :: T_CExpr -> ImplsVarId -> T_CExpr sem_CExpr_ImplsApp func_ uid_ = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_ImplsApp_1 :: T_CExpr_1 sem_CExpr_ImplsApp_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _funcOgUniq -> (case (func_) of { ( _funcIgathLamMp,_funcIgrLamArgL,func_1) -> (case (func_1 _funcOgUniq) of { ( _funcIgUniq,func_2) -> (case (_funcIgUniq) of { _lhsOgUniq -> (case ((let sem_CExpr_ImplsApp_2 :: T_CExpr_2 sem_CExpr_ImplsApp_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind -> (case (ExprIsOther) of { _whatAbove -> (case (_whatAbove) of { _funcOwhatAbove -> (case (_lhsIopts) of { _funcOopts -> (case (_lhsImodNm) of { _funcOmodNm -> (case (_lhsIlev) of { _funcOlev -> (case (_lhsIlamMp) of { _funcOlamMp -> (case (True) of { _isTopTup -> (case (_isTopTup) of { _funcOisTopTup -> (case (True) of { _isTopApp -> (case (_isTopApp) of { _funcOisTopApp -> (case (_lhsIevalCtx) of { _funcOevalCtx -> (case (_lhsIdataGam) of { _funcOdataGam -> (case (func_2 _funcOdataGam _funcOevalCtx _funcOisTopApp _funcOisTopTup _funcOlamMp _funcOlev _funcOmodNm _funcOopts _funcOwhatAbove) of { ( _funcIappFunKind,_funcIfvS,_funcImbFFIApp,_funcImbLam,_funcImbVar,_funcIwhatBelow) -> (case (_funcIfvS) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CExpr_ImplsApp_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) }) }) })) in sem_CExpr_ImplsApp_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_ImplsLam :: ImplsVarId -> T_CExpr -> T_CExpr sem_CExpr_ImplsLam uid_ body_ = (case (Map.empty) of { _lhsOgathLamMp -> (case ([]) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_ImplsLam_1 :: T_CExpr_1 sem_CExpr_ImplsLam_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _bodyOgUniq -> (case (body_) of { ( _bodyIgathLamMp,_bodyIgrLamArgL,body_1) -> (case (body_1 _bodyOgUniq) of { ( _bodyIgUniq,body_2) -> (case (_bodyIgUniq) of { _lhsOgUniq -> (case ((let sem_CExpr_ImplsLam_2 :: T_CExpr_2 sem_CExpr_ImplsLam_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind -> (case (ExprIsOther) of { _whatAbove -> (case (_whatAbove) of { _bodyOwhatAbove -> (case (_lhsIopts) of { _bodyOopts -> (case (_lhsImodNm) of { _bodyOmodNm -> (case (_lhsIlev) of { _bodyOlev -> (case (_lhsIlamMp) of { _bodyOlamMp -> (case (True) of { _isTopTup -> (case (_isTopTup) of { _bodyOisTopTup -> (case (True) of { _isTopApp -> (case (_isTopApp) of { _bodyOisTopApp -> (case (_lhsIevalCtx) of { _bodyOevalCtx -> (case (_lhsIdataGam) of { _bodyOdataGam -> (case (body_2 _bodyOdataGam _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlamMp _bodyOlev _bodyOmodNm _bodyOopts _bodyOwhatAbove) of { ( _bodyIappFunKind,_bodyIfvS,_bodyImbFFIApp,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) -> (case (_bodyIfvS) of { _lhsOfvS -> (case (Nothing) of { _lhsOmbFFIApp -> (case (Nothing) of { _lhsOmbLam -> (case (Nothing) of { _lhsOmbVar -> (case (ExprIsOther) of { _whatBelow -> (case (_whatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CExpr_ImplsLam_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) }) }) })) in sem_CExpr_ImplsLam_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) sem_CExpr_Ann :: T_CExprAnn -> T_CExpr -> T_CExpr sem_CExpr_Ann ann_ expr_ = (case (expr_) of { ( _exprIgathLamMp,_exprIgrLamArgL,expr_1) -> (case (_exprIgathLamMp) of { _lhsOgathLamMp -> (case (_exprIgrLamArgL) of { _lhsOgrLamArgL -> (case ((let sem_CExpr_Ann_1 :: T_CExpr_1 sem_CExpr_Ann_1 = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _annOgUniq -> (case (ann_ _annOgUniq) of { ( _annIgUniq,ann_1) -> (case (_annIgUniq) of { _exprOgUniq -> (case (expr_1 _exprOgUniq) of { ( _exprIgUniq,expr_2) -> (case (_exprIgUniq) of { _lhsOgUniq -> (case ((let sem_CExpr_Ann_2 :: T_CExpr_2 sem_CExpr_Ann_2 = (\ _lhsIdataGam _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts _lhsIwhatAbove -> (case (_lhsIwhatAbove) of { _exprOwhatAbove -> (case (_lhsIopts) of { _exprOopts -> (case (_lhsImodNm) of { _exprOmodNm -> (case (_lhsIlev) of { _exprOlev -> (case (_lhsIlamMp) of { _exprOlamMp -> (case (_lhsIisTopTup) of { _exprOisTopTup -> (case (_lhsIisTopApp) of { _exprOisTopApp -> (case (_lhsIevalCtx) of { _exprOevalCtx -> (case (_lhsIdataGam) of { _exprOdataGam -> (case (expr_2 _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmodNm _exprOopts _exprOwhatAbove) of { ( _exprIappFunKind,_exprIfvS,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIwhatBelow) -> (case (_exprIappFunKind) of { _lhsOappFunKind -> (case (_lhsIopts) of { _annOopts -> (case (_lhsImodNm) of { _annOmodNm -> (case (_lhsIlev) of { _annOlev -> (case (_lhsIlamMp) of { _annOlamMp -> (case (_lhsIdataGam) of { _annOdataGam -> (case (ann_1 _annOdataGam _annOlamMp _annOlev _annOmodNm _annOopts) of { ( _annIfvS) -> (case (_annIfvS `Set.union` _exprIfvS) of { _lhsOfvS -> (case (_exprImbFFIApp) of { _lhsOmbFFIApp -> (case (_exprImbLam) of { _lhsOmbLam -> (case (_exprImbVar) of { _lhsOmbVar -> (case (_exprIwhatBelow) of { _lhsOwhatBelow -> ( _lhsOappFunKind,_lhsOfvS,_lhsOmbFFIApp,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CExpr_Ann_2)) of { ( sem_CExpr_2) -> ( _lhsOgUniq,sem_CExpr_2) }) }) }) }) }) })) in sem_CExpr_Ann_1)) of { ( sem_CExpr_1) -> ( _lhsOgathLamMp,_lhsOgrLamArgL,sem_CExpr_1) }) }) }) }) -- CExprAnn ---------------------------------------------------- {- visit 0: chained attribute: gUniq : UID visit 1: inherited attributes: dataGam : DataGam lamMp : LamMp lev : Int modNm : HsName opts : EHCOpts synthesized attribute: fvS : FvS alternatives: alternative Ty: child ty : {Ty} alternative Debug: child info : {String} -} -- cata sem_CExprAnn :: CExprAnn -> T_CExprAnn sem_CExprAnn (CExprAnn_Ty _ty) = (sem_CExprAnn_Ty _ty) sem_CExprAnn (CExprAnn_Debug _info) = (sem_CExprAnn_Debug _info) -- semantic domain type T_CExprAnn = UID -> ( UID,T_CExprAnn_1) type T_CExprAnn_1 = DataGam -> LamMp -> Int -> HsName -> EHCOpts -> ( FvS) sem_CExprAnn_Ty :: Ty -> T_CExprAnn sem_CExprAnn_Ty ty_ = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _lhsOgUniq -> (case ((let sem_CExprAnn_Ty_1 :: T_CExprAnn_1 sem_CExprAnn_Ty_1 = (\ _lhsIdataGam _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case (Set.empty) of { _lhsOfvS -> ( _lhsOfvS) })) in sem_CExprAnn_Ty_1)) of { ( sem_CExprAnn_1) -> ( _lhsOgUniq,sem_CExprAnn_1) }) })) sem_CExprAnn_Debug :: String -> T_CExprAnn sem_CExprAnn_Debug info_ = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _lhsOgUniq -> (case ((let sem_CExprAnn_Debug_1 :: T_CExprAnn_1 sem_CExprAnn_Debug_1 = (\ _lhsIdataGam _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case (Set.empty) of { _lhsOfvS -> ( _lhsOfvS) })) in sem_CExprAnn_Debug_1)) of { ( sem_CExprAnn_1) -> ( _lhsOgUniq,sem_CExprAnn_1) }) })) -- CImport ----------------------------------------------------- {- alternatives: alternative Import: child nm : {HsName} -} -- cata sem_CImport :: CImport -> T_CImport sem_CImport (CImport_Import _nm) = (sem_CImport_Import _nm) -- semantic domain type T_CImport = ( ) sem_CImport_Import :: HsName -> T_CImport sem_CImport_Import nm_ = ( ) -- CImportL ---------------------------------------------------- {- alternatives: alternative Cons: child hd : CImport child tl : CImportL alternative Nil: -} -- cata sem_CImportL :: CImportL -> T_CImportL sem_CImportL list = (Prelude.foldr sem_CImportL_Cons sem_CImportL_Nil (Prelude.map sem_CImport list)) -- semantic domain type T_CImportL = ( ) sem_CImportL_Cons :: T_CImport -> T_CImportL -> T_CImportL sem_CImportL_Cons hd_ tl_ = ( ) sem_CImportL_Nil :: T_CImportL sem_CImportL_Nil = ( ) -- CModule ----------------------------------------------------- {- visit 0: synthesized attribute: gathLamMp : LamMp visit 1: inherited attributes: dataGam : DataGam importUsedModules : ImportUsedModules lamMp : LamMp lev : Int opts : EHCOpts chained attribute: gUniq : UID synthesized attributes: fvS : FvS gathDataGam : DataGam alternatives: alternative Mod: child moduleNm : {HsName} child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr visit 1: local whatAbove : {WhatExpr} local dataGam : _ -} -- cata sem_CModule :: CModule -> T_CModule sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) = (sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr)) -- semantic domain type T_CModule = ( LamMp,T_CModule_1) type T_CModule_1 = DataGam -> UID -> ImportUsedModules -> LamMp -> Int -> EHCOpts -> ( FvS,UID,DataGam) sem_CModule_Mod :: HsName -> T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (case (expr_) of { ( _exprIgathLamMp,_exprIgrLamArgL,expr_1) -> (case (_exprIgathLamMp) of { _lhsOgathLamMp -> (case ((let sem_CModule_Mod_1 :: T_CModule_1 sem_CModule_Mod_1 = (\ _lhsIdataGam _lhsIgUniq _lhsIimportUsedModules _lhsIlamMp _lhsIlev _lhsIopts -> (case (_lhsIgUniq) of { _exprOgUniq -> (case (expr_1 _exprOgUniq) of { ( _exprIgUniq,expr_2) -> (case (ExprIsOther) of { _whatAbove -> (case (_whatAbove) of { _exprOwhatAbove -> (case (_lhsIopts) of { _exprOopts -> (case (_lhsIlev) of { _exprOlev -> (case (_lhsIlamMp) of { _exprOlamMp -> (case (declMetas_) of { ( _declMetasIgathDataGam) -> (case (_lhsIdataGam `gamUnion` _declMetasIgathDataGam) of { _dataGam -> (case (_dataGam) of { _exprOdataGam -> (case (moduleNm_) of { _exprOmodNm -> (case (EvalCtx_Eval) of { _exprOevalCtx -> (case (True) of { _exprOisTopTup -> (case (True) of { _exprOisTopApp -> (case (expr_2 _exprOdataGam _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmodNm _exprOopts _exprOwhatAbove) of { ( _exprIappFunKind,_exprIfvS,_exprImbFFIApp,_exprImbLam,_exprImbVar,_exprIwhatBelow) -> (case (_exprIfvS) of { _lhsOfvS -> (case (_exprIgUniq) of { _lhsOgUniq -> (case (_declMetasIgathDataGam) of { _lhsOgathDataGam -> ( _lhsOfvS,_lhsOgUniq,_lhsOgathDataGam) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CModule_Mod_1)) of { ( sem_CModule_1) -> ( _lhsOgathLamMp,sem_CModule_1) }) }) }) -- CPat -------------------------------------------------------- {- visit 0: chained attribute: gUniq : UID visit 1: inherited attributes: dataGam : DataGam lamMp : LamMp lev : Int modNm : HsName opts : EHCOpts synthesized attributes: fldNmL : [HsName] fvS : FvS nmL : [HsName] alternatives: alternative Var: child pnm : {HsName} alternative Con: child tag : {CTag} child rest : CPatRest child binds : CPatFldL visit 0: local _tup12 : _ alternative Int: child int : {Int} visit 0: local _tup13 : _ alternative Char: child char : {Char} visit 0: local _tup14 : _ alternative BoolExpr: child cexpr : {CExpr} -} -- cata sem_CPat :: CPat -> T_CPat sem_CPat (CPat_Var _pnm) = (sem_CPat_Var _pnm) sem_CPat (CPat_Con _tag _rest _binds) = (sem_CPat_Con _tag (sem_CPatRest _rest) (sem_CPatFldL _binds)) sem_CPat (CPat_Int _int) = (sem_CPat_Int _int) sem_CPat (CPat_Char _char) = (sem_CPat_Char _char) sem_CPat (CPat_BoolExpr _cexpr) = (sem_CPat_BoolExpr _cexpr) -- semantic domain type T_CPat = UID -> ( UID,T_CPat_1) type T_CPat_1 = DataGam -> LamMp -> Int -> HsName -> EHCOpts -> ( ([HsName]),FvS,([HsName])) sem_CPat_Var :: HsName -> T_CPat sem_CPat_Var pnm_ = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _lhsOgUniq -> (case ((let sem_CPat_Var_1 :: T_CPat_1 sem_CPat_Var_1 = (\ _lhsIdataGam _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case ([]) of { _lhsOfldNmL -> (case (Set.empty) of { _lhsOfvS -> (case ([pnm_]) of { _lhsOnmL -> ( _lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) })) in sem_CPat_Var_1)) of { ( sem_CPat_1) -> ( _lhsOgUniq,sem_CPat_1) }) })) sem_CPat_Con :: CTag -> T_CPatRest -> T_CPatFldL -> T_CPat sem_CPat_Con tag_ rest_ binds_ = (\ _lhsIgUniq -> (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )) of { __tup12 -> (case (__tup12) of { (_restOgUniq,_) -> (case (rest_ _restOgUniq) of { ( _restIgUniq,rest_1) -> (case (_restIgUniq) of { _bindsOgUniq -> (case (binds_ _bindsOgUniq) of { ( _bindsIgUniq,binds_1) -> (case (_bindsIgUniq) of { _lhsOgUniq -> (case ((let sem_CPat_Con_1 :: T_CPat_1 sem_CPat_Con_1 = (\ _lhsIdataGam _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case (_lhsIopts) of { _bindsOopts -> (case (_lhsImodNm) of { _bindsOmodNm -> (case (_lhsIlev) of { _bindsOlev -> (case (_lhsIlamMp) of { _bindsOlamMp -> (case (_lhsIdataGam) of { _bindsOdataGam -> (case (binds_1 _bindsOdataGam _bindsOlamMp _bindsOlev _bindsOmodNm _bindsOopts) of { ( _bindsIfldNmL,_bindsIfvS,_bindsInmL) -> (case (_bindsIfldNmL) of { _lhsOfldNmL -> (case (_lhsIopts) of { _restOopts -> (case (_lhsImodNm) of { _restOmodNm -> (case (_lhsIlev) of { _restOlev -> (case (_lhsIlamMp) of { _restOlamMp -> (case (_lhsIdataGam) of { _restOdataGam -> (case (rest_1 _restOdataGam _restOlamMp _restOlev _restOmodNm _restOopts) of { ( _restIfvS,_restInmL) -> (case (_restIfvS `Set.union` _bindsIfvS) of { _lhsOfvS -> (case (_restInmL ++ _bindsInmL) of { _lhsOnmL -> ( _lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CPat_Con_1)) of { ( sem_CPat_1) -> ( _lhsOgUniq,sem_CPat_1) }) }) }) }) }) }) })) sem_CPat_Int :: Int -> T_CPat sem_CPat_Int int_ = (\ _lhsIgUniq -> (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )) of { __tup13 -> (case (__tup13) of { (_lhsOgUniq,_) -> (case ((let sem_CPat_Int_1 :: T_CPat_1 sem_CPat_Int_1 = (\ _lhsIdataGam _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case ([]) of { _lhsOfldNmL -> (case (Set.empty) of { _lhsOfvS -> (case ([]) of { _lhsOnmL -> ( _lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) })) in sem_CPat_Int_1)) of { ( sem_CPat_1) -> ( _lhsOgUniq,sem_CPat_1) }) }) })) sem_CPat_Char :: Char -> T_CPat sem_CPat_Char char_ = (\ _lhsIgUniq -> (case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )) of { __tup14 -> (case (__tup14) of { (_lhsOgUniq,_) -> (case ((let sem_CPat_Char_1 :: T_CPat_1 sem_CPat_Char_1 = (\ _lhsIdataGam _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case ([]) of { _lhsOfldNmL -> (case (Set.empty) of { _lhsOfvS -> (case ([]) of { _lhsOnmL -> ( _lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) })) in sem_CPat_Char_1)) of { ( sem_CPat_1) -> ( _lhsOgUniq,sem_CPat_1) }) }) })) sem_CPat_BoolExpr :: CExpr -> T_CPat sem_CPat_BoolExpr cexpr_ = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _lhsOgUniq -> (case ((let sem_CPat_BoolExpr_1 :: T_CPat_1 sem_CPat_BoolExpr_1 = (\ _lhsIdataGam _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case ([]) of { _lhsOfldNmL -> (case (Set.empty) of { _lhsOfvS -> (case ([]) of { _lhsOnmL -> ( _lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) })) in sem_CPat_BoolExpr_1)) of { ( sem_CPat_1) -> ( _lhsOgUniq,sem_CPat_1) }) })) -- CPatFld ----------------------------------------------------- {- visit 0: chained attribute: gUniq : UID visit 1: inherited attributes: dataGam : DataGam lamMp : LamMp lev : Int modNm : HsName opts : EHCOpts synthesized attributes: fldNmL : [HsName] fvS : FvS nmL : [HsName] alternatives: alternative Fld: child lbl : {HsName} child offset : CExpr child bind : CBind child fldAnns : CBindAnnL visit 1: local fldNm : _ local whatAbove : {WhatExpr} -} -- cata sem_CPatFld :: CPatFld -> T_CPatFld sem_CPatFld (CPatFld_Fld _lbl _offset _bind _fldAnns) = (sem_CPatFld_Fld _lbl (sem_CExpr _offset) (sem_CBind _bind) (sem_CBindAnnL _fldAnns)) -- semantic domain type T_CPatFld = UID -> ( UID,T_CPatFld_1) type T_CPatFld_1 = DataGam -> LamMp -> Int -> HsName -> EHCOpts -> ( ([HsName]),FvS,([HsName])) sem_CPatFld_Fld :: HsName -> T_CExpr -> T_CBind -> T_CBindAnnL -> T_CPatFld sem_CPatFld_Fld lbl_ offset_ bind_ fldAnns_ = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _offsetOgUniq -> (case (offset_) of { ( _offsetIgathLamMp,_offsetIgrLamArgL,offset_1) -> (case (offset_1 _offsetOgUniq) of { ( _offsetIgUniq,offset_2) -> (case (_offsetIgUniq) of { _bindOgUniq -> (case (bind_) of { ( _bindIbindLamMp,_bindInm,bind_1) -> (case (bind_1 _bindOgUniq) of { ( _bindIgUniq,bind_2) -> (case (_bindIgUniq) of { _fldAnnsOgUniq -> (case (fldAnns_ _fldAnnsOgUniq) of { ( _fldAnnsIgUniq,fldAnns_1) -> (case (_fldAnnsIgUniq) of { _lhsOgUniq -> (case ((let sem_CPatFld_Fld_1 :: T_CPatFld_1 sem_CPatFld_Fld_1 = (\ _lhsIdataGam _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case (_bindInm) of { _fldNm -> (case ([_fldNm]) of { _lhsOfldNmL -> (case (_lhsIopts) of { _fldAnnsOopts -> (case (_lhsImodNm) of { _fldAnnsOmodNm -> (case (_lhsIlev) of { _fldAnnsOlev -> (case (_lhsIlamMp) of { _fldAnnsOlamMp -> (case (_lhsIdataGam) of { _fldAnnsOdataGam -> (case (fldAnns_1 _fldAnnsOdataGam _fldAnnsOlamMp _fldAnnsOlev _fldAnnsOmodNm _fldAnnsOopts) of { ( _fldAnnsIfvS,_fldAnnsInmL) -> (case (_lhsIopts) of { _bindOopts -> (case (_lhsImodNm) of { _bindOmodNm -> (case (_lhsIlev) of { _bindOlev -> (case (_lhsIlamMp) of { _bindOlamMp -> (case (_lhsIdataGam) of { _bindOdataGam -> (case (False) of { _bindOisGlobal -> (case (EvalCtx_None) of { _bindOevalCtx -> (case (acoreBindcategPlain) of { _bindOletBindingsCateg -> (case (bind_2 _bindOdataGam _bindOevalCtx _bindOisGlobal _bindOlamMp _bindOletBindingsCateg _bindOlev _bindOmodNm _bindOopts) of { ( _bindIfvS,_bindIfvSMp,_bindInmL) -> (case (ExprIsOther) of { _whatAbove -> (case (_whatAbove) of { _offsetOwhatAbove -> (case (_lhsIopts) of { _offsetOopts -> (case (_lhsImodNm) of { _offsetOmodNm -> (case (_lhsIlev) of { _offsetOlev -> (case (_lhsIlamMp) of { _offsetOlamMp -> (case (_lhsIdataGam) of { _offsetOdataGam -> (case (EvalCtx_Eval) of { _offsetOevalCtx -> (case (True) of { _offsetOisTopTup -> (case (True) of { _offsetOisTopApp -> (case (offset_2 _offsetOdataGam _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlamMp _offsetOlev _offsetOmodNm _offsetOopts _offsetOwhatAbove) of { ( _offsetIappFunKind,_offsetIfvS,_offsetImbFFIApp,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) -> (case (_offsetIfvS `Set.union` _bindIfvS `Set.union` _fldAnnsIfvS) of { _lhsOfvS -> (case ([_fldNm]) of { _lhsOnmL -> ( _lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CPatFld_Fld_1)) of { ( sem_CPatFld_1) -> ( _lhsOgUniq,sem_CPatFld_1) }) }) }) }) }) }) }) }) }) })) -- CPatFldL ---------------------------------------------------- {- visit 0: chained attribute: gUniq : UID visit 1: inherited attributes: dataGam : DataGam lamMp : LamMp lev : Int modNm : HsName opts : EHCOpts synthesized attributes: fldNmL : [HsName] fvS : FvS nmL : [HsName] alternatives: alternative Cons: child hd : CPatFld child tl : CPatFldL alternative Nil: -} -- cata sem_CPatFldL :: CPatFldL -> T_CPatFldL sem_CPatFldL list = (Prelude.foldr sem_CPatFldL_Cons sem_CPatFldL_Nil (Prelude.map sem_CPatFld list)) -- semantic domain type T_CPatFldL = UID -> ( UID,T_CPatFldL_1) type T_CPatFldL_1 = DataGam -> LamMp -> Int -> HsName -> EHCOpts -> ( ([HsName]),FvS,([HsName])) sem_CPatFldL_Cons :: T_CPatFld -> T_CPatFldL -> T_CPatFldL sem_CPatFldL_Cons hd_ tl_ = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _hdOgUniq -> (case (hd_ _hdOgUniq) of { ( _hdIgUniq,hd_1) -> (case (_hdIgUniq) of { _tlOgUniq -> (case (tl_ _tlOgUniq) of { ( _tlIgUniq,tl_1) -> (case (_tlIgUniq) of { _lhsOgUniq -> (case ((let sem_CPatFldL_Cons_1 :: T_CPatFldL_1 sem_CPatFldL_Cons_1 = (\ _lhsIdataGam _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case (_lhsIopts) of { _tlOopts -> (case (_lhsImodNm) of { _tlOmodNm -> (case (_lhsIlev) of { _tlOlev -> (case (_lhsIlamMp) of { _tlOlamMp -> (case (_lhsIdataGam) of { _tlOdataGam -> (case (tl_1 _tlOdataGam _tlOlamMp _tlOlev _tlOmodNm _tlOopts) of { ( _tlIfldNmL,_tlIfvS,_tlInmL) -> (case (_lhsIopts) of { _hdOopts -> (case (_lhsImodNm) of { _hdOmodNm -> (case (_lhsIlev) of { _hdOlev -> (case (_lhsIlamMp) of { _hdOlamMp -> (case (_lhsIdataGam) of { _hdOdataGam -> (case (hd_1 _hdOdataGam _hdOlamMp _hdOlev _hdOmodNm _hdOopts) of { ( _hdIfldNmL,_hdIfvS,_hdInmL) -> (case (_hdIfldNmL ++ _tlIfldNmL) of { _lhsOfldNmL -> (case (_hdIfvS `Set.union` _tlIfvS) of { _lhsOfvS -> (case (_hdInmL ++ _tlInmL) of { _lhsOnmL -> ( _lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) in sem_CPatFldL_Cons_1)) of { ( sem_CPatFldL_1) -> ( _lhsOgUniq,sem_CPatFldL_1) }) }) }) }) }) })) sem_CPatFldL_Nil :: T_CPatFldL sem_CPatFldL_Nil = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _lhsOgUniq -> (case ((let sem_CPatFldL_Nil_1 :: T_CPatFldL_1 sem_CPatFldL_Nil_1 = (\ _lhsIdataGam _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case ([]) of { _lhsOfldNmL -> (case (Set.empty) of { _lhsOfvS -> (case ([]) of { _lhsOnmL -> ( _lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) })) in sem_CPatFldL_Nil_1)) of { ( sem_CPatFldL_1) -> ( _lhsOgUniq,sem_CPatFldL_1) }) })) -- CPatRest ---------------------------------------------------- {- visit 0: chained attribute: gUniq : UID visit 1: inherited attributes: dataGam : DataGam lamMp : LamMp lev : Int modNm : HsName opts : EHCOpts synthesized attributes: fvS : FvS nmL : [HsName] alternatives: alternative Var: child nm : {HsName} alternative Empty: -} -- cata sem_CPatRest :: CPatRest -> T_CPatRest sem_CPatRest (CPatRest_Var _nm) = (sem_CPatRest_Var _nm) sem_CPatRest (CPatRest_Empty) = (sem_CPatRest_Empty) -- semantic domain type T_CPatRest = UID -> ( UID,T_CPatRest_1) type T_CPatRest_1 = DataGam -> LamMp -> Int -> HsName -> EHCOpts -> ( FvS,([HsName])) sem_CPatRest_Var :: HsName -> T_CPatRest sem_CPatRest_Var nm_ = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _lhsOgUniq -> (case ((let sem_CPatRest_Var_1 :: T_CPatRest_1 sem_CPatRest_Var_1 = (\ _lhsIdataGam _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case (Set.empty) of { _lhsOfvS -> (case ([nm_]) of { _lhsOnmL -> ( _lhsOfvS,_lhsOnmL) }) })) in sem_CPatRest_Var_1)) of { ( sem_CPatRest_1) -> ( _lhsOgUniq,sem_CPatRest_1) }) })) sem_CPatRest_Empty :: T_CPatRest sem_CPatRest_Empty = (\ _lhsIgUniq -> (case (_lhsIgUniq) of { _lhsOgUniq -> (case ((let sem_CPatRest_Empty_1 :: T_CPatRest_1 sem_CPatRest_Empty_1 = (\ _lhsIdataGam _lhsIlamMp _lhsIlev _lhsImodNm _lhsIopts -> (case (Set.empty) of { _lhsOfvS -> (case ([]) of { _lhsOnmL -> ( _lhsOfvS,_lhsOnmL) }) })) in sem_CPatRest_Empty_1)) of { ( sem_CPatRest_1) -> ( _lhsOgUniq,sem_CPatRest_1) }) })) -- CodeAGItf --------------------------------------------------- {- visit 0: inherited attributes: dataGam : DataGam gUniq : UID importUsedModules : ImportUsedModules lamMp : LamMp opts : EHCOpts synthesized attributes: gathDataGam : DataGam gathLamMp : LamMp alternatives: alternative AGItf: child module : CModule visit 0: local howMergeLamInfo : _ local gathLamMp : _ local howUnionGathLamInfo : _ -} -- cata sem_CodeAGItf :: CodeAGItf -> T_CodeAGItf sem_CodeAGItf (CodeAGItf_AGItf _module) = (sem_CodeAGItf_AGItf (sem_CModule _module)) -- semantic domain type T_CodeAGItf = DataGam -> UID -> ImportUsedModules -> LamMp -> EHCOpts -> ( DataGam,LamMp) data Inh_CodeAGItf = Inh_CodeAGItf {dataGam_Inh_CodeAGItf :: !(DataGam),gUniq_Inh_CodeAGItf :: !(UID),importUsedModules_Inh_CodeAGItf :: !(ImportUsedModules),lamMp_Inh_CodeAGItf :: !(LamMp),opts_Inh_CodeAGItf :: !(EHCOpts)} data Syn_CodeAGItf = Syn_CodeAGItf {gathDataGam_Syn_CodeAGItf :: !(DataGam),gathLamMp_Syn_CodeAGItf :: !(LamMp)} wrap_CodeAGItf :: T_CodeAGItf -> Inh_CodeAGItf -> Syn_CodeAGItf wrap_CodeAGItf sem (Inh_CodeAGItf _lhsIdataGam _lhsIgUniq _lhsIimportUsedModules _lhsIlamMp _lhsIopts) = (let ( _lhsOgathDataGam,_lhsOgathLamMp) = sem _lhsIdataGam _lhsIgUniq _lhsIimportUsedModules _lhsIlamMp _lhsIopts in (Syn_CodeAGItf _lhsOgathDataGam _lhsOgathLamMp)) sem_CodeAGItf_AGItf :: T_CModule -> T_CodeAGItf sem_CodeAGItf_AGItf module_ = (\ _lhsIdataGam _lhsIgUniq _lhsIimportUsedModules _lhsIlamMp _lhsIopts -> (case (module_) of { ( _moduleIgathLamMp,module_1) -> (case (_lhsIopts) of { _moduleOopts -> (case (_lhsIimportUsedModules) of { _moduleOimportUsedModules -> (case (_lhsIgUniq) of { _moduleOgUniq -> (case (_lhsIdataGam) of { _moduleOdataGam -> (case (cLevModule) of { _moduleOlev -> (case ((\(LamInfo {laminfoArity=a}) i -> i {laminfoArity=a})) of { _howMergeLamInfo -> (case (lamMpMergeInto _howMergeLamInfo const _moduleIgathLamMp _lhsIlamMp) of { _gathLamMp -> (case (Map.union _gathLamMp) of { _howUnionGathLamInfo -> (case (_howUnionGathLamInfo _lhsIlamMp) of { _moduleOlamMp -> (case (module_1 _moduleOdataGam _moduleOgUniq _moduleOimportUsedModules _moduleOlamMp _moduleOlev _moduleOopts) of { ( _moduleIfvS,_moduleIgUniq,_moduleIgathDataGam) -> (case (_moduleIgathDataGam) of { _lhsOgathDataGam -> (case (_gathLamMp) of { _lhsOgathLamMp -> ( _lhsOgathDataGam,_lhsOgathLamMp) }) }) }) }) }) }) }) }) }) }) }) }) }))