-- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/EtaRe) module UHC.Light.Compiler.Core.Trf.EtaRed(cmodTrfEtaRed) where import Data.Maybe import qualified Data.Set as Set import qualified Data.Map as Map import UHC.Light.Compiler.Base.Common import UHC.Light.Compiler.Base.HsName.Builtin import UHC.Light.Compiler.Core import UHC.Light.Compiler.Ty import UHC.Light.Compiler.AbstractCore cmodTrfEtaRed :: CModule -> CModule cmodTrfEtaRed cmod = let t = wrap_CodeAGItf (sem_CodeAGItf (CodeAGItf_AGItf cmod)) Inh_CodeAGItf in cTrf_Syn_CodeAGItf t type MbApp = Maybe ((CExpr,FvS),CBound) -- CAlt -------------------------------------------------------- {- visit 0: inherited attributes: evalCtx : EvalCtx lev : Int synthesized attributes: cTrf : CAlt fvS : FvS alternatives: alternative Alt: child pat : CPat child expr : CExpr visit 0: local whatAbove : {WhatExpr} local lev : _ local cTrf : _ 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 = EvalCtx -> Int -> ( CAlt,FvS) sem_CAlt_Alt :: T_CPat -> T_CExpr -> T_CAlt sem_CAlt_Alt pat_ expr_ = (\ _lhsIevalCtx _lhsIlev -> (case (ExprIsOther) of { _whatAbove | _whatAbove `seq` (True) -> (case (_whatAbove) of { _exprOwhatAbove | _exprOwhatAbove `seq` (True) -> (case (_lhsIlev + 1) of { _lev | _lev `seq` (True) -> (case (_lev) of { _exprOlev | _exprOlev `seq` (True) -> (case (_lhsIevalCtx) of { _exprOevalCtx | _exprOevalCtx `seq` (True) -> (case (True) of { _exprOisTopTup | _exprOisTopTup `seq` (True) -> (case (True) of { _exprOisTopApp | _exprOisTopApp `seq` (True) -> (case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of { ( _exprIappFunKind,_exprIcTrf,_exprIfvS,_exprImbApp,_exprImbFunAppL,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True -> (case (_lev) of { _patOlev | _patOlev `seq` (True) -> (case (pat_ _patOlev) of { ( _patIcTrf,_patIfldNmL,_patIfvS,_patInmL) | True -> (case (CAlt_Alt _patIcTrf _exprIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_exprIfvS `Set.difference` Set.fromList _patInmL) of { _fvS | _fvS `seq` (True) -> (case (_fvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> ( _lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CAltL ------------------------------------------------------- {- visit 0: inherited attributes: evalCtx : EvalCtx lev : Int synthesized attributes: cTrf : CAltL fvS : FvS alternatives: alternative Cons: child hd : CAlt child tl : CAltL visit 0: local cTrf : _ alternative Nil: visit 0: local cTrf : _ -} -- 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 = EvalCtx -> Int -> ( CAltL,FvS) sem_CAltL_Cons :: T_CAlt -> T_CAltL -> T_CAltL sem_CAltL_Cons hd_ tl_ = (\ _lhsIevalCtx _lhsIlev -> (case (_lhsIlev) of { _tlOlev | _tlOlev `seq` (True) -> (case (_lhsIevalCtx) of { _tlOevalCtx | _tlOevalCtx `seq` (True) -> (case (tl_ _tlOevalCtx _tlOlev) of { ( _tlIcTrf,_tlIfvS) | True -> (case (_lhsIlev) of { _hdOlev | _hdOlev `seq` (True) -> (case (_lhsIevalCtx) of { _hdOevalCtx | _hdOevalCtx `seq` (True) -> (case (hd_ _hdOevalCtx _hdOlev) of { ( _hdIcTrf,_hdIfvS) | True -> (case ((:) _hdIcTrf _tlIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_hdIfvS `Set.union` _tlIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> ( _lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) })) sem_CAltL_Nil :: T_CAltL sem_CAltL_Nil = (\ _lhsIevalCtx _lhsIlev -> (case ([]) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> ( _lhsOcTrf,_lhsOfvS) }) }) })) -- CBind ------------------------------------------------------- {- visit 0: inherited attributes: evalCtx : EvalCtx isGlobal : Bool letBindingsCateg : CBindCateg lev : Int synthesized attributes: cTrf : CBind fvS : FvS fvSMp : FvSMp nm : HsName nmL : [HsName] alternatives: alternative Bind: child nm : {HsName} child bindAspects : CBoundL visit 0: local cTrf : _ -} -- cata sem_CBind :: CBind -> T_CBind sem_CBind (CBind_Bind _nm _bindAspects) = (sem_CBind_Bind _nm (sem_CBoundL _bindAspects)) -- semantic domain type T_CBind = EvalCtx -> Bool -> CBindCateg -> Int -> ( CBind,FvS,FvSMp,HsName,([HsName])) sem_CBind_Bind :: HsName -> T_CBoundL -> T_CBind sem_CBind_Bind nm_ bindAspects_ = (\ _lhsIevalCtx _lhsIisGlobal _lhsIletBindingsCateg _lhsIlev -> (case (_lhsIlev) of { _bindAspectsOlev | _bindAspectsOlev `seq` (True) -> (case (_lhsIletBindingsCateg) of { _bindAspectsOletBindingsCateg | _bindAspectsOletBindingsCateg `seq` (True) -> (case (_lhsIisGlobal) of { _bindAspectsOisGlobal | _bindAspectsOisGlobal `seq` (True) -> (case (_lhsIevalCtx) of { _bindAspectsOevalCtx | _bindAspectsOevalCtx `seq` (True) -> (case (nm_) of { _bindAspectsOnm | _bindAspectsOnm `seq` (True) -> (case (bindAspects_ _bindAspectsOevalCtx _bindAspectsOisGlobal _bindAspectsOletBindingsCateg _bindAspectsOlev _bindAspectsOnm) of { ( _bindAspectsIcTrf,_bindAspectsIfvS,_bindAspectsIfvSMp,_bindAspectsInmL) | True -> (case (CBind_Bind nm_ _bindAspectsIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_bindAspectsIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Map.singleton nm_ _bindAspectsIfvS) of { _lhsOfvSMp | _lhsOfvSMp `seq` (True) -> (case (nm_) of { _lhsOnm | _lhsOnm `seq` (True) -> (case ([nm_]) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnm,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) })) -- CBindAnn ---------------------------------------------------- {- visit 0: inherited attribute: lev : Int synthesized attributes: cTrf : CBindAnn fvS : FvS nmL : [HsName] alternatives: alternative Coe: child coe : {()} visit 0: local cTrf : _ -} -- cata sem_CBindAnn :: CBindAnn -> T_CBindAnn sem_CBindAnn (CBindAnn_Coe _coe) = (sem_CBindAnn_Coe _coe) -- semantic domain type T_CBindAnn = Int -> ( CBindAnn,FvS,([HsName])) sem_CBindAnn_Coe :: (()) -> T_CBindAnn sem_CBindAnn_Coe coe_ = (\ _lhsIlev -> (case (CBindAnn_Coe coe_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case ([]) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfvS,_lhsOnmL) }) }) }) })) -- CBindAnnL --------------------------------------------------- {- visit 0: inherited attribute: lev : Int synthesized attributes: cTrf : CBindAnnL fvS : FvS nmL : [HsName] alternatives: alternative Cons: child hd : CBindAnn child tl : CBindAnnL visit 0: local cTrf : _ alternative Nil: visit 0: local cTrf : _ -} -- 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 = Int -> ( CBindAnnL,FvS,([HsName])) sem_CBindAnnL_Cons :: T_CBindAnn -> T_CBindAnnL -> T_CBindAnnL sem_CBindAnnL_Cons hd_ tl_ = (\ _lhsIlev -> (case (_lhsIlev) of { _tlOlev | _tlOlev `seq` (True) -> (case (tl_ _tlOlev) of { ( _tlIcTrf,_tlIfvS,_tlInmL) | True -> (case (_lhsIlev) of { _hdOlev | _hdOlev `seq` (True) -> (case (hd_ _hdOlev) of { ( _hdIcTrf,_hdIfvS,_hdInmL) | True -> (case ((:) _hdIcTrf _tlIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_hdIfvS `Set.union` _tlIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (_hdInmL ++ _tlInmL) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfvS,_lhsOnmL) }) }) }) }) }) }) }) })) sem_CBindAnnL_Nil :: T_CBindAnnL sem_CBindAnnL_Nil = (\ _lhsIlev -> (case ([]) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case ([]) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfvS,_lhsOnmL) }) }) }) })) -- CBindL ------------------------------------------------------ {- visit 0: inherited attributes: evalCtx : EvalCtx isGlobal : Bool letBindingsCateg : CBindCateg lev : Int synthesized attributes: cTrf : CBindL fvS : FvS fvSMp : FvSMp nmL : [HsName] alternatives: alternative Cons: child hd : CBind child tl : CBindL visit 0: local cTrf : _ alternative Nil: visit 0: local cTrf : _ -} -- 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 = EvalCtx -> Bool -> CBindCateg -> Int -> ( CBindL,FvS,FvSMp,([HsName])) sem_CBindL_Cons :: T_CBind -> T_CBindL -> T_CBindL sem_CBindL_Cons hd_ tl_ = (\ _lhsIevalCtx _lhsIisGlobal _lhsIletBindingsCateg _lhsIlev -> (case (_lhsIlev) of { _tlOlev | _tlOlev `seq` (True) -> (case (_lhsIletBindingsCateg) of { _tlOletBindingsCateg | _tlOletBindingsCateg `seq` (True) -> (case (_lhsIisGlobal) of { _tlOisGlobal | _tlOisGlobal `seq` (True) -> (case (_lhsIevalCtx) of { _tlOevalCtx | _tlOevalCtx `seq` (True) -> (case (tl_ _tlOevalCtx _tlOisGlobal _tlOletBindingsCateg _tlOlev) of { ( _tlIcTrf,_tlIfvS,_tlIfvSMp,_tlInmL) | True -> (case (_lhsIlev) of { _hdOlev | _hdOlev `seq` (True) -> (case (_lhsIletBindingsCateg) of { _hdOletBindingsCateg | _hdOletBindingsCateg `seq` (True) -> (case (_lhsIisGlobal) of { _hdOisGlobal | _hdOisGlobal `seq` (True) -> (case (_lhsIevalCtx) of { _hdOevalCtx | _hdOevalCtx `seq` (True) -> (case (hd_ _hdOevalCtx _hdOisGlobal _hdOletBindingsCateg _hdOlev) of { ( _hdIcTrf,_hdIfvS,_hdIfvSMp,_hdInm,_hdInmL) | True -> (case ((:) _hdIcTrf _tlIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_hdIfvS `Set.union` _tlIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (_hdIfvSMp `Map.union` _tlIfvSMp) of { _lhsOfvSMp | _lhsOfvSMp `seq` (True) -> (case (_hdInmL ++ _tlInmL) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CBindL_Nil :: T_CBindL sem_CBindL_Nil = (\ _lhsIevalCtx _lhsIisGlobal _lhsIletBindingsCateg _lhsIlev -> (case ([]) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Map.empty) of { _lhsOfvSMp | _lhsOfvSMp `seq` (True) -> (case ([]) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) })) -- CBound ------------------------------------------------------ {- visit 0: inherited attributes: evalCtx : EvalCtx isGlobal : Bool isTopApp : Bool isTopTup : Bool letBindingsCateg : CBindCateg lev : Int nm : HsName synthesized attributes: cTrf : CBound fvS : FvS fvSMp : FvSMp nmL : [HsName] alternatives: alternative Bind: child expr : CExpr visit 0: local whatAbove : {WhatExpr} local cTrf : _ alternative Val: child aspectKeyS : {ACoreBindAspectKeyS} child mlev : {MetaLev} child lbl : {CLbl} child expr : CExpr visit 0: local whatAbove : {WhatExpr} local cTrf : _ alternative Ty: child aspectKeyS : {ACoreBindAspectKeyS} child ty : {Ty} visit 0: local cTrf : _ alternative FFE: child callconv : {FFIWay} child expEnt : {ForeignEnt} child expr : CExpr child ty : {Ty} visit 0: local whatAbove : {WhatExpr} local cTrf : _ -} -- 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 = EvalCtx -> Bool -> Bool -> Bool -> CBindCateg -> Int -> HsName -> ( CBound,FvS,FvSMp,([HsName])) sem_CBound_Bind :: T_CExpr -> T_CBound sem_CBound_Bind expr_ = (\ _lhsIevalCtx _lhsIisGlobal _lhsIisTopApp _lhsIisTopTup _lhsIletBindingsCateg _lhsIlev _lhsInm -> (case (ExprIsBind _lhsInm) of { _whatAbove | _whatAbove `seq` (True) -> (case (_whatAbove) of { _exprOwhatAbove | _exprOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _exprOlev | _exprOlev `seq` (True) -> (case (_lhsIevalCtx) of { _exprOevalCtx | _exprOevalCtx `seq` (True) -> (case (True) of { _exprOisTopTup | _exprOisTopTup `seq` (True) -> (case (True) of { _exprOisTopApp | _exprOisTopApp `seq` (True) -> (case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of { ( _exprIappFunKind,_exprIcTrf,_exprIfvS,_exprImbApp,_exprImbFunAppL,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True -> (case (CBound_Bind _exprIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_exprIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Map.empty) of { _lhsOfvSMp | _lhsOfvSMp `seq` (True) -> (case ([]) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) })) sem_CBound_Val :: ACoreBindAspectKeyS -> MetaLev -> CLbl -> T_CExpr -> T_CBound sem_CBound_Val aspectKeyS_ mlev_ lbl_ expr_ = (\ _lhsIevalCtx _lhsIisGlobal _lhsIisTopApp _lhsIisTopTup _lhsIletBindingsCateg _lhsIlev _lhsInm -> (case (ExprIsBind _lhsInm) of { _whatAbove | _whatAbove `seq` (True) -> (case (_whatAbove) of { _exprOwhatAbove | _exprOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _exprOlev | _exprOlev `seq` (True) -> (case (_lhsIisTopTup) of { _exprOisTopTup | _exprOisTopTup `seq` (True) -> (case (_lhsIisTopApp) of { _exprOisTopApp | _exprOisTopApp `seq` (True) -> (case (_lhsIevalCtx) of { _exprOevalCtx | _exprOevalCtx `seq` (True) -> (case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of { ( _exprIappFunKind,_exprIcTrf,_exprIfvS,_exprImbApp,_exprImbFunAppL,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True -> (case (CBound_Val aspectKeyS_ mlev_ lbl_ _exprIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_exprIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Map.empty) of { _lhsOfvSMp | _lhsOfvSMp `seq` (True) -> (case ([]) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) })) sem_CBound_Ty :: ACoreBindAspectKeyS -> Ty -> T_CBound sem_CBound_Ty aspectKeyS_ ty_ = (\ _lhsIevalCtx _lhsIisGlobal _lhsIisTopApp _lhsIisTopTup _lhsIletBindingsCateg _lhsIlev _lhsInm -> (case (CBound_Ty aspectKeyS_ ty_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Map.empty) of { _lhsOfvSMp | _lhsOfvSMp `seq` (True) -> (case ([]) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) })) sem_CBound_FFE :: FFIWay -> ForeignEnt -> T_CExpr -> Ty -> T_CBound sem_CBound_FFE callconv_ expEnt_ expr_ ty_ = (\ _lhsIevalCtx _lhsIisGlobal _lhsIisTopApp _lhsIisTopTup _lhsIletBindingsCateg _lhsIlev _lhsInm -> (case (ExprIsLam 0 Nothing) of { _whatAbove | _whatAbove `seq` (True) -> (case (_whatAbove) of { _exprOwhatAbove | _exprOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _exprOlev | _exprOlev `seq` (True) -> (case (_lhsIevalCtx) of { _exprOevalCtx | _exprOevalCtx `seq` (True) -> (case (True) of { _exprOisTopTup | _exprOisTopTup `seq` (True) -> (case (True) of { _exprOisTopApp | _exprOisTopApp `seq` (True) -> (case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of { ( _exprIappFunKind,_exprIcTrf,_exprIfvS,_exprImbApp,_exprImbFunAppL,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True -> (case (CBound_FFE callconv_ expEnt_ _exprIcTrf ty_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_exprIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Map.empty) of { _lhsOfvSMp | _lhsOfvSMp `seq` (True) -> (case ([]) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) })) -- CBoundL ----------------------------------------------------- {- visit 0: inherited attributes: evalCtx : EvalCtx isGlobal : Bool letBindingsCateg : CBindCateg lev : Int nm : HsName synthesized attributes: cTrf : CBoundL fvS : FvS fvSMp : FvSMp nmL : [HsName] alternatives: alternative Cons: child hd : CBound child tl : CBoundL visit 0: local cTrf : _ alternative Nil: visit 0: local cTrf : _ -} -- 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 = EvalCtx -> Bool -> CBindCateg -> Int -> HsName -> ( CBoundL,FvS,FvSMp,([HsName])) sem_CBoundL_Cons :: T_CBound -> T_CBoundL -> T_CBoundL sem_CBoundL_Cons hd_ tl_ = (\ _lhsIevalCtx _lhsIisGlobal _lhsIletBindingsCateg _lhsIlev _lhsInm -> (case (_lhsInm) of { _tlOnm | _tlOnm `seq` (True) -> (case (_lhsIlev) of { _tlOlev | _tlOlev `seq` (True) -> (case (_lhsIletBindingsCateg) of { _tlOletBindingsCateg | _tlOletBindingsCateg `seq` (True) -> (case (_lhsIisGlobal) of { _tlOisGlobal | _tlOisGlobal `seq` (True) -> (case (_lhsIevalCtx) of { _tlOevalCtx | _tlOevalCtx `seq` (True) -> (case (tl_ _tlOevalCtx _tlOisGlobal _tlOletBindingsCateg _tlOlev _tlOnm) of { ( _tlIcTrf,_tlIfvS,_tlIfvSMp,_tlInmL) | True -> (case (_lhsInm) of { _hdOnm | _hdOnm `seq` (True) -> (case (_lhsIlev) of { _hdOlev | _hdOlev `seq` (True) -> (case (_lhsIletBindingsCateg) of { _hdOletBindingsCateg | _hdOletBindingsCateg `seq` (True) -> (case (_lhsIisGlobal) of { _hdOisGlobal | _hdOisGlobal `seq` (True) -> (case (_lhsIevalCtx) of { _hdOevalCtx | _hdOevalCtx `seq` (True) -> (case (True) of { _hdOisTopTup | _hdOisTopTup `seq` (True) -> (case (True) of { _hdOisTopApp | _hdOisTopApp `seq` (True) -> (case (hd_ _hdOevalCtx _hdOisGlobal _hdOisTopApp _hdOisTopTup _hdOletBindingsCateg _hdOlev _hdOnm) of { ( _hdIcTrf,_hdIfvS,_hdIfvSMp,_hdInmL) | True -> (case ((:) _hdIcTrf _tlIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_hdIfvS `Set.union` _tlIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (_hdIfvSMp `Map.union` _tlIfvSMp) of { _lhsOfvSMp | _lhsOfvSMp `seq` (True) -> (case (_hdInmL ++ _tlInmL) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CBoundL_Nil :: T_CBoundL sem_CBoundL_Nil = (\ _lhsIevalCtx _lhsIisGlobal _lhsIletBindingsCateg _lhsIlev _lhsInm -> (case ([]) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Map.empty) of { _lhsOfvSMp | _lhsOfvSMp `seq` (True) -> (case ([]) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) })) -- CDataCon ---------------------------------------------------- {- visit 0: synthesized attribute: cTrf : CDataCon alternatives: alternative Con: child conNm : {HsName} child tagNr : {Int} child arity : {Int} visit 0: local cTrf : _ -} -- cata sem_CDataCon :: CDataCon -> T_CDataCon sem_CDataCon (CDataCon_Con _conNm _tagNr _arity) = (sem_CDataCon_Con _conNm _tagNr _arity) -- semantic domain type T_CDataCon = ( CDataCon) sem_CDataCon_Con :: HsName -> Int -> Int -> T_CDataCon sem_CDataCon_Con conNm_ tagNr_ arity_ = (case (CDataCon_Con conNm_ tagNr_ arity_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) }) -- CDataConL --------------------------------------------------- {- visit 0: synthesized attribute: cTrf : CDataConL alternatives: alternative Cons: child hd : CDataCon child tl : CDataConL visit 0: local cTrf : _ alternative Nil: visit 0: local cTrf : _ -} -- 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 = ( CDataConL) sem_CDataConL_Cons :: T_CDataCon -> T_CDataConL -> T_CDataConL sem_CDataConL_Cons hd_ tl_ = (case (tl_) of { ( _tlIcTrf) | True -> (case (hd_) of { ( _hdIcTrf) | True -> (case ((:) _hdIcTrf _tlIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) }) }) }) sem_CDataConL_Nil :: T_CDataConL sem_CDataConL_Nil = (case ([]) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) }) -- CDeclMeta --------------------------------------------------- {- visit 0: synthesized attribute: cTrf : CDeclMeta alternatives: alternative Data: child tyNm : {HsName} child dataCons : CDataConL visit 0: local cTrf : _ -} -- cata sem_CDeclMeta :: CDeclMeta -> T_CDeclMeta sem_CDeclMeta (CDeclMeta_Data _tyNm _dataCons) = (sem_CDeclMeta_Data _tyNm (sem_CDataConL _dataCons)) -- semantic domain type T_CDeclMeta = ( CDeclMeta) sem_CDeclMeta_Data :: HsName -> T_CDataConL -> T_CDeclMeta sem_CDeclMeta_Data tyNm_ dataCons_ = (case (dataCons_) of { ( _dataConsIcTrf) | True -> (case (CDeclMeta_Data tyNm_ _dataConsIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) }) }) -- CDeclMetaL -------------------------------------------------- {- visit 0: synthesized attribute: cTrf : CDeclMetaL alternatives: alternative Cons: child hd : CDeclMeta child tl : CDeclMetaL visit 0: local cTrf : _ alternative Nil: visit 0: local cTrf : _ -} -- 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 = ( CDeclMetaL) sem_CDeclMetaL_Cons :: T_CDeclMeta -> T_CDeclMetaL -> T_CDeclMetaL sem_CDeclMetaL_Cons hd_ tl_ = (case (tl_) of { ( _tlIcTrf) | True -> (case (hd_) of { ( _hdIcTrf) | True -> (case ((:) _hdIcTrf _tlIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) }) }) }) sem_CDeclMetaL_Nil :: T_CDeclMetaL sem_CDeclMetaL_Nil = (case ([]) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) }) -- CExport ----------------------------------------------------- {- visit 0: synthesized attribute: cTrf : CExport alternatives: alternative Export: child nm : {HsName} visit 0: local cTrf : _ alternative ExportData: child nm : {HsName} child mbConNmL : {Maybe [HsName]} visit 0: local cTrf : _ -} -- 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 = ( CExport) sem_CExport_Export :: HsName -> T_CExport sem_CExport_Export nm_ = (case (CExport_Export nm_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) }) sem_CExport_ExportData :: HsName -> (Maybe [HsName]) -> T_CExport sem_CExport_ExportData nm_ mbConNmL_ = (case (CExport_ExportData nm_ mbConNmL_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) }) -- CExportL ---------------------------------------------------- {- visit 0: synthesized attribute: cTrf : CExportL alternatives: alternative Cons: child hd : CExport child tl : CExportL visit 0: local cTrf : _ alternative Nil: visit 0: local cTrf : _ -} -- 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 = ( CExportL) sem_CExportL_Cons :: T_CExport -> T_CExportL -> T_CExportL sem_CExportL_Cons hd_ tl_ = (case (tl_) of { ( _tlIcTrf) | True -> (case (hd_) of { ( _hdIcTrf) | True -> (case ((:) _hdIcTrf _tlIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) }) }) }) sem_CExportL_Nil :: T_CExportL sem_CExportL_Nil = (case ([]) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) }) -- CExpr ------------------------------------------------------- {- visit 0: inherited attributes: evalCtx : EvalCtx isTopApp : Bool isTopTup : Bool lev : Int whatAbove : WhatExpr synthesized attributes: appFunKind : AppFunKind cTrf : CExpr fvS : FvS mbApp : MbApp mbFunAppL : [MbApp] mbLam : Maybe [HsName] mbVar : Maybe HsName whatBelow : WhatExpr alternatives: alternative Var: child ref : {ACoreBindRef} visit 0: local cTrf : _ local nm : {HsName} local mbVar : {Maybe HsName} local whatBelow : _ alternative Int: child int : {Int} visit 0: local cTrf : _ local whatBelow : _ alternative Char: child char : {Char} visit 0: local cTrf : _ local whatBelow : _ alternative String: child str : {String} visit 0: local cTrf : _ local whatBelow : _ alternative Integer: child integer : {Integer} visit 0: local cTrf : _ local whatBelow : _ alternative Tup: child tag : {CTag} visit 0: local cTrf : _ local whatBelow : _ alternative Let: child categ : {CBindCateg} child binds : CBindL child body : CExpr visit 0: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} local evalCtx : _ local letBindingsCateg : _ local isGlobal : _ local cTrf : _ local fvS : _ local whatBelow : _ alternative App: child func : CExpr child arg : CBound visit 0: local whatAbove : {WhatExpr} local isTopTup : _ local letBindingsCateg : _ local isGlobal : _ local cTrf : _ local fvS : _ local whatBelow : _ alternative Lam: child bind : CBind child body : CExpr visit 0: local whatAbove : {WhatExpr} local lev : _ local isTopTup : _ local isTopApp : {Bool} local letBindingsCateg : _ local isGlobal : _ local cTrf : _ local argNm : _ local _tup2 : _ local cNew : _ local fvS : _ local isMatch : _ local _tup1 : _ local whatBelow : _ alternative Case: child expr : CExpr child alts : CAltL child dflt : CExpr visit 0: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} local cTrf : _ local whatBelow : _ alternative CaseAltFail: child failReason : {CaseAltFailReason} child errorExpr : CExpr visit 0: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} local cTrf : _ alternative TupDel: child expr : CExpr child tag : {CTag} child nm : {HsName} child offset : CExpr visit 0: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} local cTrf : _ local whatBelow : _ alternative TupIns: child expr : CExpr child tag : {CTag} child nm : {HsName} child offset : CExpr child fldExpr : CExpr visit 0: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} local cTrf : _ local whatBelow : _ alternative TupUpd: child expr : CExpr child tag : {CTag} child nm : {HsName} child offset : CExpr child fldExpr : CExpr visit 0: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} local cTrf : _ local whatBelow : _ alternative FFI: child callconv : {FFIWay} child safety : {String} child impEnt : {ForeignEnt} child ty : {Ty} visit 0: local cTrf : _ local whatBelow : _ alternative Dbg: child info : {String} visit 0: local cTrf : _ local whatBelow : _ alternative Hole: child uid : {UID} visit 0: local cTrf : _ local whatBelow : _ alternative HoleLet: child bindsUid : {UID} child body : CExpr visit 0: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} local cTrf : _ local whatBelow : _ alternative CoeArg: visit 0: local cTrf : _ local whatBelow : _ alternative ImplsApp: child func : CExpr child uid : {ImplsVarId} visit 0: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} local cTrf : _ local whatBelow : _ alternative ImplsLam: child uid : {ImplsVarId} child body : CExpr visit 0: local whatAbove : {WhatExpr} local isTopTup : _ local isTopApp : {Bool} local cTrf : _ local whatBelow : _ alternative Ann: child ann : CExprAnn child expr : CExpr visit 0: local cTrf : _ -} -- 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 = EvalCtx -> Bool -> Bool -> Int -> WhatExpr -> ( AppFunKind,CExpr,FvS,MbApp,([MbApp]),(Maybe [HsName]),(Maybe HsName),WhatExpr) sem_CExpr_Var :: ACoreBindRef -> T_CExpr sem_CExpr_Var ref_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_Fun ref_) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (CExpr_Var ref_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (acbrefNm ref_) of { _nm | _nm `seq` (True) -> (case (Set.singleton _nm) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Just _nm) of { _mbVar | _mbVar `seq` (True) -> (case (_mbVar) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsVar _nm) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Int :: Int -> T_CExpr sem_CExpr_Int int_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (CExpr_Int int_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsInt int_) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Char :: Char -> T_CExpr sem_CExpr_Char char_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (CExpr_Char char_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsOtherWHNF) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) })) sem_CExpr_String :: String -> T_CExpr sem_CExpr_String str_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (CExpr_String str_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsOtherWHNF) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Integer :: Integer -> T_CExpr sem_CExpr_Integer integer_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (CExpr_Integer integer_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsOtherWHNF) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Tup :: CTag -> T_CExpr sem_CExpr_Tup tag_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_Tag tag_) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (CExpr_Tup tag_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsTup tag_) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Let :: CBindCateg -> T_CBindL -> T_CExpr -> T_CExpr sem_CExpr_Let categ_ binds_ body_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (ExprIsOther) of { _whatAbove | _whatAbove `seq` (True) -> (case (_whatAbove) of { _bodyOwhatAbove | _bodyOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _bodyOlev | _bodyOlev `seq` (True) -> (case (True) of { _isTopTup | _isTopTup `seq` (True) -> (case (_isTopTup) of { _bodyOisTopTup | _bodyOisTopTup `seq` (True) -> (case (True) of { _isTopApp | _isTopApp `seq` (True) -> (case (_isTopApp) of { _bodyOisTopApp | _bodyOisTopApp `seq` (True) -> (case (if categ_ == CBindCateg_Strict then EvalCtx_Eval else EvalCtx_Thunk) of { _evalCtx | _evalCtx `seq` (True) -> (case (_evalCtx) of { _bodyOevalCtx | _bodyOevalCtx `seq` (True) -> (case (body_ _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOwhatAbove) of { ( _bodyIappFunKind,_bodyIcTrf,_bodyIfvS,_bodyImbApp,_bodyImbFunAppL,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) | True -> (case (_lhsIlev) of { _bindsOlev | _bindsOlev `seq` (True) -> (case (categ_) of { _letBindingsCateg | _letBindingsCateg `seq` (True) -> (case (_letBindingsCateg) of { _bindsOletBindingsCateg | _bindsOletBindingsCateg `seq` (True) -> (case (_lhsIlev == cLevModule) of { _isGlobal | _isGlobal `seq` (True) -> (case (_isGlobal) of { _bindsOisGlobal | _bindsOisGlobal `seq` (True) -> (case (_evalCtx) of { _bindsOevalCtx | _bindsOevalCtx `seq` (True) -> (case (binds_ _bindsOevalCtx _bindsOisGlobal _bindsOletBindingsCateg _bindsOlev) of { ( _bindsIcTrf,_bindsIfvS,_bindsIfvSMp,_bindsInmL) | True -> (case (CExpr_Let categ_ _bindsIcTrf _bodyIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case ((_bodyIfvS `Set.union` _bindsIfvS) `Set.difference` Set.fromList _bindsInmL) of { _fvS | _fvS `seq` (True) -> (case (_fvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsOther) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_App :: T_CExpr -> T_CBound -> T_CExpr sem_CExpr_App func_ arg_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (maybe (ExprIsApp 1 ExprIsOther) (\(a,w) -> ExprIsApp (a + 1) w) $ whatExprMbApp _lhsIwhatAbove) of { _whatAbove | _whatAbove `seq` (True) -> (case (_whatAbove) of { _funcOwhatAbove | _funcOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _funcOlev | _funcOlev `seq` (True) -> (case (True) of { _isTopTup | _isTopTup `seq` (True) -> (case (_isTopTup) of { _funcOisTopTup | _funcOisTopTup `seq` (True) -> (case (_lhsIevalCtx) of { _funcOevalCtx | _funcOevalCtx `seq` (True) -> (case (False) of { _funcOisTopApp | _funcOisTopApp `seq` (True) -> (case (func_ _funcOevalCtx _funcOisTopApp _funcOisTopTup _funcOlev _funcOwhatAbove) of { ( _funcIappFunKind,_funcIcTrf,_funcIfvS,_funcImbApp,_funcImbFunAppL,_funcImbLam,_funcImbVar,_funcIwhatBelow) | True -> (case (_funcIappFunKind) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (_lhsIlev) of { _argOlev | _argOlev `seq` (True) -> (case (acoreBindcategPlain) of { _letBindingsCateg | _letBindingsCateg `seq` (True) -> (case (_letBindingsCateg) of { _argOletBindingsCateg | _argOletBindingsCateg `seq` (True) -> (case (_isTopTup) of { _argOisTopTup | _argOisTopTup `seq` (True) -> (case (False) of { _isGlobal | _isGlobal `seq` (True) -> (case (_isGlobal) of { _argOisGlobal | _argOisGlobal `seq` (True) -> (case (EvalCtx_Thunk) of { _argOevalCtx | _argOevalCtx `seq` (True) -> (case (True) of { _argOisTopApp | _argOisTopApp `seq` (True) -> (case (hsnUnknown) of { _argOnm | _argOnm `seq` (True) -> (case (arg_ _argOevalCtx _argOisGlobal _argOisTopApp _argOisTopTup _argOletBindingsCateg _argOlev _argOnm) of { ( _argIcTrf,_argIfvS,_argIfvSMp,_argInmL) | True -> (case (CExpr_App _funcIcTrf _argIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_funcIfvS `Set.union` _argIfvS) of { _fvS | _fvS `seq` (True) -> (case (_fvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (case _funcIappFunKind of AppFunKind_Tag _ -> Nothing AppFunKind_FFI -> Nothing _ -> Just ((_funcIcTrf,_funcIfvS),_argIcTrf)) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case (_funcImbApp : _funcImbFunAppL) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (maybe (ExprIsApp 1 _funcIwhatBelow) (\(a,w) -> ExprIsApp (a + 1) w) $ whatExprMbApp _funcIwhatBelow) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Lam :: T_CBind -> T_CExpr -> T_CExpr sem_CExpr_Lam bind_ body_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (case _lhsIwhatAbove of ExprIsLam a mbnm -> ExprIsLam (a + 1) mbnm ExprIsBind nm -> ExprIsLam 1 (Just nm) _ -> ExprIsLam 1 Nothing) of { _whatAbove | _whatAbove `seq` (True) -> (case (_whatAbove) of { _bodyOwhatAbove | _bodyOwhatAbove `seq` (True) -> (case (_lhsIlev + 1) of { _lev | _lev `seq` (True) -> (case (_lev) of { _bodyOlev | _bodyOlev `seq` (True) -> (case (True) of { _isTopTup | _isTopTup `seq` (True) -> (case (_isTopTup) of { _bodyOisTopTup | _bodyOisTopTup `seq` (True) -> (case (True) of { _isTopApp | _isTopApp `seq` (True) -> (case (_isTopApp) of { _bodyOisTopApp | _bodyOisTopApp `seq` (True) -> (case (_lhsIevalCtx) of { _bodyOevalCtx | _bodyOevalCtx `seq` (True) -> (case (body_ _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOwhatAbove) of { ( _bodyIappFunKind,_bodyIcTrf,_bodyIfvS,_bodyImbApp,_bodyImbFunAppL,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) | True -> (case (_lev) of { _bindOlev | _bindOlev `seq` (True) -> (case (acoreBindcategPlain) of { _letBindingsCateg | _letBindingsCateg `seq` (True) -> (case (_letBindingsCateg) of { _bindOletBindingsCateg | _bindOletBindingsCateg `seq` (True) -> (case (False) of { _isGlobal | _isGlobal `seq` (True) -> (case (_isGlobal) of { _bindOisGlobal | _bindOisGlobal `seq` (True) -> (case (_lhsIevalCtx) of { _bindOevalCtx | _bindOevalCtx `seq` (True) -> (case (bind_ _bindOevalCtx _bindOisGlobal _bindOletBindingsCateg _bindOlev) of { ( _bindIcTrf,_bindIfvS,_bindIfvSMp,_bindInm,_bindInmL) | True -> (case (CExpr_Lam _bindIcTrf _bodyIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_bindInm) of { _argNm | _argNm `seq` (True) -> (case (case _bodyImbApp of Just ((f,fFvS),v) | isJust mbV && a == _argNm && not (a `Set.member` fFvS) -> (f,True) where mbV@(~(Just a)) = acoreExprMbVar $ acoreUnBoundVal v _ -> (_cTrf,False)) of { __tup2 | __tup2 `seq` (True) -> (case (__tup2) of { (_cNew,_) | _cNew `seq` (True) -> (case (_cNew) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_argNm `Set.delete` _bodyIfvS) of { _fvS | _fvS `seq` (True) -> (case (_fvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (__tup2) of { (_,_isMatch) | _isMatch `seq` (True) -> (case (case _bodyImbFunAppL of (f:fs) | _isMatch -> (f,fs) _ -> (Nothing,_bodyImbFunAppL)) of { __tup1 | __tup1 `seq` (True) -> (case (__tup1) of { (_lhsOmbApp,_) | _lhsOmbApp `seq` (True) -> (case (__tup1) of { (_,_lhsOmbFunAppL) | _lhsOmbFunAppL `seq` (True) -> (case (Just $ maybe [_argNm] (_argNm:) _bodyImbLam) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (maybe (ExprIsLam 1 Nothing) (\a -> ExprIsLam (a + 1) Nothing) $ whatExprMbLam _bodyIwhatBelow) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Case :: T_CExpr -> T_CAltL -> T_CExpr -> T_CExpr sem_CExpr_Case expr_ alts_ dflt_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (ExprIsOther) of { _whatAbove | _whatAbove `seq` (True) -> (case (_whatAbove) of { _dfltOwhatAbove | _dfltOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _dfltOlev | _dfltOlev `seq` (True) -> (case (True) of { _isTopTup | _isTopTup `seq` (True) -> (case (_isTopTup) of { _dfltOisTopTup | _dfltOisTopTup `seq` (True) -> (case (True) of { _isTopApp | _isTopApp `seq` (True) -> (case (_isTopApp) of { _dfltOisTopApp | _dfltOisTopApp `seq` (True) -> (case (_lhsIevalCtx) of { _dfltOevalCtx | _dfltOevalCtx `seq` (True) -> (case (dflt_ _dfltOevalCtx _dfltOisTopApp _dfltOisTopTup _dfltOlev _dfltOwhatAbove) of { ( _dfltIappFunKind,_dfltIcTrf,_dfltIfvS,_dfltImbApp,_dfltImbFunAppL,_dfltImbLam,_dfltImbVar,_dfltIwhatBelow) | True -> (case (_lhsIlev) of { _altsOlev | _altsOlev `seq` (True) -> (case (_lhsIevalCtx) of { _altsOevalCtx | _altsOevalCtx `seq` (True) -> (case (alts_ _altsOevalCtx _altsOlev) of { ( _altsIcTrf,_altsIfvS) | True -> (case (_whatAbove) of { _exprOwhatAbove | _exprOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _exprOlev | _exprOlev `seq` (True) -> (case (_isTopTup) of { _exprOisTopTup | _exprOisTopTup `seq` (True) -> (case (_isTopApp) of { _exprOisTopApp | _exprOisTopApp `seq` (True) -> (case (_lhsIevalCtx) of { _exprOevalCtx | _exprOevalCtx `seq` (True) -> (case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of { ( _exprIappFunKind,_exprIcTrf,_exprIfvS,_exprImbApp,_exprImbFunAppL,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True -> (case (CExpr_Case _exprIcTrf _altsIcTrf _dfltIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_exprIfvS `Set.union` _altsIfvS `Set.union` _dfltIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsOther) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_CaseAltFail :: CaseAltFailReason -> T_CExpr -> T_CExpr sem_CExpr_CaseAltFail failReason_ errorExpr_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (ExprIsOther) of { _whatAbove | _whatAbove `seq` (True) -> (case (_whatAbove) of { _errorExprOwhatAbove | _errorExprOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _errorExprOlev | _errorExprOlev `seq` (True) -> (case (True) of { _isTopTup | _isTopTup `seq` (True) -> (case (_isTopTup) of { _errorExprOisTopTup | _errorExprOisTopTup `seq` (True) -> (case (True) of { _isTopApp | _isTopApp `seq` (True) -> (case (_isTopApp) of { _errorExprOisTopApp | _errorExprOisTopApp `seq` (True) -> (case (_lhsIevalCtx) of { _errorExprOevalCtx | _errorExprOevalCtx `seq` (True) -> (case (errorExpr_ _errorExprOevalCtx _errorExprOisTopApp _errorExprOisTopTup _errorExprOlev _errorExprOwhatAbove) of { ( _errorExprIappFunKind,_errorExprIcTrf,_errorExprIfvS,_errorExprImbApp,_errorExprImbFunAppL,_errorExprImbLam,_errorExprImbVar,_errorExprIwhatBelow) | True -> (case (_errorExprIappFunKind) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (CExpr_CaseAltFail failReason_ _errorExprIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_errorExprIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (_errorExprImbLam) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (_errorExprImbVar) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (_errorExprIwhatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_TupDel :: T_CExpr -> CTag -> HsName -> T_CExpr -> T_CExpr sem_CExpr_TupDel expr_ tag_ nm_ offset_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (ExprIsOther) of { _whatAbove | _whatAbove `seq` (True) -> (case (_whatAbove) of { _offsetOwhatAbove | _offsetOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _offsetOlev | _offsetOlev `seq` (True) -> (case (True) of { _isTopTup | _isTopTup `seq` (True) -> (case (_isTopTup) of { _offsetOisTopTup | _offsetOisTopTup `seq` (True) -> (case (True) of { _isTopApp | _isTopApp `seq` (True) -> (case (_isTopApp) of { _offsetOisTopApp | _offsetOisTopApp `seq` (True) -> (case (_lhsIevalCtx) of { _offsetOevalCtx | _offsetOevalCtx `seq` (True) -> (case (offset_ _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOwhatAbove) of { ( _offsetIappFunKind,_offsetIcTrf,_offsetIfvS,_offsetImbApp,_offsetImbFunAppL,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) | True -> (case (_whatAbove) of { _exprOwhatAbove | _exprOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _exprOlev | _exprOlev `seq` (True) -> (case (_isTopApp) of { _exprOisTopApp | _exprOisTopApp `seq` (True) -> (case (_lhsIevalCtx) of { _exprOevalCtx | _exprOevalCtx `seq` (True) -> (case (False) of { _exprOisTopTup | _exprOisTopTup `seq` (True) -> (case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of { ( _exprIappFunKind,_exprIcTrf,_exprIfvS,_exprImbApp,_exprImbFunAppL,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True -> (case (CExpr_TupDel _exprIcTrf tag_ nm_ _offsetIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_exprIfvS `Set.union` _offsetIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsOther) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_TupIns :: T_CExpr -> CTag -> HsName -> T_CExpr -> T_CExpr -> T_CExpr sem_CExpr_TupIns expr_ tag_ nm_ offset_ fldExpr_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (ExprIsOther) of { _whatAbove | _whatAbove `seq` (True) -> (case (_whatAbove) of { _fldExprOwhatAbove | _fldExprOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _fldExprOlev | _fldExprOlev `seq` (True) -> (case (True) of { _isTopTup | _isTopTup `seq` (True) -> (case (_isTopTup) of { _fldExprOisTopTup | _fldExprOisTopTup `seq` (True) -> (case (True) of { _isTopApp | _isTopApp `seq` (True) -> (case (_isTopApp) of { _fldExprOisTopApp | _fldExprOisTopApp `seq` (True) -> (case (_lhsIevalCtx) of { _fldExprOevalCtx | _fldExprOevalCtx `seq` (True) -> (case (fldExpr_ _fldExprOevalCtx _fldExprOisTopApp _fldExprOisTopTup _fldExprOlev _fldExprOwhatAbove) of { ( _fldExprIappFunKind,_fldExprIcTrf,_fldExprIfvS,_fldExprImbApp,_fldExprImbFunAppL,_fldExprImbLam,_fldExprImbVar,_fldExprIwhatBelow) | True -> (case (_whatAbove) of { _offsetOwhatAbove | _offsetOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _offsetOlev | _offsetOlev `seq` (True) -> (case (_isTopTup) of { _offsetOisTopTup | _offsetOisTopTup `seq` (True) -> (case (_isTopApp) of { _offsetOisTopApp | _offsetOisTopApp `seq` (True) -> (case (_lhsIevalCtx) of { _offsetOevalCtx | _offsetOevalCtx `seq` (True) -> (case (offset_ _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOwhatAbove) of { ( _offsetIappFunKind,_offsetIcTrf,_offsetIfvS,_offsetImbApp,_offsetImbFunAppL,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) | True -> (case (_whatAbove) of { _exprOwhatAbove | _exprOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _exprOlev | _exprOlev `seq` (True) -> (case (_isTopApp) of { _exprOisTopApp | _exprOisTopApp `seq` (True) -> (case (_lhsIevalCtx) of { _exprOevalCtx | _exprOevalCtx `seq` (True) -> (case (False) of { _exprOisTopTup | _exprOisTopTup `seq` (True) -> (case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of { ( _exprIappFunKind,_exprIcTrf,_exprIfvS,_exprImbApp,_exprImbFunAppL,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True -> (case (CExpr_TupIns _exprIcTrf tag_ nm_ _offsetIcTrf _fldExprIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsOther) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_TupUpd :: T_CExpr -> CTag -> HsName -> T_CExpr -> T_CExpr -> T_CExpr sem_CExpr_TupUpd expr_ tag_ nm_ offset_ fldExpr_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (ExprIsOther) of { _whatAbove | _whatAbove `seq` (True) -> (case (_whatAbove) of { _fldExprOwhatAbove | _fldExprOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _fldExprOlev | _fldExprOlev `seq` (True) -> (case (True) of { _isTopTup | _isTopTup `seq` (True) -> (case (_isTopTup) of { _fldExprOisTopTup | _fldExprOisTopTup `seq` (True) -> (case (True) of { _isTopApp | _isTopApp `seq` (True) -> (case (_isTopApp) of { _fldExprOisTopApp | _fldExprOisTopApp `seq` (True) -> (case (_lhsIevalCtx) of { _fldExprOevalCtx | _fldExprOevalCtx `seq` (True) -> (case (fldExpr_ _fldExprOevalCtx _fldExprOisTopApp _fldExprOisTopTup _fldExprOlev _fldExprOwhatAbove) of { ( _fldExprIappFunKind,_fldExprIcTrf,_fldExprIfvS,_fldExprImbApp,_fldExprImbFunAppL,_fldExprImbLam,_fldExprImbVar,_fldExprIwhatBelow) | True -> (case (_whatAbove) of { _offsetOwhatAbove | _offsetOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _offsetOlev | _offsetOlev `seq` (True) -> (case (_isTopTup) of { _offsetOisTopTup | _offsetOisTopTup `seq` (True) -> (case (_isTopApp) of { _offsetOisTopApp | _offsetOisTopApp `seq` (True) -> (case (_lhsIevalCtx) of { _offsetOevalCtx | _offsetOevalCtx `seq` (True) -> (case (offset_ _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOwhatAbove) of { ( _offsetIappFunKind,_offsetIcTrf,_offsetIfvS,_offsetImbApp,_offsetImbFunAppL,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) | True -> (case (_whatAbove) of { _exprOwhatAbove | _exprOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _exprOlev | _exprOlev `seq` (True) -> (case (_isTopApp) of { _exprOisTopApp | _exprOisTopApp `seq` (True) -> (case (_lhsIevalCtx) of { _exprOevalCtx | _exprOevalCtx `seq` (True) -> (case (False) of { _exprOisTopTup | _exprOisTopTup `seq` (True) -> (case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of { ( _exprIappFunKind,_exprIcTrf,_exprIfvS,_exprImbApp,_exprImbFunAppL,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True -> (case (CExpr_TupUpd _exprIcTrf tag_ nm_ _offsetIcTrf _fldExprIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsOther) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_FFI :: FFIWay -> String -> ForeignEnt -> Ty -> T_CExpr sem_CExpr_FFI callconv_ safety_ impEnt_ ty_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_FFI) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (CExpr_FFI callconv_ safety_ impEnt_ ty_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsFFI) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Dbg :: String -> T_CExpr sem_CExpr_Dbg info_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (CExpr_Dbg info_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsOther) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Hole :: UID -> T_CExpr sem_CExpr_Hole uid_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (CExpr_Hole uid_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsOther) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) })) sem_CExpr_HoleLet :: UID -> T_CExpr -> T_CExpr sem_CExpr_HoleLet bindsUid_ body_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (ExprIsOther) of { _whatAbove | _whatAbove `seq` (True) -> (case (_whatAbove) of { _bodyOwhatAbove | _bodyOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _bodyOlev | _bodyOlev `seq` (True) -> (case (True) of { _isTopTup | _isTopTup `seq` (True) -> (case (_isTopTup) of { _bodyOisTopTup | _bodyOisTopTup `seq` (True) -> (case (True) of { _isTopApp | _isTopApp `seq` (True) -> (case (_isTopApp) of { _bodyOisTopApp | _bodyOisTopApp `seq` (True) -> (case (_lhsIevalCtx) of { _bodyOevalCtx | _bodyOevalCtx `seq` (True) -> (case (body_ _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOwhatAbove) of { ( _bodyIappFunKind,_bodyIcTrf,_bodyIfvS,_bodyImbApp,_bodyImbFunAppL,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) | True -> (case (CExpr_HoleLet bindsUid_ _bodyIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_bodyIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsOther) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_CoeArg :: T_CExpr sem_CExpr_CoeArg = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (CExpr_CoeArg) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsOther) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) })) sem_CExpr_ImplsApp :: T_CExpr -> ImplsVarId -> T_CExpr sem_CExpr_ImplsApp func_ uid_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (ExprIsOther) of { _whatAbove | _whatAbove `seq` (True) -> (case (_whatAbove) of { _funcOwhatAbove | _funcOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _funcOlev | _funcOlev `seq` (True) -> (case (True) of { _isTopTup | _isTopTup `seq` (True) -> (case (_isTopTup) of { _funcOisTopTup | _funcOisTopTup `seq` (True) -> (case (True) of { _isTopApp | _isTopApp `seq` (True) -> (case (_isTopApp) of { _funcOisTopApp | _funcOisTopApp `seq` (True) -> (case (_lhsIevalCtx) of { _funcOevalCtx | _funcOevalCtx `seq` (True) -> (case (func_ _funcOevalCtx _funcOisTopApp _funcOisTopTup _funcOlev _funcOwhatAbove) of { ( _funcIappFunKind,_funcIcTrf,_funcIfvS,_funcImbApp,_funcImbFunAppL,_funcImbLam,_funcImbVar,_funcIwhatBelow) | True -> (case (CExpr_ImplsApp _funcIcTrf uid_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_funcIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsOther) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_ImplsLam :: ImplsVarId -> T_CExpr -> T_CExpr sem_CExpr_ImplsLam uid_ body_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (AppFunKind_NoApp) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (ExprIsOther) of { _whatAbove | _whatAbove `seq` (True) -> (case (_whatAbove) of { _bodyOwhatAbove | _bodyOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _bodyOlev | _bodyOlev `seq` (True) -> (case (True) of { _isTopTup | _isTopTup `seq` (True) -> (case (_isTopTup) of { _bodyOisTopTup | _bodyOisTopTup `seq` (True) -> (case (True) of { _isTopApp | _isTopApp `seq` (True) -> (case (_isTopApp) of { _bodyOisTopApp | _bodyOisTopApp `seq` (True) -> (case (_lhsIevalCtx) of { _bodyOevalCtx | _bodyOevalCtx `seq` (True) -> (case (body_ _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOwhatAbove) of { ( _bodyIappFunKind,_bodyIcTrf,_bodyIfvS,_bodyImbApp,_bodyImbFunAppL,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) | True -> (case (CExpr_ImplsLam uid_ _bodyIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_bodyIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (Nothing) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case ([]) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (Nothing) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (Nothing) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (ExprIsOther) of { _whatBelow | _whatBelow `seq` (True) -> (case (_whatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) sem_CExpr_Ann :: T_CExprAnn -> T_CExpr -> T_CExpr sem_CExpr_Ann ann_ expr_ = (\ _lhsIevalCtx _lhsIisTopApp _lhsIisTopTup _lhsIlev _lhsIwhatAbove -> (case (_lhsIwhatAbove) of { _exprOwhatAbove | _exprOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _exprOlev | _exprOlev `seq` (True) -> (case (_lhsIisTopTup) of { _exprOisTopTup | _exprOisTopTup `seq` (True) -> (case (_lhsIisTopApp) of { _exprOisTopApp | _exprOisTopApp `seq` (True) -> (case (_lhsIevalCtx) of { _exprOevalCtx | _exprOevalCtx `seq` (True) -> (case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of { ( _exprIappFunKind,_exprIcTrf,_exprIfvS,_exprImbApp,_exprImbFunAppL,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True -> (case (_exprIappFunKind) of { _lhsOappFunKind | _lhsOappFunKind `seq` (True) -> (case (_lhsIlev) of { _annOlev | _annOlev `seq` (True) -> (case (ann_ _annOlev) of { ( _annIcTrf,_annIfvS) | True -> (case (CExpr_Ann _annIcTrf _exprIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_annIfvS `Set.union` _exprIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (_exprImbApp) of { _lhsOmbApp | _lhsOmbApp `seq` (True) -> (case (_exprImbFunAppL) of { _lhsOmbFunAppL | _lhsOmbFunAppL `seq` (True) -> (case (_exprImbLam) of { _lhsOmbLam | _lhsOmbLam `seq` (True) -> (case (_exprImbVar) of { _lhsOmbVar | _lhsOmbVar `seq` (True) -> (case (_exprIwhatBelow) of { _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) -> ( _lhsOappFunKind,_lhsOcTrf,_lhsOfvS,_lhsOmbApp,_lhsOmbFunAppL,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CExprAnn ---------------------------------------------------- {- visit 0: inherited attribute: lev : Int synthesized attributes: cTrf : CExprAnn fvS : FvS alternatives: alternative Ty: child ty : {Ty} visit 0: local cTrf : _ alternative Debug: child info : {String} visit 0: local cTrf : _ -} -- 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 = Int -> ( CExprAnn,FvS) sem_CExprAnn_Ty :: Ty -> T_CExprAnn sem_CExprAnn_Ty ty_ = (\ _lhsIlev -> (case (CExprAnn_Ty ty_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> ( _lhsOcTrf,_lhsOfvS) }) }) })) sem_CExprAnn_Debug :: String -> T_CExprAnn sem_CExprAnn_Debug info_ = (\ _lhsIlev -> (case (CExprAnn_Debug info_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> ( _lhsOcTrf,_lhsOfvS) }) }) })) -- CImport ----------------------------------------------------- {- visit 0: synthesized attribute: cTrf : CImport alternatives: alternative Import: child nm : {HsName} visit 0: local cTrf : _ -} -- cata sem_CImport :: CImport -> T_CImport sem_CImport (CImport_Import _nm) = (sem_CImport_Import _nm) -- semantic domain type T_CImport = ( CImport) sem_CImport_Import :: HsName -> T_CImport sem_CImport_Import nm_ = (case (CImport_Import nm_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) }) -- CImportL ---------------------------------------------------- {- visit 0: synthesized attribute: cTrf : CImportL alternatives: alternative Cons: child hd : CImport child tl : CImportL visit 0: local cTrf : _ alternative Nil: visit 0: local cTrf : _ -} -- 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 = ( CImportL) sem_CImportL_Cons :: T_CImport -> T_CImportL -> T_CImportL sem_CImportL_Cons hd_ tl_ = (case (tl_) of { ( _tlIcTrf) | True -> (case (hd_) of { ( _hdIcTrf) | True -> (case ((:) _hdIcTrf _tlIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) }) }) }) sem_CImportL_Nil :: T_CImportL sem_CImportL_Nil = (case ([]) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) }) -- CModule ----------------------------------------------------- {- visit 0: inherited attribute: lev : Int synthesized attributes: cTrf : CModule fvS : FvS alternatives: alternative Mod: child moduleNm : {HsName} child exports : CExportL child imports : CImportL child declMetas : CDeclMetaL child expr : CExpr visit 0: local whatAbove : {WhatExpr} local cTrf : _ -} -- 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 = Int -> ( CModule,FvS) sem_CModule_Mod :: HsName -> T_CExportL -> T_CImportL -> T_CDeclMetaL -> T_CExpr -> T_CModule sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ = (\ _lhsIlev -> (case (ExprIsOther) of { _whatAbove | _whatAbove `seq` (True) -> (case (_whatAbove) of { _exprOwhatAbove | _exprOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _exprOlev | _exprOlev `seq` (True) -> (case (EvalCtx_Eval) of { _exprOevalCtx | _exprOevalCtx `seq` (True) -> (case (True) of { _exprOisTopTup | _exprOisTopTup `seq` (True) -> (case (True) of { _exprOisTopApp | _exprOisTopApp `seq` (True) -> (case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of { ( _exprIappFunKind,_exprIcTrf,_exprIfvS,_exprImbApp,_exprImbFunAppL,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True -> (case (declMetas_) of { ( _declMetasIcTrf) | True -> (case (imports_) of { ( _importsIcTrf) | True -> (case (exports_) of { ( _exportsIcTrf) | True -> (case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_exprIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> ( _lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CPat -------------------------------------------------------- {- visit 0: inherited attribute: lev : Int synthesized attributes: cTrf : CPat fldNmL : [HsName] fvS : FvS nmL : [HsName] alternatives: alternative Var: child pnm : {HsName} visit 0: local cTrf : _ alternative Con: child tag : {CTag} child rest : CPatRest child binds : CPatFldL visit 0: local cTrf : _ alternative Int: child int : {Int} visit 0: local cTrf : _ alternative Char: child char : {Char} visit 0: local cTrf : _ alternative BoolExpr: child cexpr : {CExpr} visit 0: local cTrf : _ -} -- 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 = Int -> ( CPat,([HsName]),FvS,([HsName])) sem_CPat_Var :: HsName -> T_CPat sem_CPat_Var pnm_ = (\ _lhsIlev -> (case (CPat_Var pnm_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case ([]) of { _lhsOfldNmL | _lhsOfldNmL `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case ([pnm_]) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) })) sem_CPat_Con :: CTag -> T_CPatRest -> T_CPatFldL -> T_CPat sem_CPat_Con tag_ rest_ binds_ = (\ _lhsIlev -> (case (_lhsIlev) of { _bindsOlev | _bindsOlev `seq` (True) -> (case (binds_ _bindsOlev) of { ( _bindsIcTrf,_bindsIfldNmL,_bindsIfvS,_bindsInmL) | True -> (case (_lhsIlev) of { _restOlev | _restOlev `seq` (True) -> (case (rest_ _restOlev) of { ( _restIcTrf,_restIfvS,_restInmL) | True -> (case (CPat_Con tag_ _restIcTrf _bindsIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_bindsIfldNmL) of { _lhsOfldNmL | _lhsOfldNmL `seq` (True) -> (case (_restIfvS `Set.union` _bindsIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (_restInmL ++ _bindsInmL) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) }) }) }) }) })) sem_CPat_Int :: Int -> T_CPat sem_CPat_Int int_ = (\ _lhsIlev -> (case (CPat_Int int_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case ([]) of { _lhsOfldNmL | _lhsOfldNmL `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case ([]) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) })) sem_CPat_Char :: Char -> T_CPat sem_CPat_Char char_ = (\ _lhsIlev -> (case (CPat_Char char_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case ([]) of { _lhsOfldNmL | _lhsOfldNmL `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case ([]) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) })) sem_CPat_BoolExpr :: CExpr -> T_CPat sem_CPat_BoolExpr cexpr_ = (\ _lhsIlev -> (case (CPat_BoolExpr cexpr_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case ([]) of { _lhsOfldNmL | _lhsOfldNmL `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case ([]) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) })) -- CPatFld ----------------------------------------------------- {- visit 0: inherited attribute: lev : Int synthesized attributes: cTrf : CPatFld fldNmL : [HsName] fvS : FvS nmL : [HsName] alternatives: alternative Fld: child lbl : {HsName} child offset : CExpr child bind : CBind child fldAnns : CBindAnnL visit 0: local whatAbove : {WhatExpr} local cTrf : _ local fldNm : _ -} -- 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 = Int -> ( CPatFld,([HsName]),FvS,([HsName])) sem_CPatFld_Fld :: HsName -> T_CExpr -> T_CBind -> T_CBindAnnL -> T_CPatFld sem_CPatFld_Fld lbl_ offset_ bind_ fldAnns_ = (\ _lhsIlev -> (case (_lhsIlev) of { _fldAnnsOlev | _fldAnnsOlev `seq` (True) -> (case (fldAnns_ _fldAnnsOlev) of { ( _fldAnnsIcTrf,_fldAnnsIfvS,_fldAnnsInmL) | True -> (case (_lhsIlev) of { _bindOlev | _bindOlev `seq` (True) -> (case (False) of { _bindOisGlobal | _bindOisGlobal `seq` (True) -> (case (EvalCtx_None) of { _bindOevalCtx | _bindOevalCtx `seq` (True) -> (case (acoreBindcategPlain) of { _bindOletBindingsCateg | _bindOletBindingsCateg `seq` (True) -> (case (bind_ _bindOevalCtx _bindOisGlobal _bindOletBindingsCateg _bindOlev) of { ( _bindIcTrf,_bindIfvS,_bindIfvSMp,_bindInm,_bindInmL) | True -> (case (ExprIsOther) of { _whatAbove | _whatAbove `seq` (True) -> (case (_whatAbove) of { _offsetOwhatAbove | _offsetOwhatAbove `seq` (True) -> (case (_lhsIlev) of { _offsetOlev | _offsetOlev `seq` (True) -> (case (EvalCtx_Eval) of { _offsetOevalCtx | _offsetOevalCtx `seq` (True) -> (case (True) of { _offsetOisTopTup | _offsetOisTopTup `seq` (True) -> (case (True) of { _offsetOisTopApp | _offsetOisTopApp `seq` (True) -> (case (offset_ _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOwhatAbove) of { ( _offsetIappFunKind,_offsetIcTrf,_offsetIfvS,_offsetImbApp,_offsetImbFunAppL,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) | True -> (case (CPatFld_Fld lbl_ _offsetIcTrf _bindIcTrf _fldAnnsIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_bindInm) of { _fldNm | _fldNm `seq` (True) -> (case ([_fldNm]) of { _lhsOfldNmL | _lhsOfldNmL `seq` (True) -> (case (_offsetIfvS `Set.union` _bindIfvS `Set.union` _fldAnnsIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case ([_fldNm]) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })) -- CPatFldL ---------------------------------------------------- {- visit 0: inherited attribute: lev : Int synthesized attributes: cTrf : CPatFldL fldNmL : [HsName] fvS : FvS nmL : [HsName] alternatives: alternative Cons: child hd : CPatFld child tl : CPatFldL visit 0: local cTrf : _ alternative Nil: visit 0: local cTrf : _ -} -- 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 = Int -> ( CPatFldL,([HsName]),FvS,([HsName])) sem_CPatFldL_Cons :: T_CPatFld -> T_CPatFldL -> T_CPatFldL sem_CPatFldL_Cons hd_ tl_ = (\ _lhsIlev -> (case (_lhsIlev) of { _tlOlev | _tlOlev `seq` (True) -> (case (tl_ _tlOlev) of { ( _tlIcTrf,_tlIfldNmL,_tlIfvS,_tlInmL) | True -> (case (_lhsIlev) of { _hdOlev | _hdOlev `seq` (True) -> (case (hd_ _hdOlev) of { ( _hdIcTrf,_hdIfldNmL,_hdIfvS,_hdInmL) | True -> (case ((:) _hdIcTrf _tlIcTrf) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (_hdIfldNmL ++ _tlIfldNmL) of { _lhsOfldNmL | _lhsOfldNmL `seq` (True) -> (case (_hdIfvS `Set.union` _tlIfvS) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case (_hdInmL ++ _tlInmL) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) }) }) }) }) })) sem_CPatFldL_Nil :: T_CPatFldL sem_CPatFldL_Nil = (\ _lhsIlev -> (case ([]) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case ([]) of { _lhsOfldNmL | _lhsOfldNmL `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case ([]) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) })) -- CPatRest ---------------------------------------------------- {- visit 0: inherited attribute: lev : Int synthesized attributes: cTrf : CPatRest fvS : FvS nmL : [HsName] alternatives: alternative Var: child nm : {HsName} visit 0: local cTrf : _ alternative Empty: visit 0: local cTrf : _ -} -- 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 = Int -> ( CPatRest,FvS,([HsName])) sem_CPatRest_Var :: HsName -> T_CPatRest sem_CPatRest_Var nm_ = (\ _lhsIlev -> (case (CPatRest_Var nm_) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case ([nm_]) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfvS,_lhsOnmL) }) }) }) })) sem_CPatRest_Empty :: T_CPatRest sem_CPatRest_Empty = (\ _lhsIlev -> (case (CPatRest_Empty) of { _cTrf | _cTrf `seq` (True) -> (case (_cTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> (case (Set.empty) of { _lhsOfvS | _lhsOfvS `seq` (True) -> (case ([]) of { _lhsOnmL | _lhsOnmL `seq` (True) -> ( _lhsOcTrf,_lhsOfvS,_lhsOnmL) }) }) }) })) -- CodeAGItf --------------------------------------------------- {- visit 0: synthesized attribute: cTrf : CModule alternatives: alternative AGItf: child module : CModule -} -- cata sem_CodeAGItf :: CodeAGItf -> T_CodeAGItf sem_CodeAGItf (CodeAGItf_AGItf _module) = (sem_CodeAGItf_AGItf (sem_CModule _module)) -- semantic domain type T_CodeAGItf = ( CModule) data Inh_CodeAGItf = Inh_CodeAGItf {} data Syn_CodeAGItf = Syn_CodeAGItf {cTrf_Syn_CodeAGItf :: !(CModule)} wrap_CodeAGItf :: T_CodeAGItf -> Inh_CodeAGItf -> Syn_CodeAGItf wrap_CodeAGItf sem (Inh_CodeAGItf) = (let ( _lhsOcTrf) | True = sem in (Syn_CodeAGItf _lhsOcTrf)) sem_CodeAGItf_AGItf :: T_CModule -> T_CodeAGItf sem_CodeAGItf_AGItf module_ = (case (cLevModule) of { _moduleOlev | _moduleOlev `seq` (True) -> (case (module_ _moduleOlev) of { ( _moduleIcTrf,_moduleIfvS) | True -> (case (_moduleIcTrf) of { _lhsOcTrf | _lhsOcTrf `seq` (True) -> ( _lhsOcTrf) }) }) })