module UHC.Light.Compiler.Core.Trf.AnnBasedSimplify(cmodTrfAnnBasedSimplify) where
import UHC.Light.Compiler.Base.HsName.Builtin
import UHC.Light.Compiler.Base.Common
import UHC.Light.Compiler.CodeGen.Bits
import UHC.Light.Compiler.Opts
import UHC.Light.Compiler.Core
import UHC.Light.Compiler.Ty
import Data.Maybe
import qualified Data.Set as Set
import UHC.Light.Compiler.AbstractCore
cmodTrfAnnBasedSimplify :: EHCOpts -> CModule -> CModule
cmodTrfAnnBasedSimplify opts cmod
= let t = wrap_CodeAGItf (sem_CodeAGItf (CodeAGItf_AGItf cmod))
(Inh_CodeAGItf
{ opts_Inh_CodeAGItf = opts
})
in cTrf_Syn_CodeAGItf t
data Prop
= Prop_None
| Prop_HasTy Ty
| Prop_IsTyInt
| Prop_IsTyInteger
| Prop_IsInteger CExpr
| Prop_IsIntegerConst Integer
| Prop_IsIntConst Int
type PropS = Set.Set Prop
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 ->
EHCOpts ->
Prop ->
( CAlt,(Maybe CTag))
sem_CAlt_Alt :: T_CPat ->
T_CExpr ->
T_CAlt
sem_CAlt_Alt pat_ expr_ =
(\ _lhsIevalCtx
_lhsIlev
_lhsIopts
_lhsIpropDown ->
(case (_lhsIpropDown) of
{ _exprOpropDown | _exprOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _exprOopts | _exprOopts `seq` (True) ->
(case (_lhsIopts) of
{ _patOopts | _patOopts `seq` (True) ->
(case (True) of
{ _exprOisTopApp | _exprOisTopApp `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `seq` (True) ->
(case (_lhsIlev + 1) of
{ _lev | _lev `seq` (True) ->
(case (_lev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (_lhsIevalCtx) of
{ _exprOevalCtx | _exprOevalCtx `seq` (True) ->
(case (True) of
{ _exprOisTopTup | _exprOisTopTup `seq` (True) ->
(case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOpropDown _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIpropUp,_exprIpropUpL,_exprIwhatBelow) | True ->
(case (_lev) of
{ _patOlev | _patOlev `seq` (True) ->
(case (pat_ _patOlev _patOopts) of
{ ( _patIcTrf,_patIfldNmL,_patImbCTag) | True ->
(case (CAlt_Alt _patIcTrf _exprIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (_patImbCTag) of
{ _lhsOmbCTag | _lhsOmbCTag `seq` (True) ->
( _lhsOcTrf,_lhsOmbCTag) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
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 ->
EHCOpts ->
Prop ->
( CAltL)
sem_CAltL_Cons :: T_CAlt ->
T_CAltL ->
T_CAltL
sem_CAltL_Cons hd_ tl_ =
(\ _lhsIevalCtx
_lhsIlev
_lhsIopts
_lhsIpropDown ->
(case (_lhsIpropDown) of
{ _tlOpropDown | _tlOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _tlOopts | _tlOopts `seq` (True) ->
(case (_lhsIpropDown) of
{ _hdOpropDown | _hdOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _hdOopts | _hdOopts `seq` (True) ->
(case (_lhsIlev) of
{ _tlOlev | _tlOlev `seq` (True) ->
(case (_lhsIevalCtx) of
{ _tlOevalCtx | _tlOevalCtx `seq` (True) ->
(case (tl_ _tlOevalCtx _tlOlev _tlOopts _tlOpropDown) of
{ ( _tlIcTrf) | True ->
(case (_lhsIlev) of
{ _hdOlev | _hdOlev `seq` (True) ->
(case (_lhsIevalCtx) of
{ _hdOevalCtx | _hdOevalCtx `seq` (True) ->
(case (hd_ _hdOevalCtx _hdOlev _hdOopts _hdOpropDown) of
{ ( _hdIcTrf,_hdImbCTag) | True ->
(case ((:) _hdIcTrf _tlIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CAltL_Nil :: T_CAltL
sem_CAltL_Nil =
(\ _lhsIevalCtx
_lhsIlev
_lhsIopts
_lhsIpropDown ->
(case ([]) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }))
sem_CBind :: CBind ->
T_CBind
sem_CBind (CBind_Bind _nm _bindAspects) =
(sem_CBind_Bind _nm (sem_CBoundL _bindAspects))
type T_CBind = EvalCtx ->
Bool ->
CBindCateg ->
Int ->
EHCOpts ->
( CBind,HsName)
sem_CBind_Bind :: HsName ->
T_CBoundL ->
T_CBind
sem_CBind_Bind nm_ bindAspects_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIletBindingsCateg
_lhsIlev
_lhsIopts ->
(case (_lhsIopts) of
{ _bindAspectsOopts | _bindAspectsOopts `seq` (True) ->
(case (_lhsIlev) of
{ _bindAspectsOlev | _bindAspectsOlev `seq` (True) ->
(case (_lhsIletBindingsCateg) of
{ _bindAspectsOletBindingsCateg | _bindAspectsOletBindingsCateg `seq` (True) ->
(case (_lhsIisGlobal) of
{ _bindAspectsOisGlobal | _bindAspectsOisGlobal `seq` (True) ->
(case (_lhsIevalCtx) of
{ _bindAspectsOevalCtx | _bindAspectsOevalCtx `seq` (True) ->
(case (nm_) of
{ _bindAspectsOnm | _bindAspectsOnm `seq` (True) ->
(case (bindAspects_ _bindAspectsOevalCtx _bindAspectsOisGlobal _bindAspectsOletBindingsCateg _bindAspectsOlev _bindAspectsOnm _bindAspectsOopts) of
{ ( _bindAspectsIcTrf) | True ->
(case (CBind_Bind nm_ _bindAspectsIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (nm_) of
{ _lhsOnm | _lhsOnm `seq` (True) ->
( _lhsOcTrf,_lhsOnm) }) }) }) }) }) }) }) }) }) }))
sem_CBindAnn :: CBindAnn ->
T_CBindAnn
sem_CBindAnn (CBindAnn_Coe _coe) =
(sem_CBindAnn_Coe _coe)
type T_CBindAnn = Int ->
EHCOpts ->
( CBindAnn)
sem_CBindAnn_Coe :: (()) ->
T_CBindAnn
sem_CBindAnn_Coe coe_ =
(\ _lhsIlev
_lhsIopts ->
(case (CBindAnn_Coe coe_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }))
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 ->
EHCOpts ->
( CBindAnnL)
sem_CBindAnnL_Cons :: T_CBindAnn ->
T_CBindAnnL ->
T_CBindAnnL
sem_CBindAnnL_Cons hd_ tl_ =
(\ _lhsIlev
_lhsIopts ->
(case (_lhsIopts) of
{ _tlOopts | _tlOopts `seq` (True) ->
(case (_lhsIlev) of
{ _tlOlev | _tlOlev `seq` (True) ->
(case (tl_ _tlOlev _tlOopts) of
{ ( _tlIcTrf) | True ->
(case (_lhsIopts) of
{ _hdOopts | _hdOopts `seq` (True) ->
(case (_lhsIlev) of
{ _hdOlev | _hdOlev `seq` (True) ->
(case (hd_ _hdOlev _hdOopts) of
{ ( _hdIcTrf) | True ->
(case ((:) _hdIcTrf _tlIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }) }) }) }) }) }) }))
sem_CBindAnnL_Nil :: T_CBindAnnL
sem_CBindAnnL_Nil =
(\ _lhsIlev
_lhsIopts ->
(case ([]) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }))
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 ->
CBindCateg ->
Int ->
EHCOpts ->
( CBindL)
sem_CBindL_Cons :: T_CBind ->
T_CBindL ->
T_CBindL
sem_CBindL_Cons hd_ tl_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIletBindingsCateg
_lhsIlev
_lhsIopts ->
(case (_lhsIopts) of
{ _tlOopts | _tlOopts `seq` (True) ->
(case (_lhsIopts) of
{ _hdOopts | _hdOopts `seq` (True) ->
(case (_lhsIlev) of
{ _tlOlev | _tlOlev `seq` (True) ->
(case (_lhsIletBindingsCateg) of
{ _tlOletBindingsCateg | _tlOletBindingsCateg `seq` (True) ->
(case (_lhsIisGlobal) of
{ _tlOisGlobal | _tlOisGlobal `seq` (True) ->
(case (_lhsIevalCtx) of
{ _tlOevalCtx | _tlOevalCtx `seq` (True) ->
(case (tl_ _tlOevalCtx _tlOisGlobal _tlOletBindingsCateg _tlOlev _tlOopts) of
{ ( _tlIcTrf) | True ->
(case (_lhsIlev) of
{ _hdOlev | _hdOlev `seq` (True) ->
(case (_lhsIletBindingsCateg) of
{ _hdOletBindingsCateg | _hdOletBindingsCateg `seq` (True) ->
(case (_lhsIisGlobal) of
{ _hdOisGlobal | _hdOisGlobal `seq` (True) ->
(case (_lhsIevalCtx) of
{ _hdOevalCtx | _hdOevalCtx `seq` (True) ->
(case (hd_ _hdOevalCtx _hdOisGlobal _hdOletBindingsCateg _hdOlev _hdOopts) of
{ ( _hdIcTrf,_hdInm) | True ->
(case ((:) _hdIcTrf _tlIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CBindL_Nil :: T_CBindL
sem_CBindL_Nil =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIletBindingsCateg
_lhsIlev
_lhsIopts ->
(case ([]) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }))
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_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 ->
CBindCateg ->
Int ->
HsName ->
EHCOpts ->
Prop ->
( CBound,Prop)
sem_CBound_Bind :: T_CMetas ->
T_CExpr ->
T_CBound
sem_CBound_Bind bindMeta_ expr_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisTopApp
_lhsIisTopTup
_lhsIletBindingsCateg
_lhsIlev
_lhsInm
_lhsIopts
_lhsIpropDown ->
(case (Prop_None) of
{ _propDown | _propDown `seq` (True) ->
(case (_propDown) of
{ _exprOpropDown | _exprOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _exprOopts | _exprOopts `seq` (True) ->
(case (True) of
{ _exprOisTopApp | _exprOisTopApp `seq` (True) ->
(case (ExprIsBind _lhsInm) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (_lhsIevalCtx) of
{ _exprOevalCtx | _exprOevalCtx `seq` (True) ->
(case (True) of
{ _exprOisTopTup | _exprOisTopTup `seq` (True) ->
(case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOpropDown _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIpropUp,_exprIpropUpL,_exprIwhatBelow) | True ->
(case (_lhsIopts) of
{ _bindMetaOopts | _bindMetaOopts `seq` (True) ->
(case (_lhsIlev) of
{ _bindMetaOlev | _bindMetaOlev `seq` (True) ->
(case (bindMeta_ _bindMetaOlev _bindMetaOopts) of
{ ( _bindMetaIcTrf) | True ->
(case (CBound_Bind _bindMetaIcTrf _exprIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
( _lhsOcTrf,_lhsOpropUp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CBound_Meta :: ACoreBindAspectKeyS ->
T_CMetas ->
T_CBound
sem_CBound_Meta aspectKeyS_ cmetas_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisTopApp
_lhsIisTopTup
_lhsIletBindingsCateg
_lhsIlev
_lhsInm
_lhsIopts
_lhsIpropDown ->
(case (_lhsIopts) of
{ _cmetasOopts | _cmetasOopts `seq` (True) ->
(case (_lhsIlev) of
{ _cmetasOlev | _cmetasOlev `seq` (True) ->
(case (cmetas_ _cmetasOlev _cmetasOopts) of
{ ( _cmetasIcTrf) | True ->
(case (CBound_Meta aspectKeyS_ _cmetasIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
( _lhsOcTrf,_lhsOpropUp) }) }) }) }) }) }) }))
sem_CBound_Val :: ACoreBindAspectKeyS ->
MetaLev ->
CLbl ->
T_CExpr ->
T_CBound
sem_CBound_Val aspectKeyS_ mlev_ lbl_ expr_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisTopApp
_lhsIisTopTup
_lhsIletBindingsCateg
_lhsIlev
_lhsInm
_lhsIopts
_lhsIpropDown ->
(case (Prop_None) of
{ _propDown | _propDown `seq` (True) ->
(case (_propDown) of
{ _exprOpropDown | _exprOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _exprOopts | _exprOopts `seq` (True) ->
(case (_lhsIisTopApp) of
{ _exprOisTopApp | _exprOisTopApp `seq` (True) ->
(case (ExprIsBind _lhsInm) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (_lhsIisTopTup) of
{ _exprOisTopTup | _exprOisTopTup `seq` (True) ->
(case (_lhsIevalCtx) of
{ _exprOevalCtx | _exprOevalCtx `seq` (True) ->
(case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOpropDown _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIpropUp,_exprIpropUpL,_exprIwhatBelow) | True ->
(case (CBound_Val aspectKeyS_ mlev_ lbl_ _exprIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (_exprIpropUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
( _lhsOcTrf,_lhsOpropUp) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CBound_Ty :: ACoreBindAspectKeyS ->
Ty ->
T_CBound
sem_CBound_Ty aspectKeyS_ ty_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisTopApp
_lhsIisTopTup
_lhsIletBindingsCateg
_lhsIlev
_lhsInm
_lhsIopts
_lhsIpropDown ->
(case (CBound_Ty aspectKeyS_ ty_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
( _lhsOcTrf,_lhsOpropUp) }) }) }) }))
sem_CBound_FFE :: FFIWay ->
ForeignEnt ->
T_CExpr ->
Ty ->
T_CBound
sem_CBound_FFE callconv_ expEnt_ expr_ ty_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisTopApp
_lhsIisTopTup
_lhsIletBindingsCateg
_lhsIlev
_lhsInm
_lhsIopts
_lhsIpropDown ->
(case (Prop_None) of
{ _propDown | _propDown `seq` (True) ->
(case (_propDown) of
{ _exprOpropDown | _exprOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _exprOopts | _exprOopts `seq` (True) ->
(case (True) of
{ _exprOisTopApp | _exprOisTopApp `seq` (True) ->
(case (ExprIsLam 0 Nothing) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (_lhsIevalCtx) of
{ _exprOevalCtx | _exprOevalCtx `seq` (True) ->
(case (True) of
{ _exprOisTopTup | _exprOisTopTup `seq` (True) ->
(case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOpropDown _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIpropUp,_exprIpropUpL,_exprIwhatBelow) | True ->
(case (CBound_FFE callconv_ expEnt_ _exprIcTrf ty_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
( _lhsOcTrf,_lhsOpropUp) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
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 ->
CBindCateg ->
Int ->
HsName ->
EHCOpts ->
( CBoundL)
sem_CBoundL_Cons :: T_CBound ->
T_CBoundL ->
T_CBoundL
sem_CBoundL_Cons hd_ tl_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIletBindingsCateg
_lhsIlev
_lhsInm
_lhsIopts ->
(case (_lhsIopts) of
{ _tlOopts | _tlOopts `seq` (True) ->
(case (_lhsIopts) of
{ _hdOopts | _hdOopts `seq` (True) ->
(case (True) of
{ _hdOisTopApp | _hdOisTopApp `seq` (True) ->
(case (_lhsInm) of
{ _tlOnm | _tlOnm `seq` (True) ->
(case (_lhsIlev) of
{ _tlOlev | _tlOlev `seq` (True) ->
(case (_lhsIletBindingsCateg) of
{ _tlOletBindingsCateg | _tlOletBindingsCateg `seq` (True) ->
(case (_lhsIisGlobal) of
{ _tlOisGlobal | _tlOisGlobal `seq` (True) ->
(case (_lhsIevalCtx) of
{ _tlOevalCtx | _tlOevalCtx `seq` (True) ->
(case (tl_ _tlOevalCtx _tlOisGlobal _tlOletBindingsCateg _tlOlev _tlOnm _tlOopts) of
{ ( _tlIcTrf) | True ->
(case (_lhsInm) of
{ _hdOnm | _hdOnm `seq` (True) ->
(case (_lhsIlev) of
{ _hdOlev | _hdOlev `seq` (True) ->
(case (_lhsIletBindingsCateg) of
{ _hdOletBindingsCateg | _hdOletBindingsCateg `seq` (True) ->
(case (_lhsIisGlobal) of
{ _hdOisGlobal | _hdOisGlobal `seq` (True) ->
(case (_lhsIevalCtx) of
{ _hdOevalCtx | _hdOevalCtx `seq` (True) ->
(case (Prop_None) of
{ _hdOpropDown | _hdOpropDown `seq` (True) ->
(case (True) of
{ _hdOisTopTup | _hdOisTopTup `seq` (True) ->
(case (hd_ _hdOevalCtx _hdOisGlobal _hdOisTopApp _hdOisTopTup _hdOletBindingsCateg _hdOlev _hdOnm _hdOopts _hdOpropDown) of
{ ( _hdIcTrf,_hdIpropUp) | True ->
(case ((:) _hdIcTrf _tlIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CBoundL_Nil :: T_CBoundL
sem_CBoundL_Nil =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIletBindingsCateg
_lhsIlev
_lhsInm
_lhsIopts ->
(case ([]) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }))
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)
sem_CExport (CExport_ExportData _nm _mbConNmL) =
(sem_CExport_ExportData _nm _mbConNmL)
type T_CExport = ( CExport)
sem_CExport_Export :: HsName ->
T_CExport
sem_CExport_Export nm_ =
(case (CExport_Export nm_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) })
sem_CExport_ExportData :: HsName ->
(Maybe [HsName]) ->
T_CExport
sem_CExport_ExportData nm_ mbConNmL_ =
(case (CExport_ExportData nm_ mbConNmL_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) })
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 ->
Int ->
EHCOpts ->
Prop ->
WhatExpr ->
( AppFunKind,([CBound]),CExpr,(Maybe HsName),(Maybe [HsName]),(Maybe HsName),Prop,([Prop]),WhatExpr)
sem_CExpr_Var :: ACoreBindRef ->
T_CExpr
sem_CExpr_Var ref_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_Fun ref_) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `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 (Just _nm) of
{ _mbVar | _mbVar `seq` (True) ->
(case (_mbVar) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (_mbVar) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsVar _nm) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Int :: Int ->
T_CExpr
sem_CExpr_Int int_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (CExpr_Int int_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsInt int_) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Char :: Char ->
T_CExpr
sem_CExpr_Char char_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (CExpr_Char char_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsOtherWHNF) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_String :: String ->
T_CExpr
sem_CExpr_String str_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (CExpr_String str_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsOtherWHNF) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Integer :: Integer ->
T_CExpr
sem_CExpr_Integer integer_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (CExpr_Integer integer_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsOtherWHNF) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Tup :: CTag ->
T_CExpr
sem_CExpr_Tup tag_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_Tag tag_) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (CExpr_Tup tag_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsTup tag_) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Let :: CBindCateg ->
T_CBindL ->
T_CExpr ->
T_CExpr
sem_CExpr_Let categ_ binds_ body_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (_lhsIpropDown) of
{ _bodyOpropDown | _bodyOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _bodyOopts | _bodyOopts `seq` (True) ->
(case (True) of
{ _isTopApp | _isTopApp `seq` (True) ->
(case (_isTopApp) of
{ _bodyOisTopApp | _bodyOisTopApp `seq` (True) ->
(case (_lhsIopts) of
{ _bindsOopts | _bindsOopts `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _bodyOwhatAbove | _bodyOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _bodyOlev | _bodyOlev `seq` (True) ->
(case (True) of
{ _isTopTup | _isTopTup `seq` (True) ->
(case (_isTopTup) of
{ _bodyOisTopTup | _bodyOisTopTup `seq` (True) ->
(case (if categ_ == CBindCateg_Strict
then EvalCtx_Eval
else EvalCtx_Thunk) of
{ _evalCtx | _evalCtx `seq` (True) ->
(case (_evalCtx) of
{ _bodyOevalCtx | _bodyOevalCtx `seq` (True) ->
(case (body_ _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOopts _bodyOpropDown _bodyOwhatAbove) of
{ ( _bodyIappFunKind,_bodyIargL,_bodyIcTrf,_bodyImbFunVar,_bodyImbLam,_bodyImbVar,_bodyIpropUp,_bodyIpropUpL,_bodyIwhatBelow) | True ->
(case (_lhsIlev) of
{ _bindsOlev | _bindsOlev `seq` (True) ->
(case (categ_) of
{ _letBindingsCateg | _letBindingsCateg `seq` (True) ->
(case (_letBindingsCateg) of
{ _bindsOletBindingsCateg | _bindsOletBindingsCateg `seq` (True) ->
(case (_lhsIlev == cLevModule) of
{ _isGlobal | _isGlobal `seq` (True) ->
(case (_isGlobal) of
{ _bindsOisGlobal | _bindsOisGlobal `seq` (True) ->
(case (_evalCtx) of
{ _bindsOevalCtx | _bindsOevalCtx `seq` (True) ->
(case (binds_ _bindsOevalCtx _bindsOisGlobal _bindsOletBindingsCateg _bindsOlev _bindsOopts) of
{ ( _bindsIcTrf) | True ->
(case (CExpr_Let categ_ _bindsIcTrf _bodyIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsOther) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_App :: T_CExpr ->
T_CBound ->
T_CExpr
sem_CExpr_App func_ arg_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_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 (Prop_None) of
{ _propDown | _propDown `seq` (True) ->
(case (_propDown) of
{ _funcOpropDown | _funcOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _funcOopts | _funcOopts `seq` (True) ->
(case (_lhsIlev) of
{ _funcOlev | _funcOlev `seq` (True) ->
(case (True) of
{ _isTopTup | _isTopTup `seq` (True) ->
(case (_isTopTup) of
{ _funcOisTopTup | _funcOisTopTup `seq` (True) ->
(case (_lhsIevalCtx) of
{ _funcOevalCtx | _funcOevalCtx `seq` (True) ->
(case (False) of
{ _funcOisTopApp | _funcOisTopApp `seq` (True) ->
(case (func_ _funcOevalCtx _funcOisTopApp _funcOisTopTup _funcOlev _funcOopts _funcOpropDown _funcOwhatAbove) of
{ ( _funcIappFunKind,_funcIargL,_funcIcTrf,_funcImbFunVar,_funcImbLam,_funcImbVar,_funcIpropUp,_funcIpropUpL,_funcIwhatBelow) | True ->
(case (_funcIappFunKind) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (_lhsIopts) of
{ _argOopts | _argOopts `seq` (True) ->
(case (True) of
{ _argOisTopApp | _argOisTopApp `seq` (True) ->
(case (_propDown) of
{ _argOpropDown | _argOpropDown `seq` (True) ->
(case (_lhsIlev) of
{ _argOlev | _argOlev `seq` (True) ->
(case (acoreBindcategPlain) of
{ _letBindingsCateg | _letBindingsCateg `seq` (True) ->
(case (_letBindingsCateg) of
{ _argOletBindingsCateg | _argOletBindingsCateg `seq` (True) ->
(case (_isTopTup) of
{ _argOisTopTup | _argOisTopTup `seq` (True) ->
(case (False) of
{ _isGlobal | _isGlobal `seq` (True) ->
(case (_isGlobal) of
{ _argOisGlobal | _argOisGlobal `seq` (True) ->
(case (EvalCtx_Thunk) of
{ _argOevalCtx | _argOevalCtx `seq` (True) ->
(case (hsnUnknown) of
{ _argOnm | _argOnm `seq` (True) ->
(case (arg_ _argOevalCtx _argOisGlobal _argOisTopApp _argOisTopTup _argOletBindingsCateg _argOlev _argOnm _argOopts _argOpropDown) of
{ ( _argIcTrf,_argIpropUp) | True ->
(case (_argIcTrf : _funcIargL) of
{ _argL | _argL `seq` (True) ->
(case (_argL) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (CExpr_App _funcIcTrf _argIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_argIpropUp : _funcIpropUpL) of
{ _propUpL | _propUpL `seq` (True) ->
(case (if _lhsIisTopApp
then case (_funcImbFunVar,reverse (zip (map acoreUnBoundVal _argL) _propUpL),_lhsIpropDown) of
(Just f,[(CExpr_String s,_)],_)
| f == (ehcOptBuiltin _lhsIopts ehbnPackedStringToInteger)
-> Prop_IsIntegerConst $ read s
(Just f,[_,(e,Prop_IsIntegerConst i)],Prop_HasTy t)
| f == (ehcOptBuiltin _lhsIopts ehbnFromInteger)
-> if t == tyInt
then
Prop_IsIntConst $ fromInteger i
else if t == tyInteger
then
if signedFitsInBits 30 i
then Prop_IsInteger $ acoreApp (acoreVar $ ehcOptBuiltin _lhsIopts ehbnPrimIntToInteger) [acoreInt2 _lhsIopts i]
else Prop_IsInteger e
else Prop_None
_ -> Prop_None
else Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (case _propUp of
Prop_IsIntConst i
-> acoreInt _lhsIopts i
Prop_IsInteger e
-> e
_ -> _cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (_funcImbFunVar) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case (_propUpL) of
{ _lhsOpropUpL | _lhsOpropUpL `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,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Lam :: T_CBind ->
T_CExpr ->
T_CExpr
sem_CExpr_Lam bind_ body_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (_lhsIpropDown) of
{ _bodyOpropDown | _bodyOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _bodyOopts | _bodyOopts `seq` (True) ->
(case (True) of
{ _isTopApp | _isTopApp `seq` (True) ->
(case (_isTopApp) of
{ _bodyOisTopApp | _bodyOisTopApp `seq` (True) ->
(case (_lhsIopts) of
{ _bindOopts | _bindOopts `seq` (True) ->
(case (case _lhsIwhatAbove of
ExprIsLam a mbnm -> ExprIsLam (a + 1) mbnm
ExprIsBind nm -> ExprIsLam 1 (Just nm)
_ -> ExprIsLam 1 Nothing) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _bodyOwhatAbove | _bodyOwhatAbove `seq` (True) ->
(case (_lhsIlev + 1) of
{ _lev | _lev `seq` (True) ->
(case (_lev) of
{ _bodyOlev | _bodyOlev `seq` (True) ->
(case (True) of
{ _isTopTup | _isTopTup `seq` (True) ->
(case (_isTopTup) of
{ _bodyOisTopTup | _bodyOisTopTup `seq` (True) ->
(case (_lhsIevalCtx) of
{ _bodyOevalCtx | _bodyOevalCtx `seq` (True) ->
(case (body_ _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOopts _bodyOpropDown _bodyOwhatAbove) of
{ ( _bodyIappFunKind,_bodyIargL,_bodyIcTrf,_bodyImbFunVar,_bodyImbLam,_bodyImbVar,_bodyIpropUp,_bodyIpropUpL,_bodyIwhatBelow) | True ->
(case (_lev) of
{ _bindOlev | _bindOlev `seq` (True) ->
(case (acoreBindcategPlain) of
{ _letBindingsCateg | _letBindingsCateg `seq` (True) ->
(case (_letBindingsCateg) of
{ _bindOletBindingsCateg | _bindOletBindingsCateg `seq` (True) ->
(case (False) of
{ _isGlobal | _isGlobal `seq` (True) ->
(case (_isGlobal) of
{ _bindOisGlobal | _bindOisGlobal `seq` (True) ->
(case (_lhsIevalCtx) of
{ _bindOevalCtx | _bindOevalCtx `seq` (True) ->
(case (bind_ _bindOevalCtx _bindOisGlobal _bindOletBindingsCateg _bindOlev _bindOopts) of
{ ( _bindIcTrf,_bindInm) | True ->
(case (CExpr_Lam _bindIcTrf _bodyIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (_bindInm) of
{ _argNm | _argNm `seq` (True) ->
(case (Just $ maybe [_argNm] (_argNm:) _bodyImbLam) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (maybe (ExprIsLam 1 Nothing) (\a -> ExprIsLam (a + 1) Nothing) $ whatExprMbLam _bodyIwhatBelow) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Case :: T_CExpr ->
T_CAltL ->
T_CExpr ->
T_CExpr
sem_CExpr_Case expr_ alts_ dflt_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (_lhsIpropDown) of
{ _dfltOpropDown | _dfltOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _dfltOopts | _dfltOopts `seq` (True) ->
(case (True) of
{ _isTopApp | _isTopApp `seq` (True) ->
(case (_isTopApp) of
{ _dfltOisTopApp | _dfltOisTopApp `seq` (True) ->
(case (_lhsIpropDown) of
{ _altsOpropDown | _altsOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _altsOopts | _altsOopts `seq` (True) ->
(case (_lhsIpropDown) of
{ _exprOpropDown | _exprOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _exprOopts | _exprOopts `seq` (True) ->
(case (_isTopApp) of
{ _exprOisTopApp | _exprOisTopApp `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _dfltOwhatAbove | _dfltOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _dfltOlev | _dfltOlev `seq` (True) ->
(case (True) of
{ _isTopTup | _isTopTup `seq` (True) ->
(case (_isTopTup) of
{ _dfltOisTopTup | _dfltOisTopTup `seq` (True) ->
(case (_lhsIevalCtx) of
{ _dfltOevalCtx | _dfltOevalCtx `seq` (True) ->
(case (dflt_ _dfltOevalCtx _dfltOisTopApp _dfltOisTopTup _dfltOlev _dfltOopts _dfltOpropDown _dfltOwhatAbove) of
{ ( _dfltIappFunKind,_dfltIargL,_dfltIcTrf,_dfltImbFunVar,_dfltImbLam,_dfltImbVar,_dfltIpropUp,_dfltIpropUpL,_dfltIwhatBelow) | True ->
(case (_lhsIlev) of
{ _altsOlev | _altsOlev `seq` (True) ->
(case (_lhsIevalCtx) of
{ _altsOevalCtx | _altsOevalCtx `seq` (True) ->
(case (alts_ _altsOevalCtx _altsOlev _altsOopts _altsOpropDown) of
{ ( _altsIcTrf) | True ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (_isTopTup) of
{ _exprOisTopTup | _exprOisTopTup `seq` (True) ->
(case (_lhsIevalCtx) of
{ _exprOevalCtx | _exprOevalCtx `seq` (True) ->
(case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOpropDown _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIpropUp,_exprIpropUpL,_exprIwhatBelow) | True ->
(case (CExpr_Case _exprIcTrf _altsIcTrf _dfltIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsOther) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_CaseAltFail :: CaseAltFailReason ->
T_CExpr ->
T_CExpr
sem_CExpr_CaseAltFail failReason_ errorExpr_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _errorExprOwhatAbove | _errorExprOwhatAbove `seq` (True) ->
(case (_lhsIpropDown) of
{ _errorExprOpropDown | _errorExprOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _errorExprOopts | _errorExprOopts `seq` (True) ->
(case (_lhsIlev) of
{ _errorExprOlev | _errorExprOlev `seq` (True) ->
(case (True) of
{ _isTopTup | _isTopTup `seq` (True) ->
(case (_isTopTup) of
{ _errorExprOisTopTup | _errorExprOisTopTup `seq` (True) ->
(case (True) of
{ _isTopApp | _isTopApp `seq` (True) ->
(case (_isTopApp) of
{ _errorExprOisTopApp | _errorExprOisTopApp `seq` (True) ->
(case (_lhsIevalCtx) of
{ _errorExprOevalCtx | _errorExprOevalCtx `seq` (True) ->
(case (errorExpr_ _errorExprOevalCtx _errorExprOisTopApp _errorExprOisTopTup _errorExprOlev _errorExprOopts _errorExprOpropDown _errorExprOwhatAbove) of
{ ( _errorExprIappFunKind,_errorExprIargL,_errorExprIcTrf,_errorExprImbFunVar,_errorExprImbLam,_errorExprImbVar,_errorExprIpropUp,_errorExprIpropUpL,_errorExprIwhatBelow) | True ->
(case (_errorExprIappFunKind) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (_errorExprIargL) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (CExpr_CaseAltFail failReason_ _errorExprIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (_errorExprImbFunVar) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (_errorExprImbLam) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (_errorExprImbVar) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (_errorExprIwhatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_TupDel :: T_CExpr ->
CTag ->
HsName ->
T_CExpr ->
T_CExpr
sem_CExpr_TupDel expr_ tag_ nm_ offset_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (_lhsIpropDown) of
{ _offsetOpropDown | _offsetOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _offsetOopts | _offsetOopts `seq` (True) ->
(case (True) of
{ _isTopApp | _isTopApp `seq` (True) ->
(case (_isTopApp) of
{ _offsetOisTopApp | _offsetOisTopApp `seq` (True) ->
(case (_lhsIpropDown) of
{ _exprOpropDown | _exprOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _exprOopts | _exprOopts `seq` (True) ->
(case (_isTopApp) of
{ _exprOisTopApp | _exprOisTopApp `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _offsetOwhatAbove | _offsetOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _offsetOlev | _offsetOlev `seq` (True) ->
(case (True) of
{ _isTopTup | _isTopTup `seq` (True) ->
(case (_isTopTup) of
{ _offsetOisTopTup | _offsetOisTopTup `seq` (True) ->
(case (_lhsIevalCtx) of
{ _offsetOevalCtx | _offsetOevalCtx `seq` (True) ->
(case (offset_ _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOopts _offsetOpropDown _offsetOwhatAbove) of
{ ( _offsetIappFunKind,_offsetIargL,_offsetIcTrf,_offsetImbFunVar,_offsetImbLam,_offsetImbVar,_offsetIpropUp,_offsetIpropUpL,_offsetIwhatBelow) | True ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (_lhsIevalCtx) of
{ _exprOevalCtx | _exprOevalCtx `seq` (True) ->
(case (False) of
{ _exprOisTopTup | _exprOisTopTup `seq` (True) ->
(case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOpropDown _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIpropUp,_exprIpropUpL,_exprIwhatBelow) | True ->
(case (CExpr_TupDel _exprIcTrf tag_ nm_ _offsetIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsOther) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_TupIns :: T_CExpr ->
CTag ->
HsName ->
T_CExpr ->
T_CExpr ->
T_CExpr
sem_CExpr_TupIns expr_ tag_ nm_ offset_ fldExpr_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (_lhsIpropDown) of
{ _fldExprOpropDown | _fldExprOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _fldExprOopts | _fldExprOopts `seq` (True) ->
(case (True) of
{ _isTopApp | _isTopApp `seq` (True) ->
(case (_isTopApp) of
{ _fldExprOisTopApp | _fldExprOisTopApp `seq` (True) ->
(case (_lhsIpropDown) of
{ _offsetOpropDown | _offsetOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _offsetOopts | _offsetOopts `seq` (True) ->
(case (_isTopApp) of
{ _offsetOisTopApp | _offsetOisTopApp `seq` (True) ->
(case (_lhsIpropDown) of
{ _exprOpropDown | _exprOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _exprOopts | _exprOopts `seq` (True) ->
(case (_isTopApp) of
{ _exprOisTopApp | _exprOisTopApp `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _fldExprOwhatAbove | _fldExprOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _fldExprOlev | _fldExprOlev `seq` (True) ->
(case (True) of
{ _isTopTup | _isTopTup `seq` (True) ->
(case (_isTopTup) of
{ _fldExprOisTopTup | _fldExprOisTopTup `seq` (True) ->
(case (_lhsIevalCtx) of
{ _fldExprOevalCtx | _fldExprOevalCtx `seq` (True) ->
(case (fldExpr_ _fldExprOevalCtx _fldExprOisTopApp _fldExprOisTopTup _fldExprOlev _fldExprOopts _fldExprOpropDown _fldExprOwhatAbove) of
{ ( _fldExprIappFunKind,_fldExprIargL,_fldExprIcTrf,_fldExprImbFunVar,_fldExprImbLam,_fldExprImbVar,_fldExprIpropUp,_fldExprIpropUpL,_fldExprIwhatBelow) | True ->
(case (_whatAbove) of
{ _offsetOwhatAbove | _offsetOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _offsetOlev | _offsetOlev `seq` (True) ->
(case (_isTopTup) of
{ _offsetOisTopTup | _offsetOisTopTup `seq` (True) ->
(case (_lhsIevalCtx) of
{ _offsetOevalCtx | _offsetOevalCtx `seq` (True) ->
(case (offset_ _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOopts _offsetOpropDown _offsetOwhatAbove) of
{ ( _offsetIappFunKind,_offsetIargL,_offsetIcTrf,_offsetImbFunVar,_offsetImbLam,_offsetImbVar,_offsetIpropUp,_offsetIpropUpL,_offsetIwhatBelow) | True ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (_lhsIevalCtx) of
{ _exprOevalCtx | _exprOevalCtx `seq` (True) ->
(case (False) of
{ _exprOisTopTup | _exprOisTopTup `seq` (True) ->
(case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOpropDown _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIpropUp,_exprIpropUpL,_exprIwhatBelow) | True ->
(case (CExpr_TupIns _exprIcTrf tag_ nm_ _offsetIcTrf _fldExprIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsOther) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_TupUpd :: T_CExpr ->
CTag ->
HsName ->
T_CExpr ->
T_CExpr ->
T_CExpr
sem_CExpr_TupUpd expr_ tag_ nm_ offset_ fldExpr_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (_lhsIpropDown) of
{ _fldExprOpropDown | _fldExprOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _fldExprOopts | _fldExprOopts `seq` (True) ->
(case (True) of
{ _isTopApp | _isTopApp `seq` (True) ->
(case (_isTopApp) of
{ _fldExprOisTopApp | _fldExprOisTopApp `seq` (True) ->
(case (_lhsIpropDown) of
{ _offsetOpropDown | _offsetOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _offsetOopts | _offsetOopts `seq` (True) ->
(case (_isTopApp) of
{ _offsetOisTopApp | _offsetOisTopApp `seq` (True) ->
(case (_lhsIpropDown) of
{ _exprOpropDown | _exprOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _exprOopts | _exprOopts `seq` (True) ->
(case (_isTopApp) of
{ _exprOisTopApp | _exprOisTopApp `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _fldExprOwhatAbove | _fldExprOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _fldExprOlev | _fldExprOlev `seq` (True) ->
(case (True) of
{ _isTopTup | _isTopTup `seq` (True) ->
(case (_isTopTup) of
{ _fldExprOisTopTup | _fldExprOisTopTup `seq` (True) ->
(case (_lhsIevalCtx) of
{ _fldExprOevalCtx | _fldExprOevalCtx `seq` (True) ->
(case (fldExpr_ _fldExprOevalCtx _fldExprOisTopApp _fldExprOisTopTup _fldExprOlev _fldExprOopts _fldExprOpropDown _fldExprOwhatAbove) of
{ ( _fldExprIappFunKind,_fldExprIargL,_fldExprIcTrf,_fldExprImbFunVar,_fldExprImbLam,_fldExprImbVar,_fldExprIpropUp,_fldExprIpropUpL,_fldExprIwhatBelow) | True ->
(case (_whatAbove) of
{ _offsetOwhatAbove | _offsetOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _offsetOlev | _offsetOlev `seq` (True) ->
(case (_isTopTup) of
{ _offsetOisTopTup | _offsetOisTopTup `seq` (True) ->
(case (_lhsIevalCtx) of
{ _offsetOevalCtx | _offsetOevalCtx `seq` (True) ->
(case (offset_ _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOopts _offsetOpropDown _offsetOwhatAbove) of
{ ( _offsetIappFunKind,_offsetIargL,_offsetIcTrf,_offsetImbFunVar,_offsetImbLam,_offsetImbVar,_offsetIpropUp,_offsetIpropUpL,_offsetIwhatBelow) | True ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (_lhsIevalCtx) of
{ _exprOevalCtx | _exprOevalCtx `seq` (True) ->
(case (False) of
{ _exprOisTopTup | _exprOisTopTup `seq` (True) ->
(case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOpropDown _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIpropUp,_exprIpropUpL,_exprIwhatBelow) | True ->
(case (CExpr_TupUpd _exprIcTrf tag_ nm_ _offsetIcTrf _fldExprIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsOther) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_FFI :: FFIWay ->
String ->
ForeignEnt ->
Ty ->
T_CExpr
sem_CExpr_FFI callconv_ safety_ impEnt_ ty_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_FFI) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (CExpr_FFI callconv_ safety_ impEnt_ ty_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsFFI) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Dbg :: String ->
T_CExpr
sem_CExpr_Dbg info_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (CExpr_Dbg info_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsOther) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Hole :: UID ->
T_CExpr
sem_CExpr_Hole uid_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (CExpr_Hole uid_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsOther) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_HoleLet :: UID ->
T_CExpr ->
T_CExpr
sem_CExpr_HoleLet bindsUid_ body_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (_lhsIpropDown) of
{ _bodyOpropDown | _bodyOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _bodyOopts | _bodyOopts `seq` (True) ->
(case (True) of
{ _isTopApp | _isTopApp `seq` (True) ->
(case (_isTopApp) of
{ _bodyOisTopApp | _bodyOisTopApp `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _bodyOwhatAbove | _bodyOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _bodyOlev | _bodyOlev `seq` (True) ->
(case (True) of
{ _isTopTup | _isTopTup `seq` (True) ->
(case (_isTopTup) of
{ _bodyOisTopTup | _bodyOisTopTup `seq` (True) ->
(case (_lhsIevalCtx) of
{ _bodyOevalCtx | _bodyOevalCtx `seq` (True) ->
(case (body_ _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOopts _bodyOpropDown _bodyOwhatAbove) of
{ ( _bodyIappFunKind,_bodyIargL,_bodyIcTrf,_bodyImbFunVar,_bodyImbLam,_bodyImbVar,_bodyIpropUp,_bodyIpropUpL,_bodyIwhatBelow) | True ->
(case (CExpr_HoleLet bindsUid_ _bodyIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsOther) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_CoeArg :: T_CExpr
sem_CExpr_CoeArg =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (CExpr_CoeArg) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsOther) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_ImplsApp :: T_CExpr ->
ImplsVarId ->
T_CExpr
sem_CExpr_ImplsApp func_ uid_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (_lhsIpropDown) of
{ _funcOpropDown | _funcOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _funcOopts | _funcOopts `seq` (True) ->
(case (True) of
{ _isTopApp | _isTopApp `seq` (True) ->
(case (_isTopApp) of
{ _funcOisTopApp | _funcOisTopApp `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _funcOwhatAbove | _funcOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _funcOlev | _funcOlev `seq` (True) ->
(case (True) of
{ _isTopTup | _isTopTup `seq` (True) ->
(case (_isTopTup) of
{ _funcOisTopTup | _funcOisTopTup `seq` (True) ->
(case (_lhsIevalCtx) of
{ _funcOevalCtx | _funcOevalCtx `seq` (True) ->
(case (func_ _funcOevalCtx _funcOisTopApp _funcOisTopTup _funcOlev _funcOopts _funcOpropDown _funcOwhatAbove) of
{ ( _funcIappFunKind,_funcIargL,_funcIcTrf,_funcImbFunVar,_funcImbLam,_funcImbVar,_funcIpropUp,_funcIpropUpL,_funcIwhatBelow) | True ->
(case (CExpr_ImplsApp _funcIcTrf uid_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsOther) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_ImplsLam :: ImplsVarId ->
T_CExpr ->
T_CExpr
sem_CExpr_ImplsLam uid_ body_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (AppFunKind_NoApp) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case ([]) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (_lhsIpropDown) of
{ _bodyOpropDown | _bodyOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _bodyOopts | _bodyOopts `seq` (True) ->
(case (True) of
{ _isTopApp | _isTopApp `seq` (True) ->
(case (_isTopApp) of
{ _bodyOisTopApp | _bodyOisTopApp `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _bodyOwhatAbove | _bodyOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _bodyOlev | _bodyOlev `seq` (True) ->
(case (True) of
{ _isTopTup | _isTopTup `seq` (True) ->
(case (_isTopTup) of
{ _bodyOisTopTup | _bodyOisTopTup `seq` (True) ->
(case (_lhsIevalCtx) of
{ _bodyOevalCtx | _bodyOevalCtx `seq` (True) ->
(case (body_ _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlev _bodyOopts _bodyOpropDown _bodyOwhatAbove) of
{ ( _bodyIappFunKind,_bodyIargL,_bodyIcTrf,_bodyImbFunVar,_bodyImbLam,_bodyImbVar,_bodyIpropUp,_bodyIpropUpL,_bodyIwhatBelow) | True ->
(case (CExpr_ImplsLam uid_ _bodyIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Nothing) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (Nothing) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (Nothing) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case ([]) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (ExprIsOther) of
{ _whatBelow | _whatBelow `seq` (True) ->
(case (_whatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExpr_Ann :: T_CExprAnn ->
T_CExpr ->
T_CExpr
sem_CExpr_Ann ann_ expr_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlev
_lhsIopts
_lhsIpropDown
_lhsIwhatAbove ->
(case (_lhsIwhatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `seq` (True) ->
(case (_lhsIopts) of
{ _exprOopts | _exprOopts `seq` (True) ->
(case (_lhsIlev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (_lhsIisTopTup) of
{ _exprOisTopTup | _exprOisTopTup `seq` (True) ->
(case (_lhsIisTopApp) of
{ _exprOisTopApp | _exprOisTopApp `seq` (True) ->
(case (_lhsIevalCtx) of
{ _exprOevalCtx | _exprOevalCtx `seq` (True) ->
(case (_lhsIopts) of
{ _annOopts | _annOopts `seq` (True) ->
(case (_lhsIlev) of
{ _annOlev | _annOlev `seq` (True) ->
(case (ann_ _annOlev _annOopts) of
{ ( _annIcTrf,_annIprop) | True ->
(case (_annIprop) of
{ _exprOpropDown | _exprOpropDown `seq` (True) ->
(case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOpropDown _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIpropUp,_exprIpropUpL,_exprIwhatBelow) | True ->
(case (_exprIappFunKind) of
{ _lhsOappFunKind | _lhsOappFunKind `seq` (True) ->
(case (_exprIargL) of
{ _lhsOargL | _lhsOargL `seq` (True) ->
(case (CExpr_Ann _annIcTrf _exprIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (_exprImbFunVar) of
{ _lhsOmbFunVar | _lhsOmbFunVar `seq` (True) ->
(case (_exprImbLam) of
{ _lhsOmbLam | _lhsOmbLam `seq` (True) ->
(case (_exprImbVar) of
{ _lhsOmbVar | _lhsOmbVar `seq` (True) ->
(case (Prop_None) of
{ _propUp | _propUp `seq` (True) ->
(case (_propUp) of
{ _lhsOpropUp | _lhsOpropUp `seq` (True) ->
(case (_exprIpropUpL) of
{ _lhsOpropUpL | _lhsOpropUpL `seq` (True) ->
(case (_exprIwhatBelow) of
{ _lhsOwhatBelow | _lhsOwhatBelow `seq` (True) ->
( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOpropUp,_lhsOpropUpL,_lhsOwhatBelow) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
sem_CExprAnn :: CExprAnn ->
T_CExprAnn
sem_CExprAnn (CExprAnn_Ty _ty) =
(sem_CExprAnn_Ty _ty)
sem_CExprAnn (CExprAnn_Debug _info) =
(sem_CExprAnn_Debug _info)
type T_CExprAnn = Int ->
EHCOpts ->
( CExprAnn,Prop)
sem_CExprAnn_Ty :: Ty ->
T_CExprAnn
sem_CExprAnn_Ty ty_ =
(\ _lhsIlev
_lhsIopts ->
(case (CExprAnn_Ty ty_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Prop_HasTy ty_) of
{ _prop | _prop `seq` (True) ->
(case (_prop) of
{ _lhsOprop | _lhsOprop `seq` (True) ->
( _lhsOcTrf,_lhsOprop) }) }) }) }))
sem_CExprAnn_Debug :: String ->
T_CExprAnn
sem_CExprAnn_Debug info_ =
(\ _lhsIlev
_lhsIopts ->
(case (CExprAnn_Debug info_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (Prop_None) of
{ _prop | _prop `seq` (True) ->
(case (_prop) of
{ _lhsOprop | _lhsOprop `seq` (True) ->
( _lhsOcTrf,_lhsOprop) }) }) }) }))
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 ->
EHCOpts ->
( CMetaBind)
sem_CMetaBind_Plain :: T_CMetaBind
sem_CMetaBind_Plain =
(\ _lhsIlev
_lhsIopts ->
(case (CMetaBind_Plain) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }))
sem_CMetaBind_Function0 :: T_CMetaBind
sem_CMetaBind_Function0 =
(\ _lhsIlev
_lhsIopts ->
(case (CMetaBind_Function0) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }))
sem_CMetaBind_Function1 :: T_CMetaBind
sem_CMetaBind_Function1 =
(\ _lhsIlev
_lhsIopts ->
(case (CMetaBind_Function1) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }))
sem_CMetaBind_Apply0 :: T_CMetaBind
sem_CMetaBind_Apply0 =
(\ _lhsIlev
_lhsIopts ->
(case (CMetaBind_Apply0) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }))
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 ->
EHCOpts ->
( CMetaVal)
sem_CMetaVal_Val :: T_CMetaVal
sem_CMetaVal_Val =
(\ _lhsIlev
_lhsIopts ->
(case (CMetaVal_Val) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }))
sem_CMetaVal_Dict :: T_CMetaVal
sem_CMetaVal_Dict =
(\ _lhsIlev
_lhsIopts ->
(case (CMetaVal_Dict) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }))
sem_CMetaVal_DictClass :: ([Track]) ->
T_CMetaVal
sem_CMetaVal_DictClass tracks_ =
(\ _lhsIlev
_lhsIopts ->
(case (CMetaVal_DictClass tracks_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }))
sem_CMetaVal_DictInstance :: ([Track]) ->
T_CMetaVal
sem_CMetaVal_DictInstance tracks_ =
(\ _lhsIlev
_lhsIopts ->
(case (CMetaVal_DictInstance tracks_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }))
sem_CMetaVal_Track :: Track ->
T_CMetaVal
sem_CMetaVal_Track track_ =
(\ _lhsIlev
_lhsIopts ->
(case (CMetaVal_Track track_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }))
sem_CMetas :: CMetas ->
T_CMetas
sem_CMetas ( x1,x2) =
(sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
type T_CMetas = Int ->
EHCOpts ->
( CMetas)
sem_CMetas_Tuple :: T_CMetaBind ->
T_CMetaVal ->
T_CMetas
sem_CMetas_Tuple x1_ x2_ =
(\ _lhsIlev
_lhsIopts ->
(case (_lhsIopts) of
{ _x2Oopts | _x2Oopts `seq` (True) ->
(case (_lhsIlev) of
{ _x2Olev | _x2Olev `seq` (True) ->
(case (x2_ _x2Olev _x2Oopts) of
{ ( _x2IcTrf) | True ->
(case (_lhsIopts) of
{ _x1Oopts | _x1Oopts `seq` (True) ->
(case (_lhsIlev) of
{ _x1Olev | _x1Olev `seq` (True) ->
(case (x1_ _x1Olev _x1Oopts) of
{ ( _x1IcTrf) | True ->
(case ((_x1IcTrf,_x2IcTrf)) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }) }) }) }) }) }) }))
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 ->
EHCOpts ->
( CModule)
sem_CModule_Mod :: HsName ->
T_CExportL ->
T_CImportL ->
T_CDeclMetaL ->
T_CExpr ->
T_CModule
sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
(\ _lhsIlev
_lhsIopts ->
(case (_lhsIopts) of
{ _exprOopts | _exprOopts `seq` (True) ->
(case (Prop_None) of
{ _exprOpropDown | _exprOpropDown `seq` (True) ->
(case (True) of
{ _exprOisTopApp | _exprOisTopApp `seq` (True) ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _exprOwhatAbove | _exprOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _exprOlev | _exprOlev `seq` (True) ->
(case (EvalCtx_Eval) of
{ _exprOevalCtx | _exprOevalCtx `seq` (True) ->
(case (True) of
{ _exprOisTopTup | _exprOisTopTup `seq` (True) ->
(case (expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlev _exprOopts _exprOpropDown _exprOwhatAbove) of
{ ( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIpropUp,_exprIpropUpL,_exprIwhatBelow) | True ->
(case (declMetas_) of
{ ( _declMetasIcTrf) | True ->
(case (imports_) of
{ ( _importsIcTrf) | True ->
(case (exports_) of
{ ( _exportsIcTrf) | True ->
(case (CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
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 ->
EHCOpts ->
( CPat,([HsName]),(Maybe CTag))
sem_CPat_Var :: HsName ->
T_CPat
sem_CPat_Var pnm_ =
(\ _lhsIlev
_lhsIopts ->
(case (CPat_Var pnm_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case ([]) of
{ _lhsOfldNmL | _lhsOfldNmL `seq` (True) ->
(case (Nothing) of
{ _lhsOmbCTag | _lhsOmbCTag `seq` (True) ->
( _lhsOcTrf,_lhsOfldNmL,_lhsOmbCTag) }) }) }) }))
sem_CPat_Con :: CTag ->
T_CPatRest ->
T_CPatFldL ->
T_CPat
sem_CPat_Con tag_ rest_ binds_ =
(\ _lhsIlev
_lhsIopts ->
(case (_lhsIopts) of
{ _bindsOopts | _bindsOopts `seq` (True) ->
(case (_lhsIlev) of
{ _bindsOlev | _bindsOlev `seq` (True) ->
(case (binds_ _bindsOlev _bindsOopts) of
{ ( _bindsIcTrf,_bindsIfldNmL) | True ->
(case (_lhsIopts) of
{ _restOopts | _restOopts `seq` (True) ->
(case (_lhsIlev) of
{ _restOlev | _restOlev `seq` (True) ->
(case (rest_ _restOlev _restOopts) of
{ ( _restIcTrf) | 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 (Just tag_) of
{ _lhsOmbCTag | _lhsOmbCTag `seq` (True) ->
( _lhsOcTrf,_lhsOfldNmL,_lhsOmbCTag) }) }) }) }) }) }) }) }) }) }))
sem_CPat_Int :: Int ->
T_CPat
sem_CPat_Int int_ =
(\ _lhsIlev
_lhsIopts ->
(case (CPat_Int int_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case ([]) of
{ _lhsOfldNmL | _lhsOfldNmL `seq` (True) ->
(case (Nothing) of
{ _lhsOmbCTag | _lhsOmbCTag `seq` (True) ->
( _lhsOcTrf,_lhsOfldNmL,_lhsOmbCTag) }) }) }) }))
sem_CPat_Char :: Char ->
T_CPat
sem_CPat_Char char_ =
(\ _lhsIlev
_lhsIopts ->
(case (CPat_Char char_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case ([]) of
{ _lhsOfldNmL | _lhsOfldNmL `seq` (True) ->
(case (Nothing) of
{ _lhsOmbCTag | _lhsOmbCTag `seq` (True) ->
( _lhsOcTrf,_lhsOfldNmL,_lhsOmbCTag) }) }) }) }))
sem_CPat_BoolExpr :: CExpr ->
T_CPat
sem_CPat_BoolExpr cexpr_ =
(\ _lhsIlev
_lhsIopts ->
(case (CPat_BoolExpr cexpr_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case ([]) of
{ _lhsOfldNmL | _lhsOfldNmL `seq` (True) ->
(case (Nothing) of
{ _lhsOmbCTag | _lhsOmbCTag `seq` (True) ->
( _lhsOcTrf,_lhsOfldNmL,_lhsOmbCTag) }) }) }) }))
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 ->
EHCOpts ->
( CPatFld,([HsName]))
sem_CPatFld_Fld :: HsName ->
T_CExpr ->
T_CBind ->
T_CBindAnnL ->
T_CPatFld
sem_CPatFld_Fld lbl_ offset_ bind_ fldAnns_ =
(\ _lhsIlev
_lhsIopts ->
(case (_lhsIopts) of
{ _bindOopts | _bindOopts `seq` (True) ->
(case (Prop_None) of
{ _propDown | _propDown `seq` (True) ->
(case (_propDown) of
{ _offsetOpropDown | _offsetOpropDown `seq` (True) ->
(case (_lhsIopts) of
{ _offsetOopts | _offsetOopts `seq` (True) ->
(case (True) of
{ _offsetOisTopApp | _offsetOisTopApp `seq` (True) ->
(case (_lhsIopts) of
{ _fldAnnsOopts | _fldAnnsOopts `seq` (True) ->
(case (_lhsIlev) of
{ _fldAnnsOlev | _fldAnnsOlev `seq` (True) ->
(case (fldAnns_ _fldAnnsOlev _fldAnnsOopts) of
{ ( _fldAnnsIcTrf) | True ->
(case (_lhsIlev) of
{ _bindOlev | _bindOlev `seq` (True) ->
(case (False) of
{ _bindOisGlobal | _bindOisGlobal `seq` (True) ->
(case (EvalCtx_None) of
{ _bindOevalCtx | _bindOevalCtx `seq` (True) ->
(case (acoreBindcategPlain) of
{ _bindOletBindingsCateg | _bindOletBindingsCateg `seq` (True) ->
(case (bind_ _bindOevalCtx _bindOisGlobal _bindOletBindingsCateg _bindOlev _bindOopts) of
{ ( _bindIcTrf,_bindInm) | True ->
(case (ExprIsOther) of
{ _whatAbove | _whatAbove `seq` (True) ->
(case (_whatAbove) of
{ _offsetOwhatAbove | _offsetOwhatAbove `seq` (True) ->
(case (_lhsIlev) of
{ _offsetOlev | _offsetOlev `seq` (True) ->
(case (EvalCtx_Eval) of
{ _offsetOevalCtx | _offsetOevalCtx `seq` (True) ->
(case (True) of
{ _offsetOisTopTup | _offsetOisTopTup `seq` (True) ->
(case (offset_ _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlev _offsetOopts _offsetOpropDown _offsetOwhatAbove) of
{ ( _offsetIappFunKind,_offsetIargL,_offsetIcTrf,_offsetImbFunVar,_offsetImbLam,_offsetImbVar,_offsetIpropUp,_offsetIpropUpL,_offsetIwhatBelow) | True ->
(case (CPatFld_Fld lbl_ _offsetIcTrf _bindIcTrf _fldAnnsIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (_bindInm) of
{ _fldNm | _fldNm `seq` (True) ->
(case ([_fldNm]) of
{ _lhsOfldNmL | _lhsOfldNmL `seq` (True) ->
( _lhsOcTrf,_lhsOfldNmL) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))
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 ->
EHCOpts ->
( CPatFldL,([HsName]))
sem_CPatFldL_Cons :: T_CPatFld ->
T_CPatFldL ->
T_CPatFldL
sem_CPatFldL_Cons hd_ tl_ =
(\ _lhsIlev
_lhsIopts ->
(case (_lhsIopts) of
{ _tlOopts | _tlOopts `seq` (True) ->
(case (_lhsIopts) of
{ _hdOopts | _hdOopts `seq` (True) ->
(case (_lhsIlev) of
{ _tlOlev | _tlOlev `seq` (True) ->
(case (tl_ _tlOlev _tlOopts) of
{ ( _tlIcTrf,_tlIfldNmL) | True ->
(case (_lhsIlev) of
{ _hdOlev | _hdOlev `seq` (True) ->
(case (hd_ _hdOlev _hdOopts) of
{ ( _hdIcTrf,_hdIfldNmL) | True ->
(case ((:) _hdIcTrf _tlIcTrf) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case (_hdIfldNmL ++ _tlIfldNmL) of
{ _lhsOfldNmL | _lhsOfldNmL `seq` (True) ->
( _lhsOcTrf,_lhsOfldNmL) }) }) }) }) }) }) }) }) }))
sem_CPatFldL_Nil :: T_CPatFldL
sem_CPatFldL_Nil =
(\ _lhsIlev
_lhsIopts ->
(case ([]) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
(case ([]) of
{ _lhsOfldNmL | _lhsOfldNmL `seq` (True) ->
( _lhsOcTrf,_lhsOfldNmL) }) }) }))
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 ->
EHCOpts ->
( CPatRest)
sem_CPatRest_Var :: HsName ->
T_CPatRest
sem_CPatRest_Var nm_ =
(\ _lhsIlev
_lhsIopts ->
(case (CPatRest_Var nm_) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }))
sem_CPatRest_Empty :: T_CPatRest
sem_CPatRest_Empty =
(\ _lhsIlev
_lhsIopts ->
(case (CPatRest_Empty) of
{ _cTrf | _cTrf `seq` (True) ->
(case (_cTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }))
sem_CodeAGItf :: CodeAGItf ->
T_CodeAGItf
sem_CodeAGItf (CodeAGItf_AGItf _module) =
(sem_CodeAGItf_AGItf (sem_CModule _module))
type T_CodeAGItf = EHCOpts ->
( CModule)
data Inh_CodeAGItf = Inh_CodeAGItf {opts_Inh_CodeAGItf :: !(EHCOpts)}
data Syn_CodeAGItf = Syn_CodeAGItf {cTrf_Syn_CodeAGItf :: !(CModule)}
wrap_CodeAGItf :: T_CodeAGItf ->
Inh_CodeAGItf ->
Syn_CodeAGItf
wrap_CodeAGItf sem (Inh_CodeAGItf _lhsIopts) =
(let ( _lhsOcTrf) | True = sem _lhsIopts
in (Syn_CodeAGItf _lhsOcTrf))
sem_CodeAGItf_AGItf :: T_CModule ->
T_CodeAGItf
sem_CodeAGItf_AGItf module_ =
(\ _lhsIopts ->
(case (_lhsIopts) of
{ _moduleOopts | _moduleOopts `seq` (True) ->
(case (cLevModule) of
{ _moduleOlev | _moduleOlev `seq` (True) ->
(case (module_ _moduleOlev _moduleOopts) of
{ ( _moduleIcTrf) | True ->
(case (_moduleIcTrf) of
{ _lhsOcTrf | _lhsOcTrf `seq` (True) ->
( _lhsOcTrf) }) }) }) }))