module UHC.Light.Compiler.Core.Trf.FloatToGlobal(cmodTrfFloatToGlobal) where
import UHC.Util.Utils
import qualified UHC.Util.FastSeq as Seq
import UHC.Light.Compiler.Base.HsName.Builtin
import UHC.Light.Compiler.Base.Common
import UHC.Light.Compiler.Core
import UHC.Light.Compiler.Ty
import Data.Maybe
import qualified Data.Set as Set
import qualified Data.Map as Map
import Data.List (partition)
import UHC.Light.Compiler.AbstractCore
import UHC.Light.Compiler.Base.Debug
import UHC.Util.Pretty
import Debug.Trace
cmodTrfFloatToGlobal :: CModule -> CModule
cmodTrfFloatToGlobal cmod
= let t = wrap_CodeAGItf (sem_CodeAGItf (CodeAGItf_AGItf cmod))
(Inh_CodeAGItf)
in cTrf_Syn_CodeAGItf t
flatten :: Seq.FastSeq (Seq.FastSeq a) -> Seq.FastSeq a
flatten = Seq.unions . Seq.toList
move insflt@(ins,flt)
= insflt
sem_CAlt :: CAlt ->
T_CAlt
sem_CAlt (CAlt_Alt _pat _expr) =
(sem_CAlt_Alt (sem_CPat _pat) (sem_CExpr _expr))
type T_CAlt = EvalCtx ->
Int ->
( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),CAlt,FvS)
sem_CAlt_Alt :: T_CPat ->
T_CExpr ->
T_CAlt
sem_CAlt_Alt pat_ expr_ =
(\ _lhsIevalCtx
_lhsIlev ->
(case (_lhsIlev + 1) of
{ _lev | _lev `seq` (True) ->
(case (_lev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (_lev) of
{ _patOlev | _patOlev `seq` (True) ->
(case (False) of
{ _exprOisLocalInInstance | _exprOisLocalInInstance `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `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 _exprOisLocalInInstance _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIcFloatedBindGrps,_exprIcTrf,_exprIfvS,_exprIisClosurableExpr,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True ->
(case (pat_ _patOlev) of
{ ( _patIcFloatedBindGrps,_patIcTrf,_patIfldNmL,_patIfvS,_patInmL) | True ->
(case (_patIcFloatedBindGrps `Seq.union` _exprIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (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) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CAltL :: CAltL ->
T_CAltL
sem_CAltL list =
(Prelude.foldr sem_CAltL_Cons sem_CAltL_Nil (Prelude.map sem_CAlt list))
type T_CAltL = EvalCtx ->
Int ->
( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),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 (_lhsIlev) of
{ _hdOlev | _hdOlev `seq` (True) ->
(case (_lhsIevalCtx) of
{ _tlOevalCtx | _tlOevalCtx `seq` (True) ->
(case (tl_ _tlOevalCtx _tlOlev) of
{ ( _tlIcFloatedBindGrps,_tlIcTrf,_tlIfvS) | True ->
(case (_lhsIevalCtx) of
{ _hdOevalCtx | _hdOevalCtx `seq` (True) ->
(case (hd_ _hdOevalCtx _hdOlev) of
{ ( _hdIcFloatedBindGrps,_hdIcTrf,_hdIfvS) | True ->
(case (_hdIcFloatedBindGrps `Seq.union` _tlIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (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) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }) }))
sem_CAltL_Nil :: T_CAltL
sem_CAltL_Nil =
(\ _lhsIevalCtx
_lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case ([]) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Set.empty) of
{ _lhsOfvS | _lhsOfvS `seq` (True) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }))
sem_CBind :: CBind ->
T_CBind
sem_CBind (CBind_Bind _nm _bindAspects) =
(sem_CBind_Bind _nm (sem_CBoundL _bindAspects))
type T_CBind = EvalCtx ->
Bool ->
Bool ->
CBindCateg ->
Int ->
( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),(Seq.FastSeq CBind),(Seq.FastSeq CBind),(Seq.FastSeq CBind),CBind,FvS,FvSMp,HsName,([HsName]))
sem_CBind_Bind :: HsName ->
T_CBoundL ->
T_CBind
sem_CBind_Bind nm_ bindAspects_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisLocalInInstance
_lhsIletBindingsCateg
_lhsIlev ->
(case (_lhsIlev) of
{ _bindAspectsOlev | _bindAspectsOlev `seq` (True) ->
(case (_lhsIisLocalInInstance) of
{ _bindAspectsOisLocalInInstance | _bindAspectsOisLocalInInstance `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 _bindAspectsOisLocalInInstance _bindAspectsOletBindingsCateg _bindAspectsOlev _bindAspectsOnm) of
{ ( _bindAspectsIcFloatedBindGrps,_bindAspectsIcLamBinds,_bindAspectsIcLargeCAFBinds,_bindAspectsIcSmallCAFBinds,_bindAspectsIcTrf,_bindAspectsIfvS,_bindAspectsIfvSMp,_bindAspectsInmL) | True ->
(case (_bindAspectsIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (_bindAspectsIcLamBinds) of
{ _lhsOcLamBinds | _lhsOcLamBinds `seq` (True) ->
(case (_bindAspectsIcLargeCAFBinds) of
{ _lhsOcLargeCAFBinds | _lhsOcLargeCAFBinds `seq` (True) ->
(case (_bindAspectsIcSmallCAFBinds) of
{ _lhsOcSmallCAFBinds | _lhsOcSmallCAFBinds `seq` (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) ->
( _lhsOcFloatedBindGrps,_lhsOcLamBinds,_lhsOcLargeCAFBinds,_lhsOcSmallCAFBinds,_lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnm,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CBindAnn :: CBindAnn ->
T_CBindAnn
sem_CBindAnn (CBindAnn_Coe _coe) =
(sem_CBindAnn_Coe _coe)
type T_CBindAnn = Int ->
( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),CBindAnn,FvS,([HsName]))
sem_CBindAnn_Coe :: RelevCoe ->
T_CBindAnn
sem_CBindAnn_Coe coe_ =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(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) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOnmL) }) }) }) }) }))
sem_CBindAnnL :: CBindAnnL ->
T_CBindAnnL
sem_CBindAnnL list =
(Prelude.foldr sem_CBindAnnL_Cons sem_CBindAnnL_Nil (Prelude.map sem_CBindAnn list))
type T_CBindAnnL = Int ->
( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),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
{ ( _tlIcFloatedBindGrps,_tlIcTrf,_tlIfvS,_tlInmL) | True ->
(case (_lhsIlev) of
{ _hdOlev | _hdOlev `seq` (True) ->
(case (hd_ _hdOlev) of
{ ( _hdIcFloatedBindGrps,_hdIcTrf,_hdIfvS,_hdInmL) | True ->
(case (_hdIcFloatedBindGrps `Seq.union` _tlIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (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) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOnmL) }) }) }) }) }) }) }) }) }))
sem_CBindAnnL_Nil :: T_CBindAnnL
sem_CBindAnnL_Nil =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(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) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOnmL) }) }) }) }) }))
sem_CBindL :: CBindL ->
T_CBindL
sem_CBindL list =
(Prelude.foldr sem_CBindL_Cons sem_CBindL_Nil (Prelude.map sem_CBind list))
type T_CBindL = EvalCtx ->
Bool ->
Bool ->
CBindCateg ->
Int ->
( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),(Seq.FastSeq CBind),(Seq.FastSeq CBind),(Seq.FastSeq CBind),CBindL,FvS,FvSMp,([HsName]))
sem_CBindL_Cons :: T_CBind ->
T_CBindL ->
T_CBindL
sem_CBindL_Cons hd_ tl_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisLocalInInstance
_lhsIletBindingsCateg
_lhsIlev ->
(case (_lhsIlev) of
{ _tlOlev | _tlOlev `seq` (True) ->
(case (_lhsIisLocalInInstance) of
{ _tlOisLocalInInstance | _tlOisLocalInInstance `seq` (True) ->
(case (_lhsIlev) of
{ _hdOlev | _hdOlev `seq` (True) ->
(case (_lhsIisLocalInInstance) of
{ _hdOisLocalInInstance | _hdOisLocalInInstance `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 _tlOisLocalInInstance _tlOletBindingsCateg _tlOlev) of
{ ( _tlIcFloatedBindGrps,_tlIcLamBinds,_tlIcLargeCAFBinds,_tlIcSmallCAFBinds,_tlIcTrf,_tlIfvS,_tlIfvSMp,_tlInmL) | 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 _hdOisLocalInInstance _hdOletBindingsCateg _hdOlev) of
{ ( _hdIcFloatedBindGrps,_hdIcLamBinds,_hdIcLargeCAFBinds,_hdIcSmallCAFBinds,_hdIcTrf,_hdIfvS,_hdIfvSMp,_hdInm,_hdInmL) | True ->
(case (_hdIcFloatedBindGrps `Seq.union` _tlIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (_hdIcLamBinds `Seq.union` _tlIcLamBinds) of
{ _lhsOcLamBinds | _lhsOcLamBinds `seq` (True) ->
(case (_hdIcLargeCAFBinds `Seq.union` _tlIcLargeCAFBinds) of
{ _lhsOcLargeCAFBinds | _lhsOcLargeCAFBinds `seq` (True) ->
(case (_hdIcSmallCAFBinds `Seq.union` _tlIcSmallCAFBinds) of
{ _lhsOcSmallCAFBinds | _lhsOcSmallCAFBinds `seq` (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) ->
( _lhsOcFloatedBindGrps,_lhsOcLamBinds,_lhsOcLargeCAFBinds,_lhsOcSmallCAFBinds,_lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CBindL_Nil :: T_CBindL
sem_CBindL_Nil =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisLocalInInstance
_lhsIletBindingsCateg
_lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcLamBinds | _lhsOcLamBinds `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcLargeCAFBinds | _lhsOcLargeCAFBinds `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcSmallCAFBinds | _lhsOcSmallCAFBinds `seq` (True) ->
(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) ->
( _lhsOcFloatedBindGrps,_lhsOcLamBinds,_lhsOcLargeCAFBinds,_lhsOcSmallCAFBinds,_lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }))
sem_CBound :: CBound ->
T_CBound
sem_CBound (CBound_Bind _bindMeta _expr) =
(sem_CBound_Bind (sem_CMetas _bindMeta) (sem_CExpr _expr))
sem_CBound (CBound_Meta _aspectKeyS _cmetas) =
(sem_CBound_Meta _aspectKeyS (sem_CMetas _cmetas))
sem_CBound (CBound_RelevTy _aspectKeyS _relevTy) =
(sem_CBound_RelevTy _aspectKeyS _relevTy)
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)
type T_CBound = EvalCtx ->
Bool ->
Bool ->
Bool ->
Bool ->
CBindCateg ->
Int ->
HsName ->
( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),(Seq.FastSeq CBind),(Seq.FastSeq CBind),(Seq.FastSeq CBind),CBound,FvS,FvSMp,([HsName]))
sem_CBound_Bind :: T_CMetas ->
T_CExpr ->
T_CBound
sem_CBound_Bind bindMeta_ expr_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIletBindingsCateg
_lhsIlev
_lhsInm ->
(case (_lhsIlev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (_lhsIlev) of
{ _bindMetaOlev | _bindMetaOlev `seq` (True) ->
(case (bindMeta_ _bindMetaOlev) of
{ ( _bindMetaIcFloatedBindGrps,_bindMetaIcTrf,_bindMetaIfvS,_bindMetaIisInstance) | True ->
(case (_bindMetaIisInstance || _lhsIisLocalInInstance) of
{ _exprOisLocalInInstance | _exprOisLocalInInstance `seq` (True) ->
(case (ExprIsBind) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `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 _exprOisLocalInInstance _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIcFloatedBindGrps,_exprIcTrf,_exprIfvS,_exprIisClosurableExpr,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True ->
(case (_bindMetaIcFloatedBindGrps `Seq.union` _exprIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (CBound_Bind _bindMetaIcTrf _exprIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (acoreBind1Asp1 _lhsInm _cTrf) of
{ _cBindTrf | _cBindTrf `seq` (True) ->
(case (( _lhsIletBindingsCateg /= CBindCateg_Strict
&& _exprIisClosurableExpr
)) of
{ _isClosurableBind | _isClosurableBind `seq` (True) ->
(case (if isJust _exprImbLam
then ( Seq.singleton _cBindTrf
, Seq.empty
, Seq.empty
)
else if _isClosurableBind
|| _lhsIisLocalInInstance
then ( Seq.empty
, Seq.singleton _cBindTrf
, Seq.empty
)
else ( Seq.empty
, Seq.empty
, Seq.singleton _cBindTrf
)) of
{ __tup1 | __tup1 `seq` (True) ->
(case (__tup1) of
{ (_lhsOcLamBinds,_,_) | _lhsOcLamBinds `seq` (True) ->
(case (__tup1) of
{ (_,_lhsOcLargeCAFBinds,_) | _lhsOcLargeCAFBinds `seq` (True) ->
(case (__tup1) of
{ (_,_,_lhsOcSmallCAFBinds) | _lhsOcSmallCAFBinds `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (_bindMetaIfvS `Set.union` _exprIfvS) of
{ _lhsOfvS | _lhsOfvS `seq` (True) ->
(case (Map.empty) of
{ _lhsOfvSMp | _lhsOfvSMp `seq` (True) ->
(case ([]) of
{ _lhsOnmL | _lhsOnmL `seq` (True) ->
( _lhsOcFloatedBindGrps,_lhsOcLamBinds,_lhsOcLargeCAFBinds,_lhsOcSmallCAFBinds,_lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CBound_Meta :: ACoreBindAspectKeyS ->
T_CMetas ->
T_CBound
sem_CBound_Meta aspectKeyS_ cmetas_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIletBindingsCateg
_lhsIlev
_lhsInm ->
(case (_lhsIlev) of
{ _cmetasOlev | _cmetasOlev `seq` (True) ->
(case (cmetas_ _cmetasOlev) of
{ ( _cmetasIcFloatedBindGrps,_cmetasIcTrf,_cmetasIfvS,_cmetasIisInstance) | True ->
(case (_cmetasIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcLamBinds | _lhsOcLamBinds `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcLargeCAFBinds | _lhsOcLargeCAFBinds `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcSmallCAFBinds | _lhsOcSmallCAFBinds `seq` (True) ->
(case (CBound_Meta aspectKeyS_ _cmetasIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (_cmetasIfvS) of
{ _lhsOfvS | _lhsOfvS `seq` (True) ->
(case (Map.empty) of
{ _lhsOfvSMp | _lhsOfvSMp `seq` (True) ->
(case ([]) of
{ _lhsOnmL | _lhsOnmL `seq` (True) ->
( _lhsOcFloatedBindGrps,_lhsOcLamBinds,_lhsOcLargeCAFBinds,_lhsOcSmallCAFBinds,_lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }))
sem_CBound_RelevTy :: ACoreBindAspectKeyS ->
RelevTy ->
T_CBound
sem_CBound_RelevTy aspectKeyS_ relevTy_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIletBindingsCateg
_lhsIlev
_lhsInm ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcLamBinds | _lhsOcLamBinds `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcLargeCAFBinds | _lhsOcLargeCAFBinds `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcSmallCAFBinds | _lhsOcSmallCAFBinds `seq` (True) ->
(case (CBound_RelevTy aspectKeyS_ relevTy_) 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) ->
( _lhsOcFloatedBindGrps,_lhsOcLamBinds,_lhsOcLargeCAFBinds,_lhsOcSmallCAFBinds,_lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }))
sem_CBound_Val :: ACoreBindAspectKeyS ->
MetaLev ->
CLbl ->
T_CExpr ->
T_CBound
sem_CBound_Val aspectKeyS_ mlev_ lbl_ expr_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIletBindingsCateg
_lhsIlev
_lhsInm ->
(case (_lhsIlev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (_lhsIisLocalInInstance) of
{ _exprOisLocalInInstance | _exprOisLocalInInstance `seq` (True) ->
(case (ExprIsBind) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `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 _exprOisLocalInInstance _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIcFloatedBindGrps,_exprIcTrf,_exprIfvS,_exprIisClosurableExpr,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True ->
(case (_exprIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcLamBinds | _lhsOcLamBinds `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcLargeCAFBinds | _lhsOcLargeCAFBinds `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcSmallCAFBinds | _lhsOcSmallCAFBinds `seq` (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) ->
( _lhsOcFloatedBindGrps,_lhsOcLamBinds,_lhsOcLargeCAFBinds,_lhsOcSmallCAFBinds,_lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CBound_Ty :: ACoreBindAspectKeyS ->
Ty ->
T_CBound
sem_CBound_Ty aspectKeyS_ ty_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIletBindingsCateg
_lhsIlev
_lhsInm ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcLamBinds | _lhsOcLamBinds `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcLargeCAFBinds | _lhsOcLargeCAFBinds `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcSmallCAFBinds | _lhsOcSmallCAFBinds `seq` (True) ->
(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) ->
( _lhsOcFloatedBindGrps,_lhsOcLamBinds,_lhsOcLargeCAFBinds,_lhsOcSmallCAFBinds,_lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }))
sem_CBound_FFE :: FFIWay ->
ForeignEnt ->
T_CExpr ->
Ty ->
T_CBound
sem_CBound_FFE callconv_ expEnt_ expr_ ty_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIletBindingsCateg
_lhsIlev
_lhsInm ->
(case (_lhsIlev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (_lhsIisLocalInInstance) of
{ _exprOisLocalInInstance | _exprOisLocalInInstance `seq` (True) ->
(case (ExprIsLam 0) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `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 _exprOisLocalInInstance _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIcFloatedBindGrps,_exprIcTrf,_exprIfvS,_exprIisClosurableExpr,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True ->
(case (_exprIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcLamBinds | _lhsOcLamBinds `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcLargeCAFBinds | _lhsOcLargeCAFBinds `seq` (True) ->
(case (CBound_FFE callconv_ expEnt_ _exprIcTrf ty_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (Seq.singleton (acoreBind1Asp1 _lhsInm _cTrf)) of
{ _lhsOcSmallCAFBinds | _lhsOcSmallCAFBinds `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) ->
( _lhsOcFloatedBindGrps,_lhsOcLamBinds,_lhsOcLargeCAFBinds,_lhsOcSmallCAFBinds,_lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CBoundL :: CBoundL ->
T_CBoundL
sem_CBoundL list =
(Prelude.foldr sem_CBoundL_Cons sem_CBoundL_Nil (Prelude.map sem_CBound list))
type T_CBoundL = EvalCtx ->
Bool ->
Bool ->
CBindCateg ->
Int ->
HsName ->
( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),(Seq.FastSeq CBind),(Seq.FastSeq CBind),(Seq.FastSeq CBind),CBoundL,FvS,FvSMp,([HsName]))
sem_CBoundL_Cons :: T_CBound ->
T_CBoundL ->
T_CBoundL
sem_CBoundL_Cons hd_ tl_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisLocalInInstance
_lhsIletBindingsCateg
_lhsIlev
_lhsInm ->
(case (_lhsIlev) of
{ _tlOlev | _tlOlev `seq` (True) ->
(case (_lhsIisLocalInInstance) of
{ _tlOisLocalInInstance | _tlOisLocalInInstance `seq` (True) ->
(case (_lhsIlev) of
{ _hdOlev | _hdOlev `seq` (True) ->
(case (_lhsIisLocalInInstance) of
{ _hdOisLocalInInstance | _hdOisLocalInInstance `seq` (True) ->
(case (_lhsInm) of
{ _tlOnm | _tlOnm `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 _tlOisLocalInInstance _tlOletBindingsCateg _tlOlev _tlOnm) of
{ ( _tlIcFloatedBindGrps,_tlIcLamBinds,_tlIcLargeCAFBinds,_tlIcSmallCAFBinds,_tlIcTrf,_tlIfvS,_tlIfvSMp,_tlInmL) | True ->
(case (_lhsInm) of
{ _hdOnm | _hdOnm `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 _hdOisLocalInInstance _hdOisTopApp _hdOisTopTup _hdOletBindingsCateg _hdOlev _hdOnm) of
{ ( _hdIcFloatedBindGrps,_hdIcLamBinds,_hdIcLargeCAFBinds,_hdIcSmallCAFBinds,_hdIcTrf,_hdIfvS,_hdIfvSMp,_hdInmL) | True ->
(case (_hdIcFloatedBindGrps `Seq.union` _tlIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (_hdIcLamBinds `Seq.union` _tlIcLamBinds) of
{ _lhsOcLamBinds | _lhsOcLamBinds `seq` (True) ->
(case (_hdIcLargeCAFBinds `Seq.union` _tlIcLargeCAFBinds) of
{ _lhsOcLargeCAFBinds | _lhsOcLargeCAFBinds `seq` (True) ->
(case (_hdIcSmallCAFBinds `Seq.union` _tlIcSmallCAFBinds) of
{ _lhsOcSmallCAFBinds | _lhsOcSmallCAFBinds `seq` (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) ->
( _lhsOcFloatedBindGrps,_lhsOcLamBinds,_lhsOcLargeCAFBinds,_lhsOcSmallCAFBinds,_lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CBoundL_Nil :: T_CBoundL
sem_CBoundL_Nil =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisLocalInInstance
_lhsIletBindingsCateg
_lhsIlev
_lhsInm ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcLamBinds | _lhsOcLamBinds `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcLargeCAFBinds | _lhsOcLargeCAFBinds `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcSmallCAFBinds | _lhsOcSmallCAFBinds `seq` (True) ->
(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) ->
( _lhsOcFloatedBindGrps,_lhsOcLamBinds,_lhsOcLargeCAFBinds,_lhsOcSmallCAFBinds,_lhsOcTrf,_lhsOfvS,_lhsOfvSMp,_lhsOnmL) }) }) }) }) }) }) }) }) }))
sem_CDataCon :: CDataCon ->
T_CDataCon
sem_CDataCon (CDataCon_Con _conNm _tagNr _arity) =
(sem_CDataCon_Con _conNm _tagNr _arity)
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) }) })
sem_CDataConL :: CDataConL ->
T_CDataConL
sem_CDataConL list =
(Prelude.foldr sem_CDataConL_Cons sem_CDataConL_Nil (Prelude.map sem_CDataCon list))
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) }) })
sem_CDeclMeta :: CDeclMeta ->
T_CDeclMeta
sem_CDeclMeta (CDeclMeta_Data _tyNm _dataCons) =
(sem_CDeclMeta_Data _tyNm (sem_CDataConL _dataCons))
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) }) }) })
sem_CDeclMetaL :: CDeclMetaL ->
T_CDeclMetaL
sem_CDeclMetaL list =
(Prelude.foldr sem_CDeclMetaL_Cons sem_CDeclMetaL_Nil (Prelude.map sem_CDeclMeta list))
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) }) })
sem_CExport :: CExport ->
T_CExport
sem_CExport (CExport_Export _nm) =
(sem_CExport_Export _nm)
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_CExportL :: CExportL ->
T_CExportL
sem_CExportL list =
(Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
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) }) })
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))
type T_CExpr = EvalCtx ->
Bool ->
Bool ->
Bool ->
Int ->
WhatExpr ->
( AppFunKind,(Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),CExpr,FvS,Bool,(Maybe [HsName]),(Maybe HsName),WhatExpr)
sem_CExpr_Var :: ACoreBindRef ->
T_CExpr
sem_CExpr_Var ref_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_Fun ref_) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `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 (False) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Int :: Int ->
T_CExpr
sem_CExpr_Int int_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `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 (False) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Char :: Char ->
T_CExpr
sem_CExpr_Char char_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `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 (False) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_String :: String ->
T_CExpr
sem_CExpr_String str_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `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 (False) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Integer :: Integer ->
T_CExpr
sem_CExpr_Integer integer_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `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 (False) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Tup :: CTag ->
T_CExpr
sem_CExpr_Tup tag_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_Tag tag_) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `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 (False) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Let :: CBindCateg ->
T_CBindL ->
T_CExpr ->
T_CExpr
sem_CExpr_Let categ_ binds_ body_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (_lhsIlev) of
{ _bodyOlev | _bodyOlev `seq` (True) ->
(case (categ_) of
{ _letBindingsCateg | _letBindingsCateg `seq` (True) ->
(case (_letBindingsCateg) of
{ _bindsOletBindingsCateg | _bindsOletBindingsCateg `seq` (True) ->
(case (_lhsIisLocalInInstance) of
{ _bindsOisLocalInInstance | _bindsOisLocalInInstance `seq` (True) ->
(case (_lhsIlev == cLevModule) of
{ _isGlobal | _isGlobal `seq` (True) ->
(case (_lhsIlev + 1) of
{ _bindsOlev | _bindsOlev `seq` (True) ->
(case (_isGlobal) of
{ _bindsOisGlobal | _bindsOisGlobal `seq` (True) ->
(case (if categ_ == CBindCateg_Strict
then EvalCtx_Eval
else EvalCtx_Thunk) of
{ _evalCtx | _evalCtx `seq` (True) ->
(case (_evalCtx) of
{ _bindsOevalCtx | _bindsOevalCtx `seq` (True) ->
(case (binds_ _bindsOevalCtx _bindsOisGlobal _bindsOisLocalInInstance _bindsOletBindingsCateg _bindsOlev) of
{ ( _bindsIcFloatedBindGrps,_bindsIcLamBinds,_bindsIcLargeCAFBinds,_bindsIcSmallCAFBinds,_bindsIcTrf,_bindsIfvS,_bindsIfvSMp,_bindsInmL) | True ->
(case (if _isGlobal
then ( _bindsIcLargeCAFBinds `Seq.union` _bindsIcSmallCAFBinds `Seq.union` _bindsIcLamBinds
, Seq.empty
)
else if categ_ == CBindCateg_Strict
then ( _bindsIcLargeCAFBinds `Seq.union` _bindsIcSmallCAFBinds
, _bindsIcLamBinds
)
else ( _bindsIcSmallCAFBinds
, _bindsIcLamBinds `Seq.union` _bindsIcLargeCAFBinds
)) of
{ __tup2 | __tup2 `seq` (True) ->
(case (__tup2) of
{ (_,_bindingsToFloat) | _bindingsToFloat `seq` (True) ->
(case (_lhsIisLocalInInstance) of
{ _bodyOisLocalInInstance | _bodyOisLocalInInstance `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _bodyOwhatAbove | _bodyOwhatAbove `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 (_evalCtx) of
{ _bodyOevalCtx | _bodyOevalCtx `seq` (True) ->
(case (body_ _bodyOevalCtx _bodyOisLocalInInstance _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOwhatAbove) of
{ ( _bodyIappFunKind,_bodyIcFloatedBindGrps,_bodyIcTrf,_bodyIfvS,_bodyIisClosurableExpr,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) | True ->
(case (if _isGlobal
then Seq.empty
else (Seq.singleton (categ_, _bindingsToFloat ) `Seq.union` _bindsIcFloatedBindGrps `Seq.union` _bodyIcFloatedBindGrps)) of
{ _bindingGroupsToPossiblyFloat | _bindingGroupsToPossiblyFloat `seq` (True) ->
(case (__tup2) of
{ (_bindingsToKeep,_) | _bindingsToKeep `seq` (True) ->
(case (if _isGlobal
then
case categ_ of
CBindCateg_Rec -> Seq.singleton (categ_, (flatten $ Seq.map snd _bindsIcFloatedBindGrps) `Seq.union` _bindingsToKeep )
_ -> _bindsIcFloatedBindGrps `Seq.union` Seq.singleton (categ_, _bindingsToKeep )
else Seq.singleton (categ_, _bindingsToKeep )) of
{ _bindingGroupsToCertainlyInsert | _bindingGroupsToCertainlyInsert `seq` (True) ->
(case (move (_bindingGroupsToCertainlyInsert , _bindingGroupsToPossiblyFloat )) of
{ __tup3 | __tup3 `seq` (True) ->
(case (__tup3) of
{ (_,_bindingGroupsToFloat) | _bindingGroupsToFloat `seq` (True) ->
(case (if _isGlobal
then Seq.empty
else _bindingGroupsToFloat) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (__tup3) of
{ (_bindingGroupsToInsert,_) | _bindingGroupsToInsert `seq` (True) ->
(case (foldr (\(c,b) r -> acoreLet c (Seq.toList b) r) _bodyIcTrf
$ Seq.toList _bindingGroupsToInsert) 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 (True) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_App :: T_CExpr ->
T_CBound ->
T_CExpr
sem_CExpr_App func_ arg_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_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 (False) of
{ _isLocalInInstance | _isLocalInInstance `seq` (True) ->
(case (_isLocalInInstance) of
{ _funcOisLocalInInstance | _funcOisLocalInInstance `seq` (True) ->
(case (_lhsIevalCtx) of
{ _funcOevalCtx | _funcOevalCtx `seq` (True) ->
(case (False) of
{ _funcOisTopApp | _funcOisTopApp `seq` (True) ->
(case (func_ _funcOevalCtx _funcOisLocalInInstance _funcOisTopApp _funcOisTopTup _funcOlev _funcOwhatAbove) of
{ ( _funcIappFunKind,_funcIcFloatedBindGrps,_funcIcTrf,_funcIfvS,_funcIisClosurableExpr,_funcImbLam,_funcImbVar,_funcIwhatBelow) | True ->
(case (_funcIappFunKind) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (_lhsIlev) of
{ _argOlev | _argOlev `seq` (True) ->
(case (_isLocalInInstance) of
{ _argOisLocalInInstance | _argOisLocalInInstance `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 _argOisLocalInInstance _argOisTopApp _argOisTopTup _argOletBindingsCateg _argOlev _argOnm) of
{ ( _argIcFloatedBindGrps,_argIcLamBinds,_argIcLargeCAFBinds,_argIcSmallCAFBinds,_argIcTrf,_argIfvS,_argIfvSMp,_argInmL) | True ->
(case (_funcIcFloatedBindGrps `Seq.union` _argIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (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 (False) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Lam :: T_CBind ->
T_CExpr ->
T_CExpr
sem_CExpr_Lam bind_ body_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (_lhsIlev + 1) of
{ _lev | _lev `seq` (True) ->
(case (_lev) of
{ _bodyOlev | _bodyOlev `seq` (True) ->
(case (False) of
{ _isLocalInInstance | _isLocalInInstance `seq` (True) ->
(case (_isLocalInInstance) of
{ _bodyOisLocalInInstance | _bodyOisLocalInInstance `seq` (True) ->
(case (_lev) of
{ _bindOlev | _bindOlev `seq` (True) ->
(case (_isLocalInInstance) of
{ _bindOisLocalInInstance | _bindOisLocalInInstance `seq` (True) ->
(case (maybe (ExprIsLam 1) (\a -> ExprIsLam $ a + 1) $ whatExprMbLam _lhsIwhatAbove) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _bodyOwhatAbove | _bodyOwhatAbove `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 _bodyOisLocalInInstance _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOwhatAbove) of
{ ( _bodyIappFunKind,_bodyIcFloatedBindGrps,_bodyIcTrf,_bodyIfvS,_bodyIisClosurableExpr,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) | 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 _bindOisLocalInInstance _bindOletBindingsCateg _bindOlev) of
{ ( _bindIcFloatedBindGrps,_bindIcLamBinds,_bindIcLargeCAFBinds,_bindIcSmallCAFBinds,_bindIcTrf,_bindIfvS,_bindIfvSMp,_bindInm,_bindInmL) | True ->
(case (_bindIcFloatedBindGrps `Seq.union` _bodyIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (CExpr_Lam _bindIcTrf _bodyIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (_bindInm) of
{ _argNm | _argNm `seq` (True) ->
(case (_argNm `Set.delete` _bodyIfvS) of
{ _fvS | _fvS `seq` (True) ->
(case (_fvS) of
{ _lhsOfvS | _lhsOfvS `seq` (True) ->
(case (False) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `seq` (True) ->
(case (Just $ maybe [_argNm] (_argNm:) _bodyImbLam) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (maybe (ExprIsLam 1) (\a -> ExprIsLam $ a + 1) $ whatExprMbLam _bodyIwhatBelow) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Case :: T_CExpr ->
T_CAltL ->
T_CExpr ->
T_CExpr
sem_CExpr_Case expr_ alts_ dflt_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (_lhsIlev) of
{ _dfltOlev | _dfltOlev `seq` (True) ->
(case (False) of
{ _isLocalInInstance | _isLocalInInstance `seq` (True) ->
(case (_isLocalInInstance) of
{ _dfltOisLocalInInstance | _dfltOisLocalInInstance `seq` (True) ->
(case (_lhsIlev) of
{ _altsOlev | _altsOlev `seq` (True) ->
(case (_lhsIlev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (_isLocalInInstance) of
{ _exprOisLocalInInstance | _exprOisLocalInInstance `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _dfltOwhatAbove | _dfltOwhatAbove `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 _dfltOisLocalInInstance _dfltOisTopApp _dfltOisTopTup _dfltOlev _dfltOwhatAbove) of
{ ( _dfltIappFunKind,_dfltIcFloatedBindGrps,_dfltIcTrf,_dfltIfvS,_dfltIisClosurableExpr,_dfltImbLam,_dfltImbVar,_dfltIwhatBelow) | True ->
(case (_lhsIevalCtx) of
{ _altsOevalCtx | _altsOevalCtx `seq` (True) ->
(case (alts_ _altsOevalCtx _altsOlev) of
{ ( _altsIcFloatedBindGrps,_altsIcTrf,_altsIfvS) | True ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `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 _exprOisLocalInInstance _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIcFloatedBindGrps,_exprIcTrf,_exprIfvS,_exprIisClosurableExpr,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True ->
(case (_exprIcFloatedBindGrps `Seq.union` _altsIcFloatedBindGrps `Seq.union` _dfltIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (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 (True) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_CaseAltFail :: CaseAltFailReason ->
T_CExpr ->
T_CExpr
sem_CExpr_CaseAltFail failReason_ errorExpr_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_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 (False) of
{ _isLocalInInstance | _isLocalInInstance `seq` (True) ->
(case (_isLocalInInstance) of
{ _errorExprOisLocalInInstance | _errorExprOisLocalInInstance `seq` (True) ->
(case (_lhsIevalCtx) of
{ _errorExprOevalCtx | _errorExprOevalCtx `seq` (True) ->
(case (errorExpr_ _errorExprOevalCtx _errorExprOisLocalInInstance _errorExprOisTopApp _errorExprOisTopTup _errorExprOlev _errorExprOwhatAbove) of
{ ( _errorExprIappFunKind,_errorExprIcFloatedBindGrps,_errorExprIcTrf,_errorExprIfvS,_errorExprIisClosurableExpr,_errorExprImbLam,_errorExprImbVar,_errorExprIwhatBelow) | True ->
(case (_errorExprIappFunKind) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (_errorExprIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `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 (False) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `seq` (True) ->
(case (_errorExprImbLam) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (_errorExprImbVar) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (_errorExprIwhatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_TupDel :: T_CExpr ->
CTag ->
HsName ->
T_CExpr ->
T_CExpr
sem_CExpr_TupDel expr_ tag_ nm_ offset_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (_lhsIlev) of
{ _offsetOlev | _offsetOlev `seq` (True) ->
(case (False) of
{ _isLocalInInstance | _isLocalInInstance `seq` (True) ->
(case (_isLocalInInstance) of
{ _offsetOisLocalInInstance | _offsetOisLocalInInstance `seq` (True) ->
(case (_lhsIlev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (_isLocalInInstance) of
{ _exprOisLocalInInstance | _exprOisLocalInInstance `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _offsetOwhatAbove | _offsetOwhatAbove `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 _offsetOisLocalInInstance _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOwhatAbove) of
{ ( _offsetIappFunKind,_offsetIcFloatedBindGrps,_offsetIcTrf,_offsetIfvS,_offsetIisClosurableExpr,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) | True ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `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 _exprOisLocalInInstance _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIcFloatedBindGrps,_exprIcTrf,_exprIfvS,_exprIisClosurableExpr,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True ->
(case (_exprIcFloatedBindGrps `Seq.union` _offsetIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (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 (True) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_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
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (_lhsIlev) of
{ _fldExprOlev | _fldExprOlev `seq` (True) ->
(case (False) of
{ _isLocalInInstance | _isLocalInInstance `seq` (True) ->
(case (_isLocalInInstance) of
{ _fldExprOisLocalInInstance | _fldExprOisLocalInInstance `seq` (True) ->
(case (_lhsIlev) of
{ _offsetOlev | _offsetOlev `seq` (True) ->
(case (_isLocalInInstance) of
{ _offsetOisLocalInInstance | _offsetOisLocalInInstance `seq` (True) ->
(case (_lhsIlev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (_isLocalInInstance) of
{ _exprOisLocalInInstance | _exprOisLocalInInstance `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _fldExprOwhatAbove | _fldExprOwhatAbove `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 _fldExprOisLocalInInstance _fldExprOisTopApp _fldExprOisTopTup _fldExprOlev _fldExprOwhatAbove) of
{ ( _fldExprIappFunKind,_fldExprIcFloatedBindGrps,_fldExprIcTrf,_fldExprIfvS,_fldExprIisClosurableExpr,_fldExprImbLam,_fldExprImbVar,_fldExprIwhatBelow) | True ->
(case (_whatAbove) of
{ _offsetOwhatAbove | _offsetOwhatAbove `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 _offsetOisLocalInInstance _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOwhatAbove) of
{ ( _offsetIappFunKind,_offsetIcFloatedBindGrps,_offsetIcTrf,_offsetIfvS,_offsetIisClosurableExpr,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) | True ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `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 _exprOisLocalInInstance _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIcFloatedBindGrps,_exprIcTrf,_exprIfvS,_exprIisClosurableExpr,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True ->
(case (_exprIcFloatedBindGrps `Seq.union` _offsetIcFloatedBindGrps `Seq.union` _fldExprIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (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 (True) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_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
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (_lhsIlev) of
{ _fldExprOlev | _fldExprOlev `seq` (True) ->
(case (False) of
{ _isLocalInInstance | _isLocalInInstance `seq` (True) ->
(case (_isLocalInInstance) of
{ _fldExprOisLocalInInstance | _fldExprOisLocalInInstance `seq` (True) ->
(case (_lhsIlev) of
{ _offsetOlev | _offsetOlev `seq` (True) ->
(case (_isLocalInInstance) of
{ _offsetOisLocalInInstance | _offsetOisLocalInInstance `seq` (True) ->
(case (_lhsIlev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (_isLocalInInstance) of
{ _exprOisLocalInInstance | _exprOisLocalInInstance `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _fldExprOwhatAbove | _fldExprOwhatAbove `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 _fldExprOisLocalInInstance _fldExprOisTopApp _fldExprOisTopTup _fldExprOlev _fldExprOwhatAbove) of
{ ( _fldExprIappFunKind,_fldExprIcFloatedBindGrps,_fldExprIcTrf,_fldExprIfvS,_fldExprIisClosurableExpr,_fldExprImbLam,_fldExprImbVar,_fldExprIwhatBelow) | True ->
(case (_whatAbove) of
{ _offsetOwhatAbove | _offsetOwhatAbove `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 _offsetOisLocalInInstance _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOwhatAbove) of
{ ( _offsetIappFunKind,_offsetIcFloatedBindGrps,_offsetIcTrf,_offsetIfvS,_offsetIisClosurableExpr,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) | True ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `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 _exprOisLocalInInstance _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIcFloatedBindGrps,_exprIcTrf,_exprIfvS,_exprIisClosurableExpr,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True ->
(case (_exprIcFloatedBindGrps `Seq.union` _offsetIcFloatedBindGrps `Seq.union` _fldExprIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (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 (True) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_FFI :: FFIWay ->
String ->
ForeignEnt ->
Ty ->
T_CExpr
sem_CExpr_FFI callconv_ safety_ impEnt_ ty_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_FFI) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `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 (False) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Dbg :: String ->
T_CExpr
sem_CExpr_Dbg info_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `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 (False) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Hole :: UID ->
T_CExpr
sem_CExpr_Hole uid_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `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 (False) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_HoleLet :: UID ->
T_CExpr ->
T_CExpr
sem_CExpr_HoleLet bindsUid_ body_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (_lhsIlev) of
{ _bodyOlev | _bodyOlev `seq` (True) ->
(case (False) of
{ _isLocalInInstance | _isLocalInInstance `seq` (True) ->
(case (_isLocalInInstance) of
{ _bodyOisLocalInInstance | _bodyOisLocalInInstance `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _bodyOwhatAbove | _bodyOwhatAbove `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 _bodyOisLocalInInstance _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOwhatAbove) of
{ ( _bodyIappFunKind,_bodyIcFloatedBindGrps,_bodyIcTrf,_bodyIfvS,_bodyIisClosurableExpr,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) | True ->
(case (_bodyIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (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 (False) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_CoeArg :: T_CExpr
sem_CExpr_CoeArg =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `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 (False) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_ImplsApp :: T_CExpr ->
ImplsVarId ->
T_CExpr
sem_CExpr_ImplsApp func_ uid_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (_lhsIlev) of
{ _funcOlev | _funcOlev `seq` (True) ->
(case (False) of
{ _isLocalInInstance | _isLocalInInstance `seq` (True) ->
(case (_isLocalInInstance) of
{ _funcOisLocalInInstance | _funcOisLocalInInstance `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _funcOwhatAbove | _funcOwhatAbove `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 _funcOisLocalInInstance _funcOisTopApp _funcOisTopTup _funcOlev _funcOwhatAbove) of
{ ( _funcIappFunKind,_funcIcFloatedBindGrps,_funcIcTrf,_funcIfvS,_funcIisClosurableExpr,_funcImbLam,_funcImbVar,_funcIwhatBelow) | True ->
(case (_funcIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (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 (False) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_ImplsLam :: ImplsVarId ->
T_CExpr ->
T_CExpr
sem_CExpr_ImplsLam uid_ body_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (_lhsIlev) of
{ _bodyOlev | _bodyOlev `seq` (True) ->
(case (False) of
{ _isLocalInInstance | _isLocalInInstance `seq` (True) ->
(case (_isLocalInInstance) of
{ _bodyOisLocalInInstance | _bodyOisLocalInInstance `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _bodyOwhatAbove | _bodyOwhatAbove `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 _bodyOisLocalInInstance _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOwhatAbove) of
{ ( _bodyIappFunKind,_bodyIcFloatedBindGrps,_bodyIcTrf,_bodyIfvS,_bodyIisClosurableExpr,_bodyImbLam,_bodyImbVar,_bodyIwhatBelow) | True ->
(case (_bodyIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (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 (False) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `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,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Ann :: T_CExprAnn ->
T_CExpr ->
T_CExpr
sem_CExpr_Ann ann_ expr_ =
(\ _lhsIevalCtx
_lhsIisLocalInInstance
_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 (False) of
{ _isLocalInInstance | _isLocalInInstance `seq` (True) ->
(case (_isLocalInInstance) of
{ _exprOisLocalInInstance | _exprOisLocalInInstance `seq` (True) ->
(case (_lhsIevalCtx) of
{ _exprOevalCtx | _exprOevalCtx `seq` (True) ->
(case (expr_ _exprOevalCtx _exprOisLocalInInstance _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIcFloatedBindGrps,_exprIcTrf,_exprIfvS,_exprIisClosurableExpr,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True ->
(case (_exprIappFunKind) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (_lhsIlev) of
{ _annOlev | _annOlev `seq` (True) ->
(case (ann_ _annOlev) of
{ ( _annIcFloatedBindGrps,_annIcTrf,_annIfvS) | True ->
(case (_annIcFloatedBindGrps `Seq.union` _exprIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (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 (_exprIisClosurableExpr) of
{ _lhsOisClosurableExpr | _lhsOisClosurableExpr `seq` (True) ->
(case (_exprImbLam) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (_exprImbVar) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (_exprIwhatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisClosurableExpr,_lhsOmbLam,_lhsOmbVar,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExprAnn :: CExprAnn ->
T_CExprAnn
sem_CExprAnn (CExprAnn_Ty _ty) =
(sem_CExprAnn_Ty _ty)
sem_CExprAnn (CExprAnn_Coe _coe) =
(sem_CExprAnn_Coe _coe)
sem_CExprAnn (CExprAnn_Debug _info) =
(sem_CExprAnn_Debug _info)
type T_CExprAnn = Int ->
( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),CExprAnn,FvS)
sem_CExprAnn_Ty :: Ty ->
T_CExprAnn
sem_CExprAnn_Ty ty_ =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (CExprAnn_Ty ty_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Set.empty) of
{ _lhsOfvS | _lhsOfvS `seq` (True) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }))
sem_CExprAnn_Coe :: RelevCoe ->
T_CExprAnn
sem_CExprAnn_Coe coe_ =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (CExprAnn_Coe coe_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Set.empty) of
{ _lhsOfvS | _lhsOfvS `seq` (True) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }))
sem_CExprAnn_Debug :: String ->
T_CExprAnn
sem_CExprAnn_Debug info_ =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (CExprAnn_Debug info_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Set.empty) of
{ _lhsOfvS | _lhsOfvS `seq` (True) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }))
sem_CImport :: CImport ->
T_CImport
sem_CImport (CImport_Import _nm) =
(sem_CImport_Import _nm)
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) }) })
sem_CImportL :: CImportL ->
T_CImportL
sem_CImportL list =
(Prelude.foldr sem_CImportL_Cons sem_CImportL_Nil (Prelude.map sem_CImport list))
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) }) })
sem_CMetaBind :: CMetaBind ->
T_CMetaBind
sem_CMetaBind (CMetaBind_Plain) =
(sem_CMetaBind_Plain)
sem_CMetaBind (CMetaBind_Function0) =
(sem_CMetaBind_Function0)
sem_CMetaBind (CMetaBind_Function1) =
(sem_CMetaBind_Function1)
sem_CMetaBind (CMetaBind_Apply0) =
(sem_CMetaBind_Apply0)
type T_CMetaBind = Int ->
( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),CMetaBind,FvS)
sem_CMetaBind_Plain :: T_CMetaBind
sem_CMetaBind_Plain =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (CMetaBind_Plain) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Set.empty) of
{ _lhsOfvS | _lhsOfvS `seq` (True) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }))
sem_CMetaBind_Function0 :: T_CMetaBind
sem_CMetaBind_Function0 =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (CMetaBind_Function0) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Set.empty) of
{ _lhsOfvS | _lhsOfvS `seq` (True) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }))
sem_CMetaBind_Function1 :: T_CMetaBind
sem_CMetaBind_Function1 =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (CMetaBind_Function1) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Set.empty) of
{ _lhsOfvS | _lhsOfvS `seq` (True) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }))
sem_CMetaBind_Apply0 :: T_CMetaBind
sem_CMetaBind_Apply0 =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (CMetaBind_Apply0) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Set.empty) of
{ _lhsOfvS | _lhsOfvS `seq` (True) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }))
sem_CMetaVal :: CMetaVal ->
T_CMetaVal
sem_CMetaVal (CMetaVal_Val) =
(sem_CMetaVal_Val)
sem_CMetaVal (CMetaVal_Dict) =
(sem_CMetaVal_Dict)
sem_CMetaVal (CMetaVal_DictClass _tracks) =
(sem_CMetaVal_DictClass _tracks)
sem_CMetaVal (CMetaVal_DictInstance _tracks) =
(sem_CMetaVal_DictInstance _tracks)
sem_CMetaVal (CMetaVal_Track _track) =
(sem_CMetaVal_Track _track)
type T_CMetaVal = Int ->
( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),CMetaVal,FvS,Bool)
sem_CMetaVal_Val :: T_CMetaVal
sem_CMetaVal_Val =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (CMetaVal_Val) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Set.empty) of
{ _lhsOfvS | _lhsOfvS `seq` (True) ->
(case (False) of
{ _lhsOisInstance | _lhsOisInstance `seq` (True) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisInstance) }) }) }) }) }))
sem_CMetaVal_Dict :: T_CMetaVal
sem_CMetaVal_Dict =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (CMetaVal_Dict) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Set.empty) of
{ _lhsOfvS | _lhsOfvS `seq` (True) ->
(case (False) of
{ _lhsOisInstance | _lhsOisInstance `seq` (True) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisInstance) }) }) }) }) }))
sem_CMetaVal_DictClass :: ([Track]) ->
T_CMetaVal
sem_CMetaVal_DictClass tracks_ =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (CMetaVal_DictClass tracks_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Set.empty) of
{ _lhsOfvS | _lhsOfvS `seq` (True) ->
(case (False) of
{ _lhsOisInstance | _lhsOisInstance `seq` (True) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisInstance) }) }) }) }) }))
sem_CMetaVal_DictInstance :: ([Track]) ->
T_CMetaVal
sem_CMetaVal_DictInstance tracks_ =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (CMetaVal_DictInstance tracks_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Set.empty) of
{ _lhsOfvS | _lhsOfvS `seq` (True) ->
(case (True) of
{ _lhsOisInstance | _lhsOisInstance `seq` (True) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisInstance) }) }) }) }) }))
sem_CMetaVal_Track :: Track ->
T_CMetaVal
sem_CMetaVal_Track track_ =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case (CMetaVal_Track track_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Set.empty) of
{ _lhsOfvS | _lhsOfvS `seq` (True) ->
(case (False) of
{ _lhsOisInstance | _lhsOisInstance `seq` (True) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisInstance) }) }) }) }) }))
sem_CMetas :: CMetas ->
T_CMetas
sem_CMetas ( x1,x2) =
(sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
type T_CMetas = Int ->
( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),CMetas,FvS,Bool)
sem_CMetas_Tuple :: T_CMetaBind ->
T_CMetaVal ->
T_CMetas
sem_CMetas_Tuple x1_ x2_ =
(\ _lhsIlev ->
(case (_lhsIlev) of
{ _x2Olev | _x2Olev `seq` (True) ->
(case (x2_ _x2Olev) of
{ ( _x2IcFloatedBindGrps,_x2IcTrf,_x2IfvS,_x2IisInstance) | True ->
(case (_lhsIlev) of
{ _x1Olev | _x1Olev `seq` (True) ->
(case (x1_ _x1Olev) of
{ ( _x1IcFloatedBindGrps,_x1IcTrf,_x1IfvS) | True ->
(case (_x1IcFloatedBindGrps `Seq.union` _x2IcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(case ((_x1IcTrf,_x2IcTrf)) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (_x1IfvS `Set.union` _x2IfvS) of
{ _lhsOfvS | _lhsOfvS `seq` (True) ->
(case (_x2IisInstance) of
{ _lhsOisInstance | _lhsOisInstance `seq` (True) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOisInstance) }) }) }) }) }) }) }) }) }))
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))
type T_CModule = Int ->
( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),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 (_lhsIlev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (False) of
{ _exprOisLocalInInstance | _exprOisLocalInInstance `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `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 _exprOisLocalInInstance _exprOisTopApp _exprOisTopTup _exprOlev _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIcFloatedBindGrps,_exprIcTrf,_exprIfvS,_exprIisClosurableExpr,_exprImbLam,_exprImbVar,_exprIwhatBelow) | True ->
(case (_exprIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (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) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
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)
type T_CPat = Int ->
( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),CPat,([HsName]),FvS,([HsName]))
sem_CPat_Var :: HsName ->
T_CPat
sem_CPat_Var pnm_ =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(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) ->
( _lhsOcFloatedBindGrps,_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
{ ( _bindsIcFloatedBindGrps,_bindsIcTrf,_bindsIfldNmL,_bindsIfvS,_bindsInmL) | True ->
(case (_lhsIlev) of
{ _restOlev | _restOlev `seq` (True) ->
(case (rest_ _restOlev) of
{ ( _restIcFloatedBindGrps,_restIcTrf,_restIfvS,_restInmL) | True ->
(case (_restIcFloatedBindGrps `Seq.union` _bindsIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (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) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) }) }) }) }) }) }))
sem_CPat_Int :: Int ->
T_CPat
sem_CPat_Int int_ =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(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) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) }) }))
sem_CPat_Char :: Char ->
T_CPat
sem_CPat_Char char_ =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(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) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) }) }))
sem_CPat_BoolExpr :: CExpr ->
T_CPat
sem_CPat_BoolExpr cexpr_ =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(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) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) }) }))
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))
type T_CPatFld = Int ->
( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),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
{ _bindOlev | _bindOlev `seq` (True) ->
(case (_lhsIlev) of
{ _offsetOlev | _offsetOlev `seq` (True) ->
(case (False) of
{ _bindOisLocalInInstance | _bindOisLocalInInstance `seq` (True) ->
(case (False) of
{ _offsetOisLocalInInstance | _offsetOisLocalInInstance `seq` (True) ->
(case (_lhsIlev) of
{ _fldAnnsOlev | _fldAnnsOlev `seq` (True) ->
(case (fldAnns_ _fldAnnsOlev) of
{ ( _fldAnnsIcFloatedBindGrps,_fldAnnsIcTrf,_fldAnnsIfvS,_fldAnnsInmL) | 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 _bindOisLocalInInstance _bindOletBindingsCateg _bindOlev) of
{ ( _bindIcFloatedBindGrps,_bindIcLamBinds,_bindIcLargeCAFBinds,_bindIcSmallCAFBinds,_bindIcTrf,_bindIfvS,_bindIfvSMp,_bindInm,_bindInmL) | True ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _offsetOwhatAbove | _offsetOwhatAbove `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 _offsetOisLocalInInstance _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOwhatAbove) of
{ ( _offsetIappFunKind,_offsetIcFloatedBindGrps,_offsetIcTrf,_offsetIfvS,_offsetIisClosurableExpr,_offsetImbLam,_offsetImbVar,_offsetIwhatBelow) | True ->
(case (_offsetIcFloatedBindGrps `Seq.union` _bindIcFloatedBindGrps `Seq.union` _fldAnnsIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (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) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CPatFldL :: CPatFldL ->
T_CPatFldL
sem_CPatFldL list =
(Prelude.foldr sem_CPatFldL_Cons sem_CPatFldL_Nil (Prelude.map sem_CPatFld list))
type T_CPatFldL = Int ->
( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),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 (_lhsIlev) of
{ _hdOlev | _hdOlev `seq` (True) ->
(case (tl_ _tlOlev) of
{ ( _tlIcFloatedBindGrps,_tlIcTrf,_tlIfldNmL,_tlIfvS,_tlInmL) | True ->
(case (hd_ _hdOlev) of
{ ( _hdIcFloatedBindGrps,_hdIcTrf,_hdIfldNmL,_hdIfvS,_hdInmL) | True ->
(case (_hdIcFloatedBindGrps `Seq.union` _tlIcFloatedBindGrps) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (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) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) }) }) }) }) }) }))
sem_CPatFldL_Nil :: T_CPatFldL
sem_CPatFldL_Nil =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(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) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOnmL) }) }) }) }) }) }))
sem_CPatRest :: CPatRest ->
T_CPatRest
sem_CPatRest (CPatRest_Var _nm) =
(sem_CPatRest_Var _nm)
sem_CPatRest (CPatRest_Empty) =
(sem_CPatRest_Empty)
type T_CPatRest = Int ->
( (Seq.FastSeq (CBindCateg,Seq.FastSeq CBind)),CPatRest,FvS,([HsName]))
sem_CPatRest_Var :: HsName ->
T_CPatRest
sem_CPatRest_Var nm_ =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(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) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOnmL) }) }) }) }) }))
sem_CPatRest_Empty :: T_CPatRest
sem_CPatRest_Empty =
(\ _lhsIlev ->
(case (Seq.empty) of
{ _lhsOcFloatedBindGrps | _lhsOcFloatedBindGrps `seq` (True) ->
(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) ->
( _lhsOcFloatedBindGrps,_lhsOcTrf,_lhsOfvS,_lhsOnmL) }) }) }) }) }))
sem_CodeAGItf :: CodeAGItf ->
T_CodeAGItf
sem_CodeAGItf (CodeAGItf_AGItf _module) =
(sem_CodeAGItf_AGItf (sem_CModule _module))
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
{ ( _moduleIcFloatedBindGrps,_moduleIcTrf,_moduleIfvS) | True ->
(case (_moduleIcTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }) })