uhc-light-1.1.7.2: src/UHC/Light/Compiler/Core/Trf/AnaRelevance.hs
-- UUAGC 0.9.50.2 (build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRe)
module UHC.Light.Compiler.Core.Trf.AnaRelevance(cmodTrfAnaRelevance) where
import UHC.Light.Compiler.Ty
import UHC.Light.Compiler.Base.Common
import UHC.Light.Compiler.Base.TermLike
import UHC.Light.Compiler.Base.HsName.Builtin
import UHC.Light.Compiler.Gam
import UHC.Light.Compiler.Opts
import UHC.Light.Compiler.Base.Optimize
import UHC.Light.Compiler.Core
import UHC.Light.Compiler.VarMp
import UHC.Light.Compiler.Substitutable
import Data.Maybe
import qualified Data.Map as Map
import qualified Data.Set as Set
import Control.Applicative
import UHC.Util.Utils
import UHC.Light.Compiler.Foreign.Extract
import UHC.Light.Compiler.AbstractCore
import UHC.Light.Compiler.AnaDomain
import UHC.Light.Compiler.AnaDomain.Utils
import UHC.Light.Compiler.Gam
import UHC.Light.Compiler.Gam.DataGam
import UHC.Light.Compiler.LamInfo
import UHC.Light.Compiler.AnaDomain.Trf.Instantiate
import UHC.Light.Compiler.Base.Debug
import UHC.Util.Pretty
import UHC.Light.Compiler.AnaDomain.Pretty
import UHC.Light.Compiler.CodeGen.BuiltinPrims
import UHC.Light.Compiler.Foreign
cmodTrfAnaRelevance
:: EHCOpts
-> DataGam
-> LamMp
-> CModule
-> ( CModule
, LamMp
)
cmodTrfAnaRelevance
opts dataGam
lamMp
cmod
= let t = wrap_CodeAGItf (sem_CodeAGItf (CodeAGItf_AGItf cmod))
(Inh_CodeAGItf
{ opts_Inh_CodeAGItf = opts
, dataGam_Inh_CodeAGItf = dataGam
, lamMp_Inh_CodeAGItf = lamMp
})
in ( cTrf_Syn_CodeAGItf t
, gathLamMp_Syn_CodeAGItf t
)
data WhatToRelevInfer
= WhatToRelevInfer_InstToBot -- specialize/instantiate types to bot (strict)
| WhatToRelevInfer_Quant -- quantify
deriving Eq
type REnv = Gam HsName RelevTy
-- | lookup in REnv first, then global LamMp
renvLookup :: HsName -> REnv -> LamMp -> Maybe RelevTy
renvLookup n renv lammp = gamLookup n renv <|> (fmap libindaspRelevTy $ lamMpLookupAsp n acbaspkeyDefaultRelevTy lammp)
dbg opts t1 t2 amso ams = CExpr_Ann (CExprAnn_Debug $ showPP $ "?:" >#< t1 >#< "<=" >#< t2 >-< "ams:" >#< ams >-< "amso:" >#< amso)
dbgApp opts a f f2 = CExpr_Ann (CExprAnn_Debug $ showPP $ "argTy:" >#< a >#< "funTy:" >#< f >#< "func.ty:" >#< f2)
dbgBind opts m env = CExpr_Ann (CExprAnn_Debug $ showPP $ "env:" >#< (m `varUpd` env))
dbgCase opts bnd as asslv asinter = CExpr_Ann (CExprAnn_Debug $ showPP $ "bnd:" >#< pp1 bnd >-< "altQualSL:" >#< ppl as >-< "altQualSLSlv:" >#< ppl asslv >-< "altQualSLInt:" >#< pp1 asinter)
where pp1 s = ppParensCommas $ Set.toList s
ppl l = ppCurlysCommasBlock (map pp1 l)
annCoe :: RelevCoe -> CExpr -> CExpr
annCoe RelevCoe_Id e = e
annCoe c e = CExpr_Ann (CExprAnn_Coe c) e
-- CAlt --------------------------------------------------------
{-
visit 0:
inherited attributes:
boundRelevTyVarS : UIDS
dataGam : DataGam
env : REnv
evalCtx : EvalCtx
finalRVarMp : RVarMp
knTy : RelevTy
knTyCase : RelevTy
lamMp : LamMp
lev : Int
opts : EHCOpts
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
rvarMp : RVarMp
synthesized attributes:
cTrf : CAlt
coe : RelevCoe
fvS : FvS
mbCTag : Maybe CTag
oTrf : CAlt
qualS : RelevQualS
alternatives:
alternative Alt:
child pat : CPat
child expr : CExpr
visit 0:
local fvS : _
local whatAbove : {WhatExpr}
local lev : _
local mbCTagEnv : _
local patFldGivenTyL : _
local patFldUsedTyL : {[RelevTy]}
local patEnv : _
local altMbScrutTy : _
local _tup1 : _
local lUniq : {UID}
local lUniq2 : {UID}
local lUniq3 : {UID}
local cTrf : _
local oTrf : _
-}
-- cata
sem_CAlt :: CAlt ->
T_CAlt
sem_CAlt (CAlt_Alt _pat _expr) =
(sem_CAlt_Alt (sem_CPat _pat) (sem_CExpr _expr))
-- semantic domain
type T_CAlt = UIDS ->
DataGam ->
REnv ->
EvalCtx ->
RVarMp ->
UID ->
RelevTy ->
RelevTy ->
LamMp ->
Int ->
EHCOpts ->
RVarMp ->
([WhatToRelevInfer]) ->
( CAlt,RelevCoe,FvS,UID,(Maybe CTag),CAlt,RelevQualS,RVarMp)
sem_CAlt_Alt :: T_CPat ->
T_CExpr ->
T_CAlt
sem_CAlt_Alt pat_ expr_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIknTyCase
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _exprOisTopApp :: Bool
_exprOisTopTup :: Bool
_whatAbove :: WhatExpr
_patFldUsedTyL :: ([RelevTy])
_patOpatFldTyL :: ([(RelevTy,RelevTy)])
_exprOenv :: REnv
_patOgUniq :: UID
_lUniq :: UID
_lUniq2 :: UID
_lUniq3 :: UID
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CAlt
_lhsOoTrf :: CAlt
_lhsOcoe :: RelevCoe
_lhsOgUniq :: UID
_lhsOmbCTag :: (Maybe CTag)
_lhsOrvarMp :: RVarMp
_patOboundRelevTyVarS :: UIDS
_patOdataGam :: DataGam
_patOenv :: REnv
_patOfinalRVarMp :: RVarMp
_patOknTy :: RelevTy
_patOknTyCase :: RelevTy
_patOlamMp :: LamMp
_patOlev :: Int
_patOopts :: EHCOpts
_patOrvarMp :: RVarMp
_patOwhatTo :: ([WhatToRelevInfer])
_exprOaltMbScrutTy :: MbRelevTy
_exprOboundRelevTyVarS :: UIDS
_exprOdataGam :: DataGam
_exprOevalCtx :: EvalCtx
_exprOfinalRVarMp :: RVarMp
_exprOgUniq :: UID
_exprOknTy :: RelevTy
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOopts :: EHCOpts
_exprOrvarMp :: RVarMp
_exprOwhatAbove :: WhatExpr
_exprOwhatTo :: ([WhatToRelevInfer])
_patIcTrf :: CPat
_patIfldNmL :: ([HsName])
_patIfvS :: FvS
_patIgUniq :: UID
_patImbCTag :: (Maybe CTag)
_patInmL :: ([HsName])
_patIoTrf :: CPat
_patIpatFldTyL :: ([(RelevTy,RelevTy)])
_patIqualS :: RelevQualS
_patIrvarMp :: RVarMp
_exprIappFunKind :: AppFunKind
_exprIargL :: ([CBound])
_exprIcTrf :: CExpr
_exprIcoe :: RelevCoe
_exprIfunCoe :: RelevCoe
_exprIfvS :: FvS
_exprIgUniq :: UID
_exprIgathLamMp :: LamMp
_exprImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_exprImbFunVar :: (Maybe HsName)
_exprImbLam :: (Maybe [HsName])
_exprImbVar :: (Maybe HsName)
_exprIoTrf :: CExpr
_exprIqualS :: RelevQualS
_exprIrvarMp :: RVarMp
_exprIty :: RelevTy
_exprIwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 14, column 17)
_fvS =
_exprIfvS `Set.difference` Set.fromList _patInmL
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 45, column 17)
_exprOisTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 45, column 17)
_exprOisTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 87, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLevAlt.ag"(line 2, column 17)
_lev =
_lhsIlev + 1
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 168, column 17)
_mbCTagEnv =
do { ct <- _patImbCTag
; (argTyL,_) <- relevTyArgsFromCTag True ct Nothing (length _patIfldNmL) _lhsIdataGam _lUniq
; return (gamFromAssocL $ zip _patIfldNmL argTyL, argTyL)
}
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 172, column 17)
_patFldGivenTyL =
maybe (map freshLazy $ mkNewLevUIDL (length _patIfldNmL) _lUniq3)
snd _mbCTagEnv
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 172, column 17)
_patFldUsedTyL =
map fresh $ mkNewLevUIDL (length _patIfldNmL) _lUniq2
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 172, column 17)
_patEnv =
gamFromAssocL $ zip _patIfldNmL _patFldUsedTyL
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 178, column 17)
_patOpatFldTyL =
zip _patFldGivenTyL _patFldUsedTyL
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 179, column 17)
_exprOenv =
gamAddGam _patEnv _lhsIenv
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 313, column 17)
_altMbScrutTy =
Nothing
-- -- generated by the unique rule mechanism.
__tup1 =
let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq2) -> case nextUnique __cont of { (__cont, lUniq3) -> (__cont,lUniq,lUniq2,lUniq3)}}} )
-- -- generated by the unique rule mechanism.
(_patOgUniq,_,_,_) =
__tup1
-- -- generated by the unique rule mechanism.
(_,_lUniq,_,_) =
__tup1
-- -- generated by the unique rule mechanism.
(_,_,_lUniq2,_) =
__tup1
-- -- generated by the unique rule mechanism.
(_,_,_,_lUniq3) =
__tup1
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_fvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_patIqualS `Set.union` _exprIqualS
-- self rule
_cTrf =
CAlt_Alt _patIcTrf _exprIcTrf
-- self rule
_oTrf =
CAlt_Alt _patIoTrf _exprIoTrf
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOcoe =
_exprIcoe
-- copy rule (up)
_lhsOgUniq =
_exprIgUniq
-- copy rule (up)
_lhsOmbCTag =
_patImbCTag
-- copy rule (up)
_lhsOrvarMp =
_exprIrvarMp
-- copy rule (down)
_patOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_patOdataGam =
_lhsIdataGam
-- copy rule (down)
_patOenv =
_lhsIenv
-- copy rule (down)
_patOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_patOknTy =
_lhsIknTy
-- copy rule (down)
_patOknTyCase =
_lhsIknTyCase
-- copy rule (down)
_patOlamMp =
_lhsIlamMp
-- copy rule (from local)
_patOlev =
_lev
-- copy rule (down)
_patOopts =
_lhsIopts
-- copy rule (down)
_patOrvarMp =
_lhsIrvarMp
-- copy rule (down)
_patOwhatTo =
_lhsIwhatTo
-- copy rule (from local)
_exprOaltMbScrutTy =
_altMbScrutTy
-- copy rule (down)
_exprOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_exprOdataGam =
_lhsIdataGam
-- copy rule (down)
_exprOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_exprOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_exprOgUniq =
_patIgUniq
-- copy rule (down)
_exprOknTy =
_lhsIknTy
-- copy rule (down)
_exprOlamMp =
_lhsIlamMp
-- copy rule (from local)
_exprOlev =
_lev
-- copy rule (down)
_exprOopts =
_lhsIopts
-- copy rule (chain)
_exprOrvarMp =
_patIrvarMp
-- copy rule (from local)
_exprOwhatAbove =
_whatAbove
-- copy rule (down)
_exprOwhatTo =
_lhsIwhatTo
( _patIcTrf,_patIfldNmL,_patIfvS,_patIgUniq,_patImbCTag,_patInmL,_patIoTrf,_patIpatFldTyL,_patIqualS,_patIrvarMp) =
pat_ _patOboundRelevTyVarS _patOdataGam _patOenv _patOfinalRVarMp _patOgUniq _patOknTy _patOknTyCase _patOlamMp _patOlev _patOopts _patOpatFldTyL _patOrvarMp _patOwhatTo
( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprIcoe,_exprIfunCoe,_exprIfvS,_exprIgUniq,_exprIgathLamMp,_exprImbFFIApp,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIoTrf,_exprIqualS,_exprIrvarMp,_exprIty,_exprIwhatBelow) =
expr_ _exprOaltMbScrutTy _exprOboundRelevTyVarS _exprOdataGam _exprOenv _exprOevalCtx _exprOfinalRVarMp _exprOgUniq _exprOisTopApp _exprOisTopTup _exprOknTy _exprOlamMp _exprOlev _exprOopts _exprOrvarMp _exprOwhatAbove _exprOwhatTo
in ( _lhsOcTrf,_lhsOcoe,_lhsOfvS,_lhsOgUniq,_lhsOmbCTag,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
-- CAltL -------------------------------------------------------
{-
visit 0:
inherited attributes:
altId : UID
altMbScrutTy : MbRelevTy
altNrMax : Int
altSolveLVarMp : [RVarMp]
boundRelevTyVarS : UIDS
dataGam : DataGam
env : REnv
evalCtx : EvalCtx
finalRVarMp : RVarMp
knTy : RelevTy
knTyCase : RelevTy
lamMp : LamMp
lev : Int
opts : EHCOpts
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
rvarMp : RVarMp
synthesized attributes:
altNr : Int
altQualSL : [RelevQualS]
cTrf : CAltL
fvS : FvS
oTrf : CAltL
qualS : RelevQualS
ty : RelevTy
alternatives:
alternative Cons:
child hd : CAlt
child tl : CAltL
visit 0:
local _tup2 : _
local amsoDw : {AMSOut RelevTy}
local amsDw : {AnaMatchState}
local rvarMpDw : _
local rvarMpUp : _
local altNr : {Int}
local altKnUpTy : {RelevTy}
local altKnDwTy : {RelevTy}
local hereAltCoe : _
local hdFinalRVarMp : _
local _tup3 : _
local altSolveVarMp : _
local _tup4 : _
local lUniq : {UID}
local lUniq2 : {UID}
local cTrf : _
local oTrf : _
alternative Nil:
visit 0:
local altNr : {Int}
local cTrf : _
local oTrf : _
-}
-- cata
sem_CAltL :: CAltL ->
T_CAltL
sem_CAltL list =
(Prelude.foldr sem_CAltL_Cons sem_CAltL_Nil (Prelude.map sem_CAlt list))
-- semantic domain
type T_CAltL = UID ->
MbRelevTy ->
Int ->
([RVarMp]) ->
UIDS ->
DataGam ->
REnv ->
EvalCtx ->
RVarMp ->
UID ->
RelevTy ->
RelevTy ->
LamMp ->
Int ->
EHCOpts ->
RVarMp ->
([WhatToRelevInfer]) ->
( Int,([RelevQualS]),CAltL,FvS,UID,CAltL,RelevQualS,RVarMp,RelevTy)
sem_CAltL_Cons :: T_CAlt ->
T_CAltL ->
T_CAltL
sem_CAltL_Cons hd_ tl_ =
(\ _lhsIaltId
_lhsIaltMbScrutTy
_lhsIaltNrMax
_lhsIaltSolveLVarMp
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIknTyCase
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _hdOknTy :: RelevTy
_amsoDw :: (AMSOut RelevTy)
_amsDw :: AnaMatchState
_altNr :: Int
_altKnUpTy :: RelevTy
_altKnDwTy :: RelevTy
_lhsOty :: RelevTy
_hdOrvarMp :: RVarMp
_hdOfinalRVarMp :: RVarMp
_lhsOaltQualSL :: ([RelevQualS])
_tlOaltSolveLVarMp :: ([RVarMp])
_lhsOcTrf :: CAltL
_hdOgUniq :: UID
_lUniq :: UID
_lUniq2 :: UID
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOoTrf :: CAltL
_lhsOaltNr :: Int
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_hdOboundRelevTyVarS :: UIDS
_hdOdataGam :: DataGam
_hdOenv :: REnv
_hdOevalCtx :: EvalCtx
_hdOknTyCase :: RelevTy
_hdOlamMp :: LamMp
_hdOlev :: Int
_hdOopts :: EHCOpts
_hdOwhatTo :: ([WhatToRelevInfer])
_tlOaltId :: UID
_tlOaltMbScrutTy :: MbRelevTy
_tlOaltNrMax :: Int
_tlOboundRelevTyVarS :: UIDS
_tlOdataGam :: DataGam
_tlOenv :: REnv
_tlOevalCtx :: EvalCtx
_tlOfinalRVarMp :: RVarMp
_tlOgUniq :: UID
_tlOknTy :: RelevTy
_tlOknTyCase :: RelevTy
_tlOlamMp :: LamMp
_tlOlev :: Int
_tlOopts :: EHCOpts
_tlOrvarMp :: RVarMp
_tlOwhatTo :: ([WhatToRelevInfer])
_hdIcTrf :: CAlt
_hdIcoe :: RelevCoe
_hdIfvS :: FvS
_hdIgUniq :: UID
_hdImbCTag :: (Maybe CTag)
_hdIoTrf :: CAlt
_hdIqualS :: RelevQualS
_hdIrvarMp :: RVarMp
_tlIaltNr :: Int
_tlIaltQualSL :: ([RelevQualS])
_tlIcTrf :: CAltL
_tlIfvS :: FvS
_tlIgUniq :: UID
_tlIoTrf :: CAltL
_tlIqualS :: RelevQualS
_tlIrvarMp :: RVarMp
_tlIty :: RelevTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 228, column 17)
_hdOknTy =
_altKnDwTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 280, column 33)
__tup2 =
amsLE _lhsIrvarMp _altKnDwTy _lhsIknTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 280, column 33)
(_amsoDw,_) =
__tup2
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 280, column 33)
(_,_amsDw) =
__tup2
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 280, column 17)
_rvarMpDw =
amsLocalVarMp _amsDw |+> _lhsIrvarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 280, column 17)
_rvarMpUp =
_rvarMpDw
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 289, column 17)
_altNr =
_tlIaltNr + 1
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 298, column 17)
_altKnUpTy =
fresh _lUniq
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 300, column 17)
_altKnDwTy =
fresh _lUniq2
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 340, column 17)
_hereAltCoe =
_hdIcoe <.> (_hdFinalRVarMp `varUpd` amsoCoe _amsoDw)
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 369, column 17)
_lhsOty =
_lhsIknTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 387, column 17)
_hdOrvarMp =
_rvarMpUp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 408, column 17)
_hdFinalRVarMp =
_altSolveVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 409, column 17)
_hdOfinalRVarMp =
_hdFinalRVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 433, column 17)
_lhsOaltQualSL =
Set.unions [_hdIqualS, amsGathQual _amsDw] : _tlIaltQualSL
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 463, column 17)
__tup3 =
hdAndTl' (panic "altSolveLVarMp") _lhsIaltSolveLVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 463, column 17)
(_altSolveVarMp,_) =
__tup3
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 463, column 17)
(_,_tlOaltSolveLVarMp) =
__tup3
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 624, column 17)
_lhsOcTrf =
case _hdIcTrf of
CAlt_Alt p e -> CAlt_Alt p (annCoe _hereAltCoe e) : _tlIcTrf
-- -- generated by the unique rule mechanism.
__tup4 =
let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq2) -> (__cont,lUniq,lUniq2)}} )
-- -- generated by the unique rule mechanism.
(_hdOgUniq,_,_) =
__tup4
-- -- generated by the unique rule mechanism.
(_,_lUniq,_) =
__tup4
-- -- generated by the unique rule mechanism.
(_,_,_lUniq2) =
__tup4
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_hdIfvS `Set.union` _tlIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_hdIqualS `Set.union` _tlIqualS
-- self rule
_cTrf =
(:) _hdIcTrf _tlIcTrf
-- self rule
_oTrf =
(:) _hdIoTrf _tlIoTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (from local)
_lhsOaltNr =
_altNr
-- copy rule (up)
_lhsOgUniq =
_tlIgUniq
-- copy rule (up)
_lhsOrvarMp =
_tlIrvarMp
-- copy rule (down)
_hdOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_hdOdataGam =
_lhsIdataGam
-- copy rule (down)
_hdOenv =
_lhsIenv
-- copy rule (down)
_hdOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_hdOknTyCase =
_lhsIknTyCase
-- copy rule (down)
_hdOlamMp =
_lhsIlamMp
-- copy rule (down)
_hdOlev =
_lhsIlev
-- copy rule (down)
_hdOopts =
_lhsIopts
-- copy rule (down)
_hdOwhatTo =
_lhsIwhatTo
-- copy rule (down)
_tlOaltId =
_lhsIaltId
-- copy rule (down)
_tlOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (down)
_tlOaltNrMax =
_lhsIaltNrMax
-- copy rule (down)
_tlOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_tlOdataGam =
_lhsIdataGam
-- copy rule (down)
_tlOenv =
_lhsIenv
-- copy rule (down)
_tlOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_tlOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_tlOgUniq =
_hdIgUniq
-- copy rule (down)
_tlOknTy =
_lhsIknTy
-- copy rule (down)
_tlOknTyCase =
_lhsIknTyCase
-- copy rule (down)
_tlOlamMp =
_lhsIlamMp
-- copy rule (down)
_tlOlev =
_lhsIlev
-- copy rule (down)
_tlOopts =
_lhsIopts
-- copy rule (chain)
_tlOrvarMp =
_hdIrvarMp
-- copy rule (down)
_tlOwhatTo =
_lhsIwhatTo
( _hdIcTrf,_hdIcoe,_hdIfvS,_hdIgUniq,_hdImbCTag,_hdIoTrf,_hdIqualS,_hdIrvarMp) =
hd_ _hdOboundRelevTyVarS _hdOdataGam _hdOenv _hdOevalCtx _hdOfinalRVarMp _hdOgUniq _hdOknTy _hdOknTyCase _hdOlamMp _hdOlev _hdOopts _hdOrvarMp _hdOwhatTo
( _tlIaltNr,_tlIaltQualSL,_tlIcTrf,_tlIfvS,_tlIgUniq,_tlIoTrf,_tlIqualS,_tlIrvarMp,_tlIty) =
tl_ _tlOaltId _tlOaltMbScrutTy _tlOaltNrMax _tlOaltSolveLVarMp _tlOboundRelevTyVarS _tlOdataGam _tlOenv _tlOevalCtx _tlOfinalRVarMp _tlOgUniq _tlOknTy _tlOknTyCase _tlOlamMp _tlOlev _tlOopts _tlOrvarMp _tlOwhatTo
in ( _lhsOaltNr,_lhsOaltQualSL,_lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty)))
sem_CAltL_Nil :: T_CAltL
sem_CAltL_Nil =
(\ _lhsIaltId
_lhsIaltMbScrutTy
_lhsIaltNrMax
_lhsIaltSolveLVarMp
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIknTyCase
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _altNr :: Int
_lhsOty :: RelevTy
_lhsOaltQualSL :: ([RelevQualS])
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CAltL
_lhsOoTrf :: CAltL
_lhsOaltNr :: Int
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 288, column 17)
_altNr =
0
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 369, column 17)
_lhsOty =
_lhsIknTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 434, column 17)
_lhsOaltQualSL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
[]
-- self rule
_oTrf =
[]
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (from local)
_lhsOaltNr =
_altNr
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOaltNr,_lhsOaltQualSL,_lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty)))
-- CBind -------------------------------------------------------
{-
visit 0:
inherited attributes:
boundRelevTyVarS : UIDS
dataGam : DataGam
env : REnv
evalCtx : EvalCtx
finalRVarMp : RVarMp
forQuantRVarMp : RVarMp
isGlobal : Bool
knTy : RelevTy
lamMp : LamMp
letBindingsCateg : CBindCateg
lev : Int
opts : EHCOpts
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
rvarMp : RVarMp
synthesized attributes:
altMbScrutTy : MbRelevTy
bindLamMp : LamMp
cTrf : CBind
extraBindRVarMp : RVarMp
fvS : FvS
fvSMp : FvSMp
gathEnv : REnv
gathRecEnv : REnv
nm : HsName
nmL : [HsName]
oTrf : CBind
qualS : RelevQualS
alternatives:
alternative Bind:
child nm : {HsName}
child bindAspects : CBoundL
visit 0:
local cTrf : _
local oTrf : _
-}
-- cata
sem_CBind :: CBind ->
T_CBind
sem_CBind (CBind_Bind _nm _bindAspects) =
(sem_CBind_Bind _nm (sem_CBoundL _bindAspects))
-- semantic domain
type T_CBind = UIDS ->
DataGam ->
REnv ->
EvalCtx ->
RVarMp ->
RVarMp ->
UID ->
Bool ->
RelevTy ->
LamMp ->
CBindCateg ->
Int ->
EHCOpts ->
RVarMp ->
([WhatToRelevInfer]) ->
( MbRelevTy,LamMp,CBind,RVarMp,FvS,FvSMp,UID,REnv,REnv,HsName,([HsName]),CBind,RelevQualS,RVarMp)
sem_CBind_Bind :: HsName ->
T_CBoundL ->
T_CBind
sem_CBind_Bind nm_ bindAspects_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIforQuantRVarMp
_lhsIgUniq
_lhsIisGlobal
_lhsIknTy
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvSMp :: FvSMp
_lhsOnmL :: ([HsName])
_bindAspectsOnm :: HsName
_lhsOnm :: HsName
_lhsOaltMbScrutTy :: MbRelevTy
_lhsObindLamMp :: LamMp
_lhsOextraBindRVarMp :: RVarMp
_lhsOfvS :: FvS
_lhsOgathEnv :: REnv
_lhsOgathRecEnv :: REnv
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CBind
_lhsOoTrf :: CBind
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_bindAspectsOboundRelevTyVarS :: UIDS
_bindAspectsOdataGam :: DataGam
_bindAspectsOenv :: REnv
_bindAspectsOevalCtx :: EvalCtx
_bindAspectsOfinalRVarMp :: RVarMp
_bindAspectsOforQuantRVarMp :: RVarMp
_bindAspectsOgUniq :: UID
_bindAspectsOisGlobal :: Bool
_bindAspectsOknTy :: RelevTy
_bindAspectsOlamMp :: LamMp
_bindAspectsOletBindingsCateg :: CBindCateg
_bindAspectsOlev :: Int
_bindAspectsOopts :: EHCOpts
_bindAspectsOrvarMp :: RVarMp
_bindAspectsOwhatTo :: ([WhatToRelevInfer])
_bindAspectsIaltMbScrutTy :: MbRelevTy
_bindAspectsIbindLamMp :: LamMp
_bindAspectsIcTrf :: CBoundL
_bindAspectsIextraBindRVarMp :: RVarMp
_bindAspectsIfvS :: FvS
_bindAspectsIfvSMp :: FvSMp
_bindAspectsIgUniq :: UID
_bindAspectsIgathEnv :: REnv
_bindAspectsIgathRecEnv :: REnv
_bindAspectsInmL :: ([HsName])
_bindAspectsIoTrf :: CBoundL
_bindAspectsIqualS :: RelevQualS
_bindAspectsIrvarMp :: RVarMp
_bindAspectsItyAspectL :: ([CBound])
_bindAspectsIvalAspectL :: ([CBound])
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 11, column 17)
_lhsOfvSMp =
Map.singleton nm_ _bindAspectsIfvS
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 19, column 17)
_lhsOnmL =
[nm_]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 4, column 17)
_bindAspectsOnm =
nm_
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 12, column 17)
_lhsOnm =
nm_
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 609, column 17)
_cTrf =
CBind_Bind nm_ (_bindAspectsItyAspectL ++ _bindAspectsIvalAspectL ++ _bindAspectsIcTrf)
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 306, column 33)
_lhsOaltMbScrutTy =
_bindAspectsIaltMbScrutTy
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 11, column 30)
_lhsObindLamMp =
_bindAspectsIbindLamMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 412, column 36)
_lhsOextraBindRVarMp =
_bindAspectsIextraBindRVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_bindAspectsIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 194, column 32)
_lhsOgathEnv =
_bindAspectsIgathEnv
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 195, column 32)
_lhsOgathRecEnv =
_bindAspectsIgathRecEnv
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_bindAspectsIqualS
-- self rule
_oTrf =
CBind_Bind nm_ _bindAspectsIoTrf
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_bindAspectsIgUniq
-- copy rule (up)
_lhsOrvarMp =
_bindAspectsIrvarMp
-- copy rule (down)
_bindAspectsOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_bindAspectsOdataGam =
_lhsIdataGam
-- copy rule (down)
_bindAspectsOenv =
_lhsIenv
-- copy rule (down)
_bindAspectsOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_bindAspectsOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_bindAspectsOforQuantRVarMp =
_lhsIforQuantRVarMp
-- copy rule (down)
_bindAspectsOgUniq =
_lhsIgUniq
-- copy rule (down)
_bindAspectsOisGlobal =
_lhsIisGlobal
-- copy rule (down)
_bindAspectsOknTy =
_lhsIknTy
-- copy rule (down)
_bindAspectsOlamMp =
_lhsIlamMp
-- copy rule (down)
_bindAspectsOletBindingsCateg =
_lhsIletBindingsCateg
-- copy rule (down)
_bindAspectsOlev =
_lhsIlev
-- copy rule (down)
_bindAspectsOopts =
_lhsIopts
-- copy rule (down)
_bindAspectsOrvarMp =
_lhsIrvarMp
-- copy rule (down)
_bindAspectsOwhatTo =
_lhsIwhatTo
( _bindAspectsIaltMbScrutTy,_bindAspectsIbindLamMp,_bindAspectsIcTrf,_bindAspectsIextraBindRVarMp,_bindAspectsIfvS,_bindAspectsIfvSMp,_bindAspectsIgUniq,_bindAspectsIgathEnv,_bindAspectsIgathRecEnv,_bindAspectsInmL,_bindAspectsIoTrf,_bindAspectsIqualS,_bindAspectsIrvarMp,_bindAspectsItyAspectL,_bindAspectsIvalAspectL) =
bindAspects_ _bindAspectsOboundRelevTyVarS _bindAspectsOdataGam _bindAspectsOenv _bindAspectsOevalCtx _bindAspectsOfinalRVarMp _bindAspectsOforQuantRVarMp _bindAspectsOgUniq _bindAspectsOisGlobal _bindAspectsOknTy _bindAspectsOlamMp _bindAspectsOletBindingsCateg _bindAspectsOlev _bindAspectsOnm _bindAspectsOopts _bindAspectsOrvarMp _bindAspectsOwhatTo
in ( _lhsOaltMbScrutTy,_lhsObindLamMp,_lhsOcTrf,_lhsOextraBindRVarMp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathEnv,_lhsOgathRecEnv,_lhsOnm,_lhsOnmL,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
-- CBindAnn ----------------------------------------------------
{-
visit 0:
inherited attributes:
boundRelevTyVarS : UIDS
dataGam : DataGam
env : REnv
finalRVarMp : RVarMp
knTy : RelevTy
knTyCase : RelevTy
lamMp : LamMp
lev : Int
opts : EHCOpts
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
rvarMp : RVarMp
synthesized attributes:
cTrf : CBindAnn
fvS : FvS
nmL : [HsName]
oTrf : CBindAnn
qualS : RelevQualS
alternatives:
alternative Coe:
child coe : {RelevCoe}
visit 0:
local cTrf : _
local oTrf : _
-}
-- cata
sem_CBindAnn :: CBindAnn ->
T_CBindAnn
sem_CBindAnn (CBindAnn_Coe _coe) =
(sem_CBindAnn_Coe _coe)
-- semantic domain
type T_CBindAnn = UIDS ->
DataGam ->
REnv ->
RVarMp ->
UID ->
RelevTy ->
RelevTy ->
LamMp ->
Int ->
EHCOpts ->
RVarMp ->
([WhatToRelevInfer]) ->
( CBindAnn,FvS,UID,([HsName]),CBindAnn,RelevQualS,RVarMp)
sem_CBindAnn_Coe :: RelevCoe ->
T_CBindAnn
sem_CBindAnn_Coe coe_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIknTyCase
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvS :: FvS
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CBindAnn
_lhsOoTrf :: CBindAnn
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CBindAnn_Coe coe_
-- self rule
_oTrf =
CBindAnn_Coe coe_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOnmL,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
-- CBindAnnL ---------------------------------------------------
{-
visit 0:
inherited attributes:
boundRelevTyVarS : UIDS
dataGam : DataGam
env : REnv
finalRVarMp : RVarMp
knTy : RelevTy
knTyCase : RelevTy
lamMp : LamMp
lev : Int
opts : EHCOpts
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
rvarMp : RVarMp
synthesized attributes:
cTrf : CBindAnnL
fvS : FvS
nmL : [HsName]
oTrf : CBindAnnL
qualS : RelevQualS
alternatives:
alternative Cons:
child hd : CBindAnn
child tl : CBindAnnL
visit 0:
local cTrf : _
local oTrf : _
alternative Nil:
visit 0:
local cTrf : _
local oTrf : _
-}
-- cata
sem_CBindAnnL :: CBindAnnL ->
T_CBindAnnL
sem_CBindAnnL list =
(Prelude.foldr sem_CBindAnnL_Cons sem_CBindAnnL_Nil (Prelude.map sem_CBindAnn list))
-- semantic domain
type T_CBindAnnL = UIDS ->
DataGam ->
REnv ->
RVarMp ->
UID ->
RelevTy ->
RelevTy ->
LamMp ->
Int ->
EHCOpts ->
RVarMp ->
([WhatToRelevInfer]) ->
( CBindAnnL,FvS,UID,([HsName]),CBindAnnL,RelevQualS,RVarMp)
sem_CBindAnnL_Cons :: T_CBindAnn ->
T_CBindAnnL ->
T_CBindAnnL
sem_CBindAnnL_Cons hd_ tl_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIknTyCase
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvS :: FvS
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CBindAnnL
_lhsOoTrf :: CBindAnnL
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_hdOboundRelevTyVarS :: UIDS
_hdOdataGam :: DataGam
_hdOenv :: REnv
_hdOfinalRVarMp :: RVarMp
_hdOgUniq :: UID
_hdOknTy :: RelevTy
_hdOknTyCase :: RelevTy
_hdOlamMp :: LamMp
_hdOlev :: Int
_hdOopts :: EHCOpts
_hdOrvarMp :: RVarMp
_hdOwhatTo :: ([WhatToRelevInfer])
_tlOboundRelevTyVarS :: UIDS
_tlOdataGam :: DataGam
_tlOenv :: REnv
_tlOfinalRVarMp :: RVarMp
_tlOgUniq :: UID
_tlOknTy :: RelevTy
_tlOknTyCase :: RelevTy
_tlOlamMp :: LamMp
_tlOlev :: Int
_tlOopts :: EHCOpts
_tlOrvarMp :: RVarMp
_tlOwhatTo :: ([WhatToRelevInfer])
_hdIcTrf :: CBindAnn
_hdIfvS :: FvS
_hdIgUniq :: UID
_hdInmL :: ([HsName])
_hdIoTrf :: CBindAnn
_hdIqualS :: RelevQualS
_hdIrvarMp :: RVarMp
_tlIcTrf :: CBindAnnL
_tlIfvS :: FvS
_tlIgUniq :: UID
_tlInmL :: ([HsName])
_tlIoTrf :: CBindAnnL
_tlIqualS :: RelevQualS
_tlIrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_hdIfvS `Set.union` _tlIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
_hdInmL ++ _tlInmL
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_hdIqualS `Set.union` _tlIqualS
-- self rule
_cTrf =
(:) _hdIcTrf _tlIcTrf
-- self rule
_oTrf =
(:) _hdIoTrf _tlIoTrf
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_tlIgUniq
-- copy rule (up)
_lhsOrvarMp =
_tlIrvarMp
-- copy rule (down)
_hdOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_hdOdataGam =
_lhsIdataGam
-- copy rule (down)
_hdOenv =
_lhsIenv
-- copy rule (down)
_hdOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_hdOgUniq =
_lhsIgUniq
-- copy rule (down)
_hdOknTy =
_lhsIknTy
-- copy rule (down)
_hdOknTyCase =
_lhsIknTyCase
-- copy rule (down)
_hdOlamMp =
_lhsIlamMp
-- copy rule (down)
_hdOlev =
_lhsIlev
-- copy rule (down)
_hdOopts =
_lhsIopts
-- copy rule (down)
_hdOrvarMp =
_lhsIrvarMp
-- copy rule (down)
_hdOwhatTo =
_lhsIwhatTo
-- copy rule (down)
_tlOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_tlOdataGam =
_lhsIdataGam
-- copy rule (down)
_tlOenv =
_lhsIenv
-- copy rule (down)
_tlOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_tlOgUniq =
_hdIgUniq
-- copy rule (down)
_tlOknTy =
_lhsIknTy
-- copy rule (down)
_tlOknTyCase =
_lhsIknTyCase
-- copy rule (down)
_tlOlamMp =
_lhsIlamMp
-- copy rule (down)
_tlOlev =
_lhsIlev
-- copy rule (down)
_tlOopts =
_lhsIopts
-- copy rule (chain)
_tlOrvarMp =
_hdIrvarMp
-- copy rule (down)
_tlOwhatTo =
_lhsIwhatTo
( _hdIcTrf,_hdIfvS,_hdIgUniq,_hdInmL,_hdIoTrf,_hdIqualS,_hdIrvarMp) =
hd_ _hdOboundRelevTyVarS _hdOdataGam _hdOenv _hdOfinalRVarMp _hdOgUniq _hdOknTy _hdOknTyCase _hdOlamMp _hdOlev _hdOopts _hdOrvarMp _hdOwhatTo
( _tlIcTrf,_tlIfvS,_tlIgUniq,_tlInmL,_tlIoTrf,_tlIqualS,_tlIrvarMp) =
tl_ _tlOboundRelevTyVarS _tlOdataGam _tlOenv _tlOfinalRVarMp _tlOgUniq _tlOknTy _tlOknTyCase _tlOlamMp _tlOlev _tlOopts _tlOrvarMp _tlOwhatTo
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOnmL,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
sem_CBindAnnL_Nil :: T_CBindAnnL
sem_CBindAnnL_Nil =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIknTyCase
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvS :: FvS
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CBindAnnL
_lhsOoTrf :: CBindAnnL
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
[]
-- self rule
_oTrf =
[]
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOnmL,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
-- CBindL ------------------------------------------------------
{-
visit 0:
inherited attributes:
boundRelevTyVarS : UIDS
dataGam : DataGam
env : REnv
evalCtx : EvalCtx
finalRVarMp : RVarMp
forQuantRVarMp : RVarMp
isGlobal : Bool
knTy : RelevTy
lamMp : LamMp
letBindingsCateg : CBindCateg
lev : Int
opts : EHCOpts
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
rvarMp : RVarMp
synthesized attributes:
altMbScrutTy : MbRelevTy
bindLamMp : LamMp
cTrf : CBindL
extraBindRVarMp : RVarMp
fvS : FvS
fvSMp : FvSMp
gathEnv : REnv
gathRecEnv : REnv
nmL : [HsName]
oTrf : CBindL
qualS : RelevQualS
alternatives:
alternative Cons:
child hd : CBind
child tl : CBindL
visit 0:
local cTrf : _
local oTrf : _
alternative Nil:
visit 0:
local cTrf : _
local oTrf : _
-}
-- cata
sem_CBindL :: CBindL ->
T_CBindL
sem_CBindL list =
(Prelude.foldr sem_CBindL_Cons sem_CBindL_Nil (Prelude.map sem_CBind list))
-- semantic domain
type T_CBindL = UIDS ->
DataGam ->
REnv ->
EvalCtx ->
RVarMp ->
RVarMp ->
UID ->
Bool ->
RelevTy ->
LamMp ->
CBindCateg ->
Int ->
EHCOpts ->
RVarMp ->
([WhatToRelevInfer]) ->
( MbRelevTy,LamMp,CBindL,RVarMp,FvS,FvSMp,UID,REnv,REnv,([HsName]),CBindL,RelevQualS,RVarMp)
sem_CBindL_Cons :: T_CBind ->
T_CBindL ->
T_CBindL
sem_CBindL_Cons hd_ tl_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIforQuantRVarMp
_lhsIgUniq
_lhsIisGlobal
_lhsIknTy
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOaltMbScrutTy :: MbRelevTy
_lhsObindLamMp :: LamMp
_lhsOextraBindRVarMp :: RVarMp
_lhsOfvS :: FvS
_lhsOfvSMp :: FvSMp
_lhsOgathEnv :: REnv
_lhsOgathRecEnv :: REnv
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CBindL
_lhsOoTrf :: CBindL
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_hdOboundRelevTyVarS :: UIDS
_hdOdataGam :: DataGam
_hdOenv :: REnv
_hdOevalCtx :: EvalCtx
_hdOfinalRVarMp :: RVarMp
_hdOforQuantRVarMp :: RVarMp
_hdOgUniq :: UID
_hdOisGlobal :: Bool
_hdOknTy :: RelevTy
_hdOlamMp :: LamMp
_hdOletBindingsCateg :: CBindCateg
_hdOlev :: Int
_hdOopts :: EHCOpts
_hdOrvarMp :: RVarMp
_hdOwhatTo :: ([WhatToRelevInfer])
_tlOboundRelevTyVarS :: UIDS
_tlOdataGam :: DataGam
_tlOenv :: REnv
_tlOevalCtx :: EvalCtx
_tlOfinalRVarMp :: RVarMp
_tlOforQuantRVarMp :: RVarMp
_tlOgUniq :: UID
_tlOisGlobal :: Bool
_tlOknTy :: RelevTy
_tlOlamMp :: LamMp
_tlOletBindingsCateg :: CBindCateg
_tlOlev :: Int
_tlOopts :: EHCOpts
_tlOrvarMp :: RVarMp
_tlOwhatTo :: ([WhatToRelevInfer])
_hdIaltMbScrutTy :: MbRelevTy
_hdIbindLamMp :: LamMp
_hdIcTrf :: CBind
_hdIextraBindRVarMp :: RVarMp
_hdIfvS :: FvS
_hdIfvSMp :: FvSMp
_hdIgUniq :: UID
_hdIgathEnv :: REnv
_hdIgathRecEnv :: REnv
_hdInm :: HsName
_hdInmL :: ([HsName])
_hdIoTrf :: CBind
_hdIqualS :: RelevQualS
_hdIrvarMp :: RVarMp
_tlIaltMbScrutTy :: MbRelevTy
_tlIbindLamMp :: LamMp
_tlIcTrf :: CBindL
_tlIextraBindRVarMp :: RVarMp
_tlIfvS :: FvS
_tlIfvSMp :: FvSMp
_tlIgUniq :: UID
_tlIgathEnv :: REnv
_tlIgathRecEnv :: REnv
_tlInmL :: ([HsName])
_tlIoTrf :: CBindL
_tlIqualS :: RelevQualS
_tlIrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 306, column 33)
_lhsOaltMbScrutTy =
_hdIaltMbScrutTy <|> _tlIaltMbScrutTy
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 11, column 30)
_lhsObindLamMp =
_hdIbindLamMp `lamMpUnionBindAspMp` _tlIbindLamMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 412, column 36)
_lhsOextraBindRVarMp =
_hdIextraBindRVarMp |+> _tlIextraBindRVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_hdIfvS `Set.union` _tlIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
_lhsOfvSMp =
_hdIfvSMp `Map.union` _tlIfvSMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 194, column 32)
_lhsOgathEnv =
_hdIgathEnv `gamUnion` _tlIgathEnv
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 195, column 32)
_lhsOgathRecEnv =
_hdIgathRecEnv `gamUnion` _tlIgathRecEnv
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
_hdInmL ++ _tlInmL
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_hdIqualS `Set.union` _tlIqualS
-- self rule
_cTrf =
(:) _hdIcTrf _tlIcTrf
-- self rule
_oTrf =
(:) _hdIoTrf _tlIoTrf
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_tlIgUniq
-- copy rule (up)
_lhsOrvarMp =
_tlIrvarMp
-- copy rule (down)
_hdOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_hdOdataGam =
_lhsIdataGam
-- copy rule (down)
_hdOenv =
_lhsIenv
-- copy rule (down)
_hdOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_hdOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_hdOforQuantRVarMp =
_lhsIforQuantRVarMp
-- copy rule (down)
_hdOgUniq =
_lhsIgUniq
-- copy rule (down)
_hdOisGlobal =
_lhsIisGlobal
-- copy rule (down)
_hdOknTy =
_lhsIknTy
-- copy rule (down)
_hdOlamMp =
_lhsIlamMp
-- copy rule (down)
_hdOletBindingsCateg =
_lhsIletBindingsCateg
-- copy rule (down)
_hdOlev =
_lhsIlev
-- copy rule (down)
_hdOopts =
_lhsIopts
-- copy rule (down)
_hdOrvarMp =
_lhsIrvarMp
-- copy rule (down)
_hdOwhatTo =
_lhsIwhatTo
-- copy rule (down)
_tlOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_tlOdataGam =
_lhsIdataGam
-- copy rule (down)
_tlOenv =
_lhsIenv
-- copy rule (down)
_tlOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_tlOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_tlOforQuantRVarMp =
_lhsIforQuantRVarMp
-- copy rule (chain)
_tlOgUniq =
_hdIgUniq
-- copy rule (down)
_tlOisGlobal =
_lhsIisGlobal
-- copy rule (down)
_tlOknTy =
_lhsIknTy
-- copy rule (down)
_tlOlamMp =
_lhsIlamMp
-- copy rule (down)
_tlOletBindingsCateg =
_lhsIletBindingsCateg
-- copy rule (down)
_tlOlev =
_lhsIlev
-- copy rule (down)
_tlOopts =
_lhsIopts
-- copy rule (chain)
_tlOrvarMp =
_hdIrvarMp
-- copy rule (down)
_tlOwhatTo =
_lhsIwhatTo
( _hdIaltMbScrutTy,_hdIbindLamMp,_hdIcTrf,_hdIextraBindRVarMp,_hdIfvS,_hdIfvSMp,_hdIgUniq,_hdIgathEnv,_hdIgathRecEnv,_hdInm,_hdInmL,_hdIoTrf,_hdIqualS,_hdIrvarMp) =
hd_ _hdOboundRelevTyVarS _hdOdataGam _hdOenv _hdOevalCtx _hdOfinalRVarMp _hdOforQuantRVarMp _hdOgUniq _hdOisGlobal _hdOknTy _hdOlamMp _hdOletBindingsCateg _hdOlev _hdOopts _hdOrvarMp _hdOwhatTo
( _tlIaltMbScrutTy,_tlIbindLamMp,_tlIcTrf,_tlIextraBindRVarMp,_tlIfvS,_tlIfvSMp,_tlIgUniq,_tlIgathEnv,_tlIgathRecEnv,_tlInmL,_tlIoTrf,_tlIqualS,_tlIrvarMp) =
tl_ _tlOboundRelevTyVarS _tlOdataGam _tlOenv _tlOevalCtx _tlOfinalRVarMp _tlOforQuantRVarMp _tlOgUniq _tlOisGlobal _tlOknTy _tlOlamMp _tlOletBindingsCateg _tlOlev _tlOopts _tlOrvarMp _tlOwhatTo
in ( _lhsOaltMbScrutTy,_lhsObindLamMp,_lhsOcTrf,_lhsOextraBindRVarMp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathEnv,_lhsOgathRecEnv,_lhsOnmL,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
sem_CBindL_Nil :: T_CBindL
sem_CBindL_Nil =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIforQuantRVarMp
_lhsIgUniq
_lhsIisGlobal
_lhsIknTy
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOaltMbScrutTy :: MbRelevTy
_lhsObindLamMp :: LamMp
_lhsOextraBindRVarMp :: RVarMp
_lhsOfvS :: FvS
_lhsOfvSMp :: FvSMp
_lhsOgathEnv :: REnv
_lhsOgathRecEnv :: REnv
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CBindL
_lhsOoTrf :: CBindL
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 306, column 33)
_lhsOaltMbScrutTy =
Nothing
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 11, column 30)
_lhsObindLamMp =
Map.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 412, column 36)
_lhsOextraBindRVarMp =
emptyRVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
_lhsOfvSMp =
Map.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 194, column 32)
_lhsOgathEnv =
emptyGam
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 195, column 32)
_lhsOgathRecEnv =
emptyGam
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
[]
-- self rule
_oTrf =
[]
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOaltMbScrutTy,_lhsObindLamMp,_lhsOcTrf,_lhsOextraBindRVarMp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathEnv,_lhsOgathRecEnv,_lhsOnmL,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
-- CBound ------------------------------------------------------
{-
visit 0:
inherited attributes:
boundRelevTyVarS : UIDS
dataGam : DataGam
env : REnv
evalCtx : EvalCtx
finalRVarMp : RVarMp
forQuantRVarMp : RVarMp
isGlobal : Bool
isTopApp : Bool
isTopTup : Bool
knTy : RelevTy
lamMp : LamMp
letBindingsCateg : CBindCateg
lev : Int
nm : HsName
opts : EHCOpts
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
rvarMp : RVarMp
synthesized attributes:
altMbScrutTy : MbRelevTy
bindLamMp : LamMp
cTrf : CBound
coe : RelevCoe
extraBindRVarMp : RVarMp
fvS : FvS
fvSMp : FvSMp
gathEnv : REnv
gathRecEnv : REnv
nmL : [HsName]
oTrf : CBound
qualS : RelevQualS
tyAspectL : [CBound]
valAspectL : [CBound]
alternatives:
alternative Bind:
child bindMeta : CMetas
child expr : CExpr
visit 0:
local whatAbove : {WhatExpr}
local doBindStrict : {Bool}
local gathEnv : _
local gathRecEnv : _
local altMbScrutTy : _
local hereBindCoe : _
local finalRVarMp : _
local extraBindRVarMp : _
local _tup5 : _
local ty : {RelevTy}
local exprKnTy : {RelevTy}
local exprEnv : {REnv}
local exprBoundS : {UIDS}
local bindConstrain : {RVarMp -> RelevTy -> RelevTy -> (AnaMatchState,Maybe RelevCoe)}
local _tup6 : _
local amsBind : {AnaMatchState}
local mbBindCoe : {Maybe RelevCoe}
local rvarMpExpr : _
local _tup7 : _
local quantTy : {RelevTy}
local quantVarMp : {RVarMp}
local quantRemQualS : {RelevQualS}
local bindTy : {RelevTy}
local _tup8 : _
local strictTy : {RelevTy}
local strictVarMp : {RVarMp}
local debugTy1 : _
local debugTy2 : _
local strictTy2 : {RelevTy}
local tyAspectL : _
local valAspectL : _
local _tup9 : _
local lUniq : {UID}
local cTrf : _
local oTrf : _
alternative Meta:
child aspectKeyS : {ACoreBindAspectKeyS}
child cmetas : CMetas
visit 0:
local altMbScrutTy : _
local cTrf : _
local oTrf : _
alternative RelevTy:
child aspectKeyS : {ACoreBindAspectKeyS}
child relevTy : {RelevTy}
visit 0:
local altMbScrutTy : _
local cTrf : _
local oTrf : _
alternative Val:
child aspectKeyS : {ACoreBindAspectKeyS}
child mlev : {MetaLev}
child lbl : {CLbl}
child expr : CExpr
visit 0:
local whatAbove : {WhatExpr}
local altMbScrutTy : _
local cTrf : _
local oTrf : _
alternative Ty:
child aspectKeyS : {ACoreBindAspectKeyS}
child ty : {Ty}
visit 0:
local altMbScrutTy : _
local cTrf : _
local oTrf : _
alternative FFE:
child callconv : {FFIWay}
child expEnt : {ForeignEnt}
child expr : CExpr
child ty : {Ty}
visit 0:
local whatAbove : {WhatExpr}
local argTyLresTy : _
local argTyL : _
local resTy : _
local foreignEntInfo : _
local expEntNm : _
local altMbScrutTy : _
local cTrf : _
local oTrf : _
-}
-- cata
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)
-- semantic domain
type T_CBound = UIDS ->
DataGam ->
REnv ->
EvalCtx ->
RVarMp ->
RVarMp ->
UID ->
Bool ->
Bool ->
Bool ->
RelevTy ->
LamMp ->
CBindCateg ->
Int ->
HsName ->
EHCOpts ->
RVarMp ->
([WhatToRelevInfer]) ->
( MbRelevTy,LamMp,CBound,RelevCoe,RVarMp,FvS,FvSMp,UID,REnv,REnv,([HsName]),CBound,RelevQualS,RVarMp,([CBound]),([CBound]))
sem_CBound_Bind :: T_CMetas ->
T_CExpr ->
T_CBound
sem_CBound_Bind bindMeta_ expr_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIforQuantRVarMp
_lhsIgUniq
_lhsIisGlobal
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsInm
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _exprOisTopApp :: Bool
_exprOisTopTup :: Bool
_whatAbove :: WhatExpr
_doBindStrict :: Bool
_lhsObindLamMp :: LamMp
_exprOenv :: REnv
_exprOknTy :: RelevTy
_lhsOaltMbScrutTy :: MbRelevTy
_lhsOcoe :: RelevCoe
_lhsOrvarMp :: RVarMp
_lhsOqualS :: RelevQualS
_exprOboundRelevTyVarS :: UIDS
_ty :: RelevTy
_exprKnTy :: RelevTy
_exprEnv :: REnv
_exprBoundS :: UIDS
_bindConstrain :: (RVarMp -> RelevTy -> RelevTy -> (AnaMatchState,Maybe RelevCoe))
_amsBind :: AnaMatchState
_mbBindCoe :: (Maybe RelevCoe)
_quantTy :: RelevTy
_quantVarMp :: RVarMp
_quantRemQualS :: RelevQualS
_bindTy :: RelevTy
_strictTy :: RelevTy
_strictVarMp :: RVarMp
_strictTy2 :: RelevTy
_lhsOcTrf :: CBound
_bindMetaOgUniq :: UID
_lUniq :: UID
_lhsOextraBindRVarMp :: RVarMp
_lhsOfvS :: FvS
_lhsOfvSMp :: FvSMp
_lhsOgathEnv :: REnv
_lhsOgathRecEnv :: REnv
_lhsOnmL :: ([HsName])
_lhsOtyAspectL :: ([CBound])
_lhsOvalAspectL :: ([CBound])
_lhsOoTrf :: CBound
_lhsOgUniq :: UID
_bindMetaOboundRelevTyVarS :: UIDS
_bindMetaOdataGam :: DataGam
_bindMetaOenv :: REnv
_bindMetaOfinalRVarMp :: RVarMp
_bindMetaOknTy :: RelevTy
_bindMetaOlamMp :: LamMp
_bindMetaOlev :: Int
_bindMetaOopts :: EHCOpts
_bindMetaOrvarMp :: RVarMp
_bindMetaOwhatTo :: ([WhatToRelevInfer])
_exprOaltMbScrutTy :: MbRelevTy
_exprOdataGam :: DataGam
_exprOevalCtx :: EvalCtx
_exprOfinalRVarMp :: RVarMp
_exprOgUniq :: UID
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOopts :: EHCOpts
_exprOrvarMp :: RVarMp
_exprOwhatAbove :: WhatExpr
_exprOwhatTo :: ([WhatToRelevInfer])
_bindMetaIcTrf :: CMetas
_bindMetaIfvS :: FvS
_bindMetaIgUniq :: UID
_bindMetaIoTrf :: CMetas
_bindMetaIqualS :: RelevQualS
_bindMetaIrvarMp :: RVarMp
_exprIappFunKind :: AppFunKind
_exprIargL :: ([CBound])
_exprIcTrf :: CExpr
_exprIcoe :: RelevCoe
_exprIfunCoe :: RelevCoe
_exprIfvS :: FvS
_exprIgUniq :: UID
_exprIgathLamMp :: LamMp
_exprImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_exprImbFunVar :: (Maybe HsName)
_exprImbLam :: (Maybe [HsName])
_exprImbVar :: (Maybe HsName)
_exprIoTrf :: CExpr
_exprIqualS :: RelevQualS
_exprIrvarMp :: RVarMp
_exprIty :: RelevTy
_exprIwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 37, column 17)
_exprOisTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 37, column 17)
_exprOisTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 80, column 17)
_whatAbove =
ExprIsBind
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 117, column 17)
_doBindStrict =
WhatToRelevInfer_InstToBot `elem` _lhsIwhatTo
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 118, column 17)
_lhsObindLamMp =
let l = [ (acbaspkeyDefaultRelevTy, LamInfoBindAsp_RelevTy _bindTy) ]
in Map.singleton _lhsInm (emptyLamInfo {laminfoBindAspMp = Map.fromList l})
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 156, column 17)
_exprOenv =
gamAddGam _exprEnv _lhsIenv
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 198, column 17)
_gathEnv =
gamSingleton _lhsInm _quantTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 198, column 17)
_gathRecEnv =
gamSingleton _lhsInm $ tup123to1 $ relevtyQuant [RelevTyQuantHow_Rec] emptyRVarMp Set.empty _ty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 207, column 17)
_exprOknTy =
_exprKnTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 309, column 17)
_lhsOaltMbScrutTy =
do v <- _exprImbVar
renvLookup v _lhsIenv Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 313, column 17)
_altMbScrutTy =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 336, column 17)
_hereBindCoe =
_exprIcoe <.> maybe RelevCoe_Id (_finalRVarMp `varUpd`) _mbBindCoe
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 337, column 25)
_lhsOcoe =
RelevCoe_Id
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 378, column 17)
_lhsOrvarMp =
_quantVarMp |+> _rvarMpExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 405, column 17)
_finalRVarMp =
_lhsIfinalRVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 415, column 17)
_extraBindRVarMp =
if _doBindStrict then _strictVarMp else emptyRVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 428, column 17)
_lhsOqualS =
Set.unions [amsGathQual _amsBind, _exprIqualS]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 489, column 17)
_exprOboundRelevTyVarS =
_exprBoundS
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 495, column 33)
__tup5 =
let noConstrain _ _ _ = (emptyAnaMatchState, Nothing)
strictConstrain m t knTy = (ams, Just $ amsoCoe amso)
where (amso,ams) = amsLE m t knTy
in case _exprImbLam of
Just nmL
-> (ty, r', exprEnv, varFreeSet ty, noConstrain)
where us@(r:as) = mkNewLevUIDL (1 + length nmL) _lUniq
r' = fresh r
as' = map fresh as
exprEnv = gamFromAssocL (zip nmL as')
ty = RelevTy_Fun RQuant_None [] [] as' r'
_ | isStrict -> (bTy, bTy, emptyGam, Set.empty, strictConstrain)
| otherwise -> (bTy, bTy, emptyGam, Set.empty, noConstrain)
where isStrict = _lhsIletBindingsCateg == CBindCateg_Strict
(_,u1,u2) = mkNewLevUID2 _lUniq
eTy@(RelevTy_Ana eAna) = fresh u1
bTy@(RelevTy_Ana bAna) = fresh u2
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 495, column 33)
(_ty,_,_,_,_) =
__tup5
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 495, column 33)
(_,_exprKnTy,_,_,_) =
__tup5
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 495, column 33)
(_,_,_exprEnv,_,_) =
__tup5
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 495, column 33)
(_,_,_,_exprBoundS,_) =
__tup5
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 495, column 33)
(_,_,_,_,_bindConstrain) =
__tup5
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 514, column 33)
__tup6 =
_bindConstrain _exprIrvarMp _exprKnTy _lhsIknTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 514, column 33)
(_amsBind,_) =
__tup6
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 514, column 33)
(_,_mbBindCoe) =
__tup6
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 495, column 17)
_rvarMpExpr =
amsLocalVarMp _amsBind |+> _exprIrvarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 517, column 33)
__tup7 =
case _ty of
t@(RelevTy_Fun _ _ _ _ _)
-> relevtyQuant ([RelevTyQuantHow_Solve] ++ how)
_rvarMpExpr _exprIqualS t
where how | WhatToRelevInfer_Quant `elem` _lhsIwhatTo = [RelevTyQuantHow_RemoveAmbig,RelevTyQuantHow_Quant]
| otherwise = []
t -> (m `varUpd` t, m, q)
where (q,m) = assSolve _lhsIboundRelevTyVarS (Set.map (_rvarMpExpr `varUpd`) _exprIqualS)
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 517, column 33)
(_quantTy,_,_) =
__tup7
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 517, column 33)
(_,_quantVarMp,_) =
__tup7
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 517, column 33)
(_,_,_quantRemQualS) =
__tup7
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 495, column 17)
_bindTy =
_lhsIforQuantRVarMp `varUpd` _quantTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 527, column 33)
__tup8 =
case _bindTy of
t@(RelevTy_Fun _ _ qs a r@(RelevTy_Ana (AnaEval_Var rv)))
-> (sty, smp2 |+> smpAssume2 |+> smp1 |+> smpAssume1)
where smpAssume1 = rvarmpEvalUnit rv bot
(RelevTy_Fun _ vs' qs' a' r',smp1,rem1)
= relevtyQuant [RelevTyQuantHow_Solve,RelevTyQuantHow_RemoveAmbig,RelevTyQuantHow_Quant]
smpAssume1 (Set.fromList qs `Set.union` _quantRemQualS) (RelevTy_Fun RQuant_None [] [] a (smpAssume1 `varUpd` r))
smpAssume2 = rvarmpUnions [ rvarmpEvalUnit v top | v <- vs' ]
(sty,smp2,_)
= relevtyQuant [RelevTyQuantHow_Solve,RelevTyQuantHow_RemoveAmbig,RelevTyQuantHow_Quant]
smpAssume2 (Set.fromList qs' `Set.union` rem1) (RelevTy_Fun RQuant_None [] [] (smpAssume2 `varUpd` a') r')
t -> (m `varUpd` t, m)
where (q,m) = assSolve Set.empty (Set.map (_lhsIforQuantRVarMp `varUpd`) _quantRemQualS)
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 527, column 33)
(_strictTy,_) =
__tup8
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 527, column 33)
(_,_strictVarMp) =
__tup8
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 495, column 17)
_debugTy1 =
case _rvarMpExpr `varUpd` _ty of
RelevTy_Fun _ _ _ a r
-> RelevTy_Fun RQuant_None v q a r
where q = _rvarMpExpr `varUpd` Set.toList _exprIqualS
v = Set.toList $ Set.unions [varFreeSet q, varFreeSet a, varFreeSet r]
t -> t
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 495, column 17)
_debugTy2 =
case _lhsIfinalRVarMp `varUpd` _ty of
RelevTy_Fun _ _ _ a r
-> RelevTy_Fun RQuant_None [] q a r
where q = _lhsIfinalRVarMp `varUpd` Set.toList _exprIqualS
t -> t
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 495, column 17)
_strictTy2 =
_lhsIfinalRVarMp `varUpd` _strictTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 495, column 17)
_tyAspectL =
[ CBound_RelevTy acbaspkeyDefault _bindTy
]
++ (if _doBindStrict
then [CBound_RelevTy acbaspkeyStrict _strictTy2]
else []
)
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 604, column 17)
_lhsOcTrf =
CBound_Bind _bindMetaIcTrf $
dbgBind _lhsIopts _lhsIfinalRVarMp _gathEnv $
annCoe _hereBindCoe _exprIcTrf
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 633, column 17)
_valAspectL =
[
]
-- -- generated by the unique rule mechanism.
__tup9 =
let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )
-- -- generated by the unique rule mechanism.
(_bindMetaOgUniq,_) =
__tup9
-- -- generated by the unique rule mechanism.
(_,_lUniq) =
__tup9
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 412, column 36)
_lhsOextraBindRVarMp =
_extraBindRVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_bindMetaIfvS `Set.union` _exprIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
_lhsOfvSMp =
Map.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 194, column 32)
_lhsOgathEnv =
_gathEnv
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 195, column 32)
_lhsOgathRecEnv =
_gathRecEnv
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 575, column 32)
_lhsOtyAspectL =
_tyAspectL
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 576, column 32)
_lhsOvalAspectL =
_valAspectL
-- self rule
_cTrf =
CBound_Bind _bindMetaIcTrf _exprIcTrf
-- self rule
_oTrf =
CBound_Bind _bindMetaIoTrf _exprIoTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_exprIgUniq
-- copy rule (down)
_bindMetaOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_bindMetaOdataGam =
_lhsIdataGam
-- copy rule (down)
_bindMetaOenv =
_lhsIenv
-- copy rule (from local)
_bindMetaOfinalRVarMp =
_finalRVarMp
-- copy rule (down)
_bindMetaOknTy =
_lhsIknTy
-- copy rule (down)
_bindMetaOlamMp =
_lhsIlamMp
-- copy rule (down)
_bindMetaOlev =
_lhsIlev
-- copy rule (down)
_bindMetaOopts =
_lhsIopts
-- copy rule (down)
_bindMetaOrvarMp =
_lhsIrvarMp
-- copy rule (down)
_bindMetaOwhatTo =
_lhsIwhatTo
-- copy rule (from local)
_exprOaltMbScrutTy =
_altMbScrutTy
-- copy rule (down)
_exprOdataGam =
_lhsIdataGam
-- copy rule (down)
_exprOevalCtx =
_lhsIevalCtx
-- copy rule (from local)
_exprOfinalRVarMp =
_finalRVarMp
-- copy rule (chain)
_exprOgUniq =
_bindMetaIgUniq
-- copy rule (down)
_exprOlamMp =
_lhsIlamMp
-- copy rule (down)
_exprOlev =
_lhsIlev
-- copy rule (down)
_exprOopts =
_lhsIopts
-- copy rule (chain)
_exprOrvarMp =
_bindMetaIrvarMp
-- copy rule (from local)
_exprOwhatAbove =
_whatAbove
-- copy rule (down)
_exprOwhatTo =
_lhsIwhatTo
( _bindMetaIcTrf,_bindMetaIfvS,_bindMetaIgUniq,_bindMetaIoTrf,_bindMetaIqualS,_bindMetaIrvarMp) =
bindMeta_ _bindMetaOboundRelevTyVarS _bindMetaOdataGam _bindMetaOenv _bindMetaOfinalRVarMp _bindMetaOgUniq _bindMetaOknTy _bindMetaOlamMp _bindMetaOlev _bindMetaOopts _bindMetaOrvarMp _bindMetaOwhatTo
( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprIcoe,_exprIfunCoe,_exprIfvS,_exprIgUniq,_exprIgathLamMp,_exprImbFFIApp,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIoTrf,_exprIqualS,_exprIrvarMp,_exprIty,_exprIwhatBelow) =
expr_ _exprOaltMbScrutTy _exprOboundRelevTyVarS _exprOdataGam _exprOenv _exprOevalCtx _exprOfinalRVarMp _exprOgUniq _exprOisTopApp _exprOisTopTup _exprOknTy _exprOlamMp _exprOlev _exprOopts _exprOrvarMp _exprOwhatAbove _exprOwhatTo
in ( _lhsOaltMbScrutTy,_lhsObindLamMp,_lhsOcTrf,_lhsOcoe,_lhsOextraBindRVarMp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathEnv,_lhsOgathRecEnv,_lhsOnmL,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOtyAspectL,_lhsOvalAspectL)))
sem_CBound_Meta :: ACoreBindAspectKeyS ->
T_CMetas ->
T_CBound
sem_CBound_Meta aspectKeyS_ cmetas_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIforQuantRVarMp
_lhsIgUniq
_lhsIisGlobal
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsInm
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOcoe :: RelevCoe
_lhsOaltMbScrutTy :: MbRelevTy
_lhsObindLamMp :: LamMp
_lhsOextraBindRVarMp :: RVarMp
_lhsOfvS :: FvS
_lhsOfvSMp :: FvSMp
_lhsOgathEnv :: REnv
_lhsOgathRecEnv :: REnv
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOtyAspectL :: ([CBound])
_lhsOvalAspectL :: ([CBound])
_lhsOcTrf :: CBound
_lhsOoTrf :: CBound
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_cmetasOboundRelevTyVarS :: UIDS
_cmetasOdataGam :: DataGam
_cmetasOenv :: REnv
_cmetasOfinalRVarMp :: RVarMp
_cmetasOgUniq :: UID
_cmetasOknTy :: RelevTy
_cmetasOlamMp :: LamMp
_cmetasOlev :: Int
_cmetasOopts :: EHCOpts
_cmetasOrvarMp :: RVarMp
_cmetasOwhatTo :: ([WhatToRelevInfer])
_cmetasIcTrf :: CMetas
_cmetasIfvS :: FvS
_cmetasIgUniq :: UID
_cmetasIoTrf :: CMetas
_cmetasIqualS :: RelevQualS
_cmetasIrvarMp :: RVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 313, column 17)
_altMbScrutTy =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 337, column 25)
_lhsOcoe =
RelevCoe_Id
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 306, column 33)
_lhsOaltMbScrutTy =
_altMbScrutTy
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 11, column 30)
_lhsObindLamMp =
Map.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 412, column 36)
_lhsOextraBindRVarMp =
emptyRVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_cmetasIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
_lhsOfvSMp =
Map.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 194, column 32)
_lhsOgathEnv =
emptyGam
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 195, column 32)
_lhsOgathRecEnv =
emptyGam
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_cmetasIqualS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 575, column 32)
_lhsOtyAspectL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 576, column 32)
_lhsOvalAspectL =
[]
-- self rule
_cTrf =
CBound_Meta aspectKeyS_ _cmetasIcTrf
-- self rule
_oTrf =
CBound_Meta aspectKeyS_ _cmetasIoTrf
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_cmetasIgUniq
-- copy rule (up)
_lhsOrvarMp =
_cmetasIrvarMp
-- copy rule (down)
_cmetasOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_cmetasOdataGam =
_lhsIdataGam
-- copy rule (down)
_cmetasOenv =
_lhsIenv
-- copy rule (down)
_cmetasOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_cmetasOgUniq =
_lhsIgUniq
-- copy rule (down)
_cmetasOknTy =
_lhsIknTy
-- copy rule (down)
_cmetasOlamMp =
_lhsIlamMp
-- copy rule (down)
_cmetasOlev =
_lhsIlev
-- copy rule (down)
_cmetasOopts =
_lhsIopts
-- copy rule (down)
_cmetasOrvarMp =
_lhsIrvarMp
-- copy rule (down)
_cmetasOwhatTo =
_lhsIwhatTo
( _cmetasIcTrf,_cmetasIfvS,_cmetasIgUniq,_cmetasIoTrf,_cmetasIqualS,_cmetasIrvarMp) =
cmetas_ _cmetasOboundRelevTyVarS _cmetasOdataGam _cmetasOenv _cmetasOfinalRVarMp _cmetasOgUniq _cmetasOknTy _cmetasOlamMp _cmetasOlev _cmetasOopts _cmetasOrvarMp _cmetasOwhatTo
in ( _lhsOaltMbScrutTy,_lhsObindLamMp,_lhsOcTrf,_lhsOcoe,_lhsOextraBindRVarMp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathEnv,_lhsOgathRecEnv,_lhsOnmL,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOtyAspectL,_lhsOvalAspectL)))
sem_CBound_RelevTy :: ACoreBindAspectKeyS ->
RelevTy ->
T_CBound
sem_CBound_RelevTy aspectKeyS_ relevTy_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIforQuantRVarMp
_lhsIgUniq
_lhsIisGlobal
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsInm
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOcoe :: RelevCoe
_lhsOaltMbScrutTy :: MbRelevTy
_lhsObindLamMp :: LamMp
_lhsOextraBindRVarMp :: RVarMp
_lhsOfvS :: FvS
_lhsOfvSMp :: FvSMp
_lhsOgathEnv :: REnv
_lhsOgathRecEnv :: REnv
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOtyAspectL :: ([CBound])
_lhsOvalAspectL :: ([CBound])
_lhsOcTrf :: CBound
_lhsOoTrf :: CBound
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 313, column 17)
_altMbScrutTy =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 337, column 25)
_lhsOcoe =
RelevCoe_Id
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 306, column 33)
_lhsOaltMbScrutTy =
_altMbScrutTy
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 11, column 30)
_lhsObindLamMp =
Map.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 412, column 36)
_lhsOextraBindRVarMp =
emptyRVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
_lhsOfvSMp =
Map.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 194, column 32)
_lhsOgathEnv =
emptyGam
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 195, column 32)
_lhsOgathRecEnv =
emptyGam
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 575, column 32)
_lhsOtyAspectL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 576, column 32)
_lhsOvalAspectL =
[]
-- self rule
_cTrf =
CBound_RelevTy aspectKeyS_ relevTy_
-- self rule
_oTrf =
CBound_RelevTy aspectKeyS_ relevTy_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOaltMbScrutTy,_lhsObindLamMp,_lhsOcTrf,_lhsOcoe,_lhsOextraBindRVarMp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathEnv,_lhsOgathRecEnv,_lhsOnmL,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOtyAspectL,_lhsOvalAspectL)))
sem_CBound_Val :: ACoreBindAspectKeyS ->
MetaLev ->
CLbl ->
T_CExpr ->
T_CBound
sem_CBound_Val aspectKeyS_ mlev_ lbl_ expr_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIforQuantRVarMp
_lhsIgUniq
_lhsIisGlobal
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsInm
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _whatAbove :: WhatExpr
_lhsOaltMbScrutTy :: MbRelevTy
_lhsObindLamMp :: LamMp
_lhsOextraBindRVarMp :: RVarMp
_lhsOfvS :: FvS
_lhsOfvSMp :: FvSMp
_lhsOgathEnv :: REnv
_lhsOgathRecEnv :: REnv
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOtyAspectL :: ([CBound])
_lhsOvalAspectL :: ([CBound])
_lhsOcTrf :: CBound
_lhsOoTrf :: CBound
_lhsOcoe :: RelevCoe
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_exprOaltMbScrutTy :: MbRelevTy
_exprOboundRelevTyVarS :: UIDS
_exprOdataGam :: DataGam
_exprOenv :: REnv
_exprOevalCtx :: EvalCtx
_exprOfinalRVarMp :: RVarMp
_exprOgUniq :: UID
_exprOisTopApp :: Bool
_exprOisTopTup :: Bool
_exprOknTy :: RelevTy
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOopts :: EHCOpts
_exprOrvarMp :: RVarMp
_exprOwhatAbove :: WhatExpr
_exprOwhatTo :: ([WhatToRelevInfer])
_exprIappFunKind :: AppFunKind
_exprIargL :: ([CBound])
_exprIcTrf :: CExpr
_exprIcoe :: RelevCoe
_exprIfunCoe :: RelevCoe
_exprIfvS :: FvS
_exprIgUniq :: UID
_exprIgathLamMp :: LamMp
_exprImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_exprImbFunVar :: (Maybe HsName)
_exprImbLam :: (Maybe [HsName])
_exprImbVar :: (Maybe HsName)
_exprIoTrf :: CExpr
_exprIqualS :: RelevQualS
_exprIrvarMp :: RVarMp
_exprIty :: RelevTy
_exprIwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 80, column 17)
_whatAbove =
ExprIsBind
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 313, column 17)
_altMbScrutTy =
Nothing
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 306, column 33)
_lhsOaltMbScrutTy =
_altMbScrutTy
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 11, column 30)
_lhsObindLamMp =
Map.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 412, column 36)
_lhsOextraBindRVarMp =
emptyRVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_exprIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
_lhsOfvSMp =
Map.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 194, column 32)
_lhsOgathEnv =
emptyGam
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 195, column 32)
_lhsOgathRecEnv =
emptyGam
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_exprIqualS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 575, column 32)
_lhsOtyAspectL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 576, column 32)
_lhsOvalAspectL =
[]
-- self rule
_cTrf =
CBound_Val aspectKeyS_ mlev_ lbl_ _exprIcTrf
-- self rule
_oTrf =
CBound_Val aspectKeyS_ mlev_ lbl_ _exprIoTrf
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOcoe =
_exprIcoe
-- copy rule (up)
_lhsOgUniq =
_exprIgUniq
-- copy rule (up)
_lhsOrvarMp =
_exprIrvarMp
-- copy rule (from local)
_exprOaltMbScrutTy =
_altMbScrutTy
-- copy rule (down)
_exprOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_exprOdataGam =
_lhsIdataGam
-- copy rule (down)
_exprOenv =
_lhsIenv
-- copy rule (down)
_exprOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_exprOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_exprOgUniq =
_lhsIgUniq
-- copy rule (down)
_exprOisTopApp =
_lhsIisTopApp
-- copy rule (down)
_exprOisTopTup =
_lhsIisTopTup
-- copy rule (down)
_exprOknTy =
_lhsIknTy
-- copy rule (down)
_exprOlamMp =
_lhsIlamMp
-- copy rule (down)
_exprOlev =
_lhsIlev
-- copy rule (down)
_exprOopts =
_lhsIopts
-- copy rule (down)
_exprOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_exprOwhatAbove =
_whatAbove
-- copy rule (down)
_exprOwhatTo =
_lhsIwhatTo
( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprIcoe,_exprIfunCoe,_exprIfvS,_exprIgUniq,_exprIgathLamMp,_exprImbFFIApp,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIoTrf,_exprIqualS,_exprIrvarMp,_exprIty,_exprIwhatBelow) =
expr_ _exprOaltMbScrutTy _exprOboundRelevTyVarS _exprOdataGam _exprOenv _exprOevalCtx _exprOfinalRVarMp _exprOgUniq _exprOisTopApp _exprOisTopTup _exprOknTy _exprOlamMp _exprOlev _exprOopts _exprOrvarMp _exprOwhatAbove _exprOwhatTo
in ( _lhsOaltMbScrutTy,_lhsObindLamMp,_lhsOcTrf,_lhsOcoe,_lhsOextraBindRVarMp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathEnv,_lhsOgathRecEnv,_lhsOnmL,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOtyAspectL,_lhsOvalAspectL)))
sem_CBound_Ty :: ACoreBindAspectKeyS ->
Ty ->
T_CBound
sem_CBound_Ty aspectKeyS_ ty_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIforQuantRVarMp
_lhsIgUniq
_lhsIisGlobal
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsInm
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOcoe :: RelevCoe
_lhsOaltMbScrutTy :: MbRelevTy
_lhsObindLamMp :: LamMp
_lhsOextraBindRVarMp :: RVarMp
_lhsOfvS :: FvS
_lhsOfvSMp :: FvSMp
_lhsOgathEnv :: REnv
_lhsOgathRecEnv :: REnv
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOtyAspectL :: ([CBound])
_lhsOvalAspectL :: ([CBound])
_lhsOcTrf :: CBound
_lhsOoTrf :: CBound
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 313, column 17)
_altMbScrutTy =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 337, column 25)
_lhsOcoe =
RelevCoe_Id
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 306, column 33)
_lhsOaltMbScrutTy =
_altMbScrutTy
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 11, column 30)
_lhsObindLamMp =
Map.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 412, column 36)
_lhsOextraBindRVarMp =
emptyRVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
_lhsOfvSMp =
Map.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 194, column 32)
_lhsOgathEnv =
emptyGam
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 195, column 32)
_lhsOgathRecEnv =
emptyGam
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 575, column 32)
_lhsOtyAspectL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 576, column 32)
_lhsOvalAspectL =
[]
-- self rule
_cTrf =
CBound_Ty aspectKeyS_ ty_
-- self rule
_oTrf =
CBound_Ty aspectKeyS_ ty_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOaltMbScrutTy,_lhsObindLamMp,_lhsOcTrf,_lhsOcoe,_lhsOextraBindRVarMp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathEnv,_lhsOgathRecEnv,_lhsOnmL,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOtyAspectL,_lhsOvalAspectL)))
sem_CBound_FFE :: FFIWay ->
ForeignEnt ->
T_CExpr ->
Ty ->
T_CBound
sem_CBound_FFE callconv_ expEnt_ expr_ ty_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIforQuantRVarMp
_lhsIgUniq
_lhsIisGlobal
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsInm
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _exprOisTopApp :: Bool
_exprOisTopTup :: Bool
_whatAbove :: WhatExpr
_lhsOcoe :: RelevCoe
_lhsOaltMbScrutTy :: MbRelevTy
_lhsObindLamMp :: LamMp
_lhsOextraBindRVarMp :: RVarMp
_lhsOfvS :: FvS
_lhsOfvSMp :: FvSMp
_lhsOgathEnv :: REnv
_lhsOgathRecEnv :: REnv
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOtyAspectL :: ([CBound])
_lhsOvalAspectL :: ([CBound])
_lhsOcTrf :: CBound
_lhsOoTrf :: CBound
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_exprOaltMbScrutTy :: MbRelevTy
_exprOboundRelevTyVarS :: UIDS
_exprOdataGam :: DataGam
_exprOenv :: REnv
_exprOevalCtx :: EvalCtx
_exprOfinalRVarMp :: RVarMp
_exprOgUniq :: UID
_exprOknTy :: RelevTy
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOopts :: EHCOpts
_exprOrvarMp :: RVarMp
_exprOwhatAbove :: WhatExpr
_exprOwhatTo :: ([WhatToRelevInfer])
_exprIappFunKind :: AppFunKind
_exprIargL :: ([CBound])
_exprIcTrf :: CExpr
_exprIcoe :: RelevCoe
_exprIfunCoe :: RelevCoe
_exprIfvS :: FvS
_exprIgUniq :: UID
_exprIgathLamMp :: LamMp
_exprImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_exprImbFunVar :: (Maybe HsName)
_exprImbLam :: (Maybe [HsName])
_exprImbVar :: (Maybe HsName)
_exprIoTrf :: CExpr
_exprIqualS :: RelevQualS
_exprIrvarMp :: RVarMp
_exprIty :: RelevTy
_exprIwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 37, column 17)
_exprOisTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 37, column 17)
_exprOisTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 81, column 17)
_whatAbove =
ExprIsLam 0
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 21, column 17)
_argTyLresTy =
appUnArr ty_
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 21, column 17)
_argTyL =
fst _argTyLresTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 21, column 17)
_resTy =
snd _argTyLresTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 21, column 17)
_foreignEntInfo =
foreignEntExtract expEnt_
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 21, column 17)
_expEntNm =
forextractEnt _foreignEntInfo
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 313, column 17)
_altMbScrutTy =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 337, column 25)
_lhsOcoe =
RelevCoe_Id
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 306, column 33)
_lhsOaltMbScrutTy =
_altMbScrutTy
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 11, column 30)
_lhsObindLamMp =
Map.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 412, column 36)
_lhsOextraBindRVarMp =
emptyRVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_exprIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
_lhsOfvSMp =
Map.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 194, column 32)
_lhsOgathEnv =
emptyGam
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 195, column 32)
_lhsOgathRecEnv =
emptyGam
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_exprIqualS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 575, column 32)
_lhsOtyAspectL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 576, column 32)
_lhsOvalAspectL =
[]
-- self rule
_cTrf =
CBound_FFE callconv_ expEnt_ _exprIcTrf ty_
-- self rule
_oTrf =
CBound_FFE callconv_ expEnt_ _exprIoTrf ty_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_exprIgUniq
-- copy rule (up)
_lhsOrvarMp =
_exprIrvarMp
-- copy rule (from local)
_exprOaltMbScrutTy =
_altMbScrutTy
-- copy rule (down)
_exprOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_exprOdataGam =
_lhsIdataGam
-- copy rule (down)
_exprOenv =
_lhsIenv
-- copy rule (down)
_exprOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_exprOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_exprOgUniq =
_lhsIgUniq
-- copy rule (down)
_exprOknTy =
_lhsIknTy
-- copy rule (down)
_exprOlamMp =
_lhsIlamMp
-- copy rule (down)
_exprOlev =
_lhsIlev
-- copy rule (down)
_exprOopts =
_lhsIopts
-- copy rule (down)
_exprOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_exprOwhatAbove =
_whatAbove
-- copy rule (down)
_exprOwhatTo =
_lhsIwhatTo
( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprIcoe,_exprIfunCoe,_exprIfvS,_exprIgUniq,_exprIgathLamMp,_exprImbFFIApp,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIoTrf,_exprIqualS,_exprIrvarMp,_exprIty,_exprIwhatBelow) =
expr_ _exprOaltMbScrutTy _exprOboundRelevTyVarS _exprOdataGam _exprOenv _exprOevalCtx _exprOfinalRVarMp _exprOgUniq _exprOisTopApp _exprOisTopTup _exprOknTy _exprOlamMp _exprOlev _exprOopts _exprOrvarMp _exprOwhatAbove _exprOwhatTo
in ( _lhsOaltMbScrutTy,_lhsObindLamMp,_lhsOcTrf,_lhsOcoe,_lhsOextraBindRVarMp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathEnv,_lhsOgathRecEnv,_lhsOnmL,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOtyAspectL,_lhsOvalAspectL)))
-- CBoundL -----------------------------------------------------
{-
visit 0:
inherited attributes:
boundRelevTyVarS : UIDS
dataGam : DataGam
env : REnv
evalCtx : EvalCtx
finalRVarMp : RVarMp
forQuantRVarMp : RVarMp
isGlobal : Bool
knTy : RelevTy
lamMp : LamMp
letBindingsCateg : CBindCateg
lev : Int
nm : HsName
opts : EHCOpts
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
rvarMp : RVarMp
synthesized attributes:
altMbScrutTy : MbRelevTy
bindLamMp : LamMp
cTrf : CBoundL
extraBindRVarMp : RVarMp
fvS : FvS
fvSMp : FvSMp
gathEnv : REnv
gathRecEnv : REnv
nmL : [HsName]
oTrf : CBoundL
qualS : RelevQualS
tyAspectL : [CBound]
valAspectL : [CBound]
alternatives:
alternative Cons:
child hd : CBound
child tl : CBoundL
visit 0:
local cTrf : _
local oTrf : _
alternative Nil:
visit 0:
local cTrf : _
local oTrf : _
-}
-- cata
sem_CBoundL :: CBoundL ->
T_CBoundL
sem_CBoundL list =
(Prelude.foldr sem_CBoundL_Cons sem_CBoundL_Nil (Prelude.map sem_CBound list))
-- semantic domain
type T_CBoundL = UIDS ->
DataGam ->
REnv ->
EvalCtx ->
RVarMp ->
RVarMp ->
UID ->
Bool ->
RelevTy ->
LamMp ->
CBindCateg ->
Int ->
HsName ->
EHCOpts ->
RVarMp ->
([WhatToRelevInfer]) ->
( MbRelevTy,LamMp,CBoundL,RVarMp,FvS,FvSMp,UID,REnv,REnv,([HsName]),CBoundL,RelevQualS,RVarMp,([CBound]),([CBound]))
sem_CBoundL_Cons :: T_CBound ->
T_CBoundL ->
T_CBoundL
sem_CBoundL_Cons hd_ tl_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIforQuantRVarMp
_lhsIgUniq
_lhsIisGlobal
_lhsIknTy
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsInm
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _hdOisTopApp :: Bool
_hdOisTopTup :: Bool
_lhsOaltMbScrutTy :: MbRelevTy
_lhsObindLamMp :: LamMp
_lhsOextraBindRVarMp :: RVarMp
_lhsOfvS :: FvS
_lhsOfvSMp :: FvSMp
_lhsOgathEnv :: REnv
_lhsOgathRecEnv :: REnv
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOtyAspectL :: ([CBound])
_lhsOvalAspectL :: ([CBound])
_lhsOcTrf :: CBoundL
_lhsOoTrf :: CBoundL
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_hdOboundRelevTyVarS :: UIDS
_hdOdataGam :: DataGam
_hdOenv :: REnv
_hdOevalCtx :: EvalCtx
_hdOfinalRVarMp :: RVarMp
_hdOforQuantRVarMp :: RVarMp
_hdOgUniq :: UID
_hdOisGlobal :: Bool
_hdOknTy :: RelevTy
_hdOlamMp :: LamMp
_hdOletBindingsCateg :: CBindCateg
_hdOlev :: Int
_hdOnm :: HsName
_hdOopts :: EHCOpts
_hdOrvarMp :: RVarMp
_hdOwhatTo :: ([WhatToRelevInfer])
_tlOboundRelevTyVarS :: UIDS
_tlOdataGam :: DataGam
_tlOenv :: REnv
_tlOevalCtx :: EvalCtx
_tlOfinalRVarMp :: RVarMp
_tlOforQuantRVarMp :: RVarMp
_tlOgUniq :: UID
_tlOisGlobal :: Bool
_tlOknTy :: RelevTy
_tlOlamMp :: LamMp
_tlOletBindingsCateg :: CBindCateg
_tlOlev :: Int
_tlOnm :: HsName
_tlOopts :: EHCOpts
_tlOrvarMp :: RVarMp
_tlOwhatTo :: ([WhatToRelevInfer])
_hdIaltMbScrutTy :: MbRelevTy
_hdIbindLamMp :: LamMp
_hdIcTrf :: CBound
_hdIcoe :: RelevCoe
_hdIextraBindRVarMp :: RVarMp
_hdIfvS :: FvS
_hdIfvSMp :: FvSMp
_hdIgUniq :: UID
_hdIgathEnv :: REnv
_hdIgathRecEnv :: REnv
_hdInmL :: ([HsName])
_hdIoTrf :: CBound
_hdIqualS :: RelevQualS
_hdIrvarMp :: RVarMp
_hdItyAspectL :: ([CBound])
_hdIvalAspectL :: ([CBound])
_tlIaltMbScrutTy :: MbRelevTy
_tlIbindLamMp :: LamMp
_tlIcTrf :: CBoundL
_tlIextraBindRVarMp :: RVarMp
_tlIfvS :: FvS
_tlIfvSMp :: FvSMp
_tlIgUniq :: UID
_tlIgathEnv :: REnv
_tlIgathRecEnv :: REnv
_tlInmL :: ([HsName])
_tlIoTrf :: CBoundL
_tlIqualS :: RelevQualS
_tlIrvarMp :: RVarMp
_tlItyAspectL :: ([CBound])
_tlIvalAspectL :: ([CBound])
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 31, column 25)
_hdOisTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 31, column 25)
_hdOisTopTup =
True
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 306, column 33)
_lhsOaltMbScrutTy =
_hdIaltMbScrutTy <|> _tlIaltMbScrutTy
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 11, column 30)
_lhsObindLamMp =
_hdIbindLamMp `lamMpUnionBindAspMp` _tlIbindLamMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 412, column 36)
_lhsOextraBindRVarMp =
_hdIextraBindRVarMp |+> _tlIextraBindRVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_hdIfvS `Set.union` _tlIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
_lhsOfvSMp =
_hdIfvSMp `Map.union` _tlIfvSMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 194, column 32)
_lhsOgathEnv =
_hdIgathEnv `gamUnion` _tlIgathEnv
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 195, column 32)
_lhsOgathRecEnv =
_hdIgathRecEnv `gamUnion` _tlIgathRecEnv
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
_hdInmL ++ _tlInmL
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_hdIqualS `Set.union` _tlIqualS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 575, column 32)
_lhsOtyAspectL =
_hdItyAspectL ++ _tlItyAspectL
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 576, column 32)
_lhsOvalAspectL =
_hdIvalAspectL ++ _tlIvalAspectL
-- self rule
_cTrf =
(:) _hdIcTrf _tlIcTrf
-- self rule
_oTrf =
(:) _hdIoTrf _tlIoTrf
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_tlIgUniq
-- copy rule (up)
_lhsOrvarMp =
_tlIrvarMp
-- copy rule (down)
_hdOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_hdOdataGam =
_lhsIdataGam
-- copy rule (down)
_hdOenv =
_lhsIenv
-- copy rule (down)
_hdOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_hdOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_hdOforQuantRVarMp =
_lhsIforQuantRVarMp
-- copy rule (down)
_hdOgUniq =
_lhsIgUniq
-- copy rule (down)
_hdOisGlobal =
_lhsIisGlobal
-- copy rule (down)
_hdOknTy =
_lhsIknTy
-- copy rule (down)
_hdOlamMp =
_lhsIlamMp
-- copy rule (down)
_hdOletBindingsCateg =
_lhsIletBindingsCateg
-- copy rule (down)
_hdOlev =
_lhsIlev
-- copy rule (down)
_hdOnm =
_lhsInm
-- copy rule (down)
_hdOopts =
_lhsIopts
-- copy rule (down)
_hdOrvarMp =
_lhsIrvarMp
-- copy rule (down)
_hdOwhatTo =
_lhsIwhatTo
-- copy rule (down)
_tlOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_tlOdataGam =
_lhsIdataGam
-- copy rule (down)
_tlOenv =
_lhsIenv
-- copy rule (down)
_tlOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_tlOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_tlOforQuantRVarMp =
_lhsIforQuantRVarMp
-- copy rule (chain)
_tlOgUniq =
_hdIgUniq
-- copy rule (down)
_tlOisGlobal =
_lhsIisGlobal
-- copy rule (down)
_tlOknTy =
_lhsIknTy
-- copy rule (down)
_tlOlamMp =
_lhsIlamMp
-- copy rule (down)
_tlOletBindingsCateg =
_lhsIletBindingsCateg
-- copy rule (down)
_tlOlev =
_lhsIlev
-- copy rule (down)
_tlOnm =
_lhsInm
-- copy rule (down)
_tlOopts =
_lhsIopts
-- copy rule (chain)
_tlOrvarMp =
_hdIrvarMp
-- copy rule (down)
_tlOwhatTo =
_lhsIwhatTo
( _hdIaltMbScrutTy,_hdIbindLamMp,_hdIcTrf,_hdIcoe,_hdIextraBindRVarMp,_hdIfvS,_hdIfvSMp,_hdIgUniq,_hdIgathEnv,_hdIgathRecEnv,_hdInmL,_hdIoTrf,_hdIqualS,_hdIrvarMp,_hdItyAspectL,_hdIvalAspectL) =
hd_ _hdOboundRelevTyVarS _hdOdataGam _hdOenv _hdOevalCtx _hdOfinalRVarMp _hdOforQuantRVarMp _hdOgUniq _hdOisGlobal _hdOisTopApp _hdOisTopTup _hdOknTy _hdOlamMp _hdOletBindingsCateg _hdOlev _hdOnm _hdOopts _hdOrvarMp _hdOwhatTo
( _tlIaltMbScrutTy,_tlIbindLamMp,_tlIcTrf,_tlIextraBindRVarMp,_tlIfvS,_tlIfvSMp,_tlIgUniq,_tlIgathEnv,_tlIgathRecEnv,_tlInmL,_tlIoTrf,_tlIqualS,_tlIrvarMp,_tlItyAspectL,_tlIvalAspectL) =
tl_ _tlOboundRelevTyVarS _tlOdataGam _tlOenv _tlOevalCtx _tlOfinalRVarMp _tlOforQuantRVarMp _tlOgUniq _tlOisGlobal _tlOknTy _tlOlamMp _tlOletBindingsCateg _tlOlev _tlOnm _tlOopts _tlOrvarMp _tlOwhatTo
in ( _lhsOaltMbScrutTy,_lhsObindLamMp,_lhsOcTrf,_lhsOextraBindRVarMp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathEnv,_lhsOgathRecEnv,_lhsOnmL,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOtyAspectL,_lhsOvalAspectL)))
sem_CBoundL_Nil :: T_CBoundL
sem_CBoundL_Nil =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIforQuantRVarMp
_lhsIgUniq
_lhsIisGlobal
_lhsIknTy
_lhsIlamMp
_lhsIletBindingsCateg
_lhsIlev
_lhsInm
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOaltMbScrutTy :: MbRelevTy
_lhsObindLamMp :: LamMp
_lhsOextraBindRVarMp :: RVarMp
_lhsOfvS :: FvS
_lhsOfvSMp :: FvSMp
_lhsOgathEnv :: REnv
_lhsOgathRecEnv :: REnv
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOtyAspectL :: ([CBound])
_lhsOvalAspectL :: ([CBound])
_lhsOcTrf :: CBoundL
_lhsOoTrf :: CBoundL
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 306, column 33)
_lhsOaltMbScrutTy =
Nothing
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 11, column 30)
_lhsObindLamMp =
Map.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 412, column 36)
_lhsOextraBindRVarMp =
emptyRVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 2, column 26)
_lhsOfvSMp =
Map.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 194, column 32)
_lhsOgathEnv =
emptyGam
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 195, column 32)
_lhsOgathRecEnv =
emptyGam
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 575, column 32)
_lhsOtyAspectL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 576, column 32)
_lhsOvalAspectL =
[]
-- self rule
_cTrf =
[]
-- self rule
_oTrf =
[]
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOaltMbScrutTy,_lhsObindLamMp,_lhsOcTrf,_lhsOextraBindRVarMp,_lhsOfvS,_lhsOfvSMp,_lhsOgUniq,_lhsOgathEnv,_lhsOgathRecEnv,_lhsOnmL,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOtyAspectL,_lhsOvalAspectL)))
-- CDataCon ----------------------------------------------------
{-
visit 0:
synthesized attribute:
cTrf : CDataCon
alternatives:
alternative Con:
child conNm : {HsName}
child tagNr : {Int}
child arity : {Int}
visit 0:
local cTrf : _
-}
-- cata
sem_CDataCon :: CDataCon ->
T_CDataCon
sem_CDataCon (CDataCon_Con _conNm _tagNr _arity) =
(sem_CDataCon_Con _conNm _tagNr _arity)
-- semantic domain
type T_CDataCon = ( CDataCon)
sem_CDataCon_Con :: HsName ->
Int ->
Int ->
T_CDataCon
sem_CDataCon_Con conNm_ tagNr_ arity_ =
(let _lhsOcTrf :: CDataCon
-- self rule
_cTrf =
CDataCon_Con conNm_ tagNr_ arity_
-- self rule
_lhsOcTrf =
_cTrf
in ( _lhsOcTrf))
-- CDataConL ---------------------------------------------------
{-
visit 0:
synthesized attribute:
cTrf : CDataConL
alternatives:
alternative Cons:
child hd : CDataCon
child tl : CDataConL
visit 0:
local cTrf : _
alternative Nil:
visit 0:
local cTrf : _
-}
-- cata
sem_CDataConL :: CDataConL ->
T_CDataConL
sem_CDataConL list =
(Prelude.foldr sem_CDataConL_Cons sem_CDataConL_Nil (Prelude.map sem_CDataCon list))
-- semantic domain
type T_CDataConL = ( CDataConL)
sem_CDataConL_Cons :: T_CDataCon ->
T_CDataConL ->
T_CDataConL
sem_CDataConL_Cons hd_ tl_ =
(let _lhsOcTrf :: CDataConL
_hdIcTrf :: CDataCon
_tlIcTrf :: CDataConL
-- self rule
_cTrf =
(:) _hdIcTrf _tlIcTrf
-- self rule
_lhsOcTrf =
_cTrf
( _hdIcTrf) =
hd_
( _tlIcTrf) =
tl_
in ( _lhsOcTrf))
sem_CDataConL_Nil :: T_CDataConL
sem_CDataConL_Nil =
(let _lhsOcTrf :: CDataConL
-- self rule
_cTrf =
[]
-- self rule
_lhsOcTrf =
_cTrf
in ( _lhsOcTrf))
-- CDeclMeta ---------------------------------------------------
{-
visit 0:
synthesized attribute:
cTrf : CDeclMeta
alternatives:
alternative Data:
child tyNm : {HsName}
child dataCons : CDataConL
visit 0:
local cTrf : _
-}
-- cata
sem_CDeclMeta :: CDeclMeta ->
T_CDeclMeta
sem_CDeclMeta (CDeclMeta_Data _tyNm _dataCons) =
(sem_CDeclMeta_Data _tyNm (sem_CDataConL _dataCons))
-- semantic domain
type T_CDeclMeta = ( CDeclMeta)
sem_CDeclMeta_Data :: HsName ->
T_CDataConL ->
T_CDeclMeta
sem_CDeclMeta_Data tyNm_ dataCons_ =
(let _lhsOcTrf :: CDeclMeta
_dataConsIcTrf :: CDataConL
-- self rule
_cTrf =
CDeclMeta_Data tyNm_ _dataConsIcTrf
-- self rule
_lhsOcTrf =
_cTrf
( _dataConsIcTrf) =
dataCons_
in ( _lhsOcTrf))
-- CDeclMetaL --------------------------------------------------
{-
visit 0:
synthesized attribute:
cTrf : CDeclMetaL
alternatives:
alternative Cons:
child hd : CDeclMeta
child tl : CDeclMetaL
visit 0:
local cTrf : _
alternative Nil:
visit 0:
local cTrf : _
-}
-- cata
sem_CDeclMetaL :: CDeclMetaL ->
T_CDeclMetaL
sem_CDeclMetaL list =
(Prelude.foldr sem_CDeclMetaL_Cons sem_CDeclMetaL_Nil (Prelude.map sem_CDeclMeta list))
-- semantic domain
type T_CDeclMetaL = ( CDeclMetaL)
sem_CDeclMetaL_Cons :: T_CDeclMeta ->
T_CDeclMetaL ->
T_CDeclMetaL
sem_CDeclMetaL_Cons hd_ tl_ =
(let _lhsOcTrf :: CDeclMetaL
_hdIcTrf :: CDeclMeta
_tlIcTrf :: CDeclMetaL
-- self rule
_cTrf =
(:) _hdIcTrf _tlIcTrf
-- self rule
_lhsOcTrf =
_cTrf
( _hdIcTrf) =
hd_
( _tlIcTrf) =
tl_
in ( _lhsOcTrf))
sem_CDeclMetaL_Nil :: T_CDeclMetaL
sem_CDeclMetaL_Nil =
(let _lhsOcTrf :: CDeclMetaL
-- self rule
_cTrf =
[]
-- self rule
_lhsOcTrf =
_cTrf
in ( _lhsOcTrf))
-- CExport -----------------------------------------------------
{-
visit 0:
synthesized attribute:
cTrf : CExport
alternatives:
alternative Export:
child nm : {HsName}
visit 0:
local cTrf : _
-}
-- cata
sem_CExport :: CExport ->
T_CExport
sem_CExport (CExport_Export _nm) =
(sem_CExport_Export _nm)
-- semantic domain
type T_CExport = ( CExport)
sem_CExport_Export :: HsName ->
T_CExport
sem_CExport_Export nm_ =
(let _lhsOcTrf :: CExport
-- self rule
_cTrf =
CExport_Export nm_
-- self rule
_lhsOcTrf =
_cTrf
in ( _lhsOcTrf))
-- CExportL ----------------------------------------------------
{-
visit 0:
synthesized attribute:
cTrf : CExportL
alternatives:
alternative Cons:
child hd : CExport
child tl : CExportL
visit 0:
local cTrf : _
alternative Nil:
visit 0:
local cTrf : _
-}
-- cata
sem_CExportL :: CExportL ->
T_CExportL
sem_CExportL list =
(Prelude.foldr sem_CExportL_Cons sem_CExportL_Nil (Prelude.map sem_CExport list))
-- semantic domain
type T_CExportL = ( CExportL)
sem_CExportL_Cons :: T_CExport ->
T_CExportL ->
T_CExportL
sem_CExportL_Cons hd_ tl_ =
(let _lhsOcTrf :: CExportL
_hdIcTrf :: CExport
_tlIcTrf :: CExportL
-- self rule
_cTrf =
(:) _hdIcTrf _tlIcTrf
-- self rule
_lhsOcTrf =
_cTrf
( _hdIcTrf) =
hd_
( _tlIcTrf) =
tl_
in ( _lhsOcTrf))
sem_CExportL_Nil :: T_CExportL
sem_CExportL_Nil =
(let _lhsOcTrf :: CExportL
-- self rule
_cTrf =
[]
-- self rule
_lhsOcTrf =
_cTrf
in ( _lhsOcTrf))
-- CExpr -------------------------------------------------------
{-
visit 0:
inherited attributes:
altMbScrutTy : MbRelevTy
boundRelevTyVarS : UIDS
dataGam : DataGam
env : REnv
evalCtx : EvalCtx
finalRVarMp : RVarMp
isTopApp : Bool
isTopTup : Bool
knTy : RelevTy
lamMp : LamMp
lev : Int
opts : EHCOpts
whatAbove : WhatExpr
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
rvarMp : RVarMp
synthesized attributes:
appFunKind : AppFunKind
argL : [CBound]
cTrf : CExpr
coe : RelevCoe
funCoe : RelevCoe
fvS : FvS
gathLamMp : LamMp
mbFFIApp : Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
)
mbFunVar : Maybe HsName
mbLam : Maybe [HsName]
mbVar : Maybe HsName
oTrf : CExpr
qualS : RelevQualS
ty : RelevTy
whatBelow : WhatExpr
alternatives:
alternative Var:
child ref : {ACoreBindRef}
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local mbVar : {Maybe HsName}
local nm : {HsName}
local nmAsp : {HsName}
local mbEnvTy : _
local _tup10 : _
local envTy : {RelevTy}
local envQualS : {RelevQualS}
local _tup11 : _
local amso : {AMSOut RelevTy}
local ams : {AnaMatchState}
local dbg : _
local _tup12 : _
local lUniq : {UID}
local lUniq2 : {UID}
local lUniq3 : {UID}
local cTrf : _
local oTrf : _
alternative Int:
child int : {Int}
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local litTy : {RelevTy}
local _tup13 : _
local amso : {AMSOut RelevTy}
local ams : {AnaMatchState}
local dbg : _
local cTrf : _
local oTrf : _
alternative Char:
child char : {Char}
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local litTy : {RelevTy}
local _tup14 : _
local amso : {AMSOut RelevTy}
local ams : {AnaMatchState}
local dbg : _
local cTrf : _
local oTrf : _
alternative String:
child str : {String}
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local cTrf : _
local oTrf : _
alternative Integer:
child integer : {Integer}
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local cTrf : _
local oTrf : _
alternative Tup:
child tag : {CTag}
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local _tup15 : _
local tupTy : {RelevTy}
local tupQualS : _
local _tup16 : _
local amso : {AMSOut RelevTy}
local ams : {AnaMatchState}
local dbg : _
local _tup17 : _
local lUniq : {UID}
local lUniq2 : {UID}
local cTrf : _
local oTrf : _
alternative Let:
child categ : {CBindCateg}
child binds : CBindL
child body : CExpr
visit 0:
local fvS : _
local letBindingsCateg : _
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local isTopLet : _
local evalCtx : _
local isGlobal : _
local bindsCanParticpateInOuterSolving : {Bool}
local bindsQualSSubs : _
local bindsQualSOuter : _
local bindsQualSSolv1 : _
local bindsQualSSolv2 : _
local bindsSolveVarMp : _
local cTrf : _
local oTrf : _
alternative App:
child func : CExpr
child arg : CBound
visit 0:
local fvS : _
local letBindingsCateg : _
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local isTopApp' : _
local argL : _
local isGlobal : _
local funTy : {RelevTy}
local _tup18 : _
local argTy : {RelevTy}
local resTy : _
local resFunTy : _
local hereArgCoe : _
local hereFunCoe : _
local _tup19 : _
local argCoe : _
local resCoe : _
local forQuantRVarMp : _
local _tup20 : _
local lUniq : {UID}
local cTrf : _
local oTrf : _
alternative Lam:
child bind : CBind
child body : CExpr
visit 0:
local fvS : _
local letBindingsCateg : _
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local isTopLam : _
local argNm : _
local lev : _
local isGlobal : _
local hereBodyCoe : _
local forQuantRVarMp : _
local cTrf : _
local oTrf : _
alternative Case:
child expr : CExpr
child alts : CAltL
child dflt : CExpr
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local altQualSLSubs : {[RelevQualS]}
local altQualSLSolv1 : {[(RelevQualS,RVarMp)]}
local altQualSLSolv : {[RelevQualS]}
local altQualSIntersect : {RelevQualS}
local altQualSLSolv2 : _
local altSolveLVarMp : {[RVarMp]}
local dbg : _
local _tup21 : _
local lUniq : {UID}
local lUniq2 : {UID}
local cTrf : _
local oTrf : _
alternative CaseAltFail:
child failReason : {CaseAltFailReason}
child errorExpr : CExpr
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatAbove : {WhatExpr}
local cTrf : _
local oTrf : _
alternative TupDel:
child expr : CExpr
child tag : {CTag}
child nm : {HsName}
child offset : CExpr
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local cTrf : _
local oTrf : _
alternative TupIns:
child expr : CExpr
child tag : {CTag}
child nm : {HsName}
child offset : CExpr
child fldExpr : CExpr
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local cTrf : _
local oTrf : _
alternative TupUpd:
child expr : CExpr
child tag : {CTag}
child nm : {HsName}
child offset : CExpr
child fldExpr : CExpr
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local cTrf : _
local oTrf : _
alternative FFI:
child callconv : {FFIWay}
child safety : {String}
child impEnt : {ForeignEnt}
child ty : {Ty}
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local argTyLresTy : {( TyL, Ty )}
local argTyL : {TyL}
local resTy : _
local foreignEntInfo : _
local mbPrimNeedEval : {Maybe PrimitiveNeedsEval}
local primArgNeedsEvalL : _
local primResNeedsEval : {Bool}
local argMbConL : _
local resMbCon : _
local _tup22 : _
local ffiTy : {RelevTy}
local ffiQualS : _
local _tup23 : _
local amso : {AMSOut RelevTy}
local ams : {AnaMatchState}
local dbg : _
local _tup24 : _
local lUniq : {UID}
local lUniq2 : {UID}
local cTrf : _
local oTrf : _
alternative Dbg:
child info : {String}
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local cTrf : _
local oTrf : _
alternative Hole:
child uid : {UID}
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local cTrf : _
local oTrf : _
alternative HoleLet:
child bindsUid : {UID}
child body : CExpr
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local cTrf : _
local oTrf : _
alternative CoeArg:
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local cTrf : _
local oTrf : _
alternative ImplsApp:
child func : CExpr
child uid : {ImplsVarId}
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local cTrf : _
local oTrf : _
alternative ImplsLam:
child uid : {ImplsVarId}
child body : CExpr
visit 0:
local isTopApp : {Bool}
local isTopTup : _
local whatBelow : _
local whatAbove : {WhatExpr}
local cTrf : _
local oTrf : _
alternative Ann:
child ann : CExprAnn
child expr : CExpr
visit 0:
local cTrf : _
local oTrf : _
-}
-- cata
sem_CExpr :: CExpr ->
T_CExpr
sem_CExpr (CExpr_Var _ref) =
(sem_CExpr_Var _ref)
sem_CExpr (CExpr_Int _int) =
(sem_CExpr_Int _int)
sem_CExpr (CExpr_Char _char) =
(sem_CExpr_Char _char)
sem_CExpr (CExpr_String _str) =
(sem_CExpr_String _str)
sem_CExpr (CExpr_Integer _integer) =
(sem_CExpr_Integer _integer)
sem_CExpr (CExpr_Tup _tag) =
(sem_CExpr_Tup _tag)
sem_CExpr (CExpr_Let _categ _binds _body) =
(sem_CExpr_Let _categ (sem_CBindL _binds) (sem_CExpr _body))
sem_CExpr (CExpr_App _func _arg) =
(sem_CExpr_App (sem_CExpr _func) (sem_CBound _arg))
sem_CExpr (CExpr_Lam _bind _body) =
(sem_CExpr_Lam (sem_CBind _bind) (sem_CExpr _body))
sem_CExpr (CExpr_Case _expr _alts _dflt) =
(sem_CExpr_Case (sem_CExpr _expr) (sem_CAltL _alts) (sem_CExpr _dflt))
sem_CExpr (CExpr_CaseAltFail _failReason _errorExpr) =
(sem_CExpr_CaseAltFail _failReason (sem_CExpr _errorExpr))
sem_CExpr (CExpr_TupDel _expr _tag _nm _offset) =
(sem_CExpr_TupDel (sem_CExpr _expr) _tag _nm (sem_CExpr _offset))
sem_CExpr (CExpr_TupIns _expr _tag _nm _offset _fldExpr) =
(sem_CExpr_TupIns (sem_CExpr _expr) _tag _nm (sem_CExpr _offset) (sem_CExpr _fldExpr))
sem_CExpr (CExpr_TupUpd _expr _tag _nm _offset _fldExpr) =
(sem_CExpr_TupUpd (sem_CExpr _expr) _tag _nm (sem_CExpr _offset) (sem_CExpr _fldExpr))
sem_CExpr (CExpr_FFI _callconv _safety _impEnt _ty) =
(sem_CExpr_FFI _callconv _safety _impEnt _ty)
sem_CExpr (CExpr_Dbg _info) =
(sem_CExpr_Dbg _info)
sem_CExpr (CExpr_Hole _uid) =
(sem_CExpr_Hole _uid)
sem_CExpr (CExpr_HoleLet _bindsUid _body) =
(sem_CExpr_HoleLet _bindsUid (sem_CExpr _body))
sem_CExpr (CExpr_CoeArg) =
(sem_CExpr_CoeArg)
sem_CExpr (CExpr_ImplsApp _func _uid) =
(sem_CExpr_ImplsApp (sem_CExpr _func) _uid)
sem_CExpr (CExpr_ImplsLam _uid _body) =
(sem_CExpr_ImplsLam _uid (sem_CExpr _body))
sem_CExpr (CExpr_Ann _ann _expr) =
(sem_CExpr_Ann (sem_CExprAnn _ann) (sem_CExpr _expr))
-- semantic domain
type T_CExpr = MbRelevTy ->
UIDS ->
DataGam ->
REnv ->
EvalCtx ->
RVarMp ->
UID ->
Bool ->
Bool ->
RelevTy ->
LamMp ->
Int ->
EHCOpts ->
RVarMp ->
WhatExpr ->
([WhatToRelevInfer]) ->
( AppFunKind,([CBound]),CExpr,RelevCoe,RelevCoe,FvS,UID,LamMp,(Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
)),(Maybe HsName),(Maybe [HsName]),(Maybe HsName),CExpr,RelevQualS,RVarMp,RelevTy,WhatExpr)
sem_CExpr_Var :: ACoreBindRef ->
T_CExpr
sem_CExpr_Var ref_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_lhsOfvS :: FvS
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_mbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_nm :: HsName
_nmAsp :: HsName
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_envTy :: RelevTy
_envQualS :: RelevQualS
_amso :: (AMSOut RelevTy)
_ams :: AnaMatchState
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOrvarMp :: RVarMp
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOgUniq :: UID
_lUniq :: UID
_lUniq2 :: UID
_lUniq3 :: UID
_lhsOoTrf :: CExpr
_lhsOmbVar :: (Maybe HsName)
_lhsOwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 7, column 17)
_lhsOfvS =
Set.singleton _nm
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 52, column 17)
_whatBelow =
ExprIsVar _nm
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 13, column 17)
_lhsOappFunKind =
AppFunKind_Fun ref_
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 21, column 17)
_mbVar =
Just _nm
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 5, column 17)
_lhsOmbFunVar =
_mbVar
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 15, column 17)
_nm =
acbrefNm ref_
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 15, column 17)
_nmAsp =
mkHNm ref_
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 159, column 17)
_mbEnvTy =
fmap (relevtyInst _lUniq) (renvLookup _nm _lhsIenv _lhsIlamMp)
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 160, column 33)
__tup10 =
maybe (top, Set.empty) id _mbEnvTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 160, column 33)
(_envTy,_) =
__tup10
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 160, column 33)
(_,_envQualS) =
__tup10
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 234, column 33)
__tup11 =
let mk envTy knTy
= case (envTy,knTy) of
(RelevTy_Ana ana,t@(RelevTy_Fun _ _ _ a r@(RelevTy_Ana rAna)))
-> ( amso' {amsoCoe = RelevCoe_Eval ana rAna <.> RelevCoe_CastTy envTy envTy' <.> amsoCoe amso'}
, ams' {amsGathQual = Set.insert (RelevQual_SubEval ana rAna) $ amsGathQual ams'}
)
where (amso',ams') = amsLE _lhsIrvarMp envTy' t
envTy' = anaMkBotFun $ length a
ty'@(RelevTy_Ana ana') = fresh _lUniq2
(t1,t2)
-> ( amsoMkOk t1 t2 (RelevCoe_CastTy t1 t2)
, emptyAnaMatchState
)
in case _mbEnvTy of
Just (envTy,_)
| amsoIsOk amso -> o
| otherwise -> mk envTy _lhsIknTy
where o@(amso,ams) = amsLE _lhsIrvarMp envTy _lhsIknTy
_ -> mk (fresh _lUniq3) _lhsIknTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 234, column 33)
(_amso,_) =
__tup11
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 234, column 33)
(_,_ams) =
__tup11
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 319, column 17)
_lhsOcoe =
_lhsIfinalRVarMp `varUpd` amsoCoe _amso
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 350, column 17)
_lhsOfunCoe =
last $ relevCoeToComposeList $ amsoCoe _amso
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 362, column 17)
_lhsOty =
amsoHi _amso
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 382, column 17)
_lhsOrvarMp =
amsLocalVarMp _ams |+> _lhsIrvarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 421, column 17)
_lhsOqualS =
Set.union _envQualS (amsGathQual _ams)
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 594, column 17)
_dbg =
dbg _lhsIopts _envTy _lhsIknTy _amso _ams
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 613, column 17)
_lhsOcTrf =
_cTrf
-- -- generated by the unique rule mechanism.
__tup12 =
let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq2) -> case nextUnique __cont of { (__cont, lUniq3) -> (__cont,lUniq,lUniq2,lUniq3)}}} )
-- -- generated by the unique rule mechanism.
(_lhsOgUniq,_,_,_) =
__tup12
-- -- generated by the unique rule mechanism.
(_,_lUniq,_,_) =
__tup12
-- -- generated by the unique rule mechanism.
(_,_,_lUniq2,_) =
__tup12
-- -- generated by the unique rule mechanism.
(_,_,_,_lUniq3) =
__tup12
-- self rule
_cTrf =
CExpr_Var ref_
-- self rule
_oTrf =
CExpr_Var ref_
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (from local)
_lhsOmbVar =
_mbVar
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_Int :: Int ->
T_CExpr
sem_CExpr_Int int_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_litTy :: RelevTy
_amso :: (AMSOut RelevTy)
_ams :: AnaMatchState
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOrvarMp :: RVarMp
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOfvS :: FvS
_lhsOoTrf :: CExpr
_lhsOgUniq :: UID
_lhsOwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 53, column 17)
_whatBelow =
ExprIsInt int_
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
_lhsOappFunKind =
AppFunKind_NoApp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 231, column 17)
_litTy =
bot
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 232, column 33)
__tup13 =
amsLE _lhsIrvarMp _litTy _lhsIknTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 232, column 33)
(_amso,_) =
__tup13
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 232, column 33)
(_,_ams) =
__tup13
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 319, column 17)
_lhsOcoe =
_lhsIfinalRVarMp `varUpd` amsoCoe _amso
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 350, column 17)
_lhsOfunCoe =
last $ relevCoeToComposeList $ amsoCoe _amso
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 362, column 17)
_lhsOty =
amsoHi _amso
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 382, column 17)
_lhsOrvarMp =
amsLocalVarMp _ams |+> _lhsIrvarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 424, column 17)
_lhsOqualS =
amsGathQual _ams
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 595, column 17)
_dbg =
dbg _lhsIopts _litTy _lhsIknTy _amso _ams
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 613, column 17)
_lhsOcTrf =
_cTrf
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- self rule
_cTrf =
CExpr_Int int_
-- self rule
_oTrf =
CExpr_Int int_
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_Char :: Char ->
T_CExpr
sem_CExpr_Char char_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_litTy :: RelevTy
_amso :: (AMSOut RelevTy)
_ams :: AnaMatchState
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOrvarMp :: RVarMp
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOfvS :: FvS
_lhsOoTrf :: CExpr
_lhsOgUniq :: UID
_lhsOwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 59, column 25)
_whatBelow =
ExprIsOtherWHNF
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
_lhsOappFunKind =
AppFunKind_NoApp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 231, column 17)
_litTy =
bot
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 232, column 33)
__tup14 =
amsLE _lhsIrvarMp _litTy _lhsIknTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 232, column 33)
(_amso,_) =
__tup14
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 232, column 33)
(_,_ams) =
__tup14
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 319, column 17)
_lhsOcoe =
_lhsIfinalRVarMp `varUpd` amsoCoe _amso
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 350, column 17)
_lhsOfunCoe =
last $ relevCoeToComposeList $ amsoCoe _amso
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 362, column 17)
_lhsOty =
amsoHi _amso
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 382, column 17)
_lhsOrvarMp =
amsLocalVarMp _ams |+> _lhsIrvarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 424, column 17)
_lhsOqualS =
amsGathQual _ams
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 595, column 17)
_dbg =
dbg _lhsIopts _litTy _lhsIknTy _amso _ams
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 613, column 17)
_lhsOcTrf =
_cTrf
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- self rule
_cTrf =
CExpr_Char char_
-- self rule
_oTrf =
CExpr_Char char_
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_String :: String ->
T_CExpr
sem_CExpr_String str_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOoTrf :: CExpr
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_lhsOwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 59, column 25)
_whatBelow =
ExprIsOtherWHNF
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
_lhsOappFunKind =
AppFunKind_NoApp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 324, column 17)
_lhsOcoe =
RelevCoe_Id
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 356, column 17)
_lhsOfunCoe =
RelevCoe_Err "CExpr.unimpl"
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 366, column 17)
_lhsOty =
RelevTy_Err "unimpl"
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CExpr_String str_
-- self rule
_oTrf =
CExpr_String str_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_Integer :: Integer ->
T_CExpr
sem_CExpr_Integer integer_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOoTrf :: CExpr
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_lhsOwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 59, column 25)
_whatBelow =
ExprIsOtherWHNF
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
_lhsOappFunKind =
AppFunKind_NoApp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 324, column 17)
_lhsOcoe =
RelevCoe_Id
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 356, column 17)
_lhsOfunCoe =
RelevCoe_Err "CExpr.unimpl"
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 366, column 17)
_lhsOty =
RelevTy_Err "unimpl"
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CExpr_Integer integer_
-- self rule
_oTrf =
CExpr_Integer integer_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_Tup :: CTag ->
T_CExpr
sem_CExpr_Tup tag_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_tupTy :: RelevTy
_amso :: (AMSOut RelevTy)
_ams :: AnaMatchState
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOrvarMp :: RVarMp
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOgUniq :: UID
_lUniq :: UID
_lUniq2 :: UID
_lhsOfvS :: FvS
_lhsOoTrf :: CExpr
_lhsOwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 55, column 25)
_whatBelow =
ExprIsTup tag_
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 11, column 17)
_lhsOappFunKind =
AppFunKind_Tag tag_
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 255, column 33)
__tup15 =
let r = fresh _lUniq2
arity = whatExprAppArity _lhsIwhatAbove
in maybe (RelevTy_Err "CExpr.Tup.tupTy", Set.empty) (\(a,qs) -> (RelevTy_Fun RQuant_None [] [] a r, qs))
$ relevTyArgsFromCTag False tag_ (Just r) arity _lhsIdataGam _lUniq
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 255, column 33)
(_tupTy,_) =
__tup15
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 255, column 33)
(_,_tupQualS) =
__tup15
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 259, column 33)
__tup16 =
amsLE _lhsIrvarMp _tupTy _lhsIknTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 259, column 33)
(_amso,_) =
__tup16
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 259, column 33)
(_,_ams) =
__tup16
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 319, column 17)
_lhsOcoe =
_lhsIfinalRVarMp `varUpd` amsoCoe _amso
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 350, column 17)
_lhsOfunCoe =
last $ relevCoeToComposeList $ amsoCoe _amso
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 362, column 17)
_lhsOty =
amsoHi _amso
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 382, column 17)
_lhsOrvarMp =
amsLocalVarMp _ams |+> _lhsIrvarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 423, column 17)
_lhsOqualS =
Set.union _tupQualS (amsGathQual _ams)
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 596, column 17)
_dbg =
dbg _lhsIopts _tupTy _lhsIknTy _amso _ams
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 613, column 17)
_lhsOcTrf =
_cTrf
-- -- generated by the unique rule mechanism.
__tup17 =
let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq2) -> (__cont,lUniq,lUniq2)}} )
-- -- generated by the unique rule mechanism.
(_lhsOgUniq,_,_) =
__tup17
-- -- generated by the unique rule mechanism.
(_,_lUniq,_) =
__tup17
-- -- generated by the unique rule mechanism.
(_,_,_lUniq2) =
__tup17
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- self rule
_cTrf =
CExpr_Tup tag_
-- self rule
_oTrf =
CExpr_Tup tag_
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_Let :: CBindCateg ->
T_CBindL ->
T_CExpr ->
T_CExpr
sem_CExpr_Let categ_ binds_ body_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_bindsOenv :: REnv
_bodyOenv :: REnv
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_bodyOrvarMp :: RVarMp
_bindsOforQuantRVarMp :: RVarMp
_bindsCanParticpateInOuterSolving :: Bool
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOoTrf :: CExpr
_lhsOcoe :: RelevCoe
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_lhsOwhatBelow :: WhatExpr
_bindsOboundRelevTyVarS :: UIDS
_bindsOdataGam :: DataGam
_bindsOevalCtx :: EvalCtx
_bindsOfinalRVarMp :: RVarMp
_bindsOgUniq :: UID
_bindsOisGlobal :: Bool
_bindsOknTy :: RelevTy
_bindsOlamMp :: LamMp
_bindsOletBindingsCateg :: CBindCateg
_bindsOlev :: Int
_bindsOopts :: EHCOpts
_bindsOrvarMp :: RVarMp
_bindsOwhatTo :: ([WhatToRelevInfer])
_bodyOaltMbScrutTy :: MbRelevTy
_bodyOboundRelevTyVarS :: UIDS
_bodyOdataGam :: DataGam
_bodyOevalCtx :: EvalCtx
_bodyOfinalRVarMp :: RVarMp
_bodyOgUniq :: UID
_bodyOisTopApp :: Bool
_bodyOisTopTup :: Bool
_bodyOknTy :: RelevTy
_bodyOlamMp :: LamMp
_bodyOlev :: Int
_bodyOopts :: EHCOpts
_bodyOwhatAbove :: WhatExpr
_bodyOwhatTo :: ([WhatToRelevInfer])
_bindsIaltMbScrutTy :: MbRelevTy
_bindsIbindLamMp :: LamMp
_bindsIcTrf :: CBindL
_bindsIextraBindRVarMp :: RVarMp
_bindsIfvS :: FvS
_bindsIfvSMp :: FvSMp
_bindsIgUniq :: UID
_bindsIgathEnv :: REnv
_bindsIgathRecEnv :: REnv
_bindsInmL :: ([HsName])
_bindsIoTrf :: CBindL
_bindsIqualS :: RelevQualS
_bindsIrvarMp :: RVarMp
_bodyIappFunKind :: AppFunKind
_bodyIargL :: ([CBound])
_bodyIcTrf :: CExpr
_bodyIcoe :: RelevCoe
_bodyIfunCoe :: RelevCoe
_bodyIfvS :: FvS
_bodyIgUniq :: UID
_bodyIgathLamMp :: LamMp
_bodyImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_bodyImbFunVar :: (Maybe HsName)
_bodyImbLam :: (Maybe [HsName])
_bodyImbVar :: (Maybe HsName)
_bodyIoTrf :: CExpr
_bodyIqualS :: RelevQualS
_bodyIrvarMp :: RVarMp
_bodyIty :: RelevTy
_bodyIwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 7, column 17)
_lhsOgathLamMp =
_bindsIbindLamMp `Map.union` _bodyIgathLamMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 6, column 17)
_fvS =
(_bodyIfvS `Set.union` _bindsIfvS) `Set.difference` Set.fromList _bindsInmL
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 4, column 17)
_letBindingsCateg =
categ_
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
_whatBelow =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 75, column 17)
_isTopLet =
_lhsIwhatAbove == ExprIsBind
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 106, column 17)
_evalCtx =
if categ_ == CBindCateg_Strict
then EvalCtx_Eval
else EvalCtx_Thunk
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
_lhsOappFunKind =
AppFunKind_NoApp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 10, column 17)
_isGlobal =
_lhsIlev == cLevModule
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 164, column 17)
_bindsOenv =
gamAddGam _bindsIgathRecEnv _lhsIenv
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 165, column 17)
_bodyOenv =
gamAddGam _bindsIgathEnv _lhsIenv
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 356, column 17)
_lhsOfunCoe =
RelevCoe_Err "CExpr.unimpl"
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 366, column 17)
_lhsOty =
RelevTy_Err "unimpl"
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 384, column 17)
_bodyOrvarMp =
_bindsIextraBindRVarMp |+> _bindsIrvarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 392, column 17)
_bindsOforQuantRVarMp =
_bindsIrvarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 467, column 17)
_bindsCanParticpateInOuterSolving =
categ_ == CBindCateg_Strict
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 467, column 17)
_bindsQualSSubs =
Set.map (_bindsIrvarMp `varUpd`) _bindsIqualS
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 467, column 17)
_bindsQualSOuter =
if _bindsCanParticpateInOuterSolving then _bindsQualSSubs else Set.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 467, column 17)
_bindsQualSSolv1 =
if _bindsCanParticpateInOuterSolving
then (Set.empty, emptyRVarMp)
else let (q,m) = assSolve _lhsIboundRelevTyVarS _bindsQualSSubs
in (Set.map (m `varUpd`) q, m)
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 480, column 17)
_bindsQualSSolv2 =
let (q,m) = _bindsQualSSolv1
m2 = m |+> _lhsIfinalRVarMp
(q',m3) = assSolve Set.empty (Set.map (m2 `varUpd`) q)
in (Set.map (m3 `varUpd`) q', m3 |+> m2)
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 480, column 17)
_bindsSolveVarMp =
snd _bindsQualSSolv2
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_fvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_bindsIqualS `Set.union` _bodyIqualS
-- self rule
_cTrf =
CExpr_Let categ_ _bindsIcTrf _bodyIcTrf
-- self rule
_oTrf =
CExpr_Let categ_ _bindsIoTrf _bodyIoTrf
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOcoe =
_bodyIcoe
-- copy rule (up)
_lhsOgUniq =
_bodyIgUniq
-- copy rule (up)
_lhsOrvarMp =
_bodyIrvarMp
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
-- copy rule (down)
_bindsOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_bindsOdataGam =
_lhsIdataGam
-- copy rule (from local)
_bindsOevalCtx =
_evalCtx
-- copy rule (down)
_bindsOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_bindsOgUniq =
_lhsIgUniq
-- copy rule (from local)
_bindsOisGlobal =
_isGlobal
-- copy rule (down)
_bindsOknTy =
_lhsIknTy
-- copy rule (down)
_bindsOlamMp =
_lhsIlamMp
-- copy rule (from local)
_bindsOletBindingsCateg =
_letBindingsCateg
-- copy rule (down)
_bindsOlev =
_lhsIlev
-- copy rule (down)
_bindsOopts =
_lhsIopts
-- copy rule (down)
_bindsOrvarMp =
_lhsIrvarMp
-- copy rule (down)
_bindsOwhatTo =
_lhsIwhatTo
-- copy rule (chain)
_bodyOaltMbScrutTy =
_bindsIaltMbScrutTy
-- copy rule (down)
_bodyOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_bodyOdataGam =
_lhsIdataGam
-- copy rule (from local)
_bodyOevalCtx =
_evalCtx
-- copy rule (down)
_bodyOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_bodyOgUniq =
_bindsIgUniq
-- copy rule (from local)
_bodyOisTopApp =
_isTopApp
-- copy rule (from local)
_bodyOisTopTup =
_isTopTup
-- copy rule (down)
_bodyOknTy =
_lhsIknTy
-- copy rule (down)
_bodyOlamMp =
_lhsIlamMp
-- copy rule (down)
_bodyOlev =
_lhsIlev
-- copy rule (down)
_bodyOopts =
_lhsIopts
-- copy rule (from local)
_bodyOwhatAbove =
_whatAbove
-- copy rule (down)
_bodyOwhatTo =
_lhsIwhatTo
( _bindsIaltMbScrutTy,_bindsIbindLamMp,_bindsIcTrf,_bindsIextraBindRVarMp,_bindsIfvS,_bindsIfvSMp,_bindsIgUniq,_bindsIgathEnv,_bindsIgathRecEnv,_bindsInmL,_bindsIoTrf,_bindsIqualS,_bindsIrvarMp) =
binds_ _bindsOboundRelevTyVarS _bindsOdataGam _bindsOenv _bindsOevalCtx _bindsOfinalRVarMp _bindsOforQuantRVarMp _bindsOgUniq _bindsOisGlobal _bindsOknTy _bindsOlamMp _bindsOletBindingsCateg _bindsOlev _bindsOopts _bindsOrvarMp _bindsOwhatTo
( _bodyIappFunKind,_bodyIargL,_bodyIcTrf,_bodyIcoe,_bodyIfunCoe,_bodyIfvS,_bodyIgUniq,_bodyIgathLamMp,_bodyImbFFIApp,_bodyImbFunVar,_bodyImbLam,_bodyImbVar,_bodyIoTrf,_bodyIqualS,_bodyIrvarMp,_bodyIty,_bodyIwhatBelow) =
body_ _bodyOaltMbScrutTy _bodyOboundRelevTyVarS _bodyOdataGam _bodyOenv _bodyOevalCtx _bodyOfinalRVarMp _bodyOgUniq _bodyOisTopApp _bodyOisTopTup _bodyOknTy _bodyOlamMp _bodyOlev _bodyOopts _bodyOrvarMp _bodyOwhatAbove _bodyOwhatTo
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_App :: T_CExpr ->
T_CBound ->
T_CExpr
sem_CExpr_App func_ arg_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_funcOisTopApp :: Bool
_argOisTopApp :: Bool
_whatAbove :: WhatExpr
_argOevalCtx :: EvalCtx
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_argOnm :: HsName
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_argOknTy :: RelevTy
_funcOknTy :: RelevTy
_funTy :: RelevTy
_argTy :: RelevTy
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOcTrf :: CExpr
_funcOgUniq :: UID
_lUniq :: UID
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOoTrf :: CExpr
_lhsOargL :: ([CBound])
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_lhsOwhatBelow :: WhatExpr
_funcOaltMbScrutTy :: MbRelevTy
_funcOboundRelevTyVarS :: UIDS
_funcOdataGam :: DataGam
_funcOenv :: REnv
_funcOevalCtx :: EvalCtx
_funcOfinalRVarMp :: RVarMp
_funcOisTopTup :: Bool
_funcOlamMp :: LamMp
_funcOlev :: Int
_funcOopts :: EHCOpts
_funcOrvarMp :: RVarMp
_funcOwhatAbove :: WhatExpr
_funcOwhatTo :: ([WhatToRelevInfer])
_argOboundRelevTyVarS :: UIDS
_argOdataGam :: DataGam
_argOenv :: REnv
_argOfinalRVarMp :: RVarMp
_argOforQuantRVarMp :: RVarMp
_argOgUniq :: UID
_argOisGlobal :: Bool
_argOisTopTup :: Bool
_argOlamMp :: LamMp
_argOletBindingsCateg :: CBindCateg
_argOlev :: Int
_argOopts :: EHCOpts
_argOrvarMp :: RVarMp
_argOwhatTo :: ([WhatToRelevInfer])
_funcIappFunKind :: AppFunKind
_funcIargL :: ([CBound])
_funcIcTrf :: CExpr
_funcIcoe :: RelevCoe
_funcIfunCoe :: RelevCoe
_funcIfvS :: FvS
_funcIgUniq :: UID
_funcIgathLamMp :: LamMp
_funcImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_funcImbFunVar :: (Maybe HsName)
_funcImbLam :: (Maybe [HsName])
_funcImbVar :: (Maybe HsName)
_funcIoTrf :: CExpr
_funcIqualS :: RelevQualS
_funcIrvarMp :: RVarMp
_funcIty :: RelevTy
_funcIwhatBelow :: WhatExpr
_argIaltMbScrutTy :: MbRelevTy
_argIbindLamMp :: LamMp
_argIcTrf :: CBound
_argIcoe :: RelevCoe
_argIextraBindRVarMp :: RVarMp
_argIfvS :: FvS
_argIfvSMp :: FvSMp
_argIgUniq :: UID
_argIgathEnv :: REnv
_argIgathRecEnv :: REnv
_argInmL :: ([HsName])
_argIoTrf :: CBound
_argIqualS :: RelevQualS
_argIrvarMp :: RVarMp
_argItyAspectL :: ([CBound])
_argIvalAspectL :: ([CBound])
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 8, column 17)
_fvS =
_funcIfvS `Set.union` _argIfvS
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 6, column 33)
_letBindingsCateg =
acoreBindcategPlain
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 14, column 17)
_funcOisTopApp =
False
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 15, column 17)
_argOisTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 54, column 17)
_whatBelow =
maybe (ExprIsApp 1 _funcIwhatBelow) (\(a,w) -> ExprIsApp (a + 1) w) $ whatExprMbApp _funcIwhatBelow
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 70, column 17)
_whatAbove =
maybe (ExprIsApp 1 ExprIsOther) (\(a,w) -> ExprIsApp (a + 1) w) $ whatExprMbApp _lhsIwhatAbove
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 77, column 17)
_isTopApp' =
isNothing $ whatExprMbApp _lhsIwhatAbove
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 112, column 17)
_argOevalCtx =
EvalCtx_Thunk
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 14, column 17)
_lhsOappFunKind =
_funcIappFunKind
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 6, column 17)
_lhsOmbFunVar =
_funcImbFunVar
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 13, column 17)
_argL =
_argIcTrf : _funcIargL
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 7, column 17)
_argOnm =
hsnUnknown
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 41, column 17)
_lhsOmbFFIApp =
_funcImbFFIApp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 12, column 33)
_isGlobal =
False
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 210, column 17)
_argOknTy =
_argTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 211, column 17)
_funcOknTy =
case _lhsIknTy of
RelevTy_Fun q v qs as r -> RelevTy_Fun q v qs (fresh _lUniq : as) r
t -> RelevTy_Fun RQuant_None [] [] [fresh _lUniq ] t
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 270, column 17)
_funTy =
case _funcIty of
t@(RelevTy_Fun _ _ _ (_:_) _) -> t
_ -> anaMkBotFun 1
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 273, column 33)
__tup18 =
case _funTy of
RelevTy_Fun q v qs (a:as) r -> (a,r,RelevTy_Fun q v qs as r)
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 273, column 33)
(_argTy,_,_) =
__tup18
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 273, column 33)
(_,_resTy,_) =
__tup18
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 273, column 33)
(_,_,_resFunTy) =
__tup18
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 320, column 17)
_lhsOcoe =
if _lhsIisTopApp
then _lhsIfinalRVarMp `varUpd` _resCoe
else RelevCoe_Id
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 327, column 17)
_hereArgCoe =
_argIcoe <.> (_lhsIfinalRVarMp `varUpd` _argCoe)
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 327, column 17)
_hereFunCoe =
case _funcIwhatBelow of
ExprIsApp _ _ -> RelevCoe_Id
_ -> _funcIcoe
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 351, column 17)
__tup19 =
case _funcIfunCoe of
RelevCoe_Fun (a:as) r -> (a,r,RelevCoe_Fun as r)
_ -> (RelevCoe_Err "CExpr.App.a", RelevCoe_Err "CExpr.App.r", RelevCoe_Err "CExpr.App.f")
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 351, column 17)
(_argCoe,_,_) =
__tup19
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 351, column 17)
(_,_resCoe,_) =
__tup19
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 351, column 17)
(_,_,_lhsOfunCoe) =
__tup19
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 363, column 17)
_lhsOty =
if _lhsIisTopApp then _resTy else _resFunTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 394, column 33)
_forQuantRVarMp =
emptyRVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 616, column 17)
_lhsOcTrf =
let a =
maybe _argIcTrf (\((a,_,_),e) -> acoreBound1AspkeyVal a (annCoe _hereArgCoe e)) $ acoreBoundMbVal _argIcTrf
app = acore1AppBound (annCoe _hereFunCoe _funcIcTrf) a
in app
-- -- generated by the unique rule mechanism.
__tup20 =
let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )
-- -- generated by the unique rule mechanism.
(_funcOgUniq,_) =
__tup20
-- -- generated by the unique rule mechanism.
(_,_lUniq) =
__tup20
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_fvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_funcIqualS `Set.union` _argIqualS
-- self rule
_cTrf =
CExpr_App _funcIcTrf _argIcTrf
-- self rule
_oTrf =
CExpr_App _funcIoTrf _argIoTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (from local)
_lhsOargL =
_argL
-- copy rule (up)
_lhsOgUniq =
_argIgUniq
-- copy rule (up)
_lhsOrvarMp =
_argIrvarMp
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
-- copy rule (down)
_funcOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (down)
_funcOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_funcOdataGam =
_lhsIdataGam
-- copy rule (down)
_funcOenv =
_lhsIenv
-- copy rule (down)
_funcOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_funcOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (from local)
_funcOisTopTup =
_isTopTup
-- copy rule (down)
_funcOlamMp =
_lhsIlamMp
-- copy rule (down)
_funcOlev =
_lhsIlev
-- copy rule (down)
_funcOopts =
_lhsIopts
-- copy rule (down)
_funcOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_funcOwhatAbove =
_whatAbove
-- copy rule (down)
_funcOwhatTo =
_lhsIwhatTo
-- copy rule (down)
_argOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_argOdataGam =
_lhsIdataGam
-- copy rule (down)
_argOenv =
_lhsIenv
-- copy rule (down)
_argOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (from local)
_argOforQuantRVarMp =
_forQuantRVarMp
-- copy rule (chain)
_argOgUniq =
_funcIgUniq
-- copy rule (from local)
_argOisGlobal =
_isGlobal
-- copy rule (from local)
_argOisTopTup =
_isTopTup
-- copy rule (down)
_argOlamMp =
_lhsIlamMp
-- copy rule (from local)
_argOletBindingsCateg =
_letBindingsCateg
-- copy rule (down)
_argOlev =
_lhsIlev
-- copy rule (down)
_argOopts =
_lhsIopts
-- copy rule (chain)
_argOrvarMp =
_funcIrvarMp
-- copy rule (down)
_argOwhatTo =
_lhsIwhatTo
( _funcIappFunKind,_funcIargL,_funcIcTrf,_funcIcoe,_funcIfunCoe,_funcIfvS,_funcIgUniq,_funcIgathLamMp,_funcImbFFIApp,_funcImbFunVar,_funcImbLam,_funcImbVar,_funcIoTrf,_funcIqualS,_funcIrvarMp,_funcIty,_funcIwhatBelow) =
func_ _funcOaltMbScrutTy _funcOboundRelevTyVarS _funcOdataGam _funcOenv _funcOevalCtx _funcOfinalRVarMp _funcOgUniq _funcOisTopApp _funcOisTopTup _funcOknTy _funcOlamMp _funcOlev _funcOopts _funcOrvarMp _funcOwhatAbove _funcOwhatTo
( _argIaltMbScrutTy,_argIbindLamMp,_argIcTrf,_argIcoe,_argIextraBindRVarMp,_argIfvS,_argIfvSMp,_argIgUniq,_argIgathEnv,_argIgathRecEnv,_argInmL,_argIoTrf,_argIqualS,_argIrvarMp,_argItyAspectL,_argIvalAspectL) =
arg_ _argOboundRelevTyVarS _argOdataGam _argOenv _argOevalCtx _argOfinalRVarMp _argOforQuantRVarMp _argOgUniq _argOisGlobal _argOisTopApp _argOisTopTup _argOknTy _argOlamMp _argOletBindingsCateg _argOlev _argOnm _argOopts _argOrvarMp _argOwhatTo
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_Lam :: T_CBind ->
T_CExpr ->
T_CExpr
sem_CExpr_Lam bind_ body_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_bodyOlamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOcTrf :: CExpr
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOoTrf :: CExpr
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_lhsOwhatBelow :: WhatExpr
_bindOboundRelevTyVarS :: UIDS
_bindOdataGam :: DataGam
_bindOenv :: REnv
_bindOevalCtx :: EvalCtx
_bindOfinalRVarMp :: RVarMp
_bindOforQuantRVarMp :: RVarMp
_bindOgUniq :: UID
_bindOisGlobal :: Bool
_bindOknTy :: RelevTy
_bindOlamMp :: LamMp
_bindOletBindingsCateg :: CBindCateg
_bindOlev :: Int
_bindOopts :: EHCOpts
_bindOrvarMp :: RVarMp
_bindOwhatTo :: ([WhatToRelevInfer])
_bodyOaltMbScrutTy :: MbRelevTy
_bodyOboundRelevTyVarS :: UIDS
_bodyOdataGam :: DataGam
_bodyOenv :: REnv
_bodyOevalCtx :: EvalCtx
_bodyOfinalRVarMp :: RVarMp
_bodyOgUniq :: UID
_bodyOisTopApp :: Bool
_bodyOisTopTup :: Bool
_bodyOknTy :: RelevTy
_bodyOlev :: Int
_bodyOopts :: EHCOpts
_bodyOrvarMp :: RVarMp
_bodyOwhatAbove :: WhatExpr
_bodyOwhatTo :: ([WhatToRelevInfer])
_bindIaltMbScrutTy :: MbRelevTy
_bindIbindLamMp :: LamMp
_bindIcTrf :: CBind
_bindIextraBindRVarMp :: RVarMp
_bindIfvS :: FvS
_bindIfvSMp :: FvSMp
_bindIgUniq :: UID
_bindIgathEnv :: REnv
_bindIgathRecEnv :: REnv
_bindInm :: HsName
_bindInmL :: ([HsName])
_bindIoTrf :: CBind
_bindIqualS :: RelevQualS
_bindIrvarMp :: RVarMp
_bodyIappFunKind :: AppFunKind
_bodyIargL :: ([CBound])
_bodyIcTrf :: CExpr
_bodyIcoe :: RelevCoe
_bodyIfunCoe :: RelevCoe
_bodyIfvS :: FvS
_bodyIgUniq :: UID
_bodyIgathLamMp :: LamMp
_bodyImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_bodyImbFunVar :: (Maybe HsName)
_bodyImbLam :: (Maybe [HsName])
_bodyImbVar :: (Maybe HsName)
_bodyIoTrf :: CExpr
_bodyIqualS :: RelevQualS
_bodyIrvarMp :: RVarMp
_bodyIty :: RelevTy
_bodyIwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLamInfo.ag"(line 7, column 17)
_bodyOlamMp =
Map.delete _argNm _lhsIlamMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 5, column 17)
_fvS =
_argNm `Set.delete` _bodyIfvS
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 6, column 33)
_letBindingsCateg =
acoreBindcategPlain
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 51, column 17)
_whatBelow =
maybe (ExprIsLam 1) (\a -> ExprIsLam $ a + 1) $ whatExprMbLam _bodyIwhatBelow
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 69, column 17)
_whatAbove =
maybe (ExprIsLam 1) (\a -> ExprIsLam $ a + 1) $ whatExprMbLam _lhsIwhatAbove
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 76, column 17)
_isTopLam =
not $ whatExprIsLam _lhsIwhatAbove
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 4, column 17)
_lhsOmbLam =
Just $ maybe [_argNm] (_argNm:) _bodyImbLam
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
_lhsOappFunKind =
AppFunKind_NoApp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 19, column 17)
_argNm =
_bindInm
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLevLamPer1Lam.ag"(line 2, column 17)
_lev =
_lhsIlev + 1
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 12, column 33)
_isGlobal =
False
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 324, column 17)
_lhsOcoe =
RelevCoe_Id
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 331, column 17)
_hereBodyCoe =
case _bodyIwhatBelow of
ExprIsLam _ -> RelevCoe_Id
_ -> _bodyIcoe
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 356, column 17)
_lhsOfunCoe =
RelevCoe_Err "CExpr.unimpl"
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 366, column 17)
_lhsOty =
RelevTy_Err "unimpl"
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 394, column 33)
_forQuantRVarMp =
emptyRVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 615, column 17)
_lhsOcTrf =
acoreLam1 _argNm $ annCoe _hereBodyCoe _bodyIcTrf
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_fvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_bindIqualS `Set.union` _bodyIqualS
-- self rule
_cTrf =
CExpr_Lam _bindIcTrf _bodyIcTrf
-- self rule
_oTrf =
CExpr_Lam _bindIoTrf _bodyIoTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_bodyIgUniq
-- copy rule (up)
_lhsOrvarMp =
_bodyIrvarMp
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
-- copy rule (down)
_bindOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_bindOdataGam =
_lhsIdataGam
-- copy rule (down)
_bindOenv =
_lhsIenv
-- copy rule (down)
_bindOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_bindOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (from local)
_bindOforQuantRVarMp =
_forQuantRVarMp
-- copy rule (down)
_bindOgUniq =
_lhsIgUniq
-- copy rule (from local)
_bindOisGlobal =
_isGlobal
-- copy rule (down)
_bindOknTy =
_lhsIknTy
-- copy rule (down)
_bindOlamMp =
_lhsIlamMp
-- copy rule (from local)
_bindOletBindingsCateg =
_letBindingsCateg
-- copy rule (from local)
_bindOlev =
_lev
-- copy rule (down)
_bindOopts =
_lhsIopts
-- copy rule (down)
_bindOrvarMp =
_lhsIrvarMp
-- copy rule (down)
_bindOwhatTo =
_lhsIwhatTo
-- copy rule (chain)
_bodyOaltMbScrutTy =
_bindIaltMbScrutTy
-- copy rule (down)
_bodyOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_bodyOdataGam =
_lhsIdataGam
-- copy rule (down)
_bodyOenv =
_lhsIenv
-- copy rule (down)
_bodyOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_bodyOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_bodyOgUniq =
_bindIgUniq
-- copy rule (from local)
_bodyOisTopApp =
_isTopApp
-- copy rule (from local)
_bodyOisTopTup =
_isTopTup
-- copy rule (down)
_bodyOknTy =
_lhsIknTy
-- copy rule (from local)
_bodyOlev =
_lev
-- copy rule (down)
_bodyOopts =
_lhsIopts
-- copy rule (chain)
_bodyOrvarMp =
_bindIrvarMp
-- copy rule (from local)
_bodyOwhatAbove =
_whatAbove
-- copy rule (down)
_bodyOwhatTo =
_lhsIwhatTo
( _bindIaltMbScrutTy,_bindIbindLamMp,_bindIcTrf,_bindIextraBindRVarMp,_bindIfvS,_bindIfvSMp,_bindIgUniq,_bindIgathEnv,_bindIgathRecEnv,_bindInm,_bindInmL,_bindIoTrf,_bindIqualS,_bindIrvarMp) =
bind_ _bindOboundRelevTyVarS _bindOdataGam _bindOenv _bindOevalCtx _bindOfinalRVarMp _bindOforQuantRVarMp _bindOgUniq _bindOisGlobal _bindOknTy _bindOlamMp _bindOletBindingsCateg _bindOlev _bindOopts _bindOrvarMp _bindOwhatTo
( _bodyIappFunKind,_bodyIargL,_bodyIcTrf,_bodyIcoe,_bodyIfunCoe,_bodyIfvS,_bodyIgUniq,_bodyIgathLamMp,_bodyImbFFIApp,_bodyImbFunVar,_bodyImbLam,_bodyImbVar,_bodyIoTrf,_bodyIqualS,_bodyIrvarMp,_bodyIty,_bodyIwhatBelow) =
body_ _bodyOaltMbScrutTy _bodyOboundRelevTyVarS _bodyOdataGam _bodyOenv _bodyOevalCtx _bodyOfinalRVarMp _bodyOgUniq _bodyOisTopApp _bodyOisTopTup _bodyOknTy _bodyOlamMp _bodyOlev _bodyOopts _bodyOrvarMp _bodyOwhatAbove _bodyOwhatTo
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_Case :: T_CExpr ->
T_CAltL ->
T_CExpr ->
T_CExpr
sem_CExpr_Case expr_ alts_ dflt_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_exprOknTy :: RelevTy
_altsOknTyCase :: RelevTy
_altsOaltNrMax :: Int
_altsOaltId :: UID
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOrvarMp :: RVarMp
_lhsOqualS :: RelevQualS
_altQualSLSubs :: ([RelevQualS])
_altQualSLSolv1 :: ([(RelevQualS,RVarMp)])
_altQualSLSolv :: ([RelevQualS])
_altQualSIntersect :: RelevQualS
_altSolveLVarMp :: ([RVarMp])
_lhsOcTrf :: CExpr
_exprOgUniq :: UID
_lUniq :: UID
_lUniq2 :: UID
_lhsOfvS :: FvS
_lhsOoTrf :: CExpr
_lhsOgUniq :: UID
_lhsOwhatBelow :: WhatExpr
_exprOaltMbScrutTy :: MbRelevTy
_exprOboundRelevTyVarS :: UIDS
_exprOdataGam :: DataGam
_exprOenv :: REnv
_exprOevalCtx :: EvalCtx
_exprOfinalRVarMp :: RVarMp
_exprOisTopApp :: Bool
_exprOisTopTup :: Bool
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOopts :: EHCOpts
_exprOrvarMp :: RVarMp
_exprOwhatAbove :: WhatExpr
_exprOwhatTo :: ([WhatToRelevInfer])
_altsOaltMbScrutTy :: MbRelevTy
_altsOaltSolveLVarMp :: ([RVarMp])
_altsOboundRelevTyVarS :: UIDS
_altsOdataGam :: DataGam
_altsOenv :: REnv
_altsOevalCtx :: EvalCtx
_altsOfinalRVarMp :: RVarMp
_altsOgUniq :: UID
_altsOknTy :: RelevTy
_altsOlamMp :: LamMp
_altsOlev :: Int
_altsOopts :: EHCOpts
_altsOrvarMp :: RVarMp
_altsOwhatTo :: ([WhatToRelevInfer])
_dfltOaltMbScrutTy :: MbRelevTy
_dfltOboundRelevTyVarS :: UIDS
_dfltOdataGam :: DataGam
_dfltOenv :: REnv
_dfltOevalCtx :: EvalCtx
_dfltOfinalRVarMp :: RVarMp
_dfltOgUniq :: UID
_dfltOisTopApp :: Bool
_dfltOisTopTup :: Bool
_dfltOknTy :: RelevTy
_dfltOlamMp :: LamMp
_dfltOlev :: Int
_dfltOopts :: EHCOpts
_dfltOrvarMp :: RVarMp
_dfltOwhatAbove :: WhatExpr
_dfltOwhatTo :: ([WhatToRelevInfer])
_exprIappFunKind :: AppFunKind
_exprIargL :: ([CBound])
_exprIcTrf :: CExpr
_exprIcoe :: RelevCoe
_exprIfunCoe :: RelevCoe
_exprIfvS :: FvS
_exprIgUniq :: UID
_exprIgathLamMp :: LamMp
_exprImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_exprImbFunVar :: (Maybe HsName)
_exprImbLam :: (Maybe [HsName])
_exprImbVar :: (Maybe HsName)
_exprIoTrf :: CExpr
_exprIqualS :: RelevQualS
_exprIrvarMp :: RVarMp
_exprIty :: RelevTy
_exprIwhatBelow :: WhatExpr
_altsIaltNr :: Int
_altsIaltQualSL :: ([RelevQualS])
_altsIcTrf :: CAltL
_altsIfvS :: FvS
_altsIgUniq :: UID
_altsIoTrf :: CAltL
_altsIqualS :: RelevQualS
_altsIrvarMp :: RVarMp
_altsIty :: RelevTy
_dfltIappFunKind :: AppFunKind
_dfltIargL :: ([CBound])
_dfltIcTrf :: CExpr
_dfltIcoe :: RelevCoe
_dfltIfunCoe :: RelevCoe
_dfltIfvS :: FvS
_dfltIgUniq :: UID
_dfltIgathLamMp :: LamMp
_dfltImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_dfltImbFunVar :: (Maybe HsName)
_dfltImbLam :: (Maybe [HsName])
_dfltImbVar :: (Maybe HsName)
_dfltIoTrf :: CExpr
_dfltIqualS :: RelevQualS
_dfltIrvarMp :: RVarMp
_dfltIty :: RelevTy
_dfltIwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
_whatBelow =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
_lhsOappFunKind =
AppFunKind_NoApp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 215, column 17)
_exprOknTy =
_lhsIknTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 225, column 17)
_altsOknTyCase =
_lhsIknTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 293, column 17)
_altsOaltNrMax =
_altsIaltNr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 293, column 17)
_altsOaltId =
_lUniq
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 324, column 17)
_lhsOcoe =
RelevCoe_Id
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 356, column 17)
_lhsOfunCoe =
RelevCoe_Err "CExpr.unimpl"
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 364, column 17)
_lhsOty =
_altsIty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 383, column 17)
_lhsOrvarMp =
_altsIrvarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 425, column 17)
_lhsOqualS =
Set.unions [_exprIqualS, _altQualSIntersect]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 437, column 17)
_altQualSLSubs =
map (Set.map (_altsIrvarMp `varUpd`)) _altsIaltQualSL
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 437, column 17)
_altQualSLSolv1 =
let bnd = _lhsIboundRelevTyVarS
s q = (Set.map (m `varUpd`) q', m)
where (q',m) = assSolve bnd q
in map s _altQualSLSubs
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 437, column 17)
_altQualSLSolv =
map fst _altQualSLSolv1
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 437, column 17)
_altQualSIntersect =
foldr1 Set.intersection _altQualSLSolv
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 452, column 17)
_altQualSLSolv2 =
let s (q,m) = (Set.map (m3 `varUpd`) q', m4)
where m2 = m |+> _lhsIfinalRVarMp
(q',m3) = assSolve Set.empty (Set.map (m2 `varUpd`) q)
m4 = m3 |+> m2
in map s _altQualSLSolv1
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 452, column 17)
_altSolveLVarMp =
map snd _altQualSLSolv2
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 598, column 17)
_dbg =
dbgCase _lhsIopts _lhsIboundRelevTyVarS _altQualSLSubs _altQualSLSolv _altQualSIntersect
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 620, column 17)
_lhsOcTrf =
_cTrf
-- -- generated by the unique rule mechanism.
__tup21 =
let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq2) -> (__cont,lUniq,lUniq2)}} )
-- -- generated by the unique rule mechanism.
(_exprOgUniq,_,_) =
__tup21
-- -- generated by the unique rule mechanism.
(_,_lUniq,_) =
__tup21
-- -- generated by the unique rule mechanism.
(_,_,_lUniq2) =
__tup21
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_exprIfvS `Set.union` _altsIfvS `Set.union` _dfltIfvS
-- self rule
_cTrf =
CExpr_Case _exprIcTrf _altsIcTrf _dfltIcTrf
-- self rule
_oTrf =
CExpr_Case _exprIoTrf _altsIoTrf _dfltIoTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_dfltIgUniq
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
-- copy rule (down)
_exprOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (down)
_exprOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_exprOdataGam =
_lhsIdataGam
-- copy rule (down)
_exprOenv =
_lhsIenv
-- copy rule (down)
_exprOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_exprOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (from local)
_exprOisTopApp =
_isTopApp
-- copy rule (from local)
_exprOisTopTup =
_isTopTup
-- copy rule (down)
_exprOlamMp =
_lhsIlamMp
-- copy rule (down)
_exprOlev =
_lhsIlev
-- copy rule (down)
_exprOopts =
_lhsIopts
-- copy rule (down)
_exprOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_exprOwhatAbove =
_whatAbove
-- copy rule (down)
_exprOwhatTo =
_lhsIwhatTo
-- copy rule (down)
_altsOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (from local)
_altsOaltSolveLVarMp =
_altSolveLVarMp
-- copy rule (down)
_altsOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_altsOdataGam =
_lhsIdataGam
-- copy rule (down)
_altsOenv =
_lhsIenv
-- copy rule (down)
_altsOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_altsOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_altsOgUniq =
_exprIgUniq
-- copy rule (down)
_altsOknTy =
_lhsIknTy
-- copy rule (down)
_altsOlamMp =
_lhsIlamMp
-- copy rule (down)
_altsOlev =
_lhsIlev
-- copy rule (down)
_altsOopts =
_lhsIopts
-- copy rule (chain)
_altsOrvarMp =
_exprIrvarMp
-- copy rule (down)
_altsOwhatTo =
_lhsIwhatTo
-- copy rule (down)
_dfltOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (down)
_dfltOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_dfltOdataGam =
_lhsIdataGam
-- copy rule (down)
_dfltOenv =
_lhsIenv
-- copy rule (down)
_dfltOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_dfltOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_dfltOgUniq =
_altsIgUniq
-- copy rule (from local)
_dfltOisTopApp =
_isTopApp
-- copy rule (from local)
_dfltOisTopTup =
_isTopTup
-- copy rule (down)
_dfltOknTy =
_lhsIknTy
-- copy rule (down)
_dfltOlamMp =
_lhsIlamMp
-- copy rule (down)
_dfltOlev =
_lhsIlev
-- copy rule (down)
_dfltOopts =
_lhsIopts
-- copy rule (chain)
_dfltOrvarMp =
_altsIrvarMp
-- copy rule (from local)
_dfltOwhatAbove =
_whatAbove
-- copy rule (down)
_dfltOwhatTo =
_lhsIwhatTo
( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprIcoe,_exprIfunCoe,_exprIfvS,_exprIgUniq,_exprIgathLamMp,_exprImbFFIApp,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIoTrf,_exprIqualS,_exprIrvarMp,_exprIty,_exprIwhatBelow) =
expr_ _exprOaltMbScrutTy _exprOboundRelevTyVarS _exprOdataGam _exprOenv _exprOevalCtx _exprOfinalRVarMp _exprOgUniq _exprOisTopApp _exprOisTopTup _exprOknTy _exprOlamMp _exprOlev _exprOopts _exprOrvarMp _exprOwhatAbove _exprOwhatTo
( _altsIaltNr,_altsIaltQualSL,_altsIcTrf,_altsIfvS,_altsIgUniq,_altsIoTrf,_altsIqualS,_altsIrvarMp,_altsIty) =
alts_ _altsOaltId _altsOaltMbScrutTy _altsOaltNrMax _altsOaltSolveLVarMp _altsOboundRelevTyVarS _altsOdataGam _altsOenv _altsOevalCtx _altsOfinalRVarMp _altsOgUniq _altsOknTy _altsOknTyCase _altsOlamMp _altsOlev _altsOopts _altsOrvarMp _altsOwhatTo
( _dfltIappFunKind,_dfltIargL,_dfltIcTrf,_dfltIcoe,_dfltIfunCoe,_dfltIfvS,_dfltIgUniq,_dfltIgathLamMp,_dfltImbFFIApp,_dfltImbFunVar,_dfltImbLam,_dfltImbVar,_dfltIoTrf,_dfltIqualS,_dfltIrvarMp,_dfltIty,_dfltIwhatBelow) =
dflt_ _dfltOaltMbScrutTy _dfltOboundRelevTyVarS _dfltOdataGam _dfltOenv _dfltOevalCtx _dfltOfinalRVarMp _dfltOgUniq _dfltOisTopApp _dfltOisTopTup _dfltOknTy _dfltOlamMp _dfltOlev _dfltOopts _dfltOrvarMp _dfltOwhatAbove _dfltOwhatTo
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_CaseAltFail :: CaseAltFailReason ->
T_CExpr ->
T_CExpr
sem_CExpr_CaseAltFail failReason_ errorExpr_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_lhsOcoe :: RelevCoe
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOoTrf :: CExpr
_lhsOappFunKind :: AppFunKind
_lhsOargL :: ([CBound])
_lhsOfunCoe :: RelevCoe
_lhsOgUniq :: UID
_lhsOgathLamMp :: LamMp
_lhsOmbFunVar :: (Maybe HsName)
_lhsOmbLam :: (Maybe [HsName])
_lhsOmbVar :: (Maybe HsName)
_lhsOrvarMp :: RVarMp
_lhsOty :: RelevTy
_lhsOwhatBelow :: WhatExpr
_errorExprOaltMbScrutTy :: MbRelevTy
_errorExprOboundRelevTyVarS :: UIDS
_errorExprOdataGam :: DataGam
_errorExprOenv :: REnv
_errorExprOevalCtx :: EvalCtx
_errorExprOfinalRVarMp :: RVarMp
_errorExprOgUniq :: UID
_errorExprOisTopApp :: Bool
_errorExprOisTopTup :: Bool
_errorExprOknTy :: RelevTy
_errorExprOlamMp :: LamMp
_errorExprOlev :: Int
_errorExprOopts :: EHCOpts
_errorExprOrvarMp :: RVarMp
_errorExprOwhatAbove :: WhatExpr
_errorExprOwhatTo :: ([WhatToRelevInfer])
_errorExprIappFunKind :: AppFunKind
_errorExprIargL :: ([CBound])
_errorExprIcTrf :: CExpr
_errorExprIcoe :: RelevCoe
_errorExprIfunCoe :: RelevCoe
_errorExprIfvS :: FvS
_errorExprIgUniq :: UID
_errorExprIgathLamMp :: LamMp
_errorExprImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_errorExprImbFunVar :: (Maybe HsName)
_errorExprImbLam :: (Maybe [HsName])
_errorExprImbVar :: (Maybe HsName)
_errorExprIoTrf :: CExpr
_errorExprIqualS :: RelevQualS
_errorExprIrvarMp :: RVarMp
_errorExprIty :: RelevTy
_errorExprIwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 324, column 17)
_lhsOcoe =
RelevCoe_Id
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_errorExprIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_errorExprIqualS
-- self rule
_cTrf =
CExpr_CaseAltFail failReason_ _errorExprIcTrf
-- self rule
_oTrf =
CExpr_CaseAltFail failReason_ _errorExprIoTrf
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOappFunKind =
_errorExprIappFunKind
-- copy rule (up)
_lhsOargL =
_errorExprIargL
-- copy rule (up)
_lhsOfunCoe =
_errorExprIfunCoe
-- copy rule (up)
_lhsOgUniq =
_errorExprIgUniq
-- copy rule (up)
_lhsOgathLamMp =
_errorExprIgathLamMp
-- copy rule (up)
_lhsOmbFunVar =
_errorExprImbFunVar
-- copy rule (up)
_lhsOmbLam =
_errorExprImbLam
-- copy rule (up)
_lhsOmbVar =
_errorExprImbVar
-- copy rule (up)
_lhsOrvarMp =
_errorExprIrvarMp
-- copy rule (up)
_lhsOty =
_errorExprIty
-- copy rule (up)
_lhsOwhatBelow =
_errorExprIwhatBelow
-- copy rule (down)
_errorExprOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (down)
_errorExprOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_errorExprOdataGam =
_lhsIdataGam
-- copy rule (down)
_errorExprOenv =
_lhsIenv
-- copy rule (down)
_errorExprOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_errorExprOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_errorExprOgUniq =
_lhsIgUniq
-- copy rule (from local)
_errorExprOisTopApp =
_isTopApp
-- copy rule (from local)
_errorExprOisTopTup =
_isTopTup
-- copy rule (down)
_errorExprOknTy =
_lhsIknTy
-- copy rule (down)
_errorExprOlamMp =
_lhsIlamMp
-- copy rule (down)
_errorExprOlev =
_lhsIlev
-- copy rule (down)
_errorExprOopts =
_lhsIopts
-- copy rule (down)
_errorExprOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_errorExprOwhatAbove =
_whatAbove
-- copy rule (down)
_errorExprOwhatTo =
_lhsIwhatTo
( _errorExprIappFunKind,_errorExprIargL,_errorExprIcTrf,_errorExprIcoe,_errorExprIfunCoe,_errorExprIfvS,_errorExprIgUniq,_errorExprIgathLamMp,_errorExprImbFFIApp,_errorExprImbFunVar,_errorExprImbLam,_errorExprImbVar,_errorExprIoTrf,_errorExprIqualS,_errorExprIrvarMp,_errorExprIty,_errorExprIwhatBelow) =
errorExpr_ _errorExprOaltMbScrutTy _errorExprOboundRelevTyVarS _errorExprOdataGam _errorExprOenv _errorExprOevalCtx _errorExprOfinalRVarMp _errorExprOgUniq _errorExprOisTopApp _errorExprOisTopTup _errorExprOknTy _errorExprOlamMp _errorExprOlev _errorExprOopts _errorExprOrvarMp _errorExprOwhatAbove _errorExprOwhatTo
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_TupDel :: T_CExpr ->
CTag ->
HsName ->
T_CExpr ->
T_CExpr
sem_CExpr_TupDel expr_ tag_ nm_ offset_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_exprOisTopTup :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOoTrf :: CExpr
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_lhsOwhatBelow :: WhatExpr
_exprOaltMbScrutTy :: MbRelevTy
_exprOboundRelevTyVarS :: UIDS
_exprOdataGam :: DataGam
_exprOenv :: REnv
_exprOevalCtx :: EvalCtx
_exprOfinalRVarMp :: RVarMp
_exprOgUniq :: UID
_exprOisTopApp :: Bool
_exprOknTy :: RelevTy
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOopts :: EHCOpts
_exprOrvarMp :: RVarMp
_exprOwhatAbove :: WhatExpr
_exprOwhatTo :: ([WhatToRelevInfer])
_offsetOaltMbScrutTy :: MbRelevTy
_offsetOboundRelevTyVarS :: UIDS
_offsetOdataGam :: DataGam
_offsetOenv :: REnv
_offsetOevalCtx :: EvalCtx
_offsetOfinalRVarMp :: RVarMp
_offsetOgUniq :: UID
_offsetOisTopApp :: Bool
_offsetOisTopTup :: Bool
_offsetOknTy :: RelevTy
_offsetOlamMp :: LamMp
_offsetOlev :: Int
_offsetOopts :: EHCOpts
_offsetOrvarMp :: RVarMp
_offsetOwhatAbove :: WhatExpr
_offsetOwhatTo :: ([WhatToRelevInfer])
_exprIappFunKind :: AppFunKind
_exprIargL :: ([CBound])
_exprIcTrf :: CExpr
_exprIcoe :: RelevCoe
_exprIfunCoe :: RelevCoe
_exprIfvS :: FvS
_exprIgUniq :: UID
_exprIgathLamMp :: LamMp
_exprImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_exprImbFunVar :: (Maybe HsName)
_exprImbLam :: (Maybe [HsName])
_exprImbVar :: (Maybe HsName)
_exprIoTrf :: CExpr
_exprIqualS :: RelevQualS
_exprIrvarMp :: RVarMp
_exprIty :: RelevTy
_exprIwhatBelow :: WhatExpr
_offsetIappFunKind :: AppFunKind
_offsetIargL :: ([CBound])
_offsetIcTrf :: CExpr
_offsetIcoe :: RelevCoe
_offsetIfunCoe :: RelevCoe
_offsetIfvS :: FvS
_offsetIgUniq :: UID
_offsetIgathLamMp :: LamMp
_offsetImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_offsetImbFunVar :: (Maybe HsName)
_offsetImbLam :: (Maybe [HsName])
_offsetImbVar :: (Maybe HsName)
_offsetIoTrf :: CExpr
_offsetIqualS :: RelevQualS
_offsetIrvarMp :: RVarMp
_offsetIty :: RelevTy
_offsetIwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 18, column 17)
_exprOisTopTup =
False
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 19, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
_whatBelow =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
_lhsOappFunKind =
AppFunKind_NoApp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 324, column 17)
_lhsOcoe =
RelevCoe_Id
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 356, column 17)
_lhsOfunCoe =
RelevCoe_Err "CExpr.unimpl"
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 366, column 17)
_lhsOty =
RelevTy_Err "unimpl"
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_exprIfvS `Set.union` _offsetIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_exprIqualS `Set.union` _offsetIqualS
-- self rule
_cTrf =
CExpr_TupDel _exprIcTrf tag_ nm_ _offsetIcTrf
-- self rule
_oTrf =
CExpr_TupDel _exprIoTrf tag_ nm_ _offsetIoTrf
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_offsetIgUniq
-- copy rule (up)
_lhsOrvarMp =
_offsetIrvarMp
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
-- copy rule (down)
_exprOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (down)
_exprOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_exprOdataGam =
_lhsIdataGam
-- copy rule (down)
_exprOenv =
_lhsIenv
-- copy rule (down)
_exprOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_exprOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_exprOgUniq =
_lhsIgUniq
-- copy rule (from local)
_exprOisTopApp =
_isTopApp
-- copy rule (down)
_exprOknTy =
_lhsIknTy
-- copy rule (down)
_exprOlamMp =
_lhsIlamMp
-- copy rule (down)
_exprOlev =
_lhsIlev
-- copy rule (down)
_exprOopts =
_lhsIopts
-- copy rule (down)
_exprOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_exprOwhatAbove =
_whatAbove
-- copy rule (down)
_exprOwhatTo =
_lhsIwhatTo
-- copy rule (down)
_offsetOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (down)
_offsetOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_offsetOdataGam =
_lhsIdataGam
-- copy rule (down)
_offsetOenv =
_lhsIenv
-- copy rule (down)
_offsetOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_offsetOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_offsetOgUniq =
_exprIgUniq
-- copy rule (from local)
_offsetOisTopApp =
_isTopApp
-- copy rule (from local)
_offsetOisTopTup =
_isTopTup
-- copy rule (down)
_offsetOknTy =
_lhsIknTy
-- copy rule (down)
_offsetOlamMp =
_lhsIlamMp
-- copy rule (down)
_offsetOlev =
_lhsIlev
-- copy rule (down)
_offsetOopts =
_lhsIopts
-- copy rule (chain)
_offsetOrvarMp =
_exprIrvarMp
-- copy rule (from local)
_offsetOwhatAbove =
_whatAbove
-- copy rule (down)
_offsetOwhatTo =
_lhsIwhatTo
( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprIcoe,_exprIfunCoe,_exprIfvS,_exprIgUniq,_exprIgathLamMp,_exprImbFFIApp,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIoTrf,_exprIqualS,_exprIrvarMp,_exprIty,_exprIwhatBelow) =
expr_ _exprOaltMbScrutTy _exprOboundRelevTyVarS _exprOdataGam _exprOenv _exprOevalCtx _exprOfinalRVarMp _exprOgUniq _exprOisTopApp _exprOisTopTup _exprOknTy _exprOlamMp _exprOlev _exprOopts _exprOrvarMp _exprOwhatAbove _exprOwhatTo
( _offsetIappFunKind,_offsetIargL,_offsetIcTrf,_offsetIcoe,_offsetIfunCoe,_offsetIfvS,_offsetIgUniq,_offsetIgathLamMp,_offsetImbFFIApp,_offsetImbFunVar,_offsetImbLam,_offsetImbVar,_offsetIoTrf,_offsetIqualS,_offsetIrvarMp,_offsetIty,_offsetIwhatBelow) =
offset_ _offsetOaltMbScrutTy _offsetOboundRelevTyVarS _offsetOdataGam _offsetOenv _offsetOevalCtx _offsetOfinalRVarMp _offsetOgUniq _offsetOisTopApp _offsetOisTopTup _offsetOknTy _offsetOlamMp _offsetOlev _offsetOopts _offsetOrvarMp _offsetOwhatAbove _offsetOwhatTo
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_TupIns :: T_CExpr ->
CTag ->
HsName ->
T_CExpr ->
T_CExpr ->
T_CExpr
sem_CExpr_TupIns expr_ tag_ nm_ offset_ fldExpr_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_exprOisTopTup :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOoTrf :: CExpr
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_lhsOwhatBelow :: WhatExpr
_exprOaltMbScrutTy :: MbRelevTy
_exprOboundRelevTyVarS :: UIDS
_exprOdataGam :: DataGam
_exprOenv :: REnv
_exprOevalCtx :: EvalCtx
_exprOfinalRVarMp :: RVarMp
_exprOgUniq :: UID
_exprOisTopApp :: Bool
_exprOknTy :: RelevTy
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOopts :: EHCOpts
_exprOrvarMp :: RVarMp
_exprOwhatAbove :: WhatExpr
_exprOwhatTo :: ([WhatToRelevInfer])
_offsetOaltMbScrutTy :: MbRelevTy
_offsetOboundRelevTyVarS :: UIDS
_offsetOdataGam :: DataGam
_offsetOenv :: REnv
_offsetOevalCtx :: EvalCtx
_offsetOfinalRVarMp :: RVarMp
_offsetOgUniq :: UID
_offsetOisTopApp :: Bool
_offsetOisTopTup :: Bool
_offsetOknTy :: RelevTy
_offsetOlamMp :: LamMp
_offsetOlev :: Int
_offsetOopts :: EHCOpts
_offsetOrvarMp :: RVarMp
_offsetOwhatAbove :: WhatExpr
_offsetOwhatTo :: ([WhatToRelevInfer])
_fldExprOaltMbScrutTy :: MbRelevTy
_fldExprOboundRelevTyVarS :: UIDS
_fldExprOdataGam :: DataGam
_fldExprOenv :: REnv
_fldExprOevalCtx :: EvalCtx
_fldExprOfinalRVarMp :: RVarMp
_fldExprOgUniq :: UID
_fldExprOisTopApp :: Bool
_fldExprOisTopTup :: Bool
_fldExprOknTy :: RelevTy
_fldExprOlamMp :: LamMp
_fldExprOlev :: Int
_fldExprOopts :: EHCOpts
_fldExprOrvarMp :: RVarMp
_fldExprOwhatAbove :: WhatExpr
_fldExprOwhatTo :: ([WhatToRelevInfer])
_exprIappFunKind :: AppFunKind
_exprIargL :: ([CBound])
_exprIcTrf :: CExpr
_exprIcoe :: RelevCoe
_exprIfunCoe :: RelevCoe
_exprIfvS :: FvS
_exprIgUniq :: UID
_exprIgathLamMp :: LamMp
_exprImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_exprImbFunVar :: (Maybe HsName)
_exprImbLam :: (Maybe [HsName])
_exprImbVar :: (Maybe HsName)
_exprIoTrf :: CExpr
_exprIqualS :: RelevQualS
_exprIrvarMp :: RVarMp
_exprIty :: RelevTy
_exprIwhatBelow :: WhatExpr
_offsetIappFunKind :: AppFunKind
_offsetIargL :: ([CBound])
_offsetIcTrf :: CExpr
_offsetIcoe :: RelevCoe
_offsetIfunCoe :: RelevCoe
_offsetIfvS :: FvS
_offsetIgUniq :: UID
_offsetIgathLamMp :: LamMp
_offsetImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_offsetImbFunVar :: (Maybe HsName)
_offsetImbLam :: (Maybe [HsName])
_offsetImbVar :: (Maybe HsName)
_offsetIoTrf :: CExpr
_offsetIqualS :: RelevQualS
_offsetIrvarMp :: RVarMp
_offsetIty :: RelevTy
_offsetIwhatBelow :: WhatExpr
_fldExprIappFunKind :: AppFunKind
_fldExprIargL :: ([CBound])
_fldExprIcTrf :: CExpr
_fldExprIcoe :: RelevCoe
_fldExprIfunCoe :: RelevCoe
_fldExprIfvS :: FvS
_fldExprIgUniq :: UID
_fldExprIgathLamMp :: LamMp
_fldExprImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_fldExprImbFunVar :: (Maybe HsName)
_fldExprImbLam :: (Maybe [HsName])
_fldExprImbVar :: (Maybe HsName)
_fldExprIoTrf :: CExpr
_fldExprIqualS :: RelevQualS
_fldExprIrvarMp :: RVarMp
_fldExprIty :: RelevTy
_fldExprIwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 18, column 17)
_exprOisTopTup =
False
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 19, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
_whatBelow =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
_lhsOappFunKind =
AppFunKind_NoApp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 324, column 17)
_lhsOcoe =
RelevCoe_Id
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 356, column 17)
_lhsOfunCoe =
RelevCoe_Err "CExpr.unimpl"
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 366, column 17)
_lhsOty =
RelevTy_Err "unimpl"
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_exprIqualS `Set.union` _offsetIqualS `Set.union` _fldExprIqualS
-- self rule
_cTrf =
CExpr_TupIns _exprIcTrf tag_ nm_ _offsetIcTrf _fldExprIcTrf
-- self rule
_oTrf =
CExpr_TupIns _exprIoTrf tag_ nm_ _offsetIoTrf _fldExprIoTrf
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_fldExprIgUniq
-- copy rule (up)
_lhsOrvarMp =
_fldExprIrvarMp
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
-- copy rule (down)
_exprOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (down)
_exprOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_exprOdataGam =
_lhsIdataGam
-- copy rule (down)
_exprOenv =
_lhsIenv
-- copy rule (down)
_exprOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_exprOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_exprOgUniq =
_lhsIgUniq
-- copy rule (from local)
_exprOisTopApp =
_isTopApp
-- copy rule (down)
_exprOknTy =
_lhsIknTy
-- copy rule (down)
_exprOlamMp =
_lhsIlamMp
-- copy rule (down)
_exprOlev =
_lhsIlev
-- copy rule (down)
_exprOopts =
_lhsIopts
-- copy rule (down)
_exprOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_exprOwhatAbove =
_whatAbove
-- copy rule (down)
_exprOwhatTo =
_lhsIwhatTo
-- copy rule (down)
_offsetOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (down)
_offsetOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_offsetOdataGam =
_lhsIdataGam
-- copy rule (down)
_offsetOenv =
_lhsIenv
-- copy rule (down)
_offsetOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_offsetOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_offsetOgUniq =
_exprIgUniq
-- copy rule (from local)
_offsetOisTopApp =
_isTopApp
-- copy rule (from local)
_offsetOisTopTup =
_isTopTup
-- copy rule (down)
_offsetOknTy =
_lhsIknTy
-- copy rule (down)
_offsetOlamMp =
_lhsIlamMp
-- copy rule (down)
_offsetOlev =
_lhsIlev
-- copy rule (down)
_offsetOopts =
_lhsIopts
-- copy rule (chain)
_offsetOrvarMp =
_exprIrvarMp
-- copy rule (from local)
_offsetOwhatAbove =
_whatAbove
-- copy rule (down)
_offsetOwhatTo =
_lhsIwhatTo
-- copy rule (down)
_fldExprOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (down)
_fldExprOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_fldExprOdataGam =
_lhsIdataGam
-- copy rule (down)
_fldExprOenv =
_lhsIenv
-- copy rule (down)
_fldExprOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_fldExprOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_fldExprOgUniq =
_offsetIgUniq
-- copy rule (from local)
_fldExprOisTopApp =
_isTopApp
-- copy rule (from local)
_fldExprOisTopTup =
_isTopTup
-- copy rule (down)
_fldExprOknTy =
_lhsIknTy
-- copy rule (down)
_fldExprOlamMp =
_lhsIlamMp
-- copy rule (down)
_fldExprOlev =
_lhsIlev
-- copy rule (down)
_fldExprOopts =
_lhsIopts
-- copy rule (chain)
_fldExprOrvarMp =
_offsetIrvarMp
-- copy rule (from local)
_fldExprOwhatAbove =
_whatAbove
-- copy rule (down)
_fldExprOwhatTo =
_lhsIwhatTo
( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprIcoe,_exprIfunCoe,_exprIfvS,_exprIgUniq,_exprIgathLamMp,_exprImbFFIApp,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIoTrf,_exprIqualS,_exprIrvarMp,_exprIty,_exprIwhatBelow) =
expr_ _exprOaltMbScrutTy _exprOboundRelevTyVarS _exprOdataGam _exprOenv _exprOevalCtx _exprOfinalRVarMp _exprOgUniq _exprOisTopApp _exprOisTopTup _exprOknTy _exprOlamMp _exprOlev _exprOopts _exprOrvarMp _exprOwhatAbove _exprOwhatTo
( _offsetIappFunKind,_offsetIargL,_offsetIcTrf,_offsetIcoe,_offsetIfunCoe,_offsetIfvS,_offsetIgUniq,_offsetIgathLamMp,_offsetImbFFIApp,_offsetImbFunVar,_offsetImbLam,_offsetImbVar,_offsetIoTrf,_offsetIqualS,_offsetIrvarMp,_offsetIty,_offsetIwhatBelow) =
offset_ _offsetOaltMbScrutTy _offsetOboundRelevTyVarS _offsetOdataGam _offsetOenv _offsetOevalCtx _offsetOfinalRVarMp _offsetOgUniq _offsetOisTopApp _offsetOisTopTup _offsetOknTy _offsetOlamMp _offsetOlev _offsetOopts _offsetOrvarMp _offsetOwhatAbove _offsetOwhatTo
( _fldExprIappFunKind,_fldExprIargL,_fldExprIcTrf,_fldExprIcoe,_fldExprIfunCoe,_fldExprIfvS,_fldExprIgUniq,_fldExprIgathLamMp,_fldExprImbFFIApp,_fldExprImbFunVar,_fldExprImbLam,_fldExprImbVar,_fldExprIoTrf,_fldExprIqualS,_fldExprIrvarMp,_fldExprIty,_fldExprIwhatBelow) =
fldExpr_ _fldExprOaltMbScrutTy _fldExprOboundRelevTyVarS _fldExprOdataGam _fldExprOenv _fldExprOevalCtx _fldExprOfinalRVarMp _fldExprOgUniq _fldExprOisTopApp _fldExprOisTopTup _fldExprOknTy _fldExprOlamMp _fldExprOlev _fldExprOopts _fldExprOrvarMp _fldExprOwhatAbove _fldExprOwhatTo
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_TupUpd :: T_CExpr ->
CTag ->
HsName ->
T_CExpr ->
T_CExpr ->
T_CExpr
sem_CExpr_TupUpd expr_ tag_ nm_ offset_ fldExpr_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_exprOisTopTup :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOoTrf :: CExpr
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_lhsOwhatBelow :: WhatExpr
_exprOaltMbScrutTy :: MbRelevTy
_exprOboundRelevTyVarS :: UIDS
_exprOdataGam :: DataGam
_exprOenv :: REnv
_exprOevalCtx :: EvalCtx
_exprOfinalRVarMp :: RVarMp
_exprOgUniq :: UID
_exprOisTopApp :: Bool
_exprOknTy :: RelevTy
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOopts :: EHCOpts
_exprOrvarMp :: RVarMp
_exprOwhatAbove :: WhatExpr
_exprOwhatTo :: ([WhatToRelevInfer])
_offsetOaltMbScrutTy :: MbRelevTy
_offsetOboundRelevTyVarS :: UIDS
_offsetOdataGam :: DataGam
_offsetOenv :: REnv
_offsetOevalCtx :: EvalCtx
_offsetOfinalRVarMp :: RVarMp
_offsetOgUniq :: UID
_offsetOisTopApp :: Bool
_offsetOisTopTup :: Bool
_offsetOknTy :: RelevTy
_offsetOlamMp :: LamMp
_offsetOlev :: Int
_offsetOopts :: EHCOpts
_offsetOrvarMp :: RVarMp
_offsetOwhatAbove :: WhatExpr
_offsetOwhatTo :: ([WhatToRelevInfer])
_fldExprOaltMbScrutTy :: MbRelevTy
_fldExprOboundRelevTyVarS :: UIDS
_fldExprOdataGam :: DataGam
_fldExprOenv :: REnv
_fldExprOevalCtx :: EvalCtx
_fldExprOfinalRVarMp :: RVarMp
_fldExprOgUniq :: UID
_fldExprOisTopApp :: Bool
_fldExprOisTopTup :: Bool
_fldExprOknTy :: RelevTy
_fldExprOlamMp :: LamMp
_fldExprOlev :: Int
_fldExprOopts :: EHCOpts
_fldExprOrvarMp :: RVarMp
_fldExprOwhatAbove :: WhatExpr
_fldExprOwhatTo :: ([WhatToRelevInfer])
_exprIappFunKind :: AppFunKind
_exprIargL :: ([CBound])
_exprIcTrf :: CExpr
_exprIcoe :: RelevCoe
_exprIfunCoe :: RelevCoe
_exprIfvS :: FvS
_exprIgUniq :: UID
_exprIgathLamMp :: LamMp
_exprImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_exprImbFunVar :: (Maybe HsName)
_exprImbLam :: (Maybe [HsName])
_exprImbVar :: (Maybe HsName)
_exprIoTrf :: CExpr
_exprIqualS :: RelevQualS
_exprIrvarMp :: RVarMp
_exprIty :: RelevTy
_exprIwhatBelow :: WhatExpr
_offsetIappFunKind :: AppFunKind
_offsetIargL :: ([CBound])
_offsetIcTrf :: CExpr
_offsetIcoe :: RelevCoe
_offsetIfunCoe :: RelevCoe
_offsetIfvS :: FvS
_offsetIgUniq :: UID
_offsetIgathLamMp :: LamMp
_offsetImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_offsetImbFunVar :: (Maybe HsName)
_offsetImbLam :: (Maybe [HsName])
_offsetImbVar :: (Maybe HsName)
_offsetIoTrf :: CExpr
_offsetIqualS :: RelevQualS
_offsetIrvarMp :: RVarMp
_offsetIty :: RelevTy
_offsetIwhatBelow :: WhatExpr
_fldExprIappFunKind :: AppFunKind
_fldExprIargL :: ([CBound])
_fldExprIcTrf :: CExpr
_fldExprIcoe :: RelevCoe
_fldExprIfunCoe :: RelevCoe
_fldExprIfvS :: FvS
_fldExprIgUniq :: UID
_fldExprIgathLamMp :: LamMp
_fldExprImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_fldExprImbFunVar :: (Maybe HsName)
_fldExprImbLam :: (Maybe [HsName])
_fldExprImbVar :: (Maybe HsName)
_fldExprIoTrf :: CExpr
_fldExprIqualS :: RelevQualS
_fldExprIrvarMp :: RVarMp
_fldExprIty :: RelevTy
_fldExprIwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 18, column 17)
_exprOisTopTup =
False
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 19, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
_whatBelow =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
_lhsOappFunKind =
AppFunKind_NoApp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 324, column 17)
_lhsOcoe =
RelevCoe_Id
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 356, column 17)
_lhsOfunCoe =
RelevCoe_Err "CExpr.unimpl"
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 366, column 17)
_lhsOty =
RelevTy_Err "unimpl"
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_exprIfvS `Set.union` _offsetIfvS `Set.union` _fldExprIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_exprIqualS `Set.union` _offsetIqualS `Set.union` _fldExprIqualS
-- self rule
_cTrf =
CExpr_TupUpd _exprIcTrf tag_ nm_ _offsetIcTrf _fldExprIcTrf
-- self rule
_oTrf =
CExpr_TupUpd _exprIoTrf tag_ nm_ _offsetIoTrf _fldExprIoTrf
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_fldExprIgUniq
-- copy rule (up)
_lhsOrvarMp =
_fldExprIrvarMp
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
-- copy rule (down)
_exprOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (down)
_exprOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_exprOdataGam =
_lhsIdataGam
-- copy rule (down)
_exprOenv =
_lhsIenv
-- copy rule (down)
_exprOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_exprOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_exprOgUniq =
_lhsIgUniq
-- copy rule (from local)
_exprOisTopApp =
_isTopApp
-- copy rule (down)
_exprOknTy =
_lhsIknTy
-- copy rule (down)
_exprOlamMp =
_lhsIlamMp
-- copy rule (down)
_exprOlev =
_lhsIlev
-- copy rule (down)
_exprOopts =
_lhsIopts
-- copy rule (down)
_exprOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_exprOwhatAbove =
_whatAbove
-- copy rule (down)
_exprOwhatTo =
_lhsIwhatTo
-- copy rule (down)
_offsetOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (down)
_offsetOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_offsetOdataGam =
_lhsIdataGam
-- copy rule (down)
_offsetOenv =
_lhsIenv
-- copy rule (down)
_offsetOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_offsetOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_offsetOgUniq =
_exprIgUniq
-- copy rule (from local)
_offsetOisTopApp =
_isTopApp
-- copy rule (from local)
_offsetOisTopTup =
_isTopTup
-- copy rule (down)
_offsetOknTy =
_lhsIknTy
-- copy rule (down)
_offsetOlamMp =
_lhsIlamMp
-- copy rule (down)
_offsetOlev =
_lhsIlev
-- copy rule (down)
_offsetOopts =
_lhsIopts
-- copy rule (chain)
_offsetOrvarMp =
_exprIrvarMp
-- copy rule (from local)
_offsetOwhatAbove =
_whatAbove
-- copy rule (down)
_offsetOwhatTo =
_lhsIwhatTo
-- copy rule (down)
_fldExprOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (down)
_fldExprOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_fldExprOdataGam =
_lhsIdataGam
-- copy rule (down)
_fldExprOenv =
_lhsIenv
-- copy rule (down)
_fldExprOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_fldExprOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_fldExprOgUniq =
_offsetIgUniq
-- copy rule (from local)
_fldExprOisTopApp =
_isTopApp
-- copy rule (from local)
_fldExprOisTopTup =
_isTopTup
-- copy rule (down)
_fldExprOknTy =
_lhsIknTy
-- copy rule (down)
_fldExprOlamMp =
_lhsIlamMp
-- copy rule (down)
_fldExprOlev =
_lhsIlev
-- copy rule (down)
_fldExprOopts =
_lhsIopts
-- copy rule (chain)
_fldExprOrvarMp =
_offsetIrvarMp
-- copy rule (from local)
_fldExprOwhatAbove =
_whatAbove
-- copy rule (down)
_fldExprOwhatTo =
_lhsIwhatTo
( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprIcoe,_exprIfunCoe,_exprIfvS,_exprIgUniq,_exprIgathLamMp,_exprImbFFIApp,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIoTrf,_exprIqualS,_exprIrvarMp,_exprIty,_exprIwhatBelow) =
expr_ _exprOaltMbScrutTy _exprOboundRelevTyVarS _exprOdataGam _exprOenv _exprOevalCtx _exprOfinalRVarMp _exprOgUniq _exprOisTopApp _exprOisTopTup _exprOknTy _exprOlamMp _exprOlev _exprOopts _exprOrvarMp _exprOwhatAbove _exprOwhatTo
( _offsetIappFunKind,_offsetIargL,_offsetIcTrf,_offsetIcoe,_offsetIfunCoe,_offsetIfvS,_offsetIgUniq,_offsetIgathLamMp,_offsetImbFFIApp,_offsetImbFunVar,_offsetImbLam,_offsetImbVar,_offsetIoTrf,_offsetIqualS,_offsetIrvarMp,_offsetIty,_offsetIwhatBelow) =
offset_ _offsetOaltMbScrutTy _offsetOboundRelevTyVarS _offsetOdataGam _offsetOenv _offsetOevalCtx _offsetOfinalRVarMp _offsetOgUniq _offsetOisTopApp _offsetOisTopTup _offsetOknTy _offsetOlamMp _offsetOlev _offsetOopts _offsetOrvarMp _offsetOwhatAbove _offsetOwhatTo
( _fldExprIappFunKind,_fldExprIargL,_fldExprIcTrf,_fldExprIcoe,_fldExprIfunCoe,_fldExprIfvS,_fldExprIgUniq,_fldExprIgathLamMp,_fldExprImbFFIApp,_fldExprImbFunVar,_fldExprImbLam,_fldExprImbVar,_fldExprIoTrf,_fldExprIqualS,_fldExprIrvarMp,_fldExprIty,_fldExprIwhatBelow) =
fldExpr_ _fldExprOaltMbScrutTy _fldExprOboundRelevTyVarS _fldExprOdataGam _fldExprOenv _fldExprOevalCtx _fldExprOfinalRVarMp _fldExprOgUniq _fldExprOisTopApp _fldExprOisTopTup _fldExprOknTy _fldExprOlamMp _fldExprOlev _fldExprOopts _fldExprOrvarMp _fldExprOwhatAbove _fldExprOwhatTo
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_FFI :: FFIWay ->
String ->
ForeignEnt ->
Ty ->
T_CExpr
sem_CExpr_FFI callconv_ safety_ impEnt_ ty_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_argTyLresTy :: (( TyL, Ty ))
_argTyL :: TyL
_mbPrimNeedEval :: (Maybe PrimitiveNeedsEval)
_primResNeedsEval :: Bool
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_ffiTy :: RelevTy
_amso :: (AMSOut RelevTy)
_ams :: AnaMatchState
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOrvarMp :: RVarMp
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOgUniq :: UID
_lUniq :: UID
_lUniq2 :: UID
_lhsOfvS :: FvS
_lhsOoTrf :: CExpr
_lhsOwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 56, column 25)
_whatBelow =
ExprIsFFI
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 12, column 17)
_lhsOappFunKind =
AppFunKind_FFI
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 2, column 17)
_argTyLresTy =
appUnArr ty_
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 2, column 17)
_argTyL =
fst _argTyLresTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 2, column 17)
_resTy =
snd _argTyLresTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 2, column 17)
_foreignEntInfo =
foreignEntExtract impEnt_
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 6, column 17)
_mbPrimNeedEval =
maybe Nothing lookupPrimNeedsEval $ forextractMbEnt _foreignEntInfo
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 6, column 17)
_primArgNeedsEvalL =
maybe (repeat True) (\p -> primArgNeedEval p ++ repeat True) _mbPrimNeedEval
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 6, column 17)
_primResNeedsEval =
maybe False primResNeedEval _mbPrimNeedEval
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 11, column 17)
_argMbConL =
map tyAppFunMbConNm _argTyL
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 11, column 17)
_resMbCon =
tyAppFunMbConNm _resTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 35, column 17)
_lhsOmbFFIApp =
Just ( _resTy
, _primResNeedsEval
, callconv_
, impEnt_
, _argTyL
)
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 263, column 33)
__tup22 =
let (r@(RelevTy_Ana re) ,qr) = (fresh _lUniq, [])
(as,qa) = relevTyArgs (const fresh) (\(RelevTy_Ana x) (RelevTy_Ana y) -> [RelevQual_SubEval x y]) _lUniq2 (take (length _argTyL) _primArgNeedsEvalL) r
in (RelevTy_Fun RQuant_None [] [] as r, Set.fromList $ qr ++ qa)
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 263, column 33)
(_ffiTy,_) =
__tup22
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 263, column 33)
(_,_ffiQualS) =
__tup22
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 266, column 33)
__tup23 =
amsLE _lhsIrvarMp _ffiTy _lhsIknTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 266, column 33)
(_amso,_) =
__tup23
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 266, column 33)
(_,_ams) =
__tup23
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 319, column 17)
_lhsOcoe =
_lhsIfinalRVarMp `varUpd` amsoCoe _amso
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 350, column 17)
_lhsOfunCoe =
last $ relevCoeToComposeList $ amsoCoe _amso
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 362, column 17)
_lhsOty =
amsoHi _amso
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 382, column 17)
_lhsOrvarMp =
amsLocalVarMp _ams |+> _lhsIrvarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 422, column 17)
_lhsOqualS =
Set.union _ffiQualS (amsGathQual _ams)
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 597, column 17)
_dbg =
dbg _lhsIopts _ffiTy _lhsIknTy _amso _ams
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 613, column 17)
_lhsOcTrf =
_cTrf
-- -- generated by the unique rule mechanism.
__tup24 =
let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq2) -> (__cont,lUniq,lUniq2)}} )
-- -- generated by the unique rule mechanism.
(_lhsOgUniq,_,_) =
__tup24
-- -- generated by the unique rule mechanism.
(_,_lUniq,_) =
__tup24
-- -- generated by the unique rule mechanism.
(_,_,_lUniq2) =
__tup24
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- self rule
_cTrf =
CExpr_FFI callconv_ safety_ impEnt_ ty_
-- self rule
_oTrf =
CExpr_FFI callconv_ safety_ impEnt_ ty_
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_Dbg :: String ->
T_CExpr
sem_CExpr_Dbg info_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOoTrf :: CExpr
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_lhsOwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
_whatBelow =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
_lhsOappFunKind =
AppFunKind_NoApp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 324, column 17)
_lhsOcoe =
RelevCoe_Id
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 356, column 17)
_lhsOfunCoe =
RelevCoe_Err "CExpr.unimpl"
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 366, column 17)
_lhsOty =
RelevTy_Err "unimpl"
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CExpr_Dbg info_
-- self rule
_oTrf =
CExpr_Dbg info_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_Hole :: UID ->
T_CExpr
sem_CExpr_Hole uid_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOoTrf :: CExpr
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_lhsOwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
_whatBelow =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
_lhsOappFunKind =
AppFunKind_NoApp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 324, column 17)
_lhsOcoe =
RelevCoe_Id
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 356, column 17)
_lhsOfunCoe =
RelevCoe_Err "CExpr.unimpl"
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 366, column 17)
_lhsOty =
RelevTy_Err "unimpl"
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CExpr_Hole uid_
-- self rule
_oTrf =
CExpr_Hole uid_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_HoleLet :: UID ->
T_CExpr ->
T_CExpr
sem_CExpr_HoleLet bindsUid_ body_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOoTrf :: CExpr
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_lhsOwhatBelow :: WhatExpr
_bodyOaltMbScrutTy :: MbRelevTy
_bodyOboundRelevTyVarS :: UIDS
_bodyOdataGam :: DataGam
_bodyOenv :: REnv
_bodyOevalCtx :: EvalCtx
_bodyOfinalRVarMp :: RVarMp
_bodyOgUniq :: UID
_bodyOisTopApp :: Bool
_bodyOisTopTup :: Bool
_bodyOknTy :: RelevTy
_bodyOlamMp :: LamMp
_bodyOlev :: Int
_bodyOopts :: EHCOpts
_bodyOrvarMp :: RVarMp
_bodyOwhatAbove :: WhatExpr
_bodyOwhatTo :: ([WhatToRelevInfer])
_bodyIappFunKind :: AppFunKind
_bodyIargL :: ([CBound])
_bodyIcTrf :: CExpr
_bodyIcoe :: RelevCoe
_bodyIfunCoe :: RelevCoe
_bodyIfvS :: FvS
_bodyIgUniq :: UID
_bodyIgathLamMp :: LamMp
_bodyImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_bodyImbFunVar :: (Maybe HsName)
_bodyImbLam :: (Maybe [HsName])
_bodyImbVar :: (Maybe HsName)
_bodyIoTrf :: CExpr
_bodyIqualS :: RelevQualS
_bodyIrvarMp :: RVarMp
_bodyIty :: RelevTy
_bodyIwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
_whatBelow =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
_lhsOappFunKind =
AppFunKind_NoApp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 324, column 17)
_lhsOcoe =
RelevCoe_Id
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 356, column 17)
_lhsOfunCoe =
RelevCoe_Err "CExpr.unimpl"
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 366, column 17)
_lhsOty =
RelevTy_Err "unimpl"
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_bodyIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_bodyIqualS
-- self rule
_cTrf =
CExpr_HoleLet bindsUid_ _bodyIcTrf
-- self rule
_oTrf =
CExpr_HoleLet bindsUid_ _bodyIoTrf
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_bodyIgUniq
-- copy rule (up)
_lhsOrvarMp =
_bodyIrvarMp
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
-- copy rule (down)
_bodyOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (down)
_bodyOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_bodyOdataGam =
_lhsIdataGam
-- copy rule (down)
_bodyOenv =
_lhsIenv
-- copy rule (down)
_bodyOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_bodyOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_bodyOgUniq =
_lhsIgUniq
-- copy rule (from local)
_bodyOisTopApp =
_isTopApp
-- copy rule (from local)
_bodyOisTopTup =
_isTopTup
-- copy rule (down)
_bodyOknTy =
_lhsIknTy
-- copy rule (down)
_bodyOlamMp =
_lhsIlamMp
-- copy rule (down)
_bodyOlev =
_lhsIlev
-- copy rule (down)
_bodyOopts =
_lhsIopts
-- copy rule (down)
_bodyOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_bodyOwhatAbove =
_whatAbove
-- copy rule (down)
_bodyOwhatTo =
_lhsIwhatTo
( _bodyIappFunKind,_bodyIargL,_bodyIcTrf,_bodyIcoe,_bodyIfunCoe,_bodyIfvS,_bodyIgUniq,_bodyIgathLamMp,_bodyImbFFIApp,_bodyImbFunVar,_bodyImbLam,_bodyImbVar,_bodyIoTrf,_bodyIqualS,_bodyIrvarMp,_bodyIty,_bodyIwhatBelow) =
body_ _bodyOaltMbScrutTy _bodyOboundRelevTyVarS _bodyOdataGam _bodyOenv _bodyOevalCtx _bodyOfinalRVarMp _bodyOgUniq _bodyOisTopApp _bodyOisTopTup _bodyOknTy _bodyOlamMp _bodyOlev _bodyOopts _bodyOrvarMp _bodyOwhatAbove _bodyOwhatTo
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_CoeArg :: T_CExpr
sem_CExpr_CoeArg =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOoTrf :: CExpr
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_lhsOwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
_whatBelow =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
_lhsOappFunKind =
AppFunKind_NoApp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 324, column 17)
_lhsOcoe =
RelevCoe_Id
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 356, column 17)
_lhsOfunCoe =
RelevCoe_Err "CExpr.unimpl"
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 366, column 17)
_lhsOty =
RelevTy_Err "unimpl"
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CExpr_CoeArg
-- self rule
_oTrf =
CExpr_CoeArg
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_ImplsApp :: T_CExpr ->
ImplsVarId ->
T_CExpr
sem_CExpr_ImplsApp func_ uid_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOoTrf :: CExpr
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_lhsOwhatBelow :: WhatExpr
_funcOaltMbScrutTy :: MbRelevTy
_funcOboundRelevTyVarS :: UIDS
_funcOdataGam :: DataGam
_funcOenv :: REnv
_funcOevalCtx :: EvalCtx
_funcOfinalRVarMp :: RVarMp
_funcOgUniq :: UID
_funcOisTopApp :: Bool
_funcOisTopTup :: Bool
_funcOknTy :: RelevTy
_funcOlamMp :: LamMp
_funcOlev :: Int
_funcOopts :: EHCOpts
_funcOrvarMp :: RVarMp
_funcOwhatAbove :: WhatExpr
_funcOwhatTo :: ([WhatToRelevInfer])
_funcIappFunKind :: AppFunKind
_funcIargL :: ([CBound])
_funcIcTrf :: CExpr
_funcIcoe :: RelevCoe
_funcIfunCoe :: RelevCoe
_funcIfvS :: FvS
_funcIgUniq :: UID
_funcIgathLamMp :: LamMp
_funcImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_funcImbFunVar :: (Maybe HsName)
_funcImbLam :: (Maybe [HsName])
_funcImbVar :: (Maybe HsName)
_funcIoTrf :: CExpr
_funcIqualS :: RelevQualS
_funcIrvarMp :: RVarMp
_funcIty :: RelevTy
_funcIwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
_whatBelow =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
_lhsOappFunKind =
AppFunKind_NoApp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 324, column 17)
_lhsOcoe =
RelevCoe_Id
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 356, column 17)
_lhsOfunCoe =
RelevCoe_Err "CExpr.unimpl"
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 366, column 17)
_lhsOty =
RelevTy_Err "unimpl"
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_funcIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_funcIqualS
-- self rule
_cTrf =
CExpr_ImplsApp _funcIcTrf uid_
-- self rule
_oTrf =
CExpr_ImplsApp _funcIoTrf uid_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_funcIgUniq
-- copy rule (up)
_lhsOrvarMp =
_funcIrvarMp
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
-- copy rule (down)
_funcOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (down)
_funcOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_funcOdataGam =
_lhsIdataGam
-- copy rule (down)
_funcOenv =
_lhsIenv
-- copy rule (down)
_funcOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_funcOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_funcOgUniq =
_lhsIgUniq
-- copy rule (from local)
_funcOisTopApp =
_isTopApp
-- copy rule (from local)
_funcOisTopTup =
_isTopTup
-- copy rule (down)
_funcOknTy =
_lhsIknTy
-- copy rule (down)
_funcOlamMp =
_lhsIlamMp
-- copy rule (down)
_funcOlev =
_lhsIlev
-- copy rule (down)
_funcOopts =
_lhsIopts
-- copy rule (down)
_funcOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_funcOwhatAbove =
_whatAbove
-- copy rule (down)
_funcOwhatTo =
_lhsIwhatTo
( _funcIappFunKind,_funcIargL,_funcIcTrf,_funcIcoe,_funcIfunCoe,_funcIfvS,_funcIgUniq,_funcIgathLamMp,_funcImbFFIApp,_funcImbFunVar,_funcImbLam,_funcImbVar,_funcIoTrf,_funcIqualS,_funcIrvarMp,_funcIty,_funcIwhatBelow) =
func_ _funcOaltMbScrutTy _funcOboundRelevTyVarS _funcOdataGam _funcOenv _funcOevalCtx _funcOfinalRVarMp _funcOgUniq _funcOisTopApp _funcOisTopTup _funcOknTy _funcOlamMp _funcOlev _funcOopts _funcOrvarMp _funcOwhatAbove _funcOwhatTo
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_ImplsLam :: ImplsVarId ->
T_CExpr ->
T_CExpr
sem_CExpr_ImplsLam uid_ body_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOgathLamMp :: LamMp
_isTopApp :: Bool
_whatAbove :: WhatExpr
_lhsOmbLam :: (Maybe [HsName])
_lhsOappFunKind :: AppFunKind
_lhsOmbVar :: (Maybe HsName)
_lhsOmbFunVar :: (Maybe HsName)
_lhsOargL :: ([CBound])
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_lhsOcoe :: RelevCoe
_lhsOfunCoe :: RelevCoe
_lhsOty :: RelevTy
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOoTrf :: CExpr
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_lhsOwhatBelow :: WhatExpr
_bodyOaltMbScrutTy :: MbRelevTy
_bodyOboundRelevTyVarS :: UIDS
_bodyOdataGam :: DataGam
_bodyOenv :: REnv
_bodyOevalCtx :: EvalCtx
_bodyOfinalRVarMp :: RVarMp
_bodyOgUniq :: UID
_bodyOisTopApp :: Bool
_bodyOisTopTup :: Bool
_bodyOknTy :: RelevTy
_bodyOlamMp :: LamMp
_bodyOlev :: Int
_bodyOopts :: EHCOpts
_bodyOrvarMp :: RVarMp
_bodyOwhatAbove :: WhatExpr
_bodyOwhatTo :: ([WhatToRelevInfer])
_bodyIappFunKind :: AppFunKind
_bodyIargL :: ([CBound])
_bodyIcTrf :: CExpr
_bodyIcoe :: RelevCoe
_bodyIfunCoe :: RelevCoe
_bodyIfvS :: FvS
_bodyIgUniq :: UID
_bodyIgathLamMp :: LamMp
_bodyImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_bodyImbFunVar :: (Maybe HsName)
_bodyImbLam :: (Maybe [HsName])
_bodyImbVar :: (Maybe HsName)
_bodyIoTrf :: CExpr
_bodyIqualS :: RelevQualS
_bodyIrvarMp :: RVarMp
_bodyIty :: RelevTy
_bodyIwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 9, column 33)
_lhsOgathLamMp =
Map.empty
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 16, column 17)
_isTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 21, column 17)
_isTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 64, column 17)
_whatBelow =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 72, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 6, column 33)
_lhsOmbLam =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 16, column 17)
_lhsOappFunKind =
AppFunKind_NoApp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonPred.ag"(line 24, column 33)
_lhsOmbVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 8, column 33)
_lhsOmbFunVar =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 15, column 33)
_lhsOargL =
[]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonFFI.ag"(line 43, column 17)
_lhsOmbFFIApp =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 324, column 17)
_lhsOcoe =
RelevCoe_Id
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 356, column 17)
_lhsOfunCoe =
RelevCoe_Err "CExpr.unimpl"
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 366, column 17)
_lhsOty =
RelevTy_Err "unimpl"
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_bodyIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_bodyIqualS
-- self rule
_cTrf =
CExpr_ImplsLam uid_ _bodyIcTrf
-- self rule
_oTrf =
CExpr_ImplsLam uid_ _bodyIoTrf
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_bodyIgUniq
-- copy rule (up)
_lhsOrvarMp =
_bodyIrvarMp
-- copy rule (from local)
_lhsOwhatBelow =
_whatBelow
-- copy rule (down)
_bodyOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (down)
_bodyOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_bodyOdataGam =
_lhsIdataGam
-- copy rule (down)
_bodyOenv =
_lhsIenv
-- copy rule (down)
_bodyOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_bodyOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_bodyOgUniq =
_lhsIgUniq
-- copy rule (from local)
_bodyOisTopApp =
_isTopApp
-- copy rule (from local)
_bodyOisTopTup =
_isTopTup
-- copy rule (down)
_bodyOknTy =
_lhsIknTy
-- copy rule (down)
_bodyOlamMp =
_lhsIlamMp
-- copy rule (down)
_bodyOlev =
_lhsIlev
-- copy rule (down)
_bodyOopts =
_lhsIopts
-- copy rule (down)
_bodyOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_bodyOwhatAbove =
_whatAbove
-- copy rule (down)
_bodyOwhatTo =
_lhsIwhatTo
( _bodyIappFunKind,_bodyIargL,_bodyIcTrf,_bodyIcoe,_bodyIfunCoe,_bodyIfvS,_bodyIgUniq,_bodyIgathLamMp,_bodyImbFFIApp,_bodyImbFunVar,_bodyImbLam,_bodyImbVar,_bodyIoTrf,_bodyIqualS,_bodyIrvarMp,_bodyIty,_bodyIwhatBelow) =
body_ _bodyOaltMbScrutTy _bodyOboundRelevTyVarS _bodyOdataGam _bodyOenv _bodyOevalCtx _bodyOfinalRVarMp _bodyOgUniq _bodyOisTopApp _bodyOisTopTup _bodyOknTy _bodyOlamMp _bodyOlev _bodyOopts _bodyOrvarMp _bodyOwhatAbove _bodyOwhatTo
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
sem_CExpr_Ann :: T_CExprAnn ->
T_CExpr ->
T_CExpr
sem_CExpr_Ann ann_ expr_ =
(\ _lhsIaltMbScrutTy
_lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIevalCtx
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIisTopApp
_lhsIisTopTup
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatAbove
_lhsIwhatTo ->
(let _lhsOcoe :: RelevCoe
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExpr
_lhsOoTrf :: CExpr
_lhsOappFunKind :: AppFunKind
_lhsOargL :: ([CBound])
_lhsOfunCoe :: RelevCoe
_lhsOgUniq :: UID
_lhsOgathLamMp :: LamMp
_lhsOmbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_lhsOmbFunVar :: (Maybe HsName)
_lhsOmbLam :: (Maybe [HsName])
_lhsOmbVar :: (Maybe HsName)
_lhsOrvarMp :: RVarMp
_lhsOty :: RelevTy
_lhsOwhatBelow :: WhatExpr
_annOboundRelevTyVarS :: UIDS
_annOdataGam :: DataGam
_annOenv :: REnv
_annOfinalRVarMp :: RVarMp
_annOgUniq :: UID
_annOknTy :: RelevTy
_annOlamMp :: LamMp
_annOlev :: Int
_annOopts :: EHCOpts
_annOrvarMp :: RVarMp
_annOwhatTo :: ([WhatToRelevInfer])
_exprOaltMbScrutTy :: MbRelevTy
_exprOboundRelevTyVarS :: UIDS
_exprOdataGam :: DataGam
_exprOenv :: REnv
_exprOevalCtx :: EvalCtx
_exprOfinalRVarMp :: RVarMp
_exprOgUniq :: UID
_exprOisTopApp :: Bool
_exprOisTopTup :: Bool
_exprOknTy :: RelevTy
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOopts :: EHCOpts
_exprOrvarMp :: RVarMp
_exprOwhatAbove :: WhatExpr
_exprOwhatTo :: ([WhatToRelevInfer])
_annIcTrf :: CExprAnn
_annIfvS :: FvS
_annIgUniq :: UID
_annIoTrf :: CExprAnn
_annIqualS :: RelevQualS
_annIrvarMp :: RVarMp
_exprIappFunKind :: AppFunKind
_exprIargL :: ([CBound])
_exprIcTrf :: CExpr
_exprIcoe :: RelevCoe
_exprIfunCoe :: RelevCoe
_exprIfvS :: FvS
_exprIgUniq :: UID
_exprIgathLamMp :: LamMp
_exprImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_exprImbFunVar :: (Maybe HsName)
_exprImbLam :: (Maybe [HsName])
_exprImbVar :: (Maybe HsName)
_exprIoTrf :: CExpr
_exprIqualS :: RelevQualS
_exprIrvarMp :: RVarMp
_exprIty :: RelevTy
_exprIwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 324, column 17)
_lhsOcoe =
RelevCoe_Id
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_annIfvS `Set.union` _exprIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_annIqualS `Set.union` _exprIqualS
-- self rule
_cTrf =
CExpr_Ann _annIcTrf _exprIcTrf
-- self rule
_oTrf =
CExpr_Ann _annIoTrf _exprIoTrf
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOappFunKind =
_exprIappFunKind
-- copy rule (up)
_lhsOargL =
_exprIargL
-- copy rule (up)
_lhsOfunCoe =
_exprIfunCoe
-- copy rule (up)
_lhsOgUniq =
_exprIgUniq
-- copy rule (up)
_lhsOgathLamMp =
_exprIgathLamMp
-- copy rule (up)
_lhsOmbFFIApp =
_exprImbFFIApp
-- copy rule (up)
_lhsOmbFunVar =
_exprImbFunVar
-- copy rule (up)
_lhsOmbLam =
_exprImbLam
-- copy rule (up)
_lhsOmbVar =
_exprImbVar
-- copy rule (up)
_lhsOrvarMp =
_exprIrvarMp
-- copy rule (up)
_lhsOty =
_exprIty
-- copy rule (up)
_lhsOwhatBelow =
_exprIwhatBelow
-- copy rule (down)
_annOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_annOdataGam =
_lhsIdataGam
-- copy rule (down)
_annOenv =
_lhsIenv
-- copy rule (down)
_annOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_annOgUniq =
_lhsIgUniq
-- copy rule (down)
_annOknTy =
_lhsIknTy
-- copy rule (down)
_annOlamMp =
_lhsIlamMp
-- copy rule (down)
_annOlev =
_lhsIlev
-- copy rule (down)
_annOopts =
_lhsIopts
-- copy rule (down)
_annOrvarMp =
_lhsIrvarMp
-- copy rule (down)
_annOwhatTo =
_lhsIwhatTo
-- copy rule (down)
_exprOaltMbScrutTy =
_lhsIaltMbScrutTy
-- copy rule (down)
_exprOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_exprOdataGam =
_lhsIdataGam
-- copy rule (down)
_exprOenv =
_lhsIenv
-- copy rule (down)
_exprOevalCtx =
_lhsIevalCtx
-- copy rule (down)
_exprOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_exprOgUniq =
_annIgUniq
-- copy rule (down)
_exprOisTopApp =
_lhsIisTopApp
-- copy rule (down)
_exprOisTopTup =
_lhsIisTopTup
-- copy rule (down)
_exprOknTy =
_lhsIknTy
-- copy rule (down)
_exprOlamMp =
_lhsIlamMp
-- copy rule (down)
_exprOlev =
_lhsIlev
-- copy rule (down)
_exprOopts =
_lhsIopts
-- copy rule (chain)
_exprOrvarMp =
_annIrvarMp
-- copy rule (down)
_exprOwhatAbove =
_lhsIwhatAbove
-- copy rule (down)
_exprOwhatTo =
_lhsIwhatTo
( _annIcTrf,_annIfvS,_annIgUniq,_annIoTrf,_annIqualS,_annIrvarMp) =
ann_ _annOboundRelevTyVarS _annOdataGam _annOenv _annOfinalRVarMp _annOgUniq _annOknTy _annOlamMp _annOlev _annOopts _annOrvarMp _annOwhatTo
( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprIcoe,_exprIfunCoe,_exprIfvS,_exprIgUniq,_exprIgathLamMp,_exprImbFFIApp,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIoTrf,_exprIqualS,_exprIrvarMp,_exprIty,_exprIwhatBelow) =
expr_ _exprOaltMbScrutTy _exprOboundRelevTyVarS _exprOdataGam _exprOenv _exprOevalCtx _exprOfinalRVarMp _exprOgUniq _exprOisTopApp _exprOisTopTup _exprOknTy _exprOlamMp _exprOlev _exprOopts _exprOrvarMp _exprOwhatAbove _exprOwhatTo
in ( _lhsOappFunKind,_lhsOargL,_lhsOcTrf,_lhsOcoe,_lhsOfunCoe,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOmbFFIApp,_lhsOmbFunVar,_lhsOmbLam,_lhsOmbVar,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp,_lhsOty,_lhsOwhatBelow)))
-- CExprAnn ----------------------------------------------------
{-
visit 0:
inherited attributes:
boundRelevTyVarS : UIDS
dataGam : DataGam
env : REnv
finalRVarMp : RVarMp
knTy : RelevTy
lamMp : LamMp
lev : Int
opts : EHCOpts
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
rvarMp : RVarMp
synthesized attributes:
cTrf : CExprAnn
fvS : FvS
oTrf : CExprAnn
qualS : RelevQualS
alternatives:
alternative Ty:
child ty : {Ty}
visit 0:
local cTrf : _
local oTrf : _
alternative Coe:
child coe : {RelevCoe}
visit 0:
local cTrf : _
local oTrf : _
alternative Debug:
child info : {String}
visit 0:
local cTrf : _
local oTrf : _
-}
-- cata
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)
-- semantic domain
type T_CExprAnn = UIDS ->
DataGam ->
REnv ->
RVarMp ->
UID ->
RelevTy ->
LamMp ->
Int ->
EHCOpts ->
RVarMp ->
([WhatToRelevInfer]) ->
( CExprAnn,FvS,UID,CExprAnn,RelevQualS,RVarMp)
sem_CExprAnn_Ty :: Ty ->
T_CExprAnn
sem_CExprAnn_Ty ty_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExprAnn
_lhsOoTrf :: CExprAnn
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CExprAnn_Ty ty_
-- self rule
_oTrf =
CExprAnn_Ty ty_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
sem_CExprAnn_Coe :: RelevCoe ->
T_CExprAnn
sem_CExprAnn_Coe coe_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExprAnn
_lhsOoTrf :: CExprAnn
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CExprAnn_Coe coe_
-- self rule
_oTrf =
CExprAnn_Coe coe_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
sem_CExprAnn_Debug :: String ->
T_CExprAnn
sem_CExprAnn_Debug info_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CExprAnn
_lhsOoTrf :: CExprAnn
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CExprAnn_Debug info_
-- self rule
_oTrf =
CExprAnn_Debug info_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
-- CImport -----------------------------------------------------
{-
visit 0:
synthesized attribute:
cTrf : CImport
alternatives:
alternative Import:
child nm : {HsName}
visit 0:
local cTrf : _
-}
-- cata
sem_CImport :: CImport ->
T_CImport
sem_CImport (CImport_Import _nm) =
(sem_CImport_Import _nm)
-- semantic domain
type T_CImport = ( CImport)
sem_CImport_Import :: HsName ->
T_CImport
sem_CImport_Import nm_ =
(let _lhsOcTrf :: CImport
-- self rule
_cTrf =
CImport_Import nm_
-- self rule
_lhsOcTrf =
_cTrf
in ( _lhsOcTrf))
-- CImportL ----------------------------------------------------
{-
visit 0:
synthesized attribute:
cTrf : CImportL
alternatives:
alternative Cons:
child hd : CImport
child tl : CImportL
visit 0:
local cTrf : _
alternative Nil:
visit 0:
local cTrf : _
-}
-- cata
sem_CImportL :: CImportL ->
T_CImportL
sem_CImportL list =
(Prelude.foldr sem_CImportL_Cons sem_CImportL_Nil (Prelude.map sem_CImport list))
-- semantic domain
type T_CImportL = ( CImportL)
sem_CImportL_Cons :: T_CImport ->
T_CImportL ->
T_CImportL
sem_CImportL_Cons hd_ tl_ =
(let _lhsOcTrf :: CImportL
_hdIcTrf :: CImport
_tlIcTrf :: CImportL
-- self rule
_cTrf =
(:) _hdIcTrf _tlIcTrf
-- self rule
_lhsOcTrf =
_cTrf
( _hdIcTrf) =
hd_
( _tlIcTrf) =
tl_
in ( _lhsOcTrf))
sem_CImportL_Nil :: T_CImportL
sem_CImportL_Nil =
(let _lhsOcTrf :: CImportL
-- self rule
_cTrf =
[]
-- self rule
_lhsOcTrf =
_cTrf
in ( _lhsOcTrf))
-- CMetaBind ---------------------------------------------------
{-
visit 0:
inherited attributes:
boundRelevTyVarS : UIDS
dataGam : DataGam
env : REnv
finalRVarMp : RVarMp
knTy : RelevTy
lamMp : LamMp
lev : Int
opts : EHCOpts
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
rvarMp : RVarMp
synthesized attributes:
cTrf : CMetaBind
fvS : FvS
oTrf : CMetaBind
qualS : RelevQualS
alternatives:
alternative Plain:
visit 0:
local cTrf : _
local oTrf : _
alternative Function0:
visit 0:
local cTrf : _
local oTrf : _
alternative Function1:
visit 0:
local cTrf : _
local oTrf : _
alternative Apply0:
visit 0:
local cTrf : _
local oTrf : _
-}
-- cata
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)
-- semantic domain
type T_CMetaBind = UIDS ->
DataGam ->
REnv ->
RVarMp ->
UID ->
RelevTy ->
LamMp ->
Int ->
EHCOpts ->
RVarMp ->
([WhatToRelevInfer]) ->
( CMetaBind,FvS,UID,CMetaBind,RelevQualS,RVarMp)
sem_CMetaBind_Plain :: T_CMetaBind
sem_CMetaBind_Plain =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CMetaBind
_lhsOoTrf :: CMetaBind
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CMetaBind_Plain
-- self rule
_oTrf =
CMetaBind_Plain
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
sem_CMetaBind_Function0 :: T_CMetaBind
sem_CMetaBind_Function0 =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CMetaBind
_lhsOoTrf :: CMetaBind
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CMetaBind_Function0
-- self rule
_oTrf =
CMetaBind_Function0
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
sem_CMetaBind_Function1 :: T_CMetaBind
sem_CMetaBind_Function1 =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CMetaBind
_lhsOoTrf :: CMetaBind
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CMetaBind_Function1
-- self rule
_oTrf =
CMetaBind_Function1
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
sem_CMetaBind_Apply0 :: T_CMetaBind
sem_CMetaBind_Apply0 =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CMetaBind
_lhsOoTrf :: CMetaBind
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CMetaBind_Apply0
-- self rule
_oTrf =
CMetaBind_Apply0
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
-- CMetaVal ----------------------------------------------------
{-
visit 0:
inherited attributes:
boundRelevTyVarS : UIDS
dataGam : DataGam
env : REnv
finalRVarMp : RVarMp
knTy : RelevTy
lamMp : LamMp
lev : Int
opts : EHCOpts
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
rvarMp : RVarMp
synthesized attributes:
cTrf : CMetaVal
fvS : FvS
oTrf : CMetaVal
qualS : RelevQualS
alternatives:
alternative Val:
visit 0:
local cTrf : _
local oTrf : _
alternative Dict:
visit 0:
local cTrf : _
local oTrf : _
alternative DictClass:
child tracks : {[Track]}
visit 0:
local cTrf : _
local oTrf : _
alternative DictInstance:
child tracks : {[Track]}
visit 0:
local cTrf : _
local oTrf : _
alternative Track:
child track : {Track}
visit 0:
local cTrf : _
local oTrf : _
-}
-- cata
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)
-- semantic domain
type T_CMetaVal = UIDS ->
DataGam ->
REnv ->
RVarMp ->
UID ->
RelevTy ->
LamMp ->
Int ->
EHCOpts ->
RVarMp ->
([WhatToRelevInfer]) ->
( CMetaVal,FvS,UID,CMetaVal,RelevQualS,RVarMp)
sem_CMetaVal_Val :: T_CMetaVal
sem_CMetaVal_Val =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CMetaVal
_lhsOoTrf :: CMetaVal
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CMetaVal_Val
-- self rule
_oTrf =
CMetaVal_Val
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
sem_CMetaVal_Dict :: T_CMetaVal
sem_CMetaVal_Dict =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CMetaVal
_lhsOoTrf :: CMetaVal
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CMetaVal_Dict
-- self rule
_oTrf =
CMetaVal_Dict
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
sem_CMetaVal_DictClass :: ([Track]) ->
T_CMetaVal
sem_CMetaVal_DictClass tracks_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CMetaVal
_lhsOoTrf :: CMetaVal
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CMetaVal_DictClass tracks_
-- self rule
_oTrf =
CMetaVal_DictClass tracks_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
sem_CMetaVal_DictInstance :: ([Track]) ->
T_CMetaVal
sem_CMetaVal_DictInstance tracks_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CMetaVal
_lhsOoTrf :: CMetaVal
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CMetaVal_DictInstance tracks_
-- self rule
_oTrf =
CMetaVal_DictInstance tracks_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
sem_CMetaVal_Track :: Track ->
T_CMetaVal
sem_CMetaVal_Track track_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CMetaVal
_lhsOoTrf :: CMetaVal
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CMetaVal_Track track_
-- self rule
_oTrf =
CMetaVal_Track track_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
-- CMetas ------------------------------------------------------
{-
visit 0:
inherited attributes:
boundRelevTyVarS : UIDS
dataGam : DataGam
env : REnv
finalRVarMp : RVarMp
knTy : RelevTy
lamMp : LamMp
lev : Int
opts : EHCOpts
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
rvarMp : RVarMp
synthesized attributes:
cTrf : CMetas
fvS : FvS
oTrf : CMetas
qualS : RelevQualS
alternatives:
alternative Tuple:
child x1 : CMetaBind
child x2 : CMetaVal
visit 0:
local cTrf : _
local oTrf : _
-}
-- cata
sem_CMetas :: CMetas ->
T_CMetas
sem_CMetas ( x1,x2) =
(sem_CMetas_Tuple (sem_CMetaBind x1) (sem_CMetaVal x2))
-- semantic domain
type T_CMetas = UIDS ->
DataGam ->
REnv ->
RVarMp ->
UID ->
RelevTy ->
LamMp ->
Int ->
EHCOpts ->
RVarMp ->
([WhatToRelevInfer]) ->
( CMetas,FvS,UID,CMetas,RelevQualS,RVarMp)
sem_CMetas_Tuple :: T_CMetaBind ->
T_CMetaVal ->
T_CMetas
sem_CMetas_Tuple x1_ x2_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CMetas
_lhsOoTrf :: CMetas
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_x1OboundRelevTyVarS :: UIDS
_x1OdataGam :: DataGam
_x1Oenv :: REnv
_x1OfinalRVarMp :: RVarMp
_x1OgUniq :: UID
_x1OknTy :: RelevTy
_x1OlamMp :: LamMp
_x1Olev :: Int
_x1Oopts :: EHCOpts
_x1OrvarMp :: RVarMp
_x1OwhatTo :: ([WhatToRelevInfer])
_x2OboundRelevTyVarS :: UIDS
_x2OdataGam :: DataGam
_x2Oenv :: REnv
_x2OfinalRVarMp :: RVarMp
_x2OgUniq :: UID
_x2OknTy :: RelevTy
_x2OlamMp :: LamMp
_x2Olev :: Int
_x2Oopts :: EHCOpts
_x2OrvarMp :: RVarMp
_x2OwhatTo :: ([WhatToRelevInfer])
_x1IcTrf :: CMetaBind
_x1IfvS :: FvS
_x1IgUniq :: UID
_x1IoTrf :: CMetaBind
_x1IqualS :: RelevQualS
_x1IrvarMp :: RVarMp
_x2IcTrf :: CMetaVal
_x2IfvS :: FvS
_x2IgUniq :: UID
_x2IoTrf :: CMetaVal
_x2IqualS :: RelevQualS
_x2IrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_x1IfvS `Set.union` _x2IfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_x1IqualS `Set.union` _x2IqualS
-- self rule
_cTrf =
(_x1IcTrf,_x2IcTrf)
-- self rule
_oTrf =
(_x1IoTrf,_x2IoTrf)
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_x2IgUniq
-- copy rule (up)
_lhsOrvarMp =
_x2IrvarMp
-- copy rule (down)
_x1OboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_x1OdataGam =
_lhsIdataGam
-- copy rule (down)
_x1Oenv =
_lhsIenv
-- copy rule (down)
_x1OfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_x1OgUniq =
_lhsIgUniq
-- copy rule (down)
_x1OknTy =
_lhsIknTy
-- copy rule (down)
_x1OlamMp =
_lhsIlamMp
-- copy rule (down)
_x1Olev =
_lhsIlev
-- copy rule (down)
_x1Oopts =
_lhsIopts
-- copy rule (down)
_x1OrvarMp =
_lhsIrvarMp
-- copy rule (down)
_x1OwhatTo =
_lhsIwhatTo
-- copy rule (down)
_x2OboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_x2OdataGam =
_lhsIdataGam
-- copy rule (down)
_x2Oenv =
_lhsIenv
-- copy rule (down)
_x2OfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_x2OgUniq =
_x1IgUniq
-- copy rule (down)
_x2OknTy =
_lhsIknTy
-- copy rule (down)
_x2OlamMp =
_lhsIlamMp
-- copy rule (down)
_x2Olev =
_lhsIlev
-- copy rule (down)
_x2Oopts =
_lhsIopts
-- copy rule (chain)
_x2OrvarMp =
_x1IrvarMp
-- copy rule (down)
_x2OwhatTo =
_lhsIwhatTo
( _x1IcTrf,_x1IfvS,_x1IgUniq,_x1IoTrf,_x1IqualS,_x1IrvarMp) =
x1_ _x1OboundRelevTyVarS _x1OdataGam _x1Oenv _x1OfinalRVarMp _x1OgUniq _x1OknTy _x1OlamMp _x1Olev _x1Oopts _x1OrvarMp _x1OwhatTo
( _x2IcTrf,_x2IfvS,_x2IgUniq,_x2IoTrf,_x2IqualS,_x2IrvarMp) =
x2_ _x2OboundRelevTyVarS _x2OdataGam _x2Oenv _x2OfinalRVarMp _x2OgUniq _x2OknTy _x2OlamMp _x2Olev _x2Oopts _x2OrvarMp _x2OwhatTo
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
-- CModule -----------------------------------------------------
{-
visit 0:
inherited attributes:
dataGam : DataGam
env : REnv
finalRVarMp : RVarMp
lamMp : LamMp
lev : Int
opts : EHCOpts
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
rvarMp : RVarMp
synthesized attributes:
cTrf : CModule
fvS : FvS
gathLamMp : LamMp
qualS : RelevQualS
alternatives:
alternative Mod:
child moduleNm : {HsName}
child exports : CExportL
child imports : CImportL
child declMetas : CDeclMetaL
child expr : CExpr
visit 0:
local whatAbove : {WhatExpr}
local altMbScrutTy : _
local cTrf : _
-}
-- cata
sem_CModule :: CModule ->
T_CModule
sem_CModule (CModule_Mod _moduleNm _exports _imports _declMetas _expr) =
(sem_CModule_Mod _moduleNm (sem_CExportL _exports) (sem_CImportL _imports) (sem_CDeclMetaL _declMetas) (sem_CExpr _expr))
-- semantic domain
type T_CModule = DataGam ->
REnv ->
RVarMp ->
UID ->
LamMp ->
Int ->
EHCOpts ->
RVarMp ->
([WhatToRelevInfer]) ->
( CModule,FvS,UID,LamMp,RelevQualS,RVarMp)
sem_CModule_Mod :: HsName ->
T_CExportL ->
T_CImportL ->
T_CDeclMetaL ->
T_CExpr ->
T_CModule
sem_CModule_Mod moduleNm_ exports_ imports_ declMetas_ expr_ =
(\ _lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _exprOisTopApp :: Bool
_exprOisTopTup :: Bool
_whatAbove :: WhatExpr
_exprOevalCtx :: EvalCtx
_exprOknTy :: RelevTy
_exprOboundRelevTyVarS :: UIDS
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CModule
_lhsOgUniq :: UID
_lhsOgathLamMp :: LamMp
_lhsOrvarMp :: RVarMp
_exprOaltMbScrutTy :: MbRelevTy
_exprOdataGam :: DataGam
_exprOenv :: REnv
_exprOfinalRVarMp :: RVarMp
_exprOgUniq :: UID
_exprOlamMp :: LamMp
_exprOlev :: Int
_exprOopts :: EHCOpts
_exprOrvarMp :: RVarMp
_exprOwhatAbove :: WhatExpr
_exprOwhatTo :: ([WhatToRelevInfer])
_exportsIcTrf :: CExportL
_importsIcTrf :: CImportL
_declMetasIcTrf :: CDeclMetaL
_exprIappFunKind :: AppFunKind
_exprIargL :: ([CBound])
_exprIcTrf :: CExpr
_exprIcoe :: RelevCoe
_exprIfunCoe :: RelevCoe
_exprIfvS :: FvS
_exprIgUniq :: UID
_exprIgathLamMp :: LamMp
_exprImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_exprImbFunVar :: (Maybe HsName)
_exprImbLam :: (Maybe [HsName])
_exprImbVar :: (Maybe HsName)
_exprIoTrf :: CExpr
_exprIqualS :: RelevQualS
_exprIrvarMp :: RVarMp
_exprIty :: RelevTy
_exprIwhatBelow :: WhatExpr
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 27, column 17)
_exprOisTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 27, column 17)
_exprOisTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 90, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 99, column 17)
_exprOevalCtx =
EvalCtx_Eval
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 204, column 17)
_exprOknTy =
RelevTy_None
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 313, column 17)
_altMbScrutTy =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 492, column 17)
_exprOboundRelevTyVarS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_exprIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_exprIqualS
-- self rule
_cTrf =
CModule_Mod moduleNm_ _exportsIcTrf _importsIcTrf _declMetasIcTrf _exprIcTrf
-- self rule
_lhsOcTrf =
_cTrf
-- copy rule (up)
_lhsOgUniq =
_exprIgUniq
-- copy rule (up)
_lhsOgathLamMp =
_exprIgathLamMp
-- copy rule (up)
_lhsOrvarMp =
_exprIrvarMp
-- copy rule (from local)
_exprOaltMbScrutTy =
_altMbScrutTy
-- copy rule (down)
_exprOdataGam =
_lhsIdataGam
-- copy rule (down)
_exprOenv =
_lhsIenv
-- copy rule (down)
_exprOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_exprOgUniq =
_lhsIgUniq
-- copy rule (down)
_exprOlamMp =
_lhsIlamMp
-- copy rule (down)
_exprOlev =
_lhsIlev
-- copy rule (down)
_exprOopts =
_lhsIopts
-- copy rule (down)
_exprOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_exprOwhatAbove =
_whatAbove
-- copy rule (down)
_exprOwhatTo =
_lhsIwhatTo
( _exportsIcTrf) =
exports_
( _importsIcTrf) =
imports_
( _declMetasIcTrf) =
declMetas_
( _exprIappFunKind,_exprIargL,_exprIcTrf,_exprIcoe,_exprIfunCoe,_exprIfvS,_exprIgUniq,_exprIgathLamMp,_exprImbFFIApp,_exprImbFunVar,_exprImbLam,_exprImbVar,_exprIoTrf,_exprIqualS,_exprIrvarMp,_exprIty,_exprIwhatBelow) =
expr_ _exprOaltMbScrutTy _exprOboundRelevTyVarS _exprOdataGam _exprOenv _exprOevalCtx _exprOfinalRVarMp _exprOgUniq _exprOisTopApp _exprOisTopTup _exprOknTy _exprOlamMp _exprOlev _exprOopts _exprOrvarMp _exprOwhatAbove _exprOwhatTo
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOgathLamMp,_lhsOqualS,_lhsOrvarMp)))
-- CPat --------------------------------------------------------
{-
visit 0:
inherited attributes:
boundRelevTyVarS : UIDS
dataGam : DataGam
env : REnv
finalRVarMp : RVarMp
knTy : RelevTy
knTyCase : RelevTy
lamMp : LamMp
lev : Int
opts : EHCOpts
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
patFldTyL : [(RelevTy,RelevTy)]
rvarMp : RVarMp
synthesized attributes:
cTrf : CPat
fldNmL : [HsName]
fvS : FvS
mbCTag : Maybe CTag
nmL : [HsName]
oTrf : CPat
qualS : RelevQualS
alternatives:
alternative Var:
child pnm : {HsName}
visit 0:
local cTrf : _
local oTrf : _
alternative Con:
child tag : {CTag}
child rest : CPatRest
child binds : CPatFldL
visit 0:
local cTrf : _
local oTrf : _
alternative Int:
child int : {Int}
visit 0:
local cTrf : _
local oTrf : _
alternative Char:
child char : {Char}
visit 0:
local cTrf : _
local oTrf : _
alternative BoolExpr:
child cexpr : {CExpr}
visit 0:
local cTrf : _
local oTrf : _
-}
-- cata
sem_CPat :: CPat ->
T_CPat
sem_CPat (CPat_Var _pnm) =
(sem_CPat_Var _pnm)
sem_CPat (CPat_Con _tag _rest _binds) =
(sem_CPat_Con _tag (sem_CPatRest _rest) (sem_CPatFldL _binds))
sem_CPat (CPat_Int _int) =
(sem_CPat_Int _int)
sem_CPat (CPat_Char _char) =
(sem_CPat_Char _char)
sem_CPat (CPat_BoolExpr _cexpr) =
(sem_CPat_BoolExpr _cexpr)
-- semantic domain
type T_CPat = UIDS ->
DataGam ->
REnv ->
RVarMp ->
UID ->
RelevTy ->
RelevTy ->
LamMp ->
Int ->
EHCOpts ->
([(RelevTy,RelevTy)]) ->
RVarMp ->
([WhatToRelevInfer]) ->
( CPat,([HsName]),FvS,UID,(Maybe CTag),([HsName]),CPat,([(RelevTy,RelevTy)]),RelevQualS,RVarMp)
sem_CPat_Var :: HsName ->
T_CPat
sem_CPat_Var pnm_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIknTyCase
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIpatFldTyL
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOnmL :: ([HsName])
_lhsOmbCTag :: (Maybe CTag)
_lhsOfldNmL :: ([HsName])
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CPat
_lhsOoTrf :: CPat
_lhsOgUniq :: UID
_lhsOpatFldTyL :: ([(RelevTy,RelevTy)])
_lhsOrvarMp :: RVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 28, column 17)
_lhsOnmL =
[pnm_]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 22, column 33)
_lhsOmbCTag =
Nothing
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
_lhsOfldNmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CPat_Var pnm_
-- self rule
_oTrf =
CPat_Var pnm_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOpatFldTyL =
_lhsIpatFldTyL
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOmbCTag,_lhsOnmL,_lhsOoTrf,_lhsOpatFldTyL,_lhsOqualS,_lhsOrvarMp)))
sem_CPat_Con :: CTag ->
T_CPatRest ->
T_CPatFldL ->
T_CPat
sem_CPat_Con tag_ rest_ binds_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIknTyCase
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIpatFldTyL
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOnmL :: ([HsName])
_lhsOmbCTag :: (Maybe CTag)
_lhsOfldNmL :: ([HsName])
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CPat
_lhsOoTrf :: CPat
_lhsOgUniq :: UID
_lhsOpatFldTyL :: ([(RelevTy,RelevTy)])
_lhsOrvarMp :: RVarMp
_restOboundRelevTyVarS :: UIDS
_restOdataGam :: DataGam
_restOenv :: REnv
_restOfinalRVarMp :: RVarMp
_restOgUniq :: UID
_restOknTy :: RelevTy
_restOknTyCase :: RelevTy
_restOlamMp :: LamMp
_restOlev :: Int
_restOopts :: EHCOpts
_restOrvarMp :: RVarMp
_restOwhatTo :: ([WhatToRelevInfer])
_bindsOboundRelevTyVarS :: UIDS
_bindsOdataGam :: DataGam
_bindsOenv :: REnv
_bindsOfinalRVarMp :: RVarMp
_bindsOgUniq :: UID
_bindsOknTy :: RelevTy
_bindsOknTyCase :: RelevTy
_bindsOlamMp :: LamMp
_bindsOlev :: Int
_bindsOopts :: EHCOpts
_bindsOpatFldTyL :: ([(RelevTy,RelevTy)])
_bindsOrvarMp :: RVarMp
_bindsOwhatTo :: ([WhatToRelevInfer])
_restIcTrf :: CPatRest
_restIfvS :: FvS
_restIgUniq :: UID
_restInmL :: ([HsName])
_restIoTrf :: CPatRest
_restIqualS :: RelevQualS
_restIrvarMp :: RVarMp
_bindsIcTrf :: CPatFldL
_bindsIfldNmL :: ([HsName])
_bindsIfvS :: FvS
_bindsIgUniq :: UID
_bindsInmL :: ([HsName])
_bindsIoTrf :: CPatFldL
_bindsIpatFldTyL :: ([(RelevTy,RelevTy)])
_bindsIqualS :: RelevQualS
_bindsIrvarMp :: RVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 29, column 17)
_lhsOnmL =
_restInmL ++ _bindsInmL
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 20, column 25)
_lhsOmbCTag =
Just tag_
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
_lhsOfldNmL =
_bindsIfldNmL
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_restIfvS `Set.union` _bindsIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_restIqualS `Set.union` _bindsIqualS
-- self rule
_cTrf =
CPat_Con tag_ _restIcTrf _bindsIcTrf
-- self rule
_oTrf =
CPat_Con tag_ _restIoTrf _bindsIoTrf
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_bindsIgUniq
-- copy rule (up)
_lhsOpatFldTyL =
_bindsIpatFldTyL
-- copy rule (up)
_lhsOrvarMp =
_bindsIrvarMp
-- copy rule (down)
_restOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_restOdataGam =
_lhsIdataGam
-- copy rule (down)
_restOenv =
_lhsIenv
-- copy rule (down)
_restOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_restOgUniq =
_lhsIgUniq
-- copy rule (down)
_restOknTy =
_lhsIknTy
-- copy rule (down)
_restOknTyCase =
_lhsIknTyCase
-- copy rule (down)
_restOlamMp =
_lhsIlamMp
-- copy rule (down)
_restOlev =
_lhsIlev
-- copy rule (down)
_restOopts =
_lhsIopts
-- copy rule (down)
_restOrvarMp =
_lhsIrvarMp
-- copy rule (down)
_restOwhatTo =
_lhsIwhatTo
-- copy rule (down)
_bindsOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_bindsOdataGam =
_lhsIdataGam
-- copy rule (down)
_bindsOenv =
_lhsIenv
-- copy rule (down)
_bindsOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_bindsOgUniq =
_restIgUniq
-- copy rule (down)
_bindsOknTy =
_lhsIknTy
-- copy rule (down)
_bindsOknTyCase =
_lhsIknTyCase
-- copy rule (down)
_bindsOlamMp =
_lhsIlamMp
-- copy rule (down)
_bindsOlev =
_lhsIlev
-- copy rule (down)
_bindsOopts =
_lhsIopts
-- copy rule (down)
_bindsOpatFldTyL =
_lhsIpatFldTyL
-- copy rule (chain)
_bindsOrvarMp =
_restIrvarMp
-- copy rule (down)
_bindsOwhatTo =
_lhsIwhatTo
( _restIcTrf,_restIfvS,_restIgUniq,_restInmL,_restIoTrf,_restIqualS,_restIrvarMp) =
rest_ _restOboundRelevTyVarS _restOdataGam _restOenv _restOfinalRVarMp _restOgUniq _restOknTy _restOknTyCase _restOlamMp _restOlev _restOopts _restOrvarMp _restOwhatTo
( _bindsIcTrf,_bindsIfldNmL,_bindsIfvS,_bindsIgUniq,_bindsInmL,_bindsIoTrf,_bindsIpatFldTyL,_bindsIqualS,_bindsIrvarMp) =
binds_ _bindsOboundRelevTyVarS _bindsOdataGam _bindsOenv _bindsOfinalRVarMp _bindsOgUniq _bindsOknTy _bindsOknTyCase _bindsOlamMp _bindsOlev _bindsOopts _bindsOpatFldTyL _bindsOrvarMp _bindsOwhatTo
in ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOmbCTag,_lhsOnmL,_lhsOoTrf,_lhsOpatFldTyL,_lhsOqualS,_lhsOrvarMp)))
sem_CPat_Int :: Int ->
T_CPat
sem_CPat_Int int_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIknTyCase
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIpatFldTyL
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOmbCTag :: (Maybe CTag)
_lhsOfldNmL :: ([HsName])
_lhsOfvS :: FvS
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CPat
_lhsOoTrf :: CPat
_lhsOgUniq :: UID
_lhsOpatFldTyL :: ([(RelevTy,RelevTy)])
_lhsOrvarMp :: RVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 22, column 33)
_lhsOmbCTag =
Nothing
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
_lhsOfldNmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CPat_Int int_
-- self rule
_oTrf =
CPat_Int int_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOpatFldTyL =
_lhsIpatFldTyL
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOmbCTag,_lhsOnmL,_lhsOoTrf,_lhsOpatFldTyL,_lhsOqualS,_lhsOrvarMp)))
sem_CPat_Char :: Char ->
T_CPat
sem_CPat_Char char_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIknTyCase
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIpatFldTyL
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOmbCTag :: (Maybe CTag)
_lhsOfldNmL :: ([HsName])
_lhsOfvS :: FvS
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CPat
_lhsOoTrf :: CPat
_lhsOgUniq :: UID
_lhsOpatFldTyL :: ([(RelevTy,RelevTy)])
_lhsOrvarMp :: RVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 22, column 33)
_lhsOmbCTag =
Nothing
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
_lhsOfldNmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CPat_Char char_
-- self rule
_oTrf =
CPat_Char char_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOpatFldTyL =
_lhsIpatFldTyL
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOmbCTag,_lhsOnmL,_lhsOoTrf,_lhsOpatFldTyL,_lhsOqualS,_lhsOrvarMp)))
sem_CPat_BoolExpr :: CExpr ->
T_CPat
sem_CPat_BoolExpr cexpr_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIknTyCase
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIpatFldTyL
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOmbCTag :: (Maybe CTag)
_lhsOfldNmL :: ([HsName])
_lhsOfvS :: FvS
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CPat
_lhsOoTrf :: CPat
_lhsOgUniq :: UID
_lhsOpatFldTyL :: ([(RelevTy,RelevTy)])
_lhsOrvarMp :: RVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonStructureInfo.ag"(line 22, column 33)
_lhsOmbCTag =
Nothing
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
_lhsOfldNmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CPat_BoolExpr cexpr_
-- self rule
_oTrf =
CPat_BoolExpr cexpr_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOpatFldTyL =
_lhsIpatFldTyL
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOmbCTag,_lhsOnmL,_lhsOoTrf,_lhsOpatFldTyL,_lhsOqualS,_lhsOrvarMp)))
-- CPatFld -----------------------------------------------------
{-
visit 0:
inherited attributes:
boundRelevTyVarS : UIDS
dataGam : DataGam
env : REnv
finalRVarMp : RVarMp
knTy : RelevTy
knTyCase : RelevTy
lamMp : LamMp
lev : Int
opts : EHCOpts
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
patFldTyL : [(RelevTy,RelevTy)]
rvarMp : RVarMp
synthesized attributes:
cTrf : CPatFld
fldNmL : [HsName]
fvS : FvS
nmL : [HsName]
oTrf : CPatFld
qualS : RelevQualS
alternatives:
alternative Fld:
child lbl : {HsName}
child offset : CExpr
child bind : CBind
child fldAnns : CBindAnnL
visit 0:
local whatAbove : {WhatExpr}
local fldNm : _
local _tup25 : _
local patFldTy : _
local fldCoe : _
local altMbScrutTy : _
local hereOffCoe : _
local hereFldCoe : _
local cTrf : _
local oTrf : _
-}
-- cata
sem_CPatFld :: CPatFld ->
T_CPatFld
sem_CPatFld (CPatFld_Fld _lbl _offset _bind _fldAnns) =
(sem_CPatFld_Fld _lbl (sem_CExpr _offset) (sem_CBind _bind) (sem_CBindAnnL _fldAnns))
-- semantic domain
type T_CPatFld = UIDS ->
DataGam ->
REnv ->
RVarMp ->
UID ->
RelevTy ->
RelevTy ->
LamMp ->
Int ->
EHCOpts ->
([(RelevTy,RelevTy)]) ->
RVarMp ->
([WhatToRelevInfer]) ->
( CPatFld,([HsName]),FvS,UID,([HsName]),CPatFld,([(RelevTy,RelevTy)]),RelevQualS,RVarMp)
sem_CPatFld_Fld :: HsName ->
T_CExpr ->
T_CBind ->
T_CBindAnnL ->
T_CPatFld
sem_CPatFld_Fld lbl_ offset_ bind_ fldAnns_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIknTyCase
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIpatFldTyL
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOnmL :: ([HsName])
_bindOletBindingsCateg :: CBindCateg
_offsetOisTopApp :: Bool
_offsetOisTopTup :: Bool
_whatAbove :: WhatExpr
_offsetOevalCtx :: EvalCtx
_bindOevalCtx :: EvalCtx
_lhsOfldNmL :: ([HsName])
_bindOisGlobal :: Bool
_lhsOpatFldTyL :: ([(RelevTy,RelevTy)])
_offsetOknTy :: RelevTy
_bindOforQuantRVarMp :: RVarMp
_lhsOcTrf :: CPatFld
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOoTrf :: CPatFld
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
_offsetOaltMbScrutTy :: MbRelevTy
_offsetOboundRelevTyVarS :: UIDS
_offsetOdataGam :: DataGam
_offsetOenv :: REnv
_offsetOfinalRVarMp :: RVarMp
_offsetOgUniq :: UID
_offsetOlamMp :: LamMp
_offsetOlev :: Int
_offsetOopts :: EHCOpts
_offsetOrvarMp :: RVarMp
_offsetOwhatAbove :: WhatExpr
_offsetOwhatTo :: ([WhatToRelevInfer])
_bindOboundRelevTyVarS :: UIDS
_bindOdataGam :: DataGam
_bindOenv :: REnv
_bindOfinalRVarMp :: RVarMp
_bindOgUniq :: UID
_bindOknTy :: RelevTy
_bindOlamMp :: LamMp
_bindOlev :: Int
_bindOopts :: EHCOpts
_bindOrvarMp :: RVarMp
_bindOwhatTo :: ([WhatToRelevInfer])
_fldAnnsOboundRelevTyVarS :: UIDS
_fldAnnsOdataGam :: DataGam
_fldAnnsOenv :: REnv
_fldAnnsOfinalRVarMp :: RVarMp
_fldAnnsOgUniq :: UID
_fldAnnsOknTy :: RelevTy
_fldAnnsOknTyCase :: RelevTy
_fldAnnsOlamMp :: LamMp
_fldAnnsOlev :: Int
_fldAnnsOopts :: EHCOpts
_fldAnnsOrvarMp :: RVarMp
_fldAnnsOwhatTo :: ([WhatToRelevInfer])
_offsetIappFunKind :: AppFunKind
_offsetIargL :: ([CBound])
_offsetIcTrf :: CExpr
_offsetIcoe :: RelevCoe
_offsetIfunCoe :: RelevCoe
_offsetIfvS :: FvS
_offsetIgUniq :: UID
_offsetIgathLamMp :: LamMp
_offsetImbFFIApp :: (Maybe ( Ty
, Bool
, FFIWay
, ForeignEnt
, [Ty]
))
_offsetImbFunVar :: (Maybe HsName)
_offsetImbLam :: (Maybe [HsName])
_offsetImbVar :: (Maybe HsName)
_offsetIoTrf :: CExpr
_offsetIqualS :: RelevQualS
_offsetIrvarMp :: RVarMp
_offsetIty :: RelevTy
_offsetIwhatBelow :: WhatExpr
_bindIaltMbScrutTy :: MbRelevTy
_bindIbindLamMp :: LamMp
_bindIcTrf :: CBind
_bindIextraBindRVarMp :: RVarMp
_bindIfvS :: FvS
_bindIfvSMp :: FvSMp
_bindIgUniq :: UID
_bindIgathEnv :: REnv
_bindIgathRecEnv :: REnv
_bindInm :: HsName
_bindInmL :: ([HsName])
_bindIoTrf :: CBind
_bindIqualS :: RelevQualS
_bindIrvarMp :: RVarMp
_fldAnnsIcTrf :: CBindAnnL
_fldAnnsIfvS :: FvS
_fldAnnsIgUniq :: UID
_fldAnnsInmL :: ([HsName])
_fldAnnsIoTrf :: CBindAnnL
_fldAnnsIqualS :: RelevQualS
_fldAnnsIrvarMp :: RVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 22, column 17)
_lhsOnmL =
[_fldNm]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 9, column 17)
_bindOletBindingsCateg =
acoreBindcategPlain
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 41, column 17)
_offsetOisTopApp =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 41, column 17)
_offsetOisTopTup =
True
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 84, column 17)
_whatAbove =
ExprIsOther
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 102, column 17)
_offsetOevalCtx =
EvalCtx_Eval
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonCtxtPred.ag"(line 103, column 33)
_bindOevalCtx =
EvalCtx_None
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 23, column 17)
_fldNm =
_bindInm
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 28, column 17)
_lhsOfldNmL =
[_fldNm]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 15, column 17)
_bindOisGlobal =
False
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 188, column 17)
__tup25 =
hdAndTl' (panic $ "patFldTyL: " ++ show _fldNm) _lhsIpatFldTyL
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 188, column 17)
(_patFldTy,_) =
__tup25
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 188, column 17)
(_,_lhsOpatFldTyL) =
__tup25
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 189, column 17)
_fldCoe =
let (tgiven,tused) = _patFldTy
in RelevCoe_CastTy tgiven tused
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 219, column 17)
_offsetOknTy =
_lhsIknTy
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 313, column 17)
_altMbScrutTy =
Nothing
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 343, column 17)
_hereOffCoe =
_lhsIfinalRVarMp `varUpd` _offsetIcoe
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 343, column 17)
_hereFldCoe =
_lhsIfinalRVarMp `varUpd` _fldCoe
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 397, column 25)
_bindOforQuantRVarMp =
emptyRVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 628, column 17)
_lhsOcTrf =
CPatFld_Fld lbl_ (annCoe _hereOffCoe _offsetIcTrf) _bindIcTrf [CBindAnn_Coe _hereFldCoe]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_offsetIfvS `Set.union` _bindIfvS `Set.union` _fldAnnsIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_offsetIqualS `Set.union` _bindIqualS `Set.union` _fldAnnsIqualS
-- self rule
_cTrf =
CPatFld_Fld lbl_ _offsetIcTrf _bindIcTrf _fldAnnsIcTrf
-- self rule
_oTrf =
CPatFld_Fld lbl_ _offsetIoTrf _bindIoTrf _fldAnnsIoTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_fldAnnsIgUniq
-- copy rule (up)
_lhsOrvarMp =
_fldAnnsIrvarMp
-- copy rule (from local)
_offsetOaltMbScrutTy =
_altMbScrutTy
-- copy rule (down)
_offsetOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_offsetOdataGam =
_lhsIdataGam
-- copy rule (down)
_offsetOenv =
_lhsIenv
-- copy rule (down)
_offsetOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_offsetOgUniq =
_lhsIgUniq
-- copy rule (down)
_offsetOlamMp =
_lhsIlamMp
-- copy rule (down)
_offsetOlev =
_lhsIlev
-- copy rule (down)
_offsetOopts =
_lhsIopts
-- copy rule (down)
_offsetOrvarMp =
_lhsIrvarMp
-- copy rule (from local)
_offsetOwhatAbove =
_whatAbove
-- copy rule (down)
_offsetOwhatTo =
_lhsIwhatTo
-- copy rule (down)
_bindOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_bindOdataGam =
_lhsIdataGam
-- copy rule (down)
_bindOenv =
_lhsIenv
-- copy rule (down)
_bindOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_bindOgUniq =
_offsetIgUniq
-- copy rule (down)
_bindOknTy =
_lhsIknTy
-- copy rule (down)
_bindOlamMp =
_lhsIlamMp
-- copy rule (down)
_bindOlev =
_lhsIlev
-- copy rule (down)
_bindOopts =
_lhsIopts
-- copy rule (chain)
_bindOrvarMp =
_offsetIrvarMp
-- copy rule (down)
_bindOwhatTo =
_lhsIwhatTo
-- copy rule (down)
_fldAnnsOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_fldAnnsOdataGam =
_lhsIdataGam
-- copy rule (down)
_fldAnnsOenv =
_lhsIenv
-- copy rule (down)
_fldAnnsOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_fldAnnsOgUniq =
_bindIgUniq
-- copy rule (down)
_fldAnnsOknTy =
_lhsIknTy
-- copy rule (down)
_fldAnnsOknTyCase =
_lhsIknTyCase
-- copy rule (down)
_fldAnnsOlamMp =
_lhsIlamMp
-- copy rule (down)
_fldAnnsOlev =
_lhsIlev
-- copy rule (down)
_fldAnnsOopts =
_lhsIopts
-- copy rule (chain)
_fldAnnsOrvarMp =
_bindIrvarMp
-- copy rule (down)
_fldAnnsOwhatTo =
_lhsIwhatTo
( _offsetIappFunKind,_offsetIargL,_offsetIcTrf,_offsetIcoe,_offsetIfunCoe,_offsetIfvS,_offsetIgUniq,_offsetIgathLamMp,_offsetImbFFIApp,_offsetImbFunVar,_offsetImbLam,_offsetImbVar,_offsetIoTrf,_offsetIqualS,_offsetIrvarMp,_offsetIty,_offsetIwhatBelow) =
offset_ _offsetOaltMbScrutTy _offsetOboundRelevTyVarS _offsetOdataGam _offsetOenv _offsetOevalCtx _offsetOfinalRVarMp _offsetOgUniq _offsetOisTopApp _offsetOisTopTup _offsetOknTy _offsetOlamMp _offsetOlev _offsetOopts _offsetOrvarMp _offsetOwhatAbove _offsetOwhatTo
( _bindIaltMbScrutTy,_bindIbindLamMp,_bindIcTrf,_bindIextraBindRVarMp,_bindIfvS,_bindIfvSMp,_bindIgUniq,_bindIgathEnv,_bindIgathRecEnv,_bindInm,_bindInmL,_bindIoTrf,_bindIqualS,_bindIrvarMp) =
bind_ _bindOboundRelevTyVarS _bindOdataGam _bindOenv _bindOevalCtx _bindOfinalRVarMp _bindOforQuantRVarMp _bindOgUniq _bindOisGlobal _bindOknTy _bindOlamMp _bindOletBindingsCateg _bindOlev _bindOopts _bindOrvarMp _bindOwhatTo
( _fldAnnsIcTrf,_fldAnnsIfvS,_fldAnnsIgUniq,_fldAnnsInmL,_fldAnnsIoTrf,_fldAnnsIqualS,_fldAnnsIrvarMp) =
fldAnns_ _fldAnnsOboundRelevTyVarS _fldAnnsOdataGam _fldAnnsOenv _fldAnnsOfinalRVarMp _fldAnnsOgUniq _fldAnnsOknTy _fldAnnsOknTyCase _fldAnnsOlamMp _fldAnnsOlev _fldAnnsOopts _fldAnnsOrvarMp _fldAnnsOwhatTo
in ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOnmL,_lhsOoTrf,_lhsOpatFldTyL,_lhsOqualS,_lhsOrvarMp)))
-- CPatFldL ----------------------------------------------------
{-
visit 0:
inherited attributes:
boundRelevTyVarS : UIDS
dataGam : DataGam
env : REnv
finalRVarMp : RVarMp
knTy : RelevTy
knTyCase : RelevTy
lamMp : LamMp
lev : Int
opts : EHCOpts
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
patFldTyL : [(RelevTy,RelevTy)]
rvarMp : RVarMp
synthesized attributes:
cTrf : CPatFldL
fldNmL : [HsName]
fvS : FvS
nmL : [HsName]
oTrf : CPatFldL
qualS : RelevQualS
alternatives:
alternative Cons:
child hd : CPatFld
child tl : CPatFldL
visit 0:
local cTrf : _
local oTrf : _
alternative Nil:
visit 0:
local cTrf : _
local oTrf : _
-}
-- cata
sem_CPatFldL :: CPatFldL ->
T_CPatFldL
sem_CPatFldL list =
(Prelude.foldr sem_CPatFldL_Cons sem_CPatFldL_Nil (Prelude.map sem_CPatFld list))
-- semantic domain
type T_CPatFldL = UIDS ->
DataGam ->
REnv ->
RVarMp ->
UID ->
RelevTy ->
RelevTy ->
LamMp ->
Int ->
EHCOpts ->
([(RelevTy,RelevTy)]) ->
RVarMp ->
([WhatToRelevInfer]) ->
( CPatFldL,([HsName]),FvS,UID,([HsName]),CPatFldL,([(RelevTy,RelevTy)]),RelevQualS,RVarMp)
sem_CPatFldL_Cons :: T_CPatFld ->
T_CPatFldL ->
T_CPatFldL
sem_CPatFldL_Cons hd_ tl_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIknTyCase
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIpatFldTyL
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfldNmL :: ([HsName])
_lhsOfvS :: FvS
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CPatFldL
_lhsOoTrf :: CPatFldL
_lhsOgUniq :: UID
_lhsOpatFldTyL :: ([(RelevTy,RelevTy)])
_lhsOrvarMp :: RVarMp
_hdOboundRelevTyVarS :: UIDS
_hdOdataGam :: DataGam
_hdOenv :: REnv
_hdOfinalRVarMp :: RVarMp
_hdOgUniq :: UID
_hdOknTy :: RelevTy
_hdOknTyCase :: RelevTy
_hdOlamMp :: LamMp
_hdOlev :: Int
_hdOopts :: EHCOpts
_hdOpatFldTyL :: ([(RelevTy,RelevTy)])
_hdOrvarMp :: RVarMp
_hdOwhatTo :: ([WhatToRelevInfer])
_tlOboundRelevTyVarS :: UIDS
_tlOdataGam :: DataGam
_tlOenv :: REnv
_tlOfinalRVarMp :: RVarMp
_tlOgUniq :: UID
_tlOknTy :: RelevTy
_tlOknTyCase :: RelevTy
_tlOlamMp :: LamMp
_tlOlev :: Int
_tlOopts :: EHCOpts
_tlOpatFldTyL :: ([(RelevTy,RelevTy)])
_tlOrvarMp :: RVarMp
_tlOwhatTo :: ([WhatToRelevInfer])
_hdIcTrf :: CPatFld
_hdIfldNmL :: ([HsName])
_hdIfvS :: FvS
_hdIgUniq :: UID
_hdInmL :: ([HsName])
_hdIoTrf :: CPatFld
_hdIpatFldTyL :: ([(RelevTy,RelevTy)])
_hdIqualS :: RelevQualS
_hdIrvarMp :: RVarMp
_tlIcTrf :: CPatFldL
_tlIfldNmL :: ([HsName])
_tlIfvS :: FvS
_tlIgUniq :: UID
_tlInmL :: ([HsName])
_tlIoTrf :: CPatFldL
_tlIpatFldTyL :: ([(RelevTy,RelevTy)])
_tlIqualS :: RelevQualS
_tlIrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
_lhsOfldNmL =
_hdIfldNmL ++ _tlIfldNmL
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
_hdIfvS `Set.union` _tlIfvS
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
_hdInmL ++ _tlInmL
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
_hdIqualS `Set.union` _tlIqualS
-- self rule
_cTrf =
(:) _hdIcTrf _tlIcTrf
-- self rule
_oTrf =
(:) _hdIoTrf _tlIoTrf
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (up)
_lhsOgUniq =
_tlIgUniq
-- copy rule (up)
_lhsOpatFldTyL =
_tlIpatFldTyL
-- copy rule (up)
_lhsOrvarMp =
_tlIrvarMp
-- copy rule (down)
_hdOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_hdOdataGam =
_lhsIdataGam
-- copy rule (down)
_hdOenv =
_lhsIenv
-- copy rule (down)
_hdOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (down)
_hdOgUniq =
_lhsIgUniq
-- copy rule (down)
_hdOknTy =
_lhsIknTy
-- copy rule (down)
_hdOknTyCase =
_lhsIknTyCase
-- copy rule (down)
_hdOlamMp =
_lhsIlamMp
-- copy rule (down)
_hdOlev =
_lhsIlev
-- copy rule (down)
_hdOopts =
_lhsIopts
-- copy rule (down)
_hdOpatFldTyL =
_lhsIpatFldTyL
-- copy rule (down)
_hdOrvarMp =
_lhsIrvarMp
-- copy rule (down)
_hdOwhatTo =
_lhsIwhatTo
-- copy rule (down)
_tlOboundRelevTyVarS =
_lhsIboundRelevTyVarS
-- copy rule (down)
_tlOdataGam =
_lhsIdataGam
-- copy rule (down)
_tlOenv =
_lhsIenv
-- copy rule (down)
_tlOfinalRVarMp =
_lhsIfinalRVarMp
-- copy rule (chain)
_tlOgUniq =
_hdIgUniq
-- copy rule (down)
_tlOknTy =
_lhsIknTy
-- copy rule (down)
_tlOknTyCase =
_lhsIknTyCase
-- copy rule (down)
_tlOlamMp =
_lhsIlamMp
-- copy rule (down)
_tlOlev =
_lhsIlev
-- copy rule (down)
_tlOopts =
_lhsIopts
-- copy rule (chain)
_tlOpatFldTyL =
_hdIpatFldTyL
-- copy rule (chain)
_tlOrvarMp =
_hdIrvarMp
-- copy rule (down)
_tlOwhatTo =
_lhsIwhatTo
( _hdIcTrf,_hdIfldNmL,_hdIfvS,_hdIgUniq,_hdInmL,_hdIoTrf,_hdIpatFldTyL,_hdIqualS,_hdIrvarMp) =
hd_ _hdOboundRelevTyVarS _hdOdataGam _hdOenv _hdOfinalRVarMp _hdOgUniq _hdOknTy _hdOknTyCase _hdOlamMp _hdOlev _hdOopts _hdOpatFldTyL _hdOrvarMp _hdOwhatTo
( _tlIcTrf,_tlIfldNmL,_tlIfvS,_tlIgUniq,_tlInmL,_tlIoTrf,_tlIpatFldTyL,_tlIqualS,_tlIrvarMp) =
tl_ _tlOboundRelevTyVarS _tlOdataGam _tlOenv _tlOfinalRVarMp _tlOgUniq _tlOknTy _tlOknTyCase _tlOlamMp _tlOlev _tlOopts _tlOpatFldTyL _tlOrvarMp _tlOwhatTo
in ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOnmL,_lhsOoTrf,_lhsOpatFldTyL,_lhsOqualS,_lhsOrvarMp)))
sem_CPatFldL_Nil :: T_CPatFldL
sem_CPatFldL_Nil =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIknTyCase
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIpatFldTyL
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfldNmL :: ([HsName])
_lhsOfvS :: FvS
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CPatFldL
_lhsOoTrf :: CPatFldL
_lhsOgUniq :: UID
_lhsOpatFldTyL :: ([(RelevTy,RelevTy)])
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonBindNm.ag"(line 25, column 41)
_lhsOfldNmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
[]
-- self rule
_oTrf =
[]
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOpatFldTyL =
_lhsIpatFldTyL
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfldNmL,_lhsOfvS,_lhsOgUniq,_lhsOnmL,_lhsOoTrf,_lhsOpatFldTyL,_lhsOqualS,_lhsOrvarMp)))
-- CPatRest ----------------------------------------------------
{-
visit 0:
inherited attributes:
boundRelevTyVarS : UIDS
dataGam : DataGam
env : REnv
finalRVarMp : RVarMp
knTy : RelevTy
knTyCase : RelevTy
lamMp : LamMp
lev : Int
opts : EHCOpts
whatTo : [WhatToRelevInfer]
chained attributes:
gUniq : UID
rvarMp : RVarMp
synthesized attributes:
cTrf : CPatRest
fvS : FvS
nmL : [HsName]
oTrf : CPatRest
qualS : RelevQualS
alternatives:
alternative Var:
child nm : {HsName}
visit 0:
local cTrf : _
local oTrf : _
alternative Empty:
visit 0:
local cTrf : _
local oTrf : _
-}
-- cata
sem_CPatRest :: CPatRest ->
T_CPatRest
sem_CPatRest (CPatRest_Var _nm) =
(sem_CPatRest_Var _nm)
sem_CPatRest (CPatRest_Empty) =
(sem_CPatRest_Empty)
-- semantic domain
type T_CPatRest = UIDS ->
DataGam ->
REnv ->
RVarMp ->
UID ->
RelevTy ->
RelevTy ->
LamMp ->
Int ->
EHCOpts ->
RVarMp ->
([WhatToRelevInfer]) ->
( CPatRest,FvS,UID,([HsName]),CPatRest,RelevQualS,RVarMp)
sem_CPatRest_Var :: HsName ->
T_CPatRest
sem_CPatRest_Var nm_ =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIknTyCase
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOnmL :: ([HsName])
_lhsOfvS :: FvS
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CPatRest
_lhsOoTrf :: CPatRest
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 25, column 17)
_lhsOnmL =
[nm_]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CPatRest_Var nm_
-- self rule
_oTrf =
CPatRest_Var nm_
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOnmL,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
sem_CPatRest_Empty :: T_CPatRest
sem_CPatRest_Empty =
(\ _lhsIboundRelevTyVarS
_lhsIdataGam
_lhsIenv
_lhsIfinalRVarMp
_lhsIgUniq
_lhsIknTy
_lhsIknTyCase
_lhsIlamMp
_lhsIlev
_lhsIopts
_lhsIrvarMp
_lhsIwhatTo ->
(let _lhsOfvS :: FvS
_lhsOnmL :: ([HsName])
_lhsOqualS :: RelevQualS
_lhsOcTrf :: CPatRest
_lhsOoTrf :: CPatRest
_lhsOgUniq :: UID
_lhsOrvarMp :: RVarMp
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 1, column 26)
_lhsOfvS =
Set.empty
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/CommonFv.ag"(line 16, column 31)
_lhsOnmL =
[]
-- use rule "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 418, column 28)
_lhsOqualS =
Set.empty
-- self rule
_cTrf =
CPatRest_Empty
-- self rule
_oTrf =
CPatRest_Empty
-- self rule
_lhsOcTrf =
_cTrf
-- self rule
_lhsOoTrf =
_oTrf
-- copy rule (chain)
_lhsOgUniq =
_lhsIgUniq
-- copy rule (chain)
_lhsOrvarMp =
_lhsIrvarMp
in ( _lhsOcTrf,_lhsOfvS,_lhsOgUniq,_lhsOnmL,_lhsOoTrf,_lhsOqualS,_lhsOrvarMp)))
-- CodeAGItf ---------------------------------------------------
{-
visit 0:
inherited attributes:
dataGam : DataGam
lamMp : LamMp
opts : EHCOpts
synthesized attributes:
cTrf : CModule
gathLamMp : LamMp
alternatives:
alternative AGItf:
child module : CModule
visit 0:
local gathLamMp : _
local whatTo : _
local howUnionGathLamInfo : _
local howMergeLamInfo : _
local gUniq : _
local env : _
local rvarMp : _
-}
-- cata
sem_CodeAGItf :: CodeAGItf ->
T_CodeAGItf
sem_CodeAGItf (CodeAGItf_AGItf _module) =
(sem_CodeAGItf_AGItf (sem_CModule _module))
-- semantic domain
type T_CodeAGItf = DataGam ->
LamMp ->
EHCOpts ->
( CModule,LamMp)
data Inh_CodeAGItf = Inh_CodeAGItf {dataGam_Inh_CodeAGItf :: !(DataGam),lamMp_Inh_CodeAGItf :: !(LamMp),opts_Inh_CodeAGItf :: !(EHCOpts)}
data Syn_CodeAGItf = Syn_CodeAGItf {cTrf_Syn_CodeAGItf :: !(CModule),gathLamMp_Syn_CodeAGItf :: !(LamMp)}
wrap_CodeAGItf :: T_CodeAGItf ->
Inh_CodeAGItf ->
Syn_CodeAGItf
wrap_CodeAGItf sem (Inh_CodeAGItf _lhsIdataGam _lhsIlamMp _lhsIopts) =
(let ( _lhsOcTrf,_lhsOgathLamMp) = sem _lhsIdataGam _lhsIlamMp _lhsIopts
in (Syn_CodeAGItf _lhsOcTrf _lhsOgathLamMp))
sem_CodeAGItf_AGItf :: T_CModule ->
T_CodeAGItf
sem_CodeAGItf_AGItf module_ =
(\ _lhsIdataGam
_lhsIlamMp
_lhsIopts ->
(let _moduleOlamMp :: LamMp
_moduleOlev :: Int
_moduleOfinalRVarMp :: RVarMp
_lhsOcTrf :: CModule
_lhsOgathLamMp :: LamMp
_moduleOdataGam :: DataGam
_moduleOenv :: REnv
_moduleOgUniq :: UID
_moduleOopts :: EHCOpts
_moduleOrvarMp :: RVarMp
_moduleOwhatTo :: ([WhatToRelevInfer])
_moduleIcTrf :: CModule
_moduleIfvS :: FvS
_moduleIgUniq :: UID
_moduleIgathLamMp :: LamMp
_moduleIqualS :: RelevQualS
_moduleIrvarMp :: RVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 15, column 17)
_gathLamMp =
lamMpMergeInto _howMergeLamInfo const _moduleIgathLamMp _lhsIlamMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonGathLamInfo.ag"(line 16, column 17)
_moduleOlamMp =
_howUnionGathLamInfo _lhsIlamMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/CommonLev.ag"(line 4, column 17)
_moduleOlev =
cLevModule
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 104, column 17)
_whatTo =
case optimizeOptionStictnessAnalysisQuant (ehcOptOptimizeOptionMp _lhsIopts) of
OptimizeOptionValue_StrictnessAnalysis_NoQuant -> [ ]
OptimizeOptionValue_StrictnessAnalysis_QuantInstantiate -> [ WhatToRelevInfer_Quant, WhatToRelevInfer_InstToBot ]
_ -> [ WhatToRelevInfer_Quant ]
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 110, column 17)
_howUnionGathLamInfo =
id
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 114, column 17)
_howMergeLamInfo =
(\(LamInfo {laminfoBindAspMp=m}) i -> i {laminfoBindAspMp = m `Map.union` laminfoBindAspMp i})
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 146, column 17)
_gUniq =
uidStart
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 153, column 17)
_env =
emptyGam
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 375, column 17)
_rvarMp =
emptyRVarMp
-- "build/103/lib-ehc/UHC/Light/Compiler/Core/Trf/AnaRelevance.ag"(line 402, column 17)
_moduleOfinalRVarMp =
_moduleIrvarMp
-- copy rule (up)
_lhsOcTrf =
_moduleIcTrf
-- copy rule (from local)
_lhsOgathLamMp =
_gathLamMp
-- copy rule (down)
_moduleOdataGam =
_lhsIdataGam
-- copy rule (from local)
_moduleOenv =
_env
-- copy rule (from local)
_moduleOgUniq =
_gUniq
-- copy rule (down)
_moduleOopts =
_lhsIopts
-- copy rule (from local)
_moduleOrvarMp =
_rvarMp
-- copy rule (from local)
_moduleOwhatTo =
_whatTo
( _moduleIcTrf,_moduleIfvS,_moduleIgUniq,_moduleIgathLamMp,_moduleIqualS,_moduleIrvarMp) =
module_ _moduleOdataGam _moduleOenv _moduleOfinalRVarMp _moduleOgUniq _moduleOlamMp _moduleOlev _moduleOopts _moduleOrvarMp _moduleOwhatTo
in ( _lhsOcTrf,_lhsOgathLamMp)))