module UHC.Light.Compiler.Core.Trf.ExplicitStackTrace(cmodTrfExplicitStackTrace) where
import UHC.Light.Compiler.Base.HsName.Builtin
import UHC.Light.Compiler.Base.Common
import UHC.Light.Compiler.Opts
import UHC.Light.Compiler.Core
import UHC.Light.Compiler.Ty
import UHC.Light.Compiler.LamInfo
import UHC.Light.Compiler.AbstractCore
import Data.Maybe
import qualified Data.Map as Map
cmodTrfExplicitStackTrace :: EHCOpts -> LamMp -> CModule -> (CModule,LamMp)
cmodTrfExplicitStackTrace opts lamMp cmod
= let t = wrap_CodeAGItf (sem_CodeAGItf (CodeAGItf_AGItf cmod))
(Inh_CodeAGItf
{ opts_Inh_CodeAGItf = opts
, lamMp_Inh_CodeAGItf = lamMp
})
in ( cTrf_Syn_CodeAGItf t
, debugLamMp_Syn_CodeAGItf t `Map.union`
gathLamMp_Syn_CodeAGItf t
)
mbStackTrace :: EHCOpts -> Bool -> HsName -> StackTraceInfo
mbStackTrace opts isCand nm
| isCand && ehcOptTargetFlavor opts == TargetFlavor_Debug
= StackTraceInfo_HasStackTraceEquiv (hsnSuffix nm "-$explstacktraced")
| otherwise = StackTraceInfo_None
sem_CAlt :: CAlt ->
T_CAlt
sem_CAlt (CAlt_Alt _pat _expr) =
(sem_CAlt_Alt (sem_CPat _pat) (sem_CExpr _expr))
type T_CAlt = EvalCtx ->
LamMp ->
Int ->
(Maybe HsName) ->
EHCOpts ->
Int ->
( CAlt,LamMp,Int)
sem_CAlt_Alt :: T_CPat ->
T_CExpr ->
T_CAlt
sem_CAlt_Alt pat_ expr_ =
(\ _lhsIevalCtx
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _exprOisTopApp :: Bool
_exprOisTopTup :: Bool
_whatAbove :: WhatExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CAlt
_lhsOuniq :: Int
_patOlamMp :: LamMp
_patOlev :: Int
_patOmbInStackTraceCtxt :: (Maybe HsName)
_patOopts :: EHCOpts
_patOuniq :: Int
_exprOevalCtx :: EvalCtx
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOmbInStackTraceCtxt :: (Maybe HsName)
_exprOopts :: EHCOpts
_exprOuniq :: Int
_exprOwhatAbove :: WhatExpr
_patIcTrf :: CPat
_patIdebugLamMp :: LamMp
_patIfldNmL :: ([HsName])
_patIuniq :: Int
_exprIcTrf :: CExpr
_exprIdebugLamMp :: LamMp
_exprIgathLamMp :: LamMp
_exprIisTraceCandidate :: Bool
_exprItraceCandidateLamArgs :: ([HsName])
_exprItraceCandidateLamBody :: CExpr
_exprIuniq :: Int
_exprIwhatBelow :: WhatExpr
_exprOisTopApp =
True
_exprOisTopTup =
True
_whatAbove =
ExprIsOther
_lev =
_lhsIlev + 1
_lhsOdebugLamMp =
_patIdebugLamMp `Map.union` _exprIdebugLamMp
_cTrf =
CAlt_Alt _patIcTrf _exprIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_exprIuniq
_patOlamMp =
_lhsIlamMp
_patOlev =
_lev
_patOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_patOopts =
_lhsIopts
_patOuniq =
_lhsIuniq
_exprOevalCtx =
_lhsIevalCtx
_exprOlamMp =
_lhsIlamMp
_exprOlev =
_lev
_exprOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_exprOopts =
_lhsIopts
_exprOuniq =
_patIuniq
_exprOwhatAbove =
_whatAbove
( _patIcTrf,_patIdebugLamMp,_patIfldNmL,_patIuniq) =
pat_ _patOlamMp _patOlev _patOmbInStackTraceCtxt _patOopts _patOuniq
( _exprIcTrf,_exprIdebugLamMp,_exprIgathLamMp,_exprIisTraceCandidate,_exprItraceCandidateLamArgs,_exprItraceCandidateLamBody,_exprIuniq,_exprIwhatBelow) =
expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmbInStackTraceCtxt _exprOopts _exprOuniq _exprOwhatAbove
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
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 ->
LamMp ->
Int ->
(Maybe HsName) ->
EHCOpts ->
Int ->
( CAltL,LamMp,Int)
sem_CAltL_Cons :: T_CAlt ->
T_CAltL ->
T_CAltL
sem_CAltL_Cons hd_ tl_ =
(\ _lhsIevalCtx
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CAltL
_lhsOuniq :: Int
_hdOevalCtx :: EvalCtx
_hdOlamMp :: LamMp
_hdOlev :: Int
_hdOmbInStackTraceCtxt :: (Maybe HsName)
_hdOopts :: EHCOpts
_hdOuniq :: Int
_tlOevalCtx :: EvalCtx
_tlOlamMp :: LamMp
_tlOlev :: Int
_tlOmbInStackTraceCtxt :: (Maybe HsName)
_tlOopts :: EHCOpts
_tlOuniq :: Int
_hdIcTrf :: CAlt
_hdIdebugLamMp :: LamMp
_hdIuniq :: Int
_tlIcTrf :: CAltL
_tlIdebugLamMp :: LamMp
_tlIuniq :: Int
_lhsOdebugLamMp =
_hdIdebugLamMp `Map.union` _tlIdebugLamMp
_cTrf =
(:) _hdIcTrf _tlIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_tlIuniq
_hdOevalCtx =
_lhsIevalCtx
_hdOlamMp =
_lhsIlamMp
_hdOlev =
_lhsIlev
_hdOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_hdOopts =
_lhsIopts
_hdOuniq =
_lhsIuniq
_tlOevalCtx =
_lhsIevalCtx
_tlOlamMp =
_lhsIlamMp
_tlOlev =
_lhsIlev
_tlOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_tlOopts =
_lhsIopts
_tlOuniq =
_hdIuniq
( _hdIcTrf,_hdIdebugLamMp,_hdIuniq) =
hd_ _hdOevalCtx _hdOlamMp _hdOlev _hdOmbInStackTraceCtxt _hdOopts _hdOuniq
( _tlIcTrf,_tlIdebugLamMp,_tlIuniq) =
tl_ _tlOevalCtx _tlOlamMp _tlOlev _tlOmbInStackTraceCtxt _tlOopts _tlOuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CAltL_Nil :: T_CAltL
sem_CAltL_Nil =
(\ _lhsIevalCtx
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CAltL
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_cTrf =
[]
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CBind :: CBind ->
T_CBind
sem_CBind (CBind_Bind _nm _bindAspects) =
(sem_CBind_Bind _nm (sem_CBoundL _bindAspects))
type T_CBind = EvalCtx ->
Bool ->
LamMp ->
CBindCateg ->
Int ->
(Maybe HsName) ->
EHCOpts ->
Int ->
( ([CBind]),LamMp,CBind,LamMp,HsName,Int)
sem_CBind_Bind :: HsName ->
T_CBoundL ->
T_CBind
sem_CBind_Bind nm_ bindAspects_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _bindAspectsOnm :: HsName
_lhsOnm :: HsName
_lhsObindCTrfL :: ([CBind])
_lhsObindLamMp :: LamMp
_lhsOdebugLamMp :: LamMp
_cTrf :: CBind
_lhsOcTrf :: CBind
_lhsOuniq :: Int
_bindAspectsOevalCtx :: EvalCtx
_bindAspectsOisGlobal :: Bool
_bindAspectsOlamMp :: LamMp
_bindAspectsOletBindingsCateg :: CBindCateg
_bindAspectsOlev :: Int
_bindAspectsOmbInStackTraceCtxt :: (Maybe HsName)
_bindAspectsOopts :: EHCOpts
_bindAspectsOuniq :: Int
_bindAspectsIbindCTrfL :: ([CBind])
_bindAspectsIbindLamMp :: LamMp
_bindAspectsIcTrf :: CBoundL
_bindAspectsIdebugLamMp :: LamMp
_bindAspectsIuniq :: Int
_bindAspectsOnm =
nm_
_lhsOnm =
nm_
_lhsObindCTrfL =
_bindAspectsIbindCTrfL
_lhsObindLamMp =
_bindAspectsIbindLamMp
_lhsOdebugLamMp =
_bindAspectsIdebugLamMp
_cTrf =
CBind_Bind nm_ _bindAspectsIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_bindAspectsIuniq
_bindAspectsOevalCtx =
_lhsIevalCtx
_bindAspectsOisGlobal =
_lhsIisGlobal
_bindAspectsOlamMp =
_lhsIlamMp
_bindAspectsOletBindingsCateg =
_lhsIletBindingsCateg
_bindAspectsOlev =
_lhsIlev
_bindAspectsOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_bindAspectsOopts =
_lhsIopts
_bindAspectsOuniq =
_lhsIuniq
( _bindAspectsIbindCTrfL,_bindAspectsIbindLamMp,_bindAspectsIcTrf,_bindAspectsIdebugLamMp,_bindAspectsIuniq) =
bindAspects_ _bindAspectsOevalCtx _bindAspectsOisGlobal _bindAspectsOlamMp _bindAspectsOletBindingsCateg _bindAspectsOlev _bindAspectsOmbInStackTraceCtxt _bindAspectsOnm _bindAspectsOopts _bindAspectsOuniq
in ( _lhsObindCTrfL,_lhsObindLamMp,_lhsOcTrf,_lhsOdebugLamMp,_lhsOnm,_lhsOuniq)))
sem_CBindAnn :: CBindAnn ->
T_CBindAnn
sem_CBindAnn (CBindAnn_Coe _coe) =
(sem_CBindAnn_Coe _coe)
type T_CBindAnn = LamMp ->
Int ->
(Maybe HsName) ->
EHCOpts ->
Int ->
( CBindAnn,LamMp,Int)
sem_CBindAnn_Coe :: RelevCoe ->
T_CBindAnn
sem_CBindAnn_Coe coe_ =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CBindAnn
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_cTrf =
CBindAnn_Coe coe_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CBindAnnL :: CBindAnnL ->
T_CBindAnnL
sem_CBindAnnL list =
(Prelude.foldr sem_CBindAnnL_Cons sem_CBindAnnL_Nil (Prelude.map sem_CBindAnn list))
type T_CBindAnnL = LamMp ->
Int ->
(Maybe HsName) ->
EHCOpts ->
Int ->
( CBindAnnL,LamMp,Int)
sem_CBindAnnL_Cons :: T_CBindAnn ->
T_CBindAnnL ->
T_CBindAnnL
sem_CBindAnnL_Cons hd_ tl_ =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CBindAnnL
_lhsOuniq :: Int
_hdOlamMp :: LamMp
_hdOlev :: Int
_hdOmbInStackTraceCtxt :: (Maybe HsName)
_hdOopts :: EHCOpts
_hdOuniq :: Int
_tlOlamMp :: LamMp
_tlOlev :: Int
_tlOmbInStackTraceCtxt :: (Maybe HsName)
_tlOopts :: EHCOpts
_tlOuniq :: Int
_hdIcTrf :: CBindAnn
_hdIdebugLamMp :: LamMp
_hdIuniq :: Int
_tlIcTrf :: CBindAnnL
_tlIdebugLamMp :: LamMp
_tlIuniq :: Int
_lhsOdebugLamMp =
_hdIdebugLamMp `Map.union` _tlIdebugLamMp
_cTrf =
(:) _hdIcTrf _tlIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_tlIuniq
_hdOlamMp =
_lhsIlamMp
_hdOlev =
_lhsIlev
_hdOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_hdOopts =
_lhsIopts
_hdOuniq =
_lhsIuniq
_tlOlamMp =
_lhsIlamMp
_tlOlev =
_lhsIlev
_tlOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_tlOopts =
_lhsIopts
_tlOuniq =
_hdIuniq
( _hdIcTrf,_hdIdebugLamMp,_hdIuniq) =
hd_ _hdOlamMp _hdOlev _hdOmbInStackTraceCtxt _hdOopts _hdOuniq
( _tlIcTrf,_tlIdebugLamMp,_tlIuniq) =
tl_ _tlOlamMp _tlOlev _tlOmbInStackTraceCtxt _tlOopts _tlOuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CBindAnnL_Nil :: T_CBindAnnL
sem_CBindAnnL_Nil =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CBindAnnL
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_cTrf =
[]
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
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 ->
LamMp ->
CBindCateg ->
Int ->
(Maybe HsName) ->
EHCOpts ->
Int ->
( ([CBind]),LamMp,CBindL,LamMp,Int)
sem_CBindL_Cons :: T_CBind ->
T_CBindL ->
T_CBindL
sem_CBindL_Cons hd_ tl_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsObindCTrfL :: ([CBind])
_lhsObindLamMp :: LamMp
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CBindL
_lhsOuniq :: Int
_hdOevalCtx :: EvalCtx
_hdOisGlobal :: Bool
_hdOlamMp :: LamMp
_hdOletBindingsCateg :: CBindCateg
_hdOlev :: Int
_hdOmbInStackTraceCtxt :: (Maybe HsName)
_hdOopts :: EHCOpts
_hdOuniq :: Int
_tlOevalCtx :: EvalCtx
_tlOisGlobal :: Bool
_tlOlamMp :: LamMp
_tlOletBindingsCateg :: CBindCateg
_tlOlev :: Int
_tlOmbInStackTraceCtxt :: (Maybe HsName)
_tlOopts :: EHCOpts
_tlOuniq :: Int
_hdIbindCTrfL :: ([CBind])
_hdIbindLamMp :: LamMp
_hdIcTrf :: CBind
_hdIdebugLamMp :: LamMp
_hdInm :: HsName
_hdIuniq :: Int
_tlIbindCTrfL :: ([CBind])
_tlIbindLamMp :: LamMp
_tlIcTrf :: CBindL
_tlIdebugLamMp :: LamMp
_tlIuniq :: Int
_lhsObindCTrfL =
_hdIbindCTrfL ++ _tlIbindCTrfL
_lhsObindLamMp =
_hdIbindLamMp `lamMpUnionBindAspMp` _tlIbindLamMp
_lhsOdebugLamMp =
_hdIdebugLamMp `Map.union` _tlIdebugLamMp
_cTrf =
(:) _hdIcTrf _tlIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_tlIuniq
_hdOevalCtx =
_lhsIevalCtx
_hdOisGlobal =
_lhsIisGlobal
_hdOlamMp =
_lhsIlamMp
_hdOletBindingsCateg =
_lhsIletBindingsCateg
_hdOlev =
_lhsIlev
_hdOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_hdOopts =
_lhsIopts
_hdOuniq =
_lhsIuniq
_tlOevalCtx =
_lhsIevalCtx
_tlOisGlobal =
_lhsIisGlobal
_tlOlamMp =
_lhsIlamMp
_tlOletBindingsCateg =
_lhsIletBindingsCateg
_tlOlev =
_lhsIlev
_tlOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_tlOopts =
_lhsIopts
_tlOuniq =
_hdIuniq
( _hdIbindCTrfL,_hdIbindLamMp,_hdIcTrf,_hdIdebugLamMp,_hdInm,_hdIuniq) =
hd_ _hdOevalCtx _hdOisGlobal _hdOlamMp _hdOletBindingsCateg _hdOlev _hdOmbInStackTraceCtxt _hdOopts _hdOuniq
( _tlIbindCTrfL,_tlIbindLamMp,_tlIcTrf,_tlIdebugLamMp,_tlIuniq) =
tl_ _tlOevalCtx _tlOisGlobal _tlOlamMp _tlOletBindingsCateg _tlOlev _tlOmbInStackTraceCtxt _tlOopts _tlOuniq
in ( _lhsObindCTrfL,_lhsObindLamMp,_lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CBindL_Nil :: T_CBindL
sem_CBindL_Nil =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsObindCTrfL :: ([CBind])
_lhsObindLamMp :: LamMp
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CBindL
_lhsOuniq :: Int
_lhsObindCTrfL =
[]
_lhsObindLamMp =
Map.empty
_lhsOdebugLamMp =
Map.empty
_cTrf =
[]
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsObindCTrfL,_lhsObindLamMp,_lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
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 ->
LamMp ->
CBindCateg ->
Int ->
(Maybe HsName) ->
HsName ->
EHCOpts ->
Int ->
( ([CBind]),LamMp,CBound,LamMp,Int)
sem_CBound_Bind :: T_CMetas ->
T_CExpr ->
T_CBound
sem_CBound_Bind bindMeta_ expr_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsInm
_lhsIopts
_lhsIuniq ->
(let _exprOisTopApp :: Bool
_exprOisTopTup :: Bool
_whatAbove :: WhatExpr
_lhsObindLamMp :: LamMp
_lhsOdebugLamMp :: LamMp
_lhsObindCTrfL :: ([CBind])
_cTrf :: CBound
_lhsOcTrf :: CBound
_lhsOuniq :: Int
_bindMetaOlamMp :: LamMp
_bindMetaOlev :: Int
_bindMetaOmbInStackTraceCtxt :: (Maybe HsName)
_bindMetaOopts :: EHCOpts
_bindMetaOuniq :: Int
_exprOevalCtx :: EvalCtx
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOmbInStackTraceCtxt :: (Maybe HsName)
_exprOopts :: EHCOpts
_exprOuniq :: Int
_exprOwhatAbove :: WhatExpr
_bindMetaIcTrf :: CMetas
_bindMetaIdebugLamMp :: LamMp
_bindMetaIuniq :: Int
_exprIcTrf :: CExpr
_exprIdebugLamMp :: LamMp
_exprIgathLamMp :: LamMp
_exprIisTraceCandidate :: Bool
_exprItraceCandidateLamArgs :: ([HsName])
_exprItraceCandidateLamBody :: CExpr
_exprIuniq :: Int
_exprIwhatBelow :: WhatExpr
_exprOisTopApp =
True
_exprOisTopTup =
True
_whatAbove =
ExprIsBind _lhsInm
_isTraceCandidate =
_lhsIisGlobal || _exprIisTraceCandidate
__tup1 =
let mbt = mbStackTrace _lhsIopts _isTraceCandidate _lhsInm
in (mbt,Map.singleton _lhsInm (emptyLamInfo {laminfoStackTrace = mbt}))
(_mbStackTrace,_) =
__tup1
(_,_lhsObindLamMp) =
__tup1
_uniq =
_lhsIuniq + 1
_nmStackTrace =
mkHNm $ "_$" ++ show _lhsIuniq ++ "_stacktrace"
__tup2 =
case _mbStackTrace of
StackTraceInfo_HasStackTraceEquiv dbNm | _isTraceCandidate
-> ( [ acoreBind1Cat CBindCateg_Plain dbNm (acoreLam1 _nmStackTrace _exprIcTrf)
, acoreBind1MetasTy _lhsInm _bindMetaIcTrf (acoreTyErr "ExplicitStackTrace.CBound.Bind")
$ acoreLam _exprItraceCandidateLamArgs
$ acoreApp (acoreVar dbNm)
( acoreVar (ehcOptBuiltin _lhsIopts ehbnDataListAltNil)
: map acoreVar _exprItraceCandidateLamArgs
)
]
, Just _nmStackTrace
, Map.fromList
[ (dbNm, emptyLamInfo {laminfoStackTrace = StackTraceInfo_IsStackTraceEquiv _lhsInm})
]
)
_ -> ([acoreBind1Asp1 _lhsInm _cTrf], _lhsImbInStackTraceCtxt, Map.empty)
(_bindCTrfL,_,_) =
__tup2
(_,_mbInStackTraceCtxt,_) =
__tup2
(_,_,_newLamMp) =
__tup2
_lhsOdebugLamMp =
_newLamMp `Map.union` _exprIdebugLamMp
_lhsObindCTrfL =
_bindCTrfL
_cTrf =
CBound_Bind _bindMetaIcTrf _exprIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_uniq
_bindMetaOlamMp =
_lhsIlamMp
_bindMetaOlev =
_lhsIlev
_bindMetaOmbInStackTraceCtxt =
_mbInStackTraceCtxt
_bindMetaOopts =
_lhsIopts
_bindMetaOuniq =
_uniq
_exprOevalCtx =
_lhsIevalCtx
_exprOlamMp =
_lhsIlamMp
_exprOlev =
_lhsIlev
_exprOmbInStackTraceCtxt =
_mbInStackTraceCtxt
_exprOopts =
_lhsIopts
_exprOuniq =
_uniq
_exprOwhatAbove =
_whatAbove
( _bindMetaIcTrf,_bindMetaIdebugLamMp,_bindMetaIuniq) =
bindMeta_ _bindMetaOlamMp _bindMetaOlev _bindMetaOmbInStackTraceCtxt _bindMetaOopts _bindMetaOuniq
( _exprIcTrf,_exprIdebugLamMp,_exprIgathLamMp,_exprIisTraceCandidate,_exprItraceCandidateLamArgs,_exprItraceCandidateLamBody,_exprIuniq,_exprIwhatBelow) =
expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmbInStackTraceCtxt _exprOopts _exprOuniq _exprOwhatAbove
in ( _lhsObindCTrfL,_lhsObindLamMp,_lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CBound_Meta :: ACoreBindAspectKeyS ->
T_CMetas ->
T_CBound
sem_CBound_Meta aspectKeyS_ cmetas_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsInm
_lhsIopts
_lhsIuniq ->
(let _lhsObindCTrfL :: ([CBind])
_lhsObindLamMp :: LamMp
_lhsOdebugLamMp :: LamMp
_cTrf :: CBound
_lhsOcTrf :: CBound
_lhsOuniq :: Int
_cmetasOlamMp :: LamMp
_cmetasOlev :: Int
_cmetasOmbInStackTraceCtxt :: (Maybe HsName)
_cmetasOopts :: EHCOpts
_cmetasOuniq :: Int
_cmetasIcTrf :: CMetas
_cmetasIdebugLamMp :: LamMp
_cmetasIuniq :: Int
_bindCTrfL =
[acoreBind1Asp1 _lhsInm _cTrf]
_lhsObindCTrfL =
_bindCTrfL
_lhsObindLamMp =
Map.empty
_lhsOdebugLamMp =
_cmetasIdebugLamMp
_cTrf =
CBound_Meta aspectKeyS_ _cmetasIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_cmetasIuniq
_cmetasOlamMp =
_lhsIlamMp
_cmetasOlev =
_lhsIlev
_cmetasOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_cmetasOopts =
_lhsIopts
_cmetasOuniq =
_lhsIuniq
( _cmetasIcTrf,_cmetasIdebugLamMp,_cmetasIuniq) =
cmetas_ _cmetasOlamMp _cmetasOlev _cmetasOmbInStackTraceCtxt _cmetasOopts _cmetasOuniq
in ( _lhsObindCTrfL,_lhsObindLamMp,_lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CBound_RelevTy :: ACoreBindAspectKeyS ->
RelevTy ->
T_CBound
sem_CBound_RelevTy aspectKeyS_ relevTy_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsInm
_lhsIopts
_lhsIuniq ->
(let _lhsObindCTrfL :: ([CBind])
_lhsObindLamMp :: LamMp
_lhsOdebugLamMp :: LamMp
_cTrf :: CBound
_lhsOcTrf :: CBound
_lhsOuniq :: Int
_bindCTrfL =
[acoreBind1Asp1 _lhsInm _cTrf]
_lhsObindCTrfL =
_bindCTrfL
_lhsObindLamMp =
Map.empty
_lhsOdebugLamMp =
Map.empty
_cTrf =
CBound_RelevTy aspectKeyS_ relevTy_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsObindCTrfL,_lhsObindLamMp,_lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CBound_Val :: ACoreBindAspectKeyS ->
MetaLev ->
CLbl ->
T_CExpr ->
T_CBound
sem_CBound_Val aspectKeyS_ mlev_ lbl_ expr_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsInm
_lhsIopts
_lhsIuniq ->
(let _whatAbove :: WhatExpr
_lhsObindCTrfL :: ([CBind])
_lhsObindLamMp :: LamMp
_lhsOdebugLamMp :: LamMp
_cTrf :: CBound
_lhsOcTrf :: CBound
_lhsOuniq :: Int
_exprOevalCtx :: EvalCtx
_exprOisTopApp :: Bool
_exprOisTopTup :: Bool
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOmbInStackTraceCtxt :: (Maybe HsName)
_exprOopts :: EHCOpts
_exprOuniq :: Int
_exprOwhatAbove :: WhatExpr
_exprIcTrf :: CExpr
_exprIdebugLamMp :: LamMp
_exprIgathLamMp :: LamMp
_exprIisTraceCandidate :: Bool
_exprItraceCandidateLamArgs :: ([HsName])
_exprItraceCandidateLamBody :: CExpr
_exprIuniq :: Int
_exprIwhatBelow :: WhatExpr
_whatAbove =
ExprIsBind _lhsInm
_bindCTrfL =
[acoreBind1Asp1 _lhsInm _cTrf]
_lhsObindCTrfL =
_bindCTrfL
_lhsObindLamMp =
Map.empty
_lhsOdebugLamMp =
_exprIdebugLamMp
_cTrf =
CBound_Val aspectKeyS_ mlev_ lbl_ _exprIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_exprIuniq
_exprOevalCtx =
_lhsIevalCtx
_exprOisTopApp =
_lhsIisTopApp
_exprOisTopTup =
_lhsIisTopTup
_exprOlamMp =
_lhsIlamMp
_exprOlev =
_lhsIlev
_exprOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_exprOopts =
_lhsIopts
_exprOuniq =
_lhsIuniq
_exprOwhatAbove =
_whatAbove
( _exprIcTrf,_exprIdebugLamMp,_exprIgathLamMp,_exprIisTraceCandidate,_exprItraceCandidateLamArgs,_exprItraceCandidateLamBody,_exprIuniq,_exprIwhatBelow) =
expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmbInStackTraceCtxt _exprOopts _exprOuniq _exprOwhatAbove
in ( _lhsObindCTrfL,_lhsObindLamMp,_lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CBound_Ty :: ACoreBindAspectKeyS ->
Ty ->
T_CBound
sem_CBound_Ty aspectKeyS_ ty_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsInm
_lhsIopts
_lhsIuniq ->
(let _lhsObindCTrfL :: ([CBind])
_lhsObindLamMp :: LamMp
_lhsOdebugLamMp :: LamMp
_cTrf :: CBound
_lhsOcTrf :: CBound
_lhsOuniq :: Int
_bindCTrfL =
[acoreBind1Asp1 _lhsInm _cTrf]
_lhsObindCTrfL =
_bindCTrfL
_lhsObindLamMp =
Map.empty
_lhsOdebugLamMp =
Map.empty
_cTrf =
CBound_Ty aspectKeyS_ ty_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsObindCTrfL,_lhsObindLamMp,_lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CBound_FFE :: FFIWay ->
ForeignEnt ->
T_CExpr ->
Ty ->
T_CBound
sem_CBound_FFE callconv_ expEnt_ expr_ ty_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsInm
_lhsIopts
_lhsIuniq ->
(let _exprOisTopApp :: Bool
_exprOisTopTup :: Bool
_whatAbove :: WhatExpr
_lhsObindCTrfL :: ([CBind])
_lhsObindLamMp :: LamMp
_lhsOdebugLamMp :: LamMp
_cTrf :: CBound
_lhsOcTrf :: CBound
_lhsOuniq :: Int
_exprOevalCtx :: EvalCtx
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOmbInStackTraceCtxt :: (Maybe HsName)
_exprOopts :: EHCOpts
_exprOuniq :: Int
_exprOwhatAbove :: WhatExpr
_exprIcTrf :: CExpr
_exprIdebugLamMp :: LamMp
_exprIgathLamMp :: LamMp
_exprIisTraceCandidate :: Bool
_exprItraceCandidateLamArgs :: ([HsName])
_exprItraceCandidateLamBody :: CExpr
_exprIuniq :: Int
_exprIwhatBelow :: WhatExpr
_exprOisTopApp =
True
_exprOisTopTup =
True
_whatAbove =
ExprIsLam 0 Nothing
_bindCTrfL =
[acoreBind1Asp1 _lhsInm _cTrf]
_lhsObindCTrfL =
_bindCTrfL
_lhsObindLamMp =
Map.empty
_lhsOdebugLamMp =
_exprIdebugLamMp
_cTrf =
CBound_FFE callconv_ expEnt_ _exprIcTrf ty_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_exprIuniq
_exprOevalCtx =
_lhsIevalCtx
_exprOlamMp =
_lhsIlamMp
_exprOlev =
_lhsIlev
_exprOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_exprOopts =
_lhsIopts
_exprOuniq =
_lhsIuniq
_exprOwhatAbove =
_whatAbove
( _exprIcTrf,_exprIdebugLamMp,_exprIgathLamMp,_exprIisTraceCandidate,_exprItraceCandidateLamArgs,_exprItraceCandidateLamBody,_exprIuniq,_exprIwhatBelow) =
expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmbInStackTraceCtxt _exprOopts _exprOuniq _exprOwhatAbove
in ( _lhsObindCTrfL,_lhsObindLamMp,_lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
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 ->
LamMp ->
CBindCateg ->
Int ->
(Maybe HsName) ->
HsName ->
EHCOpts ->
Int ->
( ([CBind]),LamMp,CBoundL,LamMp,Int)
sem_CBoundL_Cons :: T_CBound ->
T_CBoundL ->
T_CBoundL
sem_CBoundL_Cons hd_ tl_ =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsInm
_lhsIopts
_lhsIuniq ->
(let _hdOisTopApp :: Bool
_hdOisTopTup :: Bool
_lhsObindCTrfL :: ([CBind])
_lhsObindLamMp :: LamMp
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CBoundL
_lhsOuniq :: Int
_hdOevalCtx :: EvalCtx
_hdOisGlobal :: Bool
_hdOlamMp :: LamMp
_hdOletBindingsCateg :: CBindCateg
_hdOlev :: Int
_hdOmbInStackTraceCtxt :: (Maybe HsName)
_hdOnm :: HsName
_hdOopts :: EHCOpts
_hdOuniq :: Int
_tlOevalCtx :: EvalCtx
_tlOisGlobal :: Bool
_tlOlamMp :: LamMp
_tlOletBindingsCateg :: CBindCateg
_tlOlev :: Int
_tlOmbInStackTraceCtxt :: (Maybe HsName)
_tlOnm :: HsName
_tlOopts :: EHCOpts
_tlOuniq :: Int
_hdIbindCTrfL :: ([CBind])
_hdIbindLamMp :: LamMp
_hdIcTrf :: CBound
_hdIdebugLamMp :: LamMp
_hdIuniq :: Int
_tlIbindCTrfL :: ([CBind])
_tlIbindLamMp :: LamMp
_tlIcTrf :: CBoundL
_tlIdebugLamMp :: LamMp
_tlIuniq :: Int
_hdOisTopApp =
True
_hdOisTopTup =
True
_lhsObindCTrfL =
_hdIbindCTrfL ++ _tlIbindCTrfL
_lhsObindLamMp =
_hdIbindLamMp `lamMpUnionBindAspMp` _tlIbindLamMp
_lhsOdebugLamMp =
_hdIdebugLamMp `Map.union` _tlIdebugLamMp
_cTrf =
(:) _hdIcTrf _tlIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_tlIuniq
_hdOevalCtx =
_lhsIevalCtx
_hdOisGlobal =
_lhsIisGlobal
_hdOlamMp =
_lhsIlamMp
_hdOletBindingsCateg =
_lhsIletBindingsCateg
_hdOlev =
_lhsIlev
_hdOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_hdOnm =
_lhsInm
_hdOopts =
_lhsIopts
_hdOuniq =
_lhsIuniq
_tlOevalCtx =
_lhsIevalCtx
_tlOisGlobal =
_lhsIisGlobal
_tlOlamMp =
_lhsIlamMp
_tlOletBindingsCateg =
_lhsIletBindingsCateg
_tlOlev =
_lhsIlev
_tlOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_tlOnm =
_lhsInm
_tlOopts =
_lhsIopts
_tlOuniq =
_hdIuniq
( _hdIbindCTrfL,_hdIbindLamMp,_hdIcTrf,_hdIdebugLamMp,_hdIuniq) =
hd_ _hdOevalCtx _hdOisGlobal _hdOisTopApp _hdOisTopTup _hdOlamMp _hdOletBindingsCateg _hdOlev _hdOmbInStackTraceCtxt _hdOnm _hdOopts _hdOuniq
( _tlIbindCTrfL,_tlIbindLamMp,_tlIcTrf,_tlIdebugLamMp,_tlIuniq) =
tl_ _tlOevalCtx _tlOisGlobal _tlOlamMp _tlOletBindingsCateg _tlOlev _tlOmbInStackTraceCtxt _tlOnm _tlOopts _tlOuniq
in ( _lhsObindCTrfL,_lhsObindLamMp,_lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CBoundL_Nil :: T_CBoundL
sem_CBoundL_Nil =
(\ _lhsIevalCtx
_lhsIisGlobal
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsInm
_lhsIopts
_lhsIuniq ->
(let _lhsObindCTrfL :: ([CBind])
_lhsObindLamMp :: LamMp
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CBoundL
_lhsOuniq :: Int
_lhsObindCTrfL =
[]
_lhsObindLamMp =
Map.empty
_lhsOdebugLamMp =
Map.empty
_cTrf =
[]
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsObindCTrfL,_lhsObindLamMp,_lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
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_ =
(let _lhsOcTrf :: CDataCon
_cTrf =
CDataCon_Con conNm_ tagNr_ arity_
_lhsOcTrf =
_cTrf
in ( _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_ =
(let _lhsOcTrf :: CDataConL
_hdIcTrf :: CDataCon
_tlIcTrf :: CDataConL
_cTrf =
(:) _hdIcTrf _tlIcTrf
_lhsOcTrf =
_cTrf
( _hdIcTrf) =
hd_
( _tlIcTrf) =
tl_
in ( _lhsOcTrf))
sem_CDataConL_Nil :: T_CDataConL
sem_CDataConL_Nil =
(let _lhsOcTrf :: CDataConL
_cTrf =
[]
_lhsOcTrf =
_cTrf
in ( _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_ =
(let _lhsOcTrf :: CDeclMeta
_dataConsIcTrf :: CDataConL
_cTrf =
CDeclMeta_Data tyNm_ _dataConsIcTrf
_lhsOcTrf =
_cTrf
( _dataConsIcTrf) =
dataCons_
in ( _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_ =
(let _lhsOcTrf :: CDeclMetaL
_hdIcTrf :: CDeclMeta
_tlIcTrf :: CDeclMetaL
_cTrf =
(:) _hdIcTrf _tlIcTrf
_lhsOcTrf =
_cTrf
( _hdIcTrf) =
hd_
( _tlIcTrf) =
tl_
in ( _lhsOcTrf))
sem_CDeclMetaL_Nil :: T_CDeclMetaL
sem_CDeclMetaL_Nil =
(let _lhsOcTrf :: CDeclMetaL
_cTrf =
[]
_lhsOcTrf =
_cTrf
in ( _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_ =
(let _lhsOcTrf :: CExport
_cTrf =
CExport_Export nm_
_lhsOcTrf =
_cTrf
in ( _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_ =
(let _lhsOcTrf :: CExportL
_hdIcTrf :: CExport
_tlIcTrf :: CExportL
_cTrf =
(:) _hdIcTrf _tlIcTrf
_lhsOcTrf =
_cTrf
( _hdIcTrf) =
hd_
( _tlIcTrf) =
tl_
in ( _lhsOcTrf))
sem_CExportL_Nil :: T_CExportL
sem_CExportL_Nil =
(let _lhsOcTrf :: CExportL
_cTrf =
[]
_lhsOcTrf =
_cTrf
in ( _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 ->
LamMp ->
Int ->
(Maybe HsName) ->
EHCOpts ->
Int ->
WhatExpr ->
( CExpr,LamMp,LamMp,Bool,([HsName]),CExpr,Int,WhatExpr)
sem_CExpr_Var :: ACoreBindRef ->
T_CExpr
sem_CExpr_Var ref_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_nm :: HsName
_nmAsp :: HsName
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOcTrf :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_nm =
acbrefNm ref_
_nmAsp =
mkHNm ref_
_isTopApp =
True
_isTopTup =
True
_whatBelow =
ExprIsVar _nm
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOcTrf =
case Map.lookup _nm _lhsIlamMp of
Just (LamInfo {laminfoStackTrace=StackTraceInfo_HasStackTraceEquiv dbNm})
-> case _lhsImbInStackTraceCtxt of
Just stTrNm
-> acore1App (acoreVar dbNm)
(acoreApp (acoreVar hsnStackTracePush) [acoreBuiltinString _lhsIopts (show _nm), acoreVar stTrNm])
_ -> _cTrf
_ -> _cTrf
_lhsOdebugLamMp =
Map.empty
_cTrf =
CExpr_Var ref_
_lhsOuniq =
_lhsIuniq
_lhsOwhatBelow =
_whatBelow
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_Int :: Int ->
T_CExpr
sem_CExpr_Int int_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_isTopApp =
True
_isTopTup =
True
_whatBelow =
ExprIsInt int_
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
Map.empty
_cTrf =
CExpr_Int int_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
_lhsOwhatBelow =
_whatBelow
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_Char :: Char ->
T_CExpr
sem_CExpr_Char char_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_isTopApp =
True
_isTopTup =
True
_whatBelow =
ExprIsOtherWHNF
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
Map.empty
_cTrf =
CExpr_Char char_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
_lhsOwhatBelow =
_whatBelow
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_String :: String ->
T_CExpr
sem_CExpr_String str_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_isTopApp =
True
_isTopTup =
True
_whatBelow =
ExprIsOtherWHNF
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
Map.empty
_cTrf =
CExpr_String str_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
_lhsOwhatBelow =
_whatBelow
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_Integer :: Integer ->
T_CExpr
sem_CExpr_Integer integer_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_isTopApp =
True
_isTopTup =
True
_whatBelow =
ExprIsOtherWHNF
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
Map.empty
_cTrf =
CExpr_Integer integer_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
_lhsOwhatBelow =
_whatBelow
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_Tup :: CTag ->
T_CExpr
sem_CExpr_Tup tag_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_isTopApp =
True
_isTopTup =
True
_whatBelow =
ExprIsTup tag_
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
Map.empty
_cTrf =
CExpr_Tup tag_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
_lhsOwhatBelow =
_whatBelow
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_Let :: CBindCateg ->
T_CBindL ->
T_CExpr ->
T_CExpr
sem_CExpr_Let categ_ binds_ body_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_bindsOlev :: Int
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOcTrf :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_bindsOevalCtx :: EvalCtx
_bindsOisGlobal :: Bool
_bindsOlamMp :: LamMp
_bindsOletBindingsCateg :: CBindCateg
_bindsOmbInStackTraceCtxt :: (Maybe HsName)
_bindsOopts :: EHCOpts
_bindsOuniq :: Int
_bodyOevalCtx :: EvalCtx
_bodyOisTopApp :: Bool
_bodyOisTopTup :: Bool
_bodyOlamMp :: LamMp
_bodyOlev :: Int
_bodyOmbInStackTraceCtxt :: (Maybe HsName)
_bodyOopts :: EHCOpts
_bodyOuniq :: Int
_bodyOwhatAbove :: WhatExpr
_bindsIbindCTrfL :: ([CBind])
_bindsIbindLamMp :: LamMp
_bindsIcTrf :: CBindL
_bindsIdebugLamMp :: LamMp
_bindsIuniq :: Int
_bodyIcTrf :: CExpr
_bodyIdebugLamMp :: LamMp
_bodyIgathLamMp :: LamMp
_bodyIisTraceCandidate :: Bool
_bodyItraceCandidateLamArgs :: ([HsName])
_bodyItraceCandidateLamBody :: CExpr
_bodyIuniq :: Int
_bodyIwhatBelow :: WhatExpr
_lhsOgathLamMp =
_bindsIbindLamMp `Map.union` _bodyIgathLamMp
_letBindingsCateg =
categ_
_isTopApp =
True
_isTopTup =
True
_whatBelow =
ExprIsOther
_whatAbove =
ExprIsOther
_isTopLet =
whatExprIsBind _lhsIwhatAbove
_evalCtx =
if categ_ == CBindCateg_Strict
then EvalCtx_Eval
else EvalCtx_Thunk
_bindsOlev =
_lhsIlev + 1
_isGlobal =
_lhsIlev == cLevModule
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOcTrf =
CExpr_Let categ_ _bindsIbindCTrfL _bodyIcTrf
_lhsOdebugLamMp =
_bindsIdebugLamMp `Map.union` _bodyIdebugLamMp
_cTrf =
CExpr_Let categ_ _bindsIcTrf _bodyIcTrf
_lhsOuniq =
_bodyIuniq
_lhsOwhatBelow =
_whatBelow
_bindsOevalCtx =
_evalCtx
_bindsOisGlobal =
_isGlobal
_bindsOlamMp =
_lhsIlamMp
_bindsOletBindingsCateg =
_letBindingsCateg
_bindsOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_bindsOopts =
_lhsIopts
_bindsOuniq =
_lhsIuniq
_bodyOevalCtx =
_evalCtx
_bodyOisTopApp =
_isTopApp
_bodyOisTopTup =
_isTopTup
_bodyOlamMp =
_lhsIlamMp
_bodyOlev =
_lhsIlev
_bodyOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_bodyOopts =
_lhsIopts
_bodyOuniq =
_bindsIuniq
_bodyOwhatAbove =
_whatAbove
( _bindsIbindCTrfL,_bindsIbindLamMp,_bindsIcTrf,_bindsIdebugLamMp,_bindsIuniq) =
binds_ _bindsOevalCtx _bindsOisGlobal _bindsOlamMp _bindsOletBindingsCateg _bindsOlev _bindsOmbInStackTraceCtxt _bindsOopts _bindsOuniq
( _bodyIcTrf,_bodyIdebugLamMp,_bodyIgathLamMp,_bodyIisTraceCandidate,_bodyItraceCandidateLamArgs,_bodyItraceCandidateLamBody,_bodyIuniq,_bodyIwhatBelow) =
body_ _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlamMp _bodyOlev _bodyOmbInStackTraceCtxt _bodyOopts _bodyOuniq _bodyOwhatAbove
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_App :: T_CExpr ->
T_CBound ->
T_CExpr
sem_CExpr_App func_ arg_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_argOnm :: HsName
_funcOisTopApp :: Bool
_argOisTopApp :: Bool
_whatAbove :: WhatExpr
_argOevalCtx :: EvalCtx
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_funcOevalCtx :: EvalCtx
_funcOisTopTup :: Bool
_funcOlamMp :: LamMp
_funcOlev :: Int
_funcOmbInStackTraceCtxt :: (Maybe HsName)
_funcOopts :: EHCOpts
_funcOuniq :: Int
_funcOwhatAbove :: WhatExpr
_argOisGlobal :: Bool
_argOisTopTup :: Bool
_argOlamMp :: LamMp
_argOletBindingsCateg :: CBindCateg
_argOlev :: Int
_argOmbInStackTraceCtxt :: (Maybe HsName)
_argOopts :: EHCOpts
_argOuniq :: Int
_funcIcTrf :: CExpr
_funcIdebugLamMp :: LamMp
_funcIgathLamMp :: LamMp
_funcIisTraceCandidate :: Bool
_funcItraceCandidateLamArgs :: ([HsName])
_funcItraceCandidateLamBody :: CExpr
_funcIuniq :: Int
_funcIwhatBelow :: WhatExpr
_argIbindCTrfL :: ([CBind])
_argIbindLamMp :: LamMp
_argIcTrf :: CBound
_argIdebugLamMp :: LamMp
_argIuniq :: Int
_lhsOgathLamMp =
Map.empty
_argOnm =
hsnUnknown
_letBindingsCateg =
acoreBindcategPlain
_funcOisTopApp =
False
_argOisTopApp =
True
_isTopTup =
True
_whatBelow =
maybe (ExprIsApp 1 _funcIwhatBelow) (\(a,w) -> ExprIsApp (a + 1) w) $ whatExprMbApp _funcIwhatBelow
_whatAbove =
maybe (ExprIsApp 1 ExprIsOther) (\(a,w) -> ExprIsApp (a + 1) w) $ whatExprMbApp _lhsIwhatAbove
_isTopApp' =
isNothing $ whatExprMbApp _lhsIwhatAbove
_argOevalCtx =
EvalCtx_Thunk
_isGlobal =
False
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
_funcIdebugLamMp `Map.union` _argIdebugLamMp
_cTrf =
CExpr_App _funcIcTrf _argIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_argIuniq
_lhsOwhatBelow =
_whatBelow
_funcOevalCtx =
_lhsIevalCtx
_funcOisTopTup =
_isTopTup
_funcOlamMp =
_lhsIlamMp
_funcOlev =
_lhsIlev
_funcOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_funcOopts =
_lhsIopts
_funcOuniq =
_lhsIuniq
_funcOwhatAbove =
_whatAbove
_argOisGlobal =
_isGlobal
_argOisTopTup =
_isTopTup
_argOlamMp =
_lhsIlamMp
_argOletBindingsCateg =
_letBindingsCateg
_argOlev =
_lhsIlev
_argOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_argOopts =
_lhsIopts
_argOuniq =
_funcIuniq
( _funcIcTrf,_funcIdebugLamMp,_funcIgathLamMp,_funcIisTraceCandidate,_funcItraceCandidateLamArgs,_funcItraceCandidateLamBody,_funcIuniq,_funcIwhatBelow) =
func_ _funcOevalCtx _funcOisTopApp _funcOisTopTup _funcOlamMp _funcOlev _funcOmbInStackTraceCtxt _funcOopts _funcOuniq _funcOwhatAbove
( _argIbindCTrfL,_argIbindLamMp,_argIcTrf,_argIdebugLamMp,_argIuniq) =
arg_ _argOevalCtx _argOisGlobal _argOisTopApp _argOisTopTup _argOlamMp _argOletBindingsCateg _argOlev _argOmbInStackTraceCtxt _argOnm _argOopts _argOuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_Lam :: T_CBind ->
T_CExpr ->
T_CExpr
sem_CExpr_Lam bind_ body_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_bodyOlamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_bindOevalCtx :: EvalCtx
_bindOisGlobal :: Bool
_bindOlamMp :: LamMp
_bindOletBindingsCateg :: CBindCateg
_bindOlev :: Int
_bindOmbInStackTraceCtxt :: (Maybe HsName)
_bindOopts :: EHCOpts
_bindOuniq :: Int
_bodyOevalCtx :: EvalCtx
_bodyOisTopApp :: Bool
_bodyOisTopTup :: Bool
_bodyOlev :: Int
_bodyOmbInStackTraceCtxt :: (Maybe HsName)
_bodyOopts :: EHCOpts
_bodyOuniq :: Int
_bodyOwhatAbove :: WhatExpr
_bindIbindCTrfL :: ([CBind])
_bindIbindLamMp :: LamMp
_bindIcTrf :: CBind
_bindIdebugLamMp :: LamMp
_bindInm :: HsName
_bindIuniq :: Int
_bodyIcTrf :: CExpr
_bodyIdebugLamMp :: LamMp
_bodyIgathLamMp :: LamMp
_bodyIisTraceCandidate :: Bool
_bodyItraceCandidateLamArgs :: ([HsName])
_bodyItraceCandidateLamBody :: CExpr
_bodyIuniq :: Int
_bodyIwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_bodyOlamMp =
Map.delete _argNm _lhsIlamMp
_argNm =
_bindInm
_letBindingsCateg =
acoreBindcategPlain
_isTopApp =
True
_isTopTup =
True
_whatBelow =
maybe (ExprIsLam 1 Nothing) (\a -> ExprIsLam (a + 1) Nothing) $ whatExprMbLam _bodyIwhatBelow
_whatAbove =
case _lhsIwhatAbove of
ExprIsLam a mbnm -> ExprIsLam (a + 1) mbnm
ExprIsBind nm -> ExprIsLam 1 (Just nm)
_ -> ExprIsLam 1 Nothing
_isTopLam =
not $ whatExprIsLam _lhsIwhatAbove
_lev =
_lhsIlev + 1
_isGlobal =
False
_lhsOisTraceCandidate =
True
_lhsOtraceCandidateLamArgs =
_argNm : _bodyItraceCandidateLamArgs
_lhsOtraceCandidateLamBody =
_bodyItraceCandidateLamBody
_lhsOdebugLamMp =
_bindIdebugLamMp `Map.union` _bodyIdebugLamMp
_cTrf =
CExpr_Lam _bindIcTrf _bodyIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_bodyIuniq
_lhsOwhatBelow =
_whatBelow
_bindOevalCtx =
_lhsIevalCtx
_bindOisGlobal =
_isGlobal
_bindOlamMp =
_lhsIlamMp
_bindOletBindingsCateg =
_letBindingsCateg
_bindOlev =
_lev
_bindOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_bindOopts =
_lhsIopts
_bindOuniq =
_lhsIuniq
_bodyOevalCtx =
_lhsIevalCtx
_bodyOisTopApp =
_isTopApp
_bodyOisTopTup =
_isTopTup
_bodyOlev =
_lev
_bodyOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_bodyOopts =
_lhsIopts
_bodyOuniq =
_bindIuniq
_bodyOwhatAbove =
_whatAbove
( _bindIbindCTrfL,_bindIbindLamMp,_bindIcTrf,_bindIdebugLamMp,_bindInm,_bindIuniq) =
bind_ _bindOevalCtx _bindOisGlobal _bindOlamMp _bindOletBindingsCateg _bindOlev _bindOmbInStackTraceCtxt _bindOopts _bindOuniq
( _bodyIcTrf,_bodyIdebugLamMp,_bodyIgathLamMp,_bodyIisTraceCandidate,_bodyItraceCandidateLamArgs,_bodyItraceCandidateLamBody,_bodyIuniq,_bodyIwhatBelow) =
body_ _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlamMp _bodyOlev _bodyOmbInStackTraceCtxt _bodyOopts _bodyOuniq _bodyOwhatAbove
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_Case :: T_CExpr ->
T_CAltL ->
T_CExpr ->
T_CExpr
sem_CExpr_Case expr_ alts_ dflt_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_exprOevalCtx :: EvalCtx
_exprOisTopApp :: Bool
_exprOisTopTup :: Bool
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOmbInStackTraceCtxt :: (Maybe HsName)
_exprOopts :: EHCOpts
_exprOuniq :: Int
_exprOwhatAbove :: WhatExpr
_altsOevalCtx :: EvalCtx
_altsOlamMp :: LamMp
_altsOlev :: Int
_altsOmbInStackTraceCtxt :: (Maybe HsName)
_altsOopts :: EHCOpts
_altsOuniq :: Int
_dfltOevalCtx :: EvalCtx
_dfltOisTopApp :: Bool
_dfltOisTopTup :: Bool
_dfltOlamMp :: LamMp
_dfltOlev :: Int
_dfltOmbInStackTraceCtxt :: (Maybe HsName)
_dfltOopts :: EHCOpts
_dfltOuniq :: Int
_dfltOwhatAbove :: WhatExpr
_exprIcTrf :: CExpr
_exprIdebugLamMp :: LamMp
_exprIgathLamMp :: LamMp
_exprIisTraceCandidate :: Bool
_exprItraceCandidateLamArgs :: ([HsName])
_exprItraceCandidateLamBody :: CExpr
_exprIuniq :: Int
_exprIwhatBelow :: WhatExpr
_altsIcTrf :: CAltL
_altsIdebugLamMp :: LamMp
_altsIuniq :: Int
_dfltIcTrf :: CExpr
_dfltIdebugLamMp :: LamMp
_dfltIgathLamMp :: LamMp
_dfltIisTraceCandidate :: Bool
_dfltItraceCandidateLamArgs :: ([HsName])
_dfltItraceCandidateLamBody :: CExpr
_dfltIuniq :: Int
_dfltIwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_isTopApp =
True
_isTopTup =
True
_whatBelow =
ExprIsOther
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
_exprIdebugLamMp `Map.union` _altsIdebugLamMp `Map.union` _dfltIdebugLamMp
_cTrf =
CExpr_Case _exprIcTrf _altsIcTrf _dfltIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_dfltIuniq
_lhsOwhatBelow =
_whatBelow
_exprOevalCtx =
_lhsIevalCtx
_exprOisTopApp =
_isTopApp
_exprOisTopTup =
_isTopTup
_exprOlamMp =
_lhsIlamMp
_exprOlev =
_lhsIlev
_exprOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_exprOopts =
_lhsIopts
_exprOuniq =
_lhsIuniq
_exprOwhatAbove =
_whatAbove
_altsOevalCtx =
_lhsIevalCtx
_altsOlamMp =
_lhsIlamMp
_altsOlev =
_lhsIlev
_altsOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_altsOopts =
_lhsIopts
_altsOuniq =
_exprIuniq
_dfltOevalCtx =
_lhsIevalCtx
_dfltOisTopApp =
_isTopApp
_dfltOisTopTup =
_isTopTup
_dfltOlamMp =
_lhsIlamMp
_dfltOlev =
_lhsIlev
_dfltOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_dfltOopts =
_lhsIopts
_dfltOuniq =
_altsIuniq
_dfltOwhatAbove =
_whatAbove
( _exprIcTrf,_exprIdebugLamMp,_exprIgathLamMp,_exprIisTraceCandidate,_exprItraceCandidateLamArgs,_exprItraceCandidateLamBody,_exprIuniq,_exprIwhatBelow) =
expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmbInStackTraceCtxt _exprOopts _exprOuniq _exprOwhatAbove
( _altsIcTrf,_altsIdebugLamMp,_altsIuniq) =
alts_ _altsOevalCtx _altsOlamMp _altsOlev _altsOmbInStackTraceCtxt _altsOopts _altsOuniq
( _dfltIcTrf,_dfltIdebugLamMp,_dfltIgathLamMp,_dfltIisTraceCandidate,_dfltItraceCandidateLamArgs,_dfltItraceCandidateLamBody,_dfltIuniq,_dfltIwhatBelow) =
dflt_ _dfltOevalCtx _dfltOisTopApp _dfltOisTopTup _dfltOlamMp _dfltOlev _dfltOmbInStackTraceCtxt _dfltOopts _dfltOuniq _dfltOwhatAbove
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_CaseAltFail :: CaseAltFailReason ->
T_CExpr ->
T_CExpr
sem_CExpr_CaseAltFail failReason_ errorExpr_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOgathLamMp :: LamMp
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_errorExprOevalCtx :: EvalCtx
_errorExprOisTopApp :: Bool
_errorExprOisTopTup :: Bool
_errorExprOlamMp :: LamMp
_errorExprOlev :: Int
_errorExprOmbInStackTraceCtxt :: (Maybe HsName)
_errorExprOopts :: EHCOpts
_errorExprOuniq :: Int
_errorExprOwhatAbove :: WhatExpr
_errorExprIcTrf :: CExpr
_errorExprIdebugLamMp :: LamMp
_errorExprIgathLamMp :: LamMp
_errorExprIisTraceCandidate :: Bool
_errorExprItraceCandidateLamArgs :: ([HsName])
_errorExprItraceCandidateLamBody :: CExpr
_errorExprIuniq :: Int
_errorExprIwhatBelow :: WhatExpr
_isTopApp =
True
_isTopTup =
True
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
_errorExprIdebugLamMp
_cTrf =
CExpr_CaseAltFail failReason_ _errorExprIcTrf
_lhsOcTrf =
_cTrf
_lhsOgathLamMp =
_errorExprIgathLamMp
_lhsOuniq =
_errorExprIuniq
_lhsOwhatBelow =
_errorExprIwhatBelow
_errorExprOevalCtx =
_lhsIevalCtx
_errorExprOisTopApp =
_isTopApp
_errorExprOisTopTup =
_isTopTup
_errorExprOlamMp =
_lhsIlamMp
_errorExprOlev =
_lhsIlev
_errorExprOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_errorExprOopts =
_lhsIopts
_errorExprOuniq =
_lhsIuniq
_errorExprOwhatAbove =
_whatAbove
( _errorExprIcTrf,_errorExprIdebugLamMp,_errorExprIgathLamMp,_errorExprIisTraceCandidate,_errorExprItraceCandidateLamArgs,_errorExprItraceCandidateLamBody,_errorExprIuniq,_errorExprIwhatBelow) =
errorExpr_ _errorExprOevalCtx _errorExprOisTopApp _errorExprOisTopTup _errorExprOlamMp _errorExprOlev _errorExprOmbInStackTraceCtxt _errorExprOopts _errorExprOuniq _errorExprOwhatAbove
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_TupDel :: T_CExpr ->
CTag ->
HsName ->
T_CExpr ->
T_CExpr
sem_CExpr_TupDel expr_ tag_ nm_ offset_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_exprOisTopTup :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_exprOevalCtx :: EvalCtx
_exprOisTopApp :: Bool
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOmbInStackTraceCtxt :: (Maybe HsName)
_exprOopts :: EHCOpts
_exprOuniq :: Int
_exprOwhatAbove :: WhatExpr
_offsetOevalCtx :: EvalCtx
_offsetOisTopApp :: Bool
_offsetOisTopTup :: Bool
_offsetOlamMp :: LamMp
_offsetOlev :: Int
_offsetOmbInStackTraceCtxt :: (Maybe HsName)
_offsetOopts :: EHCOpts
_offsetOuniq :: Int
_offsetOwhatAbove :: WhatExpr
_exprIcTrf :: CExpr
_exprIdebugLamMp :: LamMp
_exprIgathLamMp :: LamMp
_exprIisTraceCandidate :: Bool
_exprItraceCandidateLamArgs :: ([HsName])
_exprItraceCandidateLamBody :: CExpr
_exprIuniq :: Int
_exprIwhatBelow :: WhatExpr
_offsetIcTrf :: CExpr
_offsetIdebugLamMp :: LamMp
_offsetIgathLamMp :: LamMp
_offsetIisTraceCandidate :: Bool
_offsetItraceCandidateLamArgs :: ([HsName])
_offsetItraceCandidateLamBody :: CExpr
_offsetIuniq :: Int
_offsetIwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_isTopApp =
True
_exprOisTopTup =
False
_isTopTup =
True
_whatBelow =
ExprIsOther
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
_exprIdebugLamMp `Map.union` _offsetIdebugLamMp
_cTrf =
CExpr_TupDel _exprIcTrf tag_ nm_ _offsetIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_offsetIuniq
_lhsOwhatBelow =
_whatBelow
_exprOevalCtx =
_lhsIevalCtx
_exprOisTopApp =
_isTopApp
_exprOlamMp =
_lhsIlamMp
_exprOlev =
_lhsIlev
_exprOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_exprOopts =
_lhsIopts
_exprOuniq =
_lhsIuniq
_exprOwhatAbove =
_whatAbove
_offsetOevalCtx =
_lhsIevalCtx
_offsetOisTopApp =
_isTopApp
_offsetOisTopTup =
_isTopTup
_offsetOlamMp =
_lhsIlamMp
_offsetOlev =
_lhsIlev
_offsetOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_offsetOopts =
_lhsIopts
_offsetOuniq =
_exprIuniq
_offsetOwhatAbove =
_whatAbove
( _exprIcTrf,_exprIdebugLamMp,_exprIgathLamMp,_exprIisTraceCandidate,_exprItraceCandidateLamArgs,_exprItraceCandidateLamBody,_exprIuniq,_exprIwhatBelow) =
expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmbInStackTraceCtxt _exprOopts _exprOuniq _exprOwhatAbove
( _offsetIcTrf,_offsetIdebugLamMp,_offsetIgathLamMp,_offsetIisTraceCandidate,_offsetItraceCandidateLamArgs,_offsetItraceCandidateLamBody,_offsetIuniq,_offsetIwhatBelow) =
offset_ _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlamMp _offsetOlev _offsetOmbInStackTraceCtxt _offsetOopts _offsetOuniq _offsetOwhatAbove
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_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
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_exprOisTopTup :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_exprOevalCtx :: EvalCtx
_exprOisTopApp :: Bool
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOmbInStackTraceCtxt :: (Maybe HsName)
_exprOopts :: EHCOpts
_exprOuniq :: Int
_exprOwhatAbove :: WhatExpr
_offsetOevalCtx :: EvalCtx
_offsetOisTopApp :: Bool
_offsetOisTopTup :: Bool
_offsetOlamMp :: LamMp
_offsetOlev :: Int
_offsetOmbInStackTraceCtxt :: (Maybe HsName)
_offsetOopts :: EHCOpts
_offsetOuniq :: Int
_offsetOwhatAbove :: WhatExpr
_fldExprOevalCtx :: EvalCtx
_fldExprOisTopApp :: Bool
_fldExprOisTopTup :: Bool
_fldExprOlamMp :: LamMp
_fldExprOlev :: Int
_fldExprOmbInStackTraceCtxt :: (Maybe HsName)
_fldExprOopts :: EHCOpts
_fldExprOuniq :: Int
_fldExprOwhatAbove :: WhatExpr
_exprIcTrf :: CExpr
_exprIdebugLamMp :: LamMp
_exprIgathLamMp :: LamMp
_exprIisTraceCandidate :: Bool
_exprItraceCandidateLamArgs :: ([HsName])
_exprItraceCandidateLamBody :: CExpr
_exprIuniq :: Int
_exprIwhatBelow :: WhatExpr
_offsetIcTrf :: CExpr
_offsetIdebugLamMp :: LamMp
_offsetIgathLamMp :: LamMp
_offsetIisTraceCandidate :: Bool
_offsetItraceCandidateLamArgs :: ([HsName])
_offsetItraceCandidateLamBody :: CExpr
_offsetIuniq :: Int
_offsetIwhatBelow :: WhatExpr
_fldExprIcTrf :: CExpr
_fldExprIdebugLamMp :: LamMp
_fldExprIgathLamMp :: LamMp
_fldExprIisTraceCandidate :: Bool
_fldExprItraceCandidateLamArgs :: ([HsName])
_fldExprItraceCandidateLamBody :: CExpr
_fldExprIuniq :: Int
_fldExprIwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_isTopApp =
True
_exprOisTopTup =
False
_isTopTup =
True
_whatBelow =
ExprIsOther
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
_exprIdebugLamMp `Map.union` _offsetIdebugLamMp `Map.union` _fldExprIdebugLamMp
_cTrf =
CExpr_TupIns _exprIcTrf tag_ nm_ _offsetIcTrf _fldExprIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_fldExprIuniq
_lhsOwhatBelow =
_whatBelow
_exprOevalCtx =
_lhsIevalCtx
_exprOisTopApp =
_isTopApp
_exprOlamMp =
_lhsIlamMp
_exprOlev =
_lhsIlev
_exprOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_exprOopts =
_lhsIopts
_exprOuniq =
_lhsIuniq
_exprOwhatAbove =
_whatAbove
_offsetOevalCtx =
_lhsIevalCtx
_offsetOisTopApp =
_isTopApp
_offsetOisTopTup =
_isTopTup
_offsetOlamMp =
_lhsIlamMp
_offsetOlev =
_lhsIlev
_offsetOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_offsetOopts =
_lhsIopts
_offsetOuniq =
_exprIuniq
_offsetOwhatAbove =
_whatAbove
_fldExprOevalCtx =
_lhsIevalCtx
_fldExprOisTopApp =
_isTopApp
_fldExprOisTopTup =
_isTopTup
_fldExprOlamMp =
_lhsIlamMp
_fldExprOlev =
_lhsIlev
_fldExprOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_fldExprOopts =
_lhsIopts
_fldExprOuniq =
_offsetIuniq
_fldExprOwhatAbove =
_whatAbove
( _exprIcTrf,_exprIdebugLamMp,_exprIgathLamMp,_exprIisTraceCandidate,_exprItraceCandidateLamArgs,_exprItraceCandidateLamBody,_exprIuniq,_exprIwhatBelow) =
expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmbInStackTraceCtxt _exprOopts _exprOuniq _exprOwhatAbove
( _offsetIcTrf,_offsetIdebugLamMp,_offsetIgathLamMp,_offsetIisTraceCandidate,_offsetItraceCandidateLamArgs,_offsetItraceCandidateLamBody,_offsetIuniq,_offsetIwhatBelow) =
offset_ _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlamMp _offsetOlev _offsetOmbInStackTraceCtxt _offsetOopts _offsetOuniq _offsetOwhatAbove
( _fldExprIcTrf,_fldExprIdebugLamMp,_fldExprIgathLamMp,_fldExprIisTraceCandidate,_fldExprItraceCandidateLamArgs,_fldExprItraceCandidateLamBody,_fldExprIuniq,_fldExprIwhatBelow) =
fldExpr_ _fldExprOevalCtx _fldExprOisTopApp _fldExprOisTopTup _fldExprOlamMp _fldExprOlev _fldExprOmbInStackTraceCtxt _fldExprOopts _fldExprOuniq _fldExprOwhatAbove
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_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
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_exprOisTopTup :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_exprOevalCtx :: EvalCtx
_exprOisTopApp :: Bool
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOmbInStackTraceCtxt :: (Maybe HsName)
_exprOopts :: EHCOpts
_exprOuniq :: Int
_exprOwhatAbove :: WhatExpr
_offsetOevalCtx :: EvalCtx
_offsetOisTopApp :: Bool
_offsetOisTopTup :: Bool
_offsetOlamMp :: LamMp
_offsetOlev :: Int
_offsetOmbInStackTraceCtxt :: (Maybe HsName)
_offsetOopts :: EHCOpts
_offsetOuniq :: Int
_offsetOwhatAbove :: WhatExpr
_fldExprOevalCtx :: EvalCtx
_fldExprOisTopApp :: Bool
_fldExprOisTopTup :: Bool
_fldExprOlamMp :: LamMp
_fldExprOlev :: Int
_fldExprOmbInStackTraceCtxt :: (Maybe HsName)
_fldExprOopts :: EHCOpts
_fldExprOuniq :: Int
_fldExprOwhatAbove :: WhatExpr
_exprIcTrf :: CExpr
_exprIdebugLamMp :: LamMp
_exprIgathLamMp :: LamMp
_exprIisTraceCandidate :: Bool
_exprItraceCandidateLamArgs :: ([HsName])
_exprItraceCandidateLamBody :: CExpr
_exprIuniq :: Int
_exprIwhatBelow :: WhatExpr
_offsetIcTrf :: CExpr
_offsetIdebugLamMp :: LamMp
_offsetIgathLamMp :: LamMp
_offsetIisTraceCandidate :: Bool
_offsetItraceCandidateLamArgs :: ([HsName])
_offsetItraceCandidateLamBody :: CExpr
_offsetIuniq :: Int
_offsetIwhatBelow :: WhatExpr
_fldExprIcTrf :: CExpr
_fldExprIdebugLamMp :: LamMp
_fldExprIgathLamMp :: LamMp
_fldExprIisTraceCandidate :: Bool
_fldExprItraceCandidateLamArgs :: ([HsName])
_fldExprItraceCandidateLamBody :: CExpr
_fldExprIuniq :: Int
_fldExprIwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_isTopApp =
True
_exprOisTopTup =
False
_isTopTup =
True
_whatBelow =
ExprIsOther
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
_exprIdebugLamMp `Map.union` _offsetIdebugLamMp `Map.union` _fldExprIdebugLamMp
_cTrf =
CExpr_TupUpd _exprIcTrf tag_ nm_ _offsetIcTrf _fldExprIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_fldExprIuniq
_lhsOwhatBelow =
_whatBelow
_exprOevalCtx =
_lhsIevalCtx
_exprOisTopApp =
_isTopApp
_exprOlamMp =
_lhsIlamMp
_exprOlev =
_lhsIlev
_exprOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_exprOopts =
_lhsIopts
_exprOuniq =
_lhsIuniq
_exprOwhatAbove =
_whatAbove
_offsetOevalCtx =
_lhsIevalCtx
_offsetOisTopApp =
_isTopApp
_offsetOisTopTup =
_isTopTup
_offsetOlamMp =
_lhsIlamMp
_offsetOlev =
_lhsIlev
_offsetOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_offsetOopts =
_lhsIopts
_offsetOuniq =
_exprIuniq
_offsetOwhatAbove =
_whatAbove
_fldExprOevalCtx =
_lhsIevalCtx
_fldExprOisTopApp =
_isTopApp
_fldExprOisTopTup =
_isTopTup
_fldExprOlamMp =
_lhsIlamMp
_fldExprOlev =
_lhsIlev
_fldExprOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_fldExprOopts =
_lhsIopts
_fldExprOuniq =
_offsetIuniq
_fldExprOwhatAbove =
_whatAbove
( _exprIcTrf,_exprIdebugLamMp,_exprIgathLamMp,_exprIisTraceCandidate,_exprItraceCandidateLamArgs,_exprItraceCandidateLamBody,_exprIuniq,_exprIwhatBelow) =
expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmbInStackTraceCtxt _exprOopts _exprOuniq _exprOwhatAbove
( _offsetIcTrf,_offsetIdebugLamMp,_offsetIgathLamMp,_offsetIisTraceCandidate,_offsetItraceCandidateLamArgs,_offsetItraceCandidateLamBody,_offsetIuniq,_offsetIwhatBelow) =
offset_ _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlamMp _offsetOlev _offsetOmbInStackTraceCtxt _offsetOopts _offsetOuniq _offsetOwhatAbove
( _fldExprIcTrf,_fldExprIdebugLamMp,_fldExprIgathLamMp,_fldExprIisTraceCandidate,_fldExprItraceCandidateLamArgs,_fldExprItraceCandidateLamBody,_fldExprIuniq,_fldExprIwhatBelow) =
fldExpr_ _fldExprOevalCtx _fldExprOisTopApp _fldExprOisTopTup _fldExprOlamMp _fldExprOlev _fldExprOmbInStackTraceCtxt _fldExprOopts _fldExprOuniq _fldExprOwhatAbove
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_FFI :: FFIWay ->
String ->
ForeignEnt ->
Ty ->
T_CExpr
sem_CExpr_FFI callconv_ safety_ impEnt_ ty_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_isTopApp =
True
_isTopTup =
True
_whatBelow =
ExprIsFFI
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
Map.empty
_cTrf =
CExpr_FFI callconv_ safety_ impEnt_ ty_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
_lhsOwhatBelow =
_whatBelow
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_Dbg :: String ->
T_CExpr
sem_CExpr_Dbg info_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_isTopApp =
True
_isTopTup =
True
_whatBelow =
ExprIsOther
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
Map.empty
_cTrf =
CExpr_Dbg info_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
_lhsOwhatBelow =
_whatBelow
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_Hole :: UID ->
T_CExpr
sem_CExpr_Hole uid_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_isTopApp =
True
_isTopTup =
True
_whatBelow =
ExprIsOther
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
Map.empty
_cTrf =
CExpr_Hole uid_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
_lhsOwhatBelow =
_whatBelow
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_HoleLet :: UID ->
T_CExpr ->
T_CExpr
sem_CExpr_HoleLet bindsUid_ body_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_bodyOevalCtx :: EvalCtx
_bodyOisTopApp :: Bool
_bodyOisTopTup :: Bool
_bodyOlamMp :: LamMp
_bodyOlev :: Int
_bodyOmbInStackTraceCtxt :: (Maybe HsName)
_bodyOopts :: EHCOpts
_bodyOuniq :: Int
_bodyOwhatAbove :: WhatExpr
_bodyIcTrf :: CExpr
_bodyIdebugLamMp :: LamMp
_bodyIgathLamMp :: LamMp
_bodyIisTraceCandidate :: Bool
_bodyItraceCandidateLamArgs :: ([HsName])
_bodyItraceCandidateLamBody :: CExpr
_bodyIuniq :: Int
_bodyIwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_isTopApp =
True
_isTopTup =
True
_whatBelow =
ExprIsOther
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
_bodyIdebugLamMp
_cTrf =
CExpr_HoleLet bindsUid_ _bodyIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_bodyIuniq
_lhsOwhatBelow =
_whatBelow
_bodyOevalCtx =
_lhsIevalCtx
_bodyOisTopApp =
_isTopApp
_bodyOisTopTup =
_isTopTup
_bodyOlamMp =
_lhsIlamMp
_bodyOlev =
_lhsIlev
_bodyOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_bodyOopts =
_lhsIopts
_bodyOuniq =
_lhsIuniq
_bodyOwhatAbove =
_whatAbove
( _bodyIcTrf,_bodyIdebugLamMp,_bodyIgathLamMp,_bodyIisTraceCandidate,_bodyItraceCandidateLamArgs,_bodyItraceCandidateLamBody,_bodyIuniq,_bodyIwhatBelow) =
body_ _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlamMp _bodyOlev _bodyOmbInStackTraceCtxt _bodyOopts _bodyOuniq _bodyOwhatAbove
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_CoeArg :: T_CExpr
sem_CExpr_CoeArg =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_isTopApp =
True
_isTopTup =
True
_whatBelow =
ExprIsOther
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
Map.empty
_cTrf =
CExpr_CoeArg
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
_lhsOwhatBelow =
_whatBelow
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_ImplsApp :: T_CExpr ->
ImplsVarId ->
T_CExpr
sem_CExpr_ImplsApp func_ uid_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_funcOevalCtx :: EvalCtx
_funcOisTopApp :: Bool
_funcOisTopTup :: Bool
_funcOlamMp :: LamMp
_funcOlev :: Int
_funcOmbInStackTraceCtxt :: (Maybe HsName)
_funcOopts :: EHCOpts
_funcOuniq :: Int
_funcOwhatAbove :: WhatExpr
_funcIcTrf :: CExpr
_funcIdebugLamMp :: LamMp
_funcIgathLamMp :: LamMp
_funcIisTraceCandidate :: Bool
_funcItraceCandidateLamArgs :: ([HsName])
_funcItraceCandidateLamBody :: CExpr
_funcIuniq :: Int
_funcIwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_isTopApp =
True
_isTopTup =
True
_whatBelow =
ExprIsOther
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
_funcIdebugLamMp
_cTrf =
CExpr_ImplsApp _funcIcTrf uid_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_funcIuniq
_lhsOwhatBelow =
_whatBelow
_funcOevalCtx =
_lhsIevalCtx
_funcOisTopApp =
_isTopApp
_funcOisTopTup =
_isTopTup
_funcOlamMp =
_lhsIlamMp
_funcOlev =
_lhsIlev
_funcOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_funcOopts =
_lhsIopts
_funcOuniq =
_lhsIuniq
_funcOwhatAbove =
_whatAbove
( _funcIcTrf,_funcIdebugLamMp,_funcIgathLamMp,_funcIisTraceCandidate,_funcItraceCandidateLamArgs,_funcItraceCandidateLamBody,_funcIuniq,_funcIwhatBelow) =
func_ _funcOevalCtx _funcOisTopApp _funcOisTopTup _funcOlamMp _funcOlev _funcOmbInStackTraceCtxt _funcOopts _funcOuniq _funcOwhatAbove
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_ImplsLam :: ImplsVarId ->
T_CExpr ->
T_CExpr
sem_CExpr_ImplsLam uid_ body_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_bodyOevalCtx :: EvalCtx
_bodyOisTopApp :: Bool
_bodyOisTopTup :: Bool
_bodyOlamMp :: LamMp
_bodyOlev :: Int
_bodyOmbInStackTraceCtxt :: (Maybe HsName)
_bodyOopts :: EHCOpts
_bodyOuniq :: Int
_bodyOwhatAbove :: WhatExpr
_bodyIcTrf :: CExpr
_bodyIdebugLamMp :: LamMp
_bodyIgathLamMp :: LamMp
_bodyIisTraceCandidate :: Bool
_bodyItraceCandidateLamArgs :: ([HsName])
_bodyItraceCandidateLamBody :: CExpr
_bodyIuniq :: Int
_bodyIwhatBelow :: WhatExpr
_lhsOgathLamMp =
Map.empty
_isTopApp =
True
_isTopTup =
True
_whatBelow =
ExprIsOther
_whatAbove =
ExprIsOther
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
_bodyIdebugLamMp
_cTrf =
CExpr_ImplsLam uid_ _bodyIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_bodyIuniq
_lhsOwhatBelow =
_whatBelow
_bodyOevalCtx =
_lhsIevalCtx
_bodyOisTopApp =
_isTopApp
_bodyOisTopTup =
_isTopTup
_bodyOlamMp =
_lhsIlamMp
_bodyOlev =
_lhsIlev
_bodyOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_bodyOopts =
_lhsIopts
_bodyOuniq =
_lhsIuniq
_bodyOwhatAbove =
_whatAbove
( _bodyIcTrf,_bodyIdebugLamMp,_bodyIgathLamMp,_bodyIisTraceCandidate,_bodyItraceCandidateLamArgs,_bodyItraceCandidateLamBody,_bodyIuniq,_bodyIwhatBelow) =
body_ _bodyOevalCtx _bodyOisTopApp _bodyOisTopTup _bodyOlamMp _bodyOlev _bodyOmbInStackTraceCtxt _bodyOopts _bodyOuniq _bodyOwhatAbove
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_lhsOwhatBelow)))
sem_CExpr_Ann :: T_CExprAnn ->
T_CExpr ->
T_CExpr
sem_CExpr_Ann ann_ expr_ =
(\ _lhsIevalCtx
_lhsIisTopApp
_lhsIisTopTup
_lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq
_lhsIwhatAbove ->
(let _lhsOisTraceCandidate :: Bool
_lhsOtraceCandidateLamArgs :: ([HsName])
_lhsOtraceCandidateLamBody :: CExpr
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExpr
_lhsOgathLamMp :: LamMp
_lhsOuniq :: Int
_lhsOwhatBelow :: WhatExpr
_annOlamMp :: LamMp
_annOlev :: Int
_annOmbInStackTraceCtxt :: (Maybe HsName)
_annOopts :: EHCOpts
_annOuniq :: Int
_exprOevalCtx :: EvalCtx
_exprOisTopApp :: Bool
_exprOisTopTup :: Bool
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOmbInStackTraceCtxt :: (Maybe HsName)
_exprOopts :: EHCOpts
_exprOuniq :: Int
_exprOwhatAbove :: WhatExpr
_annIcTrf :: CExprAnn
_annIdebugLamMp :: LamMp
_annIuniq :: Int
_exprIcTrf :: CExpr
_exprIdebugLamMp :: LamMp
_exprIgathLamMp :: LamMp
_exprIisTraceCandidate :: Bool
_exprItraceCandidateLamArgs :: ([HsName])
_exprItraceCandidateLamBody :: CExpr
_exprIuniq :: Int
_exprIwhatBelow :: WhatExpr
_lhsOisTraceCandidate =
False
_lhsOtraceCandidateLamArgs =
[]
_lhsOtraceCandidateLamBody =
_cTrf
_lhsOdebugLamMp =
_annIdebugLamMp `Map.union` _exprIdebugLamMp
_cTrf =
CExpr_Ann _annIcTrf _exprIcTrf
_lhsOcTrf =
_cTrf
_lhsOgathLamMp =
_exprIgathLamMp
_lhsOuniq =
_exprIuniq
_lhsOwhatBelow =
_exprIwhatBelow
_annOlamMp =
_lhsIlamMp
_annOlev =
_lhsIlev
_annOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_annOopts =
_lhsIopts
_annOuniq =
_lhsIuniq
_exprOevalCtx =
_lhsIevalCtx
_exprOisTopApp =
_lhsIisTopApp
_exprOisTopTup =
_lhsIisTopTup
_exprOlamMp =
_lhsIlamMp
_exprOlev =
_lhsIlev
_exprOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_exprOopts =
_lhsIopts
_exprOuniq =
_annIuniq
_exprOwhatAbove =
_lhsIwhatAbove
( _annIcTrf,_annIdebugLamMp,_annIuniq) =
ann_ _annOlamMp _annOlev _annOmbInStackTraceCtxt _annOopts _annOuniq
( _exprIcTrf,_exprIdebugLamMp,_exprIgathLamMp,_exprIisTraceCandidate,_exprItraceCandidateLamArgs,_exprItraceCandidateLamBody,_exprIuniq,_exprIwhatBelow) =
expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmbInStackTraceCtxt _exprOopts _exprOuniq _exprOwhatAbove
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOisTraceCandidate,_lhsOtraceCandidateLamArgs,_lhsOtraceCandidateLamBody,_lhsOuniq,_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 = LamMp ->
Int ->
(Maybe HsName) ->
EHCOpts ->
Int ->
( CExprAnn,LamMp,Int)
sem_CExprAnn_Ty :: Ty ->
T_CExprAnn
sem_CExprAnn_Ty ty_ =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExprAnn
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_cTrf =
CExprAnn_Ty ty_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CExprAnn_Coe :: RelevCoe ->
T_CExprAnn
sem_CExprAnn_Coe coe_ =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExprAnn
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_cTrf =
CExprAnn_Coe coe_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CExprAnn_Debug :: String ->
T_CExprAnn
sem_CExprAnn_Debug info_ =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CExprAnn
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_cTrf =
CExprAnn_Debug info_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
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_ =
(let _lhsOcTrf :: CImport
_cTrf =
CImport_Import nm_
_lhsOcTrf =
_cTrf
in ( _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_ =
(let _lhsOcTrf :: CImportL
_hdIcTrf :: CImport
_tlIcTrf :: CImportL
_cTrf =
(:) _hdIcTrf _tlIcTrf
_lhsOcTrf =
_cTrf
( _hdIcTrf) =
hd_
( _tlIcTrf) =
tl_
in ( _lhsOcTrf))
sem_CImportL_Nil :: T_CImportL
sem_CImportL_Nil =
(let _lhsOcTrf :: CImportL
_cTrf =
[]
_lhsOcTrf =
_cTrf
in ( _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 = LamMp ->
Int ->
(Maybe HsName) ->
EHCOpts ->
Int ->
( CMetaBind,LamMp,Int)
sem_CMetaBind_Plain :: T_CMetaBind
sem_CMetaBind_Plain =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CMetaBind
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_cTrf =
CMetaBind_Plain
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CMetaBind_Function0 :: T_CMetaBind
sem_CMetaBind_Function0 =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CMetaBind
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_cTrf =
CMetaBind_Function0
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CMetaBind_Function1 :: T_CMetaBind
sem_CMetaBind_Function1 =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CMetaBind
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_cTrf =
CMetaBind_Function1
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CMetaBind_Apply0 :: T_CMetaBind
sem_CMetaBind_Apply0 =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CMetaBind
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_cTrf =
CMetaBind_Apply0
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
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 = LamMp ->
Int ->
(Maybe HsName) ->
EHCOpts ->
Int ->
( CMetaVal,LamMp,Int)
sem_CMetaVal_Val :: T_CMetaVal
sem_CMetaVal_Val =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CMetaVal
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_cTrf =
CMetaVal_Val
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CMetaVal_Dict :: T_CMetaVal
sem_CMetaVal_Dict =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CMetaVal
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_cTrf =
CMetaVal_Dict
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CMetaVal_DictClass :: ([Track]) ->
T_CMetaVal
sem_CMetaVal_DictClass tracks_ =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CMetaVal
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_cTrf =
CMetaVal_DictClass tracks_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CMetaVal_DictInstance :: ([Track]) ->
T_CMetaVal
sem_CMetaVal_DictInstance tracks_ =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CMetaVal
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_cTrf =
CMetaVal_DictInstance tracks_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CMetaVal_Track :: Track ->
T_CMetaVal
sem_CMetaVal_Track track_ =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CMetaVal
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_cTrf =
CMetaVal_Track track_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CMetas :: CMetas ->
T_CMetas
sem_CMetas ( x1,x2) =
(sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
type T_CMetas = LamMp ->
Int ->
(Maybe HsName) ->
EHCOpts ->
Int ->
( CMetas,LamMp,Int)
sem_CMetas_Tuple :: T_CMetaBind ->
T_CMetaVal ->
T_CMetas
sem_CMetas_Tuple x1_ x2_ =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CMetas
_lhsOuniq :: Int
_x1OlamMp :: LamMp
_x1Olev :: Int
_x1OmbInStackTraceCtxt :: (Maybe HsName)
_x1Oopts :: EHCOpts
_x1Ouniq :: Int
_x2OlamMp :: LamMp
_x2Olev :: Int
_x2OmbInStackTraceCtxt :: (Maybe HsName)
_x2Oopts :: EHCOpts
_x2Ouniq :: Int
_x1IcTrf :: CMetaBind
_x1IdebugLamMp :: LamMp
_x1Iuniq :: Int
_x2IcTrf :: CMetaVal
_x2IdebugLamMp :: LamMp
_x2Iuniq :: Int
_lhsOdebugLamMp =
_x1IdebugLamMp `Map.union` _x2IdebugLamMp
_cTrf =
(_x1IcTrf,_x2IcTrf)
_lhsOcTrf =
_cTrf
_lhsOuniq =
_x2Iuniq
_x1OlamMp =
_lhsIlamMp
_x1Olev =
_lhsIlev
_x1OmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_x1Oopts =
_lhsIopts
_x1Ouniq =
_lhsIuniq
_x2OlamMp =
_lhsIlamMp
_x2Olev =
_lhsIlev
_x2OmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_x2Oopts =
_lhsIopts
_x2Ouniq =
_x1Iuniq
( _x1IcTrf,_x1IdebugLamMp,_x1Iuniq) =
x1_ _x1OlamMp _x1Olev _x1OmbInStackTraceCtxt _x1Oopts _x1Ouniq
( _x2IcTrf,_x2IdebugLamMp,_x2Iuniq) =
x2_ _x2OlamMp _x2Olev _x2OmbInStackTraceCtxt _x2Oopts _x2Ouniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
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 = LamMp ->
Int ->
EHCOpts ->
Int ->
( CModule,LamMp,LamMp,Int)
sem_CModule_Mod :: HsName ->
T_CExportL ->
T_CImportL ->
T_CDeclMetaL ->
T_CExpr ->
T_CModule
sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
(\ _lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIuniq ->
(let _exprOisTopApp :: Bool
_exprOisTopTup :: Bool
_whatAbove :: WhatExpr
_exprOevalCtx :: EvalCtx
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CModule
_lhsOgathLamMp :: LamMp
_lhsOuniq :: Int
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOmbInStackTraceCtxt :: (Maybe HsName)
_exprOopts :: EHCOpts
_exprOuniq :: Int
_exprOwhatAbove :: WhatExpr
_exportsIcTrf :: CExportL
_importsIcTrf :: CImportL
_declMetasIcTrf :: CDeclMetaL
_exprIcTrf :: CExpr
_exprIdebugLamMp :: LamMp
_exprIgathLamMp :: LamMp
_exprIisTraceCandidate :: Bool
_exprItraceCandidateLamArgs :: ([HsName])
_exprItraceCandidateLamBody :: CExpr
_exprIuniq :: Int
_exprIwhatBelow :: WhatExpr
_exprOisTopApp =
True
_exprOisTopTup =
True
_whatAbove =
ExprIsOther
_exprOevalCtx =
EvalCtx_Eval
_mbInStackTraceCtxt =
Nothing
_lhsOdebugLamMp =
_exprIdebugLamMp
_cTrf =
CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf
_lhsOcTrf =
_cTrf
_lhsOgathLamMp =
_exprIgathLamMp
_lhsOuniq =
_exprIuniq
_exprOlamMp =
_lhsIlamMp
_exprOlev =
_lhsIlev
_exprOmbInStackTraceCtxt =
_mbInStackTraceCtxt
_exprOopts =
_lhsIopts
_exprOuniq =
_lhsIuniq
_exprOwhatAbove =
_whatAbove
( _exportsIcTrf) =
exports_
( _importsIcTrf) =
imports_
( _declMetasIcTrf) =
declMetas_
( _exprIcTrf,_exprIdebugLamMp,_exprIgathLamMp,_exprIisTraceCandidate,_exprItraceCandidateLamArgs,_exprItraceCandidateLamBody,_exprIuniq,_exprIwhatBelow) =
expr_ _exprOevalCtx _exprOisTopApp _exprOisTopTup _exprOlamMp _exprOlev _exprOmbInStackTraceCtxt _exprOopts _exprOuniq _exprOwhatAbove
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp,_lhsOuniq)))
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 = LamMp ->
Int ->
(Maybe HsName) ->
EHCOpts ->
Int ->
( CPat,LamMp,([HsName]),Int)
sem_CPat_Var :: HsName ->
T_CPat
sem_CPat_Var pnm_ =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOfldNmL :: ([HsName])
_lhsOcTrf :: CPat
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_lhsOfldNmL =
[]
_cTrf =
CPat_Var pnm_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOfldNmL,_lhsOuniq)))
sem_CPat_Con :: CTag ->
T_CPatRest ->
T_CPatFldL ->
T_CPat
sem_CPat_Con tag_ rest_ binds_ =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOfldNmL :: ([HsName])
_lhsOcTrf :: CPat
_lhsOuniq :: Int
_restOlamMp :: LamMp
_restOlev :: Int
_restOmbInStackTraceCtxt :: (Maybe HsName)
_restOopts :: EHCOpts
_restOuniq :: Int
_bindsOlamMp :: LamMp
_bindsOlev :: Int
_bindsOmbInStackTraceCtxt :: (Maybe HsName)
_bindsOopts :: EHCOpts
_bindsOuniq :: Int
_restIcTrf :: CPatRest
_restIdebugLamMp :: LamMp
_restIuniq :: Int
_bindsIcTrf :: CPatFldL
_bindsIdebugLamMp :: LamMp
_bindsIfldNmL :: ([HsName])
_bindsIuniq :: Int
_lhsOdebugLamMp =
_restIdebugLamMp `Map.union` _bindsIdebugLamMp
_lhsOfldNmL =
_bindsIfldNmL
_cTrf =
CPat_Con tag_ _restIcTrf _bindsIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_bindsIuniq
_restOlamMp =
_lhsIlamMp
_restOlev =
_lhsIlev
_restOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_restOopts =
_lhsIopts
_restOuniq =
_lhsIuniq
_bindsOlamMp =
_lhsIlamMp
_bindsOlev =
_lhsIlev
_bindsOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_bindsOopts =
_lhsIopts
_bindsOuniq =
_restIuniq
( _restIcTrf,_restIdebugLamMp,_restIuniq) =
rest_ _restOlamMp _restOlev _restOmbInStackTraceCtxt _restOopts _restOuniq
( _bindsIcTrf,_bindsIdebugLamMp,_bindsIfldNmL,_bindsIuniq) =
binds_ _bindsOlamMp _bindsOlev _bindsOmbInStackTraceCtxt _bindsOopts _bindsOuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOfldNmL,_lhsOuniq)))
sem_CPat_Int :: Int ->
T_CPat
sem_CPat_Int int_ =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOfldNmL :: ([HsName])
_lhsOcTrf :: CPat
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_lhsOfldNmL =
[]
_cTrf =
CPat_Int int_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOfldNmL,_lhsOuniq)))
sem_CPat_Char :: Char ->
T_CPat
sem_CPat_Char char_ =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOfldNmL :: ([HsName])
_lhsOcTrf :: CPat
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_lhsOfldNmL =
[]
_cTrf =
CPat_Char char_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOfldNmL,_lhsOuniq)))
sem_CPat_BoolExpr :: CExpr ->
T_CPat
sem_CPat_BoolExpr cexpr_ =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOfldNmL :: ([HsName])
_lhsOcTrf :: CPat
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_lhsOfldNmL =
[]
_cTrf =
CPat_BoolExpr cexpr_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOfldNmL,_lhsOuniq)))
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 = LamMp ->
Int ->
(Maybe HsName) ->
EHCOpts ->
Int ->
( CPatFld,LamMp,([HsName]),Int)
sem_CPatFld_Fld :: HsName ->
T_CExpr ->
T_CBind ->
T_CBindAnnL ->
T_CPatFld
sem_CPatFld_Fld lbl_ offset_ bind_ fldAnns_ =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOfldNmL :: ([HsName])
_bindOletBindingsCateg :: CBindCateg
_offsetOisTopApp :: Bool
_offsetOisTopTup :: Bool
_whatAbove :: WhatExpr
_offsetOevalCtx :: EvalCtx
_bindOevalCtx :: EvalCtx
_bindOisGlobal :: Bool
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CPatFld
_lhsOuniq :: Int
_offsetOlamMp :: LamMp
_offsetOlev :: Int
_offsetOmbInStackTraceCtxt :: (Maybe HsName)
_offsetOopts :: EHCOpts
_offsetOuniq :: Int
_offsetOwhatAbove :: WhatExpr
_bindOlamMp :: LamMp
_bindOlev :: Int
_bindOmbInStackTraceCtxt :: (Maybe HsName)
_bindOopts :: EHCOpts
_bindOuniq :: Int
_fldAnnsOlamMp :: LamMp
_fldAnnsOlev :: Int
_fldAnnsOmbInStackTraceCtxt :: (Maybe HsName)
_fldAnnsOopts :: EHCOpts
_fldAnnsOuniq :: Int
_offsetIcTrf :: CExpr
_offsetIdebugLamMp :: LamMp
_offsetIgathLamMp :: LamMp
_offsetIisTraceCandidate :: Bool
_offsetItraceCandidateLamArgs :: ([HsName])
_offsetItraceCandidateLamBody :: CExpr
_offsetIuniq :: Int
_offsetIwhatBelow :: WhatExpr
_bindIbindCTrfL :: ([CBind])
_bindIbindLamMp :: LamMp
_bindIcTrf :: CBind
_bindIdebugLamMp :: LamMp
_bindInm :: HsName
_bindIuniq :: Int
_fldAnnsIcTrf :: CBindAnnL
_fldAnnsIdebugLamMp :: LamMp
_fldAnnsIuniq :: Int
_fldNm =
_bindInm
_lhsOfldNmL =
[_fldNm]
_bindOletBindingsCateg =
acoreBindcategPlain
_offsetOisTopApp =
True
_offsetOisTopTup =
True
_whatAbove =
ExprIsOther
_offsetOevalCtx =
EvalCtx_Eval
_bindOevalCtx =
EvalCtx_None
_bindOisGlobal =
False
_lhsOdebugLamMp =
_offsetIdebugLamMp `Map.union` _bindIdebugLamMp `Map.union` _fldAnnsIdebugLamMp
_cTrf =
CPatFld_Fld lbl_ _offsetIcTrf _bindIcTrf _fldAnnsIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_fldAnnsIuniq
_offsetOlamMp =
_lhsIlamMp
_offsetOlev =
_lhsIlev
_offsetOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_offsetOopts =
_lhsIopts
_offsetOuniq =
_lhsIuniq
_offsetOwhatAbove =
_whatAbove
_bindOlamMp =
_lhsIlamMp
_bindOlev =
_lhsIlev
_bindOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_bindOopts =
_lhsIopts
_bindOuniq =
_offsetIuniq
_fldAnnsOlamMp =
_lhsIlamMp
_fldAnnsOlev =
_lhsIlev
_fldAnnsOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_fldAnnsOopts =
_lhsIopts
_fldAnnsOuniq =
_bindIuniq
( _offsetIcTrf,_offsetIdebugLamMp,_offsetIgathLamMp,_offsetIisTraceCandidate,_offsetItraceCandidateLamArgs,_offsetItraceCandidateLamBody,_offsetIuniq,_offsetIwhatBelow) =
offset_ _offsetOevalCtx _offsetOisTopApp _offsetOisTopTup _offsetOlamMp _offsetOlev _offsetOmbInStackTraceCtxt _offsetOopts _offsetOuniq _offsetOwhatAbove
( _bindIbindCTrfL,_bindIbindLamMp,_bindIcTrf,_bindIdebugLamMp,_bindInm,_bindIuniq) =
bind_ _bindOevalCtx _bindOisGlobal _bindOlamMp _bindOletBindingsCateg _bindOlev _bindOmbInStackTraceCtxt _bindOopts _bindOuniq
( _fldAnnsIcTrf,_fldAnnsIdebugLamMp,_fldAnnsIuniq) =
fldAnns_ _fldAnnsOlamMp _fldAnnsOlev _fldAnnsOmbInStackTraceCtxt _fldAnnsOopts _fldAnnsOuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOfldNmL,_lhsOuniq)))
sem_CPatFldL :: CPatFldL ->
T_CPatFldL
sem_CPatFldL list =
(Prelude.foldr sem_CPatFldL_Cons sem_CPatFldL_Nil (Prelude.map sem_CPatFld list))
type T_CPatFldL = LamMp ->
Int ->
(Maybe HsName) ->
EHCOpts ->
Int ->
( CPatFldL,LamMp,([HsName]),Int)
sem_CPatFldL_Cons :: T_CPatFld ->
T_CPatFldL ->
T_CPatFldL
sem_CPatFldL_Cons hd_ tl_ =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOfldNmL :: ([HsName])
_lhsOcTrf :: CPatFldL
_lhsOuniq :: Int
_hdOlamMp :: LamMp
_hdOlev :: Int
_hdOmbInStackTraceCtxt :: (Maybe HsName)
_hdOopts :: EHCOpts
_hdOuniq :: Int
_tlOlamMp :: LamMp
_tlOlev :: Int
_tlOmbInStackTraceCtxt :: (Maybe HsName)
_tlOopts :: EHCOpts
_tlOuniq :: Int
_hdIcTrf :: CPatFld
_hdIdebugLamMp :: LamMp
_hdIfldNmL :: ([HsName])
_hdIuniq :: Int
_tlIcTrf :: CPatFldL
_tlIdebugLamMp :: LamMp
_tlIfldNmL :: ([HsName])
_tlIuniq :: Int
_lhsOdebugLamMp =
_hdIdebugLamMp `Map.union` _tlIdebugLamMp
_lhsOfldNmL =
_hdIfldNmL ++ _tlIfldNmL
_cTrf =
(:) _hdIcTrf _tlIcTrf
_lhsOcTrf =
_cTrf
_lhsOuniq =
_tlIuniq
_hdOlamMp =
_lhsIlamMp
_hdOlev =
_lhsIlev
_hdOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_hdOopts =
_lhsIopts
_hdOuniq =
_lhsIuniq
_tlOlamMp =
_lhsIlamMp
_tlOlev =
_lhsIlev
_tlOmbInStackTraceCtxt =
_lhsImbInStackTraceCtxt
_tlOopts =
_lhsIopts
_tlOuniq =
_hdIuniq
( _hdIcTrf,_hdIdebugLamMp,_hdIfldNmL,_hdIuniq) =
hd_ _hdOlamMp _hdOlev _hdOmbInStackTraceCtxt _hdOopts _hdOuniq
( _tlIcTrf,_tlIdebugLamMp,_tlIfldNmL,_tlIuniq) =
tl_ _tlOlamMp _tlOlev _tlOmbInStackTraceCtxt _tlOopts _tlOuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOfldNmL,_lhsOuniq)))
sem_CPatFldL_Nil :: T_CPatFldL
sem_CPatFldL_Nil =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOfldNmL :: ([HsName])
_lhsOcTrf :: CPatFldL
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_lhsOfldNmL =
[]
_cTrf =
[]
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOfldNmL,_lhsOuniq)))
sem_CPatRest :: CPatRest ->
T_CPatRest
sem_CPatRest (CPatRest_Var _nm) =
(sem_CPatRest_Var _nm)
sem_CPatRest (CPatRest_Empty) =
(sem_CPatRest_Empty)
type T_CPatRest = LamMp ->
Int ->
(Maybe HsName) ->
EHCOpts ->
Int ->
( CPatRest,LamMp,Int)
sem_CPatRest_Var :: HsName ->
T_CPatRest
sem_CPatRest_Var nm_ =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CPatRest
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_cTrf =
CPatRest_Var nm_
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CPatRest_Empty :: T_CPatRest
sem_CPatRest_Empty =
(\ _lhsIlamMp
_lhsIlev
_lhsImbInStackTraceCtxt
_lhsIopts
_lhsIuniq ->
(let _lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CPatRest
_lhsOuniq :: Int
_lhsOdebugLamMp =
Map.empty
_cTrf =
CPatRest_Empty
_lhsOcTrf =
_cTrf
_lhsOuniq =
_lhsIuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOuniq)))
sem_CodeAGItf :: CodeAGItf ->
T_CodeAGItf
sem_CodeAGItf (CodeAGItf_AGItf _module) =
(sem_CodeAGItf_AGItf (sem_CModule _module))
type T_CodeAGItf = LamMp ->
EHCOpts ->
( CModule,LamMp,LamMp)
data Inh_CodeAGItf = Inh_CodeAGItf {lamMp_Inh_CodeAGItf :: !(LamMp),opts_Inh_CodeAGItf :: !(EHCOpts)}
data Syn_CodeAGItf = Syn_CodeAGItf {cTrf_Syn_CodeAGItf :: !(CModule),debugLamMp_Syn_CodeAGItf :: !(LamMp),gathLamMp_Syn_CodeAGItf :: !(LamMp)}
wrap_CodeAGItf :: T_CodeAGItf ->
Inh_CodeAGItf ->
Syn_CodeAGItf
wrap_CodeAGItf sem (Inh_CodeAGItf _lhsIlamMp _lhsIopts) =
(let ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp) = sem _lhsIlamMp _lhsIopts
in (Syn_CodeAGItf _lhsOcTrf _lhsOdebugLamMp _lhsOgathLamMp))
sem_CodeAGItf_AGItf :: T_CModule ->
T_CodeAGItf
sem_CodeAGItf_AGItf module_ =
(\ _lhsIlamMp
_lhsIopts ->
(let _moduleOlamMp :: LamMp
_moduleOlev :: Int
_lhsOdebugLamMp :: LamMp
_lhsOcTrf :: CModule
_lhsOgathLamMp :: LamMp
_moduleOopts :: EHCOpts
_moduleOuniq :: Int
_moduleIcTrf :: CModule
_moduleIdebugLamMp :: LamMp
_moduleIgathLamMp :: LamMp
_moduleIuniq :: Int
_gathLamMp =
lamMpMergeInto _howMergeLamInfo const _moduleIgathLamMp _lhsIlamMp
_moduleOlamMp =
_howUnionGathLamInfo _lhsIlamMp
_moduleOlev =
cLevModule
_howUnionGathLamInfo =
Map.union _gathLamMp
_howMergeLamInfo =
(\(LamInfo {laminfoStackTrace=t}) i -> i {laminfoStackTrace=t})
_uniq =
0
_lhsOdebugLamMp =
_moduleIdebugLamMp
_lhsOcTrf =
_moduleIcTrf
_lhsOgathLamMp =
_gathLamMp
_moduleOopts =
_lhsIopts
_moduleOuniq =
_uniq
( _moduleIcTrf,_moduleIdebugLamMp,_moduleIgathLamMp,_moduleIuniq) =
module_ _moduleOlamMp _moduleOlev _moduleOopts _moduleOuniq
in ( _lhsOcTrf,_lhsOdebugLamMp,_lhsOgathLamMp)))