packages feed

uhc-light-1.1.9.3: src/UHC/Light/Compiler/EH/MainAG_Expr.hs



module UHC.Light.Compiler.EH.MainAG_Expr where

import Data.Char
import Data.List as List
import UHC.Util.Pretty
import UHC.Light.Compiler.Base.Common
import UHC.Light.Compiler.Base.TermLike
import UHC.Light.Compiler.Base.HsName.Builtin
import UHC.Light.Compiler.Opts
import UHC.Light.Compiler.Gam.Full
import UHC.Light.Compiler.Error
import UHC.Light.Compiler.Error.Pretty
import UHC.Light.Compiler.EH
import UHC.Light.Compiler.Ty.Pretty
import UHC.Light.Compiler.Ty.FitsInCommon
import UHC.Light.Compiler.Ty.FitsIn
import qualified UHC.Util.FastSeq as Seq
import UHC.Util.Utils
import UHC.Light.Compiler.Base.Trace
import UHC.Light.Compiler.Base.UnderDev
import UHC.Light.Compiler.VarMp
import UHC.Light.Compiler.Substitutable
import Data.Maybe
import UHC.Light.Compiler.Ty.Utils1
import UHC.Light.Compiler.Ty.Trf.Quantify
import UHC.Light.Compiler.Ty.Trf.Instantiate
import UHC.Light.Compiler.Ty
import UHC.Light.Compiler.Ty.FitsInCommon2
import UHC.Light.Compiler.Ty.FIEnv2
import qualified Data.Set as Set
import qualified Data.Map as Map
import Data.Set (Set)
import Data.Map (Map)
import UHC.Light.Compiler.Ty.Trf.FreshVar
import UHC.Light.Compiler.Ty.Ftv
import UHC.Util.Utils (groupSortOn)
import Control.Applicative ((<|>))
import UHC.Light.Compiler.AbstractCore
import UHC.Light.Compiler.AbstractCore.Utils
import UHC.Light.Compiler.Core
import UHC.Light.Compiler.Core.FFI
import UHC.Light.Compiler.Core.Utils
import UHC.Light.Compiler.Core.Pretty
import UHC.Light.Compiler.Foreign.Extract
import UHC.Light.Compiler.LamInfo
import UHC.Light.Compiler.CodeGen.RefGenerator
import qualified UHC.Light.Compiler.Core.SysF.AsTy as SysF
import UHC.Light.Compiler.FinalEnv
import UHC.Light.Compiler.Core.BindExtract
import UHC.Light.Compiler.Core.Subst
import Control.Monad.State
import UHC.Light.Compiler.Ty.Utils2
import UHC.Light.Compiler.Base.Target
import UHC.Light.Compiler.Core.Coercion
import UHC.Light.Compiler.Ty.Trf.MergePreds
import UHC.Light.Compiler.Ty.Trf.Canonic
import UHC.Light.Compiler.Gam.ClGam
import UHC.Light.Compiler.Pred
import UHC.Light.Compiler.Pred.RedGraph (redPruneReductionsUntil)
import UHC.Util.CHR
import UHC.Light.Compiler.CHR.Constraint
import UHC.Light.Compiler.CHR.Guard
import UHC.Light.Compiler.Pred.ToCHR
import UHC.Light.Compiler.Pred.Heuristics
import UHC.Light.Compiler.Pred.Evidence
import UHC.Light.Compiler.CHR.Solve
import UHC.Light.Compiler.Pred.EvidenceToCore
import UHC.Light.Compiler.Gam.ClassDefaultGam
import UHC.Light.Compiler.Ty.Trf.BetaReduce (tyBetaRedFull)
import UHC.Light.Compiler.Module.ImportExport
import UHC.Light.Compiler.Ty.UsedNames
import UHC.Light.Compiler.CodeGen.ImportUsedModules
import UHC.Light.Compiler.CodeGen.ModuleImportExportImpl
import UHC.Light.Compiler.CodeGen.BuiltinPrims
import UHC.Light.Compiler.Foreign
import UHC.Light.Compiler.Foreign
import UHC.Light.Compiler.Foreign.Pretty
import UHC.Light.Compiler.Deriving
import UHC.Light.Compiler.Generics
import UHC.Light.Compiler.VarMp.Utils

import UHC.Light.Compiler.EH.MainAG_common

-- Expr --------------------------------------------------------
{-
   visit 0:
      synthesized attribute:
         range                : Range
   visit 1:
      chained attribute:
         gUniq                : UID
      synthesized attribute:
         hasInstDecl          : Bool
   visit 2:
      inherited attributes:
         isFirstLet           : Bool
         kiGam                : KiGam
         lexLev               : Int
      chained attribute:
         predSameScopeCounter : Int
   visit 3:
      inherited attributes:
         opts                 : EHCOpts
         polGam               : PolGam
         predScope            : PredScope
         tyGam                : TyGam
         tyKiGam              : TyKiGam
         tyKiGlobFreeTvarS    : TyVarIdS
      chained attributes:
         generDataInfoMp      : GenerDataInfoMp
         kiVarMp              : VarMp
         polVarMp             : VarMp
   visit 4:
      inherited attributes:
         clGam                : ClGam
         finKiVarMp           : VarMp
         finTyKiGam           : TyKiGam
         tyTyTySigFreeTvarS   : TyVarIdS
      chained attribute:
         gathDataGam          : DataGam
   visit 5:
      inherited attribute:
         dataGam              : DataGam
      synthesized attributes:
         chrClassDeclSq       : Seq.FastSeq (CHRClassDecl)
         chrFIIn              : FIIn
         chrInstDeclSq        : Seq.FastSeq (CHRScopedInstanceDecl)
         gathClDfGam          : ClassDefaultGam
   visit 6:
      inherited attributes:
         chrStore             : CHRStore
         clDfGam              : ClassDefaultGam
         fiOpts               : FIOpts
         knTy                 : Ty
         tvKiVarMp            : VarMp
         tyTyGlobFreeTvarS    : TyVarIdS
         valGam               : ValGam
         valTyGlobFreeTvarS   : TyVarIdS
      chained attribute:
         tyVarMp              : VarMp
      synthesized attributes:
         gathCnstrMp          : ConstraintToInfoMap
         gathRangeMp          : RangeMp
         gathValGam           : ValGam
         noLetQuantTyVarIdS   : TyVarIdS
         ty                   : Ty
   visit 7:
      inherited attributes:
         chrEvidBindMp        : EvidKeyToCBindMap
         chrScopeBindMp       : PredScopeToCBindMap
         exprCtxt             : ExprCtxt
         finTyVarMp           : VarMp
         finValGam            : ValGam
         moduleNm             : HsName
         rangeMp              : RangeMp
         sysfEnv              : ToSysfEnv
         tr                   : TraceOn -> [PP_Doc] -> TrPP
      chained attribute:
         cSubst               : CSubst
      synthesized attributes:
         allErrSq             : ErrSq
         appArgCoeL           : [Coe]
         appArgPPL            : [PP_Doc]
         appFunCExpr          : CExpr
         appFunNm             : HsName
         appFunPP             : PP_Doc
         backCBindL           : [(CBindCateg,CBindL)]
         caseFailS            : UIDS
         cexpr                : CExpr
         errSq                : ErrSq
         frontCBindL          : [(CBindCateg,CBindL)]
         fuCExprL             : FieldUpdateL CExpr
         gathClGam            : ClGam
         gathHiddenExports    : Seq.Seq (HsName,IdOccKind)
         gathKiGam            : KiGam
         gathLamMp            : LamMp
         gathMentrelFilterMp  : ModEntRelFilterMp
         gathPolGam           : PolGam
         gathTvKiVarMp        : VarMp
         gathTyGam            : TyGam
         gathTyKiGam          : TyKiGam
         isNewtype            : Bool
         lamArgPPL            : [PP_Doc]
         lamBodyPP            : PP_Doc
         letCBody             : CExpr
         letTyCBindL          : [(CBindCateg,CBindL)]
         letValCBindL         : [(CBindCateg,CBindL)]
         letValMainCBindL     : CBindL
         orphanS              : Set.Set HsName
         pp                   : PP_Doc
         ppAST                : PP_Doc
         trpp                 : TrPP
   alternatives:
      alternative IConst:
         child hsrange        : {Range}
         child int            : {Int}
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup63      : _
            intra range       : {Range}
         visit 2:
            intra range       : {Range}
            intra _tup63      : _
         visit 3:
            intra range       : {Range}
            intra _tup63      : _
         visit 4:
            intra range       : {Range}
            intra _tup63      : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra _tup63      : _
         visit 6:
            local lUniq       : {UID}
            local constTy     : {Ty}
            local fo_         : {FIOut}
            local hereCnstrMp : _
            local ty          : {Ty}
            local tyVarMp     : {VarMp}
            intra _tup63      : _
            intra fe          : {FIEnv}
            intra range       : {Range}
         visit 7:
            local lUniq_cexpr : {UID}
            local cexprBase   : _
            local _tup62      : _
            local cexpr       : _
            local pp          : _
            local cexprCSubst : _
            local lamArgPPL   : _
            local lamBodyPP   : _
            local trppHere    : _
            intra _tup63      : _
            intra fo_         : {FIOut}
            intra range       : {Range}
      alternative CConst:
         child hsrange        : {Range}
         child char           : {Char}
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup65      : _
            intra range       : {Range}
         visit 2:
            intra range       : {Range}
            intra _tup65      : _
         visit 3:
            intra range       : {Range}
            intra _tup65      : _
         visit 4:
            intra range       : {Range}
            intra _tup65      : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra _tup65      : _
         visit 6:
            local lUniq       : {UID}
            local constTy     : {Ty}
            local fo_         : {FIOut}
            local hereCnstrMp : _
            local ty          : {Ty}
            local tyVarMp     : {VarMp}
            intra _tup65      : _
            intra fe          : {FIEnv}
            intra range       : {Range}
         visit 7:
            local lUniq_cexpr : {UID}
            local cexprBase   : _
            local _tup64      : _
            local cexpr       : _
            local pp          : _
            local cexprCSubst : _
            local lamArgPPL   : _
            local lamBodyPP   : _
            local trppHere    : _
            intra _tup65      : _
            intra fo_         : {FIOut}
            intra range       : {Range}
      alternative Con:
         child hsrange        : {Range}
         child nm             : {HsName}
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup69      : _
            intra range       : {Range}
         visit 2:
            intra range       : {Range}
            intra _tup69      : _
         visit 3:
            intra range       : {Range}
            intra _tup69      : _
         visit 4:
            intra range       : {Range}
            intra _tup69      : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra _tup69      : _
         visit 6:
            local lUniq       : {UID}
            local _tup68      : _
            local ty_g_       : {Ty}
            local doFit       : {DoFit}
            local fo_         : {FIOut}
            local hereCnstrMp : _
            local ty          : {Ty}
            local tyVarMp     : {VarMp}
            intra _tup69      : _
            intra fe          : {FIEnv}
            intra range       : {Range}
         visit 7:
            local lUniq_cexpr : {UID}
            local cexprBase   : _
            local _tup66      : _
            local cexpr       : _
            local pp          : _
            local cexprCSubst : _
            local nmErrs      : {ErrL}
            local finalTy     : _
            local gathMentrelFilterMp : _
            local _tup67      : _
            local dgi         : {DataGamInfo}
            local isNewtype   : _
            local lamArgPPL   : _
            local lamBodyPP   : _
            local trppHere    : _
            intra _tup69      : _
            intra fo_         : {FIOut}
            intra _tup68      : _
            intra range       : {Range}
            intra ty          : {Ty}
      alternative Var:
         child hsrange        : {Range}
         child nm             : {HsName}
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup72      : _
            intra range       : {Range}
         visit 2:
            intra range       : {Range}
            intra _tup72      : _
         visit 3:
            intra range       : {Range}
            intra _tup72      : _
         visit 4:
            intra range       : {Range}
            intra _tup72      : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra _tup72      : _
         visit 6:
            local lUniq       : {UID}
            local _tup71      : _
            local ty_g_       : {Ty}
            local doFit       : {DoFit}
            local fo_         : {FIOut}
            local hereCnstrMp : _
            local ty          : {Ty}
            local tyVarMp     : {VarMp}
            intra _tup72      : _
            intra fe          : {FIEnv}
            intra range       : {Range}
         visit 7:
            local lUniq_cexpr : {UID}
            local cexprBase   : _
            local _tup70      : _
            local cexpr       : _
            local pp          : _
            local cexprCSubst : _
            local nmErrs      : {ErrL}
            local finalTy     : _
            local gathMentrelFilterMp : _
            local lamArgPPL   : _
            local lamBodyPP   : _
            local trppHere    : _
            intra _tup72      : _
            intra fo_         : {FIOut}
            intra _tup71      : _
            intra range       : {Range}
            intra ty          : {Ty}
      alternative App:
         child hsrange        : {Range}
         child func           : Expr 
         child arg            : Expr 
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup80      : _
            intra range       : {Range}
         visit 2:
            local isFirstLet  : _
            intra range       : {Range}
            intra _tup80      : _
         visit 3:
            local predScope   : {PredScope}
            intra range       : {Range}
            intra _tup80      : _
         visit 4:
            intra range       : {Range}
            intra _tup80      : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra _tup80      : _
         visit 6:
            local lUniq       : {UID}
            local _tup78      : _
            local knFunTy     : _
            local argTy       : _
            local imTy        : {Ty}
            local argFIOpts   : _
            local _tup79      : _
            local prOccL      : {[PredOcc]}
            local hereCnstrMp : _
            local ty          : {Ty}
            local lUniq3      : {UID}
            local implsTl     : {Impls}
            local imPrvOcc    : {ImplsProveOcc}
            local _tup73      : _
            local prvOccTlVarMp : _
            local tyVarMpApp  : {VarMp}
            intra _tup80      : _
            intra range       : {Range}
         visit 7:
            local exprCtxt    : _
            local appImplsCoeL : _
            local _tup75      : _
            local _tup76      : _
            local lUniq_cexpr : {UID}
            local _tup74      : _
            local cexprappCSubst : _
            local cexprapp    : _
            local cexpr       : _
            local pp          : _
            local lamArgPPL   : _
            local lamBodyPP   : _
            local trppHere    : _
            intra imPrvOcc    : {ImplsProveOcc}
            intra prOccL      : {[PredOcc]}
            intra _tup80      : _
            intra range       : {Range}
      alternative Let:
         child hsrange        : {Range}
         child isStrict       : {Bool}
         child decls          : Decls 
         child body           : Expr 
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup114     : _
            local hasInstDecl : {Bool}
            intra range       : {Range}
         visit 2:
            local lexLev      : {Int}
            local lexLevIsGlobal : _
            local mustEnterNewPredScope : {Bool}
            local _tup94      : _
            local isFirstLet  : _
            local predSameScopeCounterLet : _
            intra hasInstDecl : {Bool}
            intra _tup114     : _
            intra range       : {Range}
         visit 3:
            local predScope   : {PredScope}
            local _tup108     : _
            local tyGam_l_    : {TyGam}
            local _tup109     : _
            local tyKiGam_l_  : {TyKiGam}
            local lUniq3      : {UID}
            local fe          : {FIEnv}
            local _tup83      : _
            local polGam_l    : {PolGam}
            local _tup84      : _
            local polVarMpCyc : {VarMp}
            local _tup85      : _
            local polOkCyc    : {AssocL UID Polarity}
            local polInvVarMp : _
            local lSubsPolGam1 : {PolGam}
            local lSubsPolGam2 : _
            local finGathPolGam : {PolGam}
            local generPolGam : _
            local extraPolGam : _
            local tyKiUpdFreeTvarS : _
            local gKiTvS      : _
            local _tup111     : _
            local quTyKiVarMp : {VarMp}
            local bodyTyKiVarMp1 : _
            local lQuTyKiGam_qu : {TyKiGam}
            local _tup112     : _
            local lQuTyKiGam_ex : {TyKiGam}
            local _tup81      : _
            local generDataTyAndConNmLL : _
            local generDataTyAndConNmL : {[HsName]}
            local generTyKiGam : _
            local extraTyKiGam : _
            local generDataAllTyOrigNmL : _
            local generTySynProjL : {[GenerTySynProjInfo]}
            local generTyGam  : _
            local extraTyGam  : _
            local tyGam_l_extra : {TyGam}
            local lQuTyGam    : {TyGam}
            local exTyKiVarMp2 : {VarMp}
            local bodyTyKiVarMp2 : {VarMp}
            local lQuTyKiGam_ex_extra : {TyKiGam}
            local lQuTyKiGam_ex_subst : {TyKiGam}
            local lQuTyKiGam  : {TyKiGam}
            local tyKiGam_g_  : _
            local gSubsTyKiGam : {TyKiGam}
            local tyGam_g_    : _
            local finGathPolGam_extra : {PolGam}
            intra mustEnterNewPredScope : {Bool}
            intra _tup114     : _
            intra range       : {Range}
         visit 4:
            local finTyKiGam  : {TyKiGam}
            local generDataGam : _
            local extraDataGam : _
            local _tup113     : _
            local lClGam      : {ClGam}
            local lClGamNoDups : {ClGam}
            local forBodyClGam : _
            local forDeclsClGam : {ClGam}
            local gathNewDataGam : _
            local gathBodyDataGam : {DataGam}
            intra tyKiGam_l_  : {TyKiGam}
            intra generDataTyAndConNmL : {[HsName]}
            intra lQuTyGam    : {TyGam}
            intra _tup114     : _
            intra generTySynProjL : {[GenerTySynProjInfo]}
            intra fe          : {FIEnv}
            intra tyGam_l_    : {TyGam}
            intra predScope   : {PredScope}
            intra range       : {Range}
            intra _tup111     : _
            intra _tup85      : _
            intra lQuTyKiGam_ex_subst : {TyKiGam}
            intra finGathPolGam_extra : {PolGam}
         visit 5:
            local chrClassDeclSq : _
            local chrFIIn     : {FIIn}
            local lUniq_92_prTyMeta : {UID}
            local _tup82      : _
            local generInstDeclL : {[CHRScopedInstanceDecl]}
            intra _tup114     : _
            intra generTySynProjL : {[GenerTySynProjInfo]}
            intra fe          : {FIEnv}
            intra tyGam_l_    : {TyGam}
            intra finTyKiGam  : {TyKiGam}
            intra predScope   : {PredScope}
            intra range       : {Range}
            intra lQuTyGam    : {TyGam}
            intra forBodyClGam : _
            intra _tup111     : _
            intra forDeclsClGam : {ClGam}
            intra _tup85      : _
            intra lQuTyKiGam_ex_subst : {TyKiGam}
            intra lClGamNoDups : {ClGam}
            intra gathNewDataGam : _
            intra finGathPolGam_extra : {PolGam}
         visit 6:
            local lUniq_freshKnTy : {UID}
            local _tup100     : _
            local knTopTy     : _
            local knTy        : {Ty}
            local lUniq_fit   : {UID}
            local lUniq5      : {UID}
            local lUniq2      : {UID}
            local lUniq       : {UID}
            local _tup103     : _
            local exTyVarMp1  : {VarMp}
            local gathTySigGam_l_ : _
            local tyVarMpDeclsUpd : _
            local resTy       : {Ty}
            local doFit       : {DoFit}
            local foKnRes     : {FIOut}
            local patTyVarMpDeclsUpd : _
            local _tup101     : _
            local valGam_l_   : {ValGam}
            local tyVarMpDeclsL0 : {VarMp}
            local gathTvKiVarMp1 : {VarMp}
            local quTvKiVarMp : {VarMp}
            local tyVarMpDeclsL01 : {VarMp}
            local valQuTyKiGam : {TyKiGam}
            local tyTyUpdFreeTvarS : _
            local valTyUpdFreeTvarS : _
            local gTyTvS      : {TyVarIdS}
            local noLetQuantTyVarIdS : {TyVarIdS}
            local doValGamQuantify : _
            local doPredAmbigSplitForSimplify : _
            local toProveCnstrMp : _
            local _tup86      : _
            local toProveHereCnstrMp : _
            local chrProveFIIn : {FIIn}
            local _tup87      : _
            local chrSolve1SimpTyVarMp : {VarMp}
            local tyVarMpDeclsQuant : {VarMp}
            local chrSolve1RemCnstrMp : _
            local _tup89      : _
            local toAssumeNeverCnstrMp : _
            local cannotRes1CnstrMp : _
            local cannotProveCnstrMp : _
            local toQuantOverPrOccL : {[PredOcc]}
            local _tup106     : _
            local _tup107     : _
            local tqoGam      : {TQOGam}
            local tmpoTyVarMp : _
            local quTyVarMp   : {VarMp}
            local quValGam_qu_ : {ValGam}
            local _tup105     : _
            local exTyVarMp2  : _
            local bodyVarMp1  : _
            local bodyVarMp2  : {VarMp}
            local quValGam_ex_ : {ValGam}
            local quValGam_   : _
            local valGam_g_   : _
            local gSubsValGam_ : {ValGam}
            local bodyValGam  : {ValGam}
            local imTy        : {Ty}
            local imSubsTy    : {Ty}
            local _tup95      : _
            local knPrL       : {[PredOcc]}
            local toProveElsewhereCnstrMp : _
            local quValGam_ex_subst : {ValGam}
            local gathTvKiVarMp2 : {VarMp}
            local tyTyGlobFreeTvarSbody : _
            local hereCnstrMp : _
            local gathCnstrMp : _
            local finValGamDecls : {ValGam}
            local gathValGam  : {ValGam}
            local ty          : {Ty}
            intra _tup114     : _
            intra fe          : {FIEnv}
            intra tyGam_l_    : {TyGam}
            intra finTyKiGam  : {TyKiGam}
            intra predScope   : {PredScope}
            intra chrFIIn     : {FIIn}
            intra range       : {Range}
            intra lQuTyGam    : {TyGam}
            intra forBodyClGam : _
            intra _tup111     : _
            intra _tup82      : _
            intra forDeclsClGam : {ClGam}
            intra _tup85      : _
            intra lQuTyKiGam_ex_subst : {TyKiGam}
            intra lClGamNoDups : {ClGam}
            intra gathNewDataGam : _
            intra finGathPolGam_extra : {PolGam}
         visit 7:
            local sysfEnv     : _
            local finValGam   : {ValGam}
            local finTyVarMp  : _
            local exprCtxt    : _
            local lUniq_gener : {UID}
            local lUniq6      : {UID}
            local lUniq4      : {UID}
            local rceEnv      : _
            local cycTyKiVarMp_l : {VarMp}
            local cycTyVarMp_l : {VarMp}
            local predAmbigErrs : _
            local predNotPrfErrs : _
            local occCycTyKiErrs : _
            local occCycTyErrs : _
            local dupErrs     : _
            local generInstInfoL : {[GenerDataInstInfo]}
            local _tup99      : _
            local errsDataGenerBind : _
            local _tup92      : _
            local quantCnstrMp : _
            local secondProofIsNeeded : _
            local chrSolve1EvidCoreMp : {EvidKeyToCExprMap}
            local chrSolve1ScopeBindMp : {PredScopeToCBindMap}
            local chrSolve1EvidBindMp : {EvidKeyToCBindMap}
            local chrSolve1EvidCBindL : _
            local chrSolve1EvidMp : {InfoToEvidenceMap}
            local chrSimplifyResult1 : {SimplifyResult}
            local toProveHereCnstrMpCanon : _
            local _tup90      : _
            local chrSolve2Errs : _
            local chrSolve1Errs : {ErrL}
            local polErrCyc   : {AssocL UID Polarity}
            local cycVarMp    : {VarMp}
            local cycErrSq    : _
            local letErrL     : _
            local chrSolve2ScopeBindMp : _
            local chrSolveScopeBindMp : _
            local chrLetScopeBindMp : _
            local _tup93      : _
            local chrScopeBindMp : _
            local chrSolve2EvidBindMp : _
            local chrSolveEvidBindMp : _
            local chrEvidBindMp : _
            local coeArgIdMp  : _
            local prvArgCSubst : _
            local lUniq_cexpr : {UID}
            local knImplsTl   : {Impls}
            local impls2KnTl  : _
            local impls2KnHd  : _
            local impls2KnHdTl : _
            local poiPrL      : _
            local finKnImplsL : _
            local finKnImplsLExpanded : _
            local cDataGenerBindL : _
            local _tup97      : _
            local dataValCBindL : _
            local chrScopeBindL : _
            local letCBindOtherL : _
            local howToBind   : _
            local chrSolve2EvidCBindL : _
            local letValCBindL : _
            local _tup98      : _
            local letCBody    : _
            local letCBindRemL : _
            local poiL        : _
            local poiAndAcoreTyL : _
            local chrAssumeBindL : _
            local poiBindL    : _
            local lamArgCoeL  : {[Coe]}
            local cann        : _
            local cSubstTop   : _
            local mkBangEval  : _
            local cexprtop    : _
            local _tup96      : _
            local cexpr       : _
            local errLetPP    : _
            local extraPP     : _
            local pp          : _
            local backCBindL  : _
            local cexprapptopCSubst : _
            local frontCBindL : _
            local chrSimplifyResult2 : _
            local gathMentrelFilterMp : _
            local lamArgPPL   : _
            local lamBodyPP   : _
            local dataTyCBindL : _
            local letTyCBindL : _
            local letCBindMainL : _
            local trppHere    : _
            intra forBodyClGam : _
            intra finTyKiGam  : {TyKiGam}
            intra gathValGam  : {ValGam}
            intra _tup114     : _
            intra bodyValGam  : {ValGam}
            intra _tup111     : _
            intra _tup107     : _
            intra valGam_l_   : {ValGam}
            intra tyVarMpDeclsL0 : {VarMp}
            intra quValGam_ex_subst : {ValGam}
            intra range       : {Range}
            intra toQuantOverPrOccL : {[PredOcc]}
            intra tqoGam      : {TQOGam}
            intra cannotProveCnstrMp : _
            intra _tup82      : _
            intra forDeclsClGam : {ClGam}
            intra predScope   : {PredScope}
            intra _tup87      : _
            intra chrSolve1RemCnstrMp : _
            intra chrProveFIIn : {FIIn}
            intra _tup85      : _
            intra tmpoTyVarMp : _
            intra _tup95      : _
            intra imSubsTy    : {Ty}
            intra fe          : {FIEnv}
            intra finValGamDecls : {ValGam}
            intra lQuTyGam    : {TyGam}
            intra lQuTyKiGam_ex_subst : {TyKiGam}
            intra lClGamNoDups : {ClGam}
            intra gathNewDataGam : _
            intra finGathPolGam_extra : {PolGam}
      alternative Lam:
         child hsrange        : {Range}
         child arg            : PatExpr 
         child body           : Expr 
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup123     : _
            intra range       : {Range}
         visit 2:
            local lexLev      : {Int}
            local isFirstLet  : _
            local mustEnterNewPredScope : {Bool}
            local _tup116     : _
            local predSameScopeCounterLam : _
            intra range       : {Range}
            intra _tup123     : _
         visit 3:
            local predScope   : {PredScope}
            intra mustEnterNewPredScope : {Bool}
            intra lexLev      : {Int}
            intra range       : {Range}
            intra _tup123     : _
         visit 4:
            intra range       : {Range}
            intra predScope   : {PredScope}
            intra _tup123     : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra predScope   : {PredScope}
            intra _tup123     : _
         visit 6:
            local tySigGam    : {ValGam}
            local lUniq2      : {UID}
            local lUniq       : {UID}
            local _tup121     : _
            local funTy       : {Ty}
            local argTy       : _
            local doFit       : {DoFit}
            local lamKnTyVarMp : _
            local knFunFIOpts : {FIOpts}
            local fo_fitF_    : {FIOut}
            local forArgTyVarMp : _
            local resTy       : {Ty}
            local imTy        : {Ty}
            local imSubsTy    : {Ty}
            local _tup117     : _
            local knPrL       : {[PredOcc]}
            local hereCnstrMp : _
            local _tup122     : _
            local knImpls     : {TyL}
            local ty          : {Ty}
            intra _tup123     : _
            intra fe          : {FIEnv}
            intra predScope   : {PredScope}
            intra range       : {Range}
         visit 7:
            local _tup115     : _
            local chrScopeBindMp : _
            local tySigVarMp  : _
            local lUniq_cexpr : {UID}
            local rceEnv      : _
            local knImplsTl   : {Impls}
            local impls2KnTl  : _
            local impls2KnHd  : _
            local impls2KnHdTl : _
            local poiPrL      : _
            local finKnImplsL : _
            local finKnImplsLExpanded : _
            local finalTyArg  : _
            local finalTyArgExpanded : _
            local poiL        : _
            local poiAndAcoreTyL : _
            local sysftyLamArg : _
            local acoretyArg  : _
            local chrAssumeBindL : _
            local chrScopeBindL : _
            local poiBindL    : _
            local lamArgCoeL  : {[Coe]}
            local lamBodyCoeL : _
            local _tup118     : _
            local cexpr       : _
            local argPP       : _
            local lamArgPPL   : _
            local pp          : _
            local cexprlamCSubst : _
            local trppHere    : _
            intra predScope   : {PredScope}
            intra _tup123     : _
            intra _tup117     : _
            intra imSubsTy    : {Ty}
            intra fe          : {FIEnv}
            intra fo_fitF_    : {FIOut}
            intra range       : {Range}
      alternative AppTop:
         child hsrange        : {Range}
         child expr           : Expr 
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup130     : _
            intra range       : {Range}
         visit 2:
            local isFirstLet  : _
            local mustEnterNewPredScope : {Bool}
            local _tup125     : _
            local predSameScopeCounterTop : _
            intra range       : {Range}
            intra _tup130     : _
         visit 3:
            local predScope   : {PredScope}
            intra mustEnterNewPredScope : {Bool}
            intra range       : {Range}
            intra _tup130     : _
         visit 4:
            intra range       : {Range}
            intra predScope   : {PredScope}
            intra _tup130     : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra predScope   : {PredScope}
            intra _tup130     : _
         visit 6:
            local lUniq_freshKnTy : {UID}
            local _tup129     : _
            local knTopTy     : _
            local knTy        : {Ty}
            local lUniq_fit   : {UID}
            local resTy       : {Ty}
            local doFit       : {DoFit}
            local foKnRes     : {FIOut}
            local forExprTyVarMp : _
            local imTy        : {Ty}
            local imSubsTy    : {Ty}
            local _tup126     : _
            local knPrL       : {[PredOcc]}
            local hereCnstrMp : _
            local ty          : {Ty}
            intra _tup130     : _
            intra fe          : {FIEnv}
            intra predScope   : {PredScope}
            intra range       : {Range}
         visit 7:
            local exprCtxt    : _
            local _tup124     : _
            local chrScopeBindMp : _
            local lUniq_cexpr : {UID}
            local knImplsTl   : {Impls}
            local impls2KnTl  : _
            local impls2KnHd  : _
            local impls2KnHdTl : _
            local poiPrL      : _
            local finKnImplsL : _
            local finKnImplsLExpanded : _
            local finalTy     : _
            local finalTyExpanded : _
            local poiL        : _
            local poiAndAcoreTyL : _
            local chrAssumeBindL : _
            local chrScopeBindL : _
            local poiBindL    : _
            local lamArgCoeL  : {[Coe]}
            local cann        : _
            local cSubstTop   : _
            local cexprtop    : _
            local _tup127     : _
            local cexpr       : _
            local _tup128     : _
            local pp          : _
            local cexprapptopCSubst : _
            local lamArgPPL   : _
            local lamBodyPP   : _
            local trppHere    : _
            intra predScope   : {PredScope}
            intra _tup130     : _
            intra _tup126     : _
            intra imSubsTy    : {Ty}
            intra fe          : {FIEnv}
            intra ty          : {Ty}
            intra range       : {Range}
      alternative Parens:
         child hsrange        : {Range}
         child expr           : Expr 
         visit 0:
            local range       : {Range}
         visit 1:
            intra range       : {Range}
         visit 2:
            local isFirstLet  : _
            intra range       : {Range}
         visit 3:
            local predScope   : {PredScope}
            intra range       : {Range}
         visit 4:
            intra range       : {Range}
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
         visit 7:
            local cexpr       : _
            local pp          : _
            local lamArgPPL   : _
            local lamBodyPP   : _
            local trppHere    : _
      alternative TypeAs:
         child hsrange        : {Range}
         child isScoped       : {Bool}
         child tyExpr         : TyExpr 
         child expr           : Expr 
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup132     : _
            intra range       : {Range}
         visit 2:
            local isFirstLet  : _
            intra range       : {Range}
            intra _tup132     : _
         visit 3:
            local predScope   : {PredScope}
            intra range       : {Range}
            intra _tup132     : _
         visit 4:
            intra range       : {Range}
            intra _tup132     : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra _tup132     : _
         visit 6:
            local lUniq       : {UID}
            local fo_fitDown  : {FIOut}
            local tyVarWildS  : _
            local tyTyUpdFreeTvarS : _
            local valTyUpdFreeTvarS : _
            local gTyTvS      : {TyVarIdS}
            local tyTy        : _
            local ty_q_       : {Ty}
            local knTyFIOpts  : {FIOpts}
            local fo_         : {FIOut}
            local ty_q_2_VarMp : {VarMp}
            local knTyDown    : {Ty}
            local hereCnstrMp : _
            intra _tup132     : _
            intra fe          : {FIEnv}
            intra range       : {Range}
         visit 7:
            local exprCtxt    : _
            local lUniq_cexpr : {UID}
            local _tup131     : _
            local cexpr       : _
            local pp          : _
            local cexprtypeasCSubst : _
            local lamArgPPL   : _
            local lamBodyPP   : _
            local trppHere    : _
            intra _tup132     : _
            intra fo_         : {FIOut}
            intra fo_fitDown  : {FIOut}
            intra range       : {Range}
      alternative Ann:
         child hsrange        : {Range}
         child ann            : ExprAnn 
         child expr           : Expr 
         visit 0:
            local range       : {Range}
         visit 1:
            intra range       : {Range}
         visit 2:
            local isFirstLet  : _
            intra range       : {Range}
         visit 3:
            local predScope   : {PredScope}
            intra range       : {Range}
         visit 4:
            intra range       : {Range}
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
         visit 7:
            local exprCtxt    : _
            local cexpr       : _
            local pp          : _
            local lamArgPPL   : _
            local lamBodyPP   : _
      alternative AppImpred:
         child hsrange        : {Range}
         child func           : Expr 
         child arg            : Expr 
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup139     : _
            intra range       : {Range}
         visit 2:
            local isFirstLet  : _
            intra range       : {Range}
            intra _tup139     : _
         visit 3:
            local predScope   : {PredScope}
            intra range       : {Range}
            intra _tup139     : _
         visit 4:
            intra range       : {Range}
            intra _tup139     : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra _tup139     : _
         visit 6:
            local lUniq       : {UID}
            local _tup137     : _
            local knFunTy     : _
            local argTy       : _
            local argFIOpts   : _
            local ty          : {Ty}
            local lUniq3      : {UID}
            local imTy        : {Ty}
            local _tup138     : _
            local implsTl     : {Impls}
            local imPrvOcc    : {ImplsProveOcc}
            local _tup133     : _
            local prvOccTlVarMp : _
            local tyVarMpApp  : {VarMp}
            intra _tup139     : _
         visit 7:
            local exprCtxt    : _
            local prOccL      : {[PredOcc]}
            local appImplsCoeL : _
            local _tup135     : _
            local argPP       : _
            local lUniq_cexpr : {UID}
            local _tup134     : _
            local cexprappCSubst : _
            local cexprapp    : _
            local cexpr       : _
            local lamArgPPL   : _
            local pp          : _
            local lamBodyPP   : _
            local trppHere    : _
            intra _tup138     : _
            intra imPrvOcc    : {ImplsProveOcc}
            intra _tup139     : _
      alternative SConst:
         child hsrange        : {Range}
         child str            : {String}
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup141     : _
            intra range       : {Range}
         visit 2:
            intra range       : {Range}
            intra _tup141     : _
         visit 3:
            intra range       : {Range}
            intra _tup141     : _
         visit 4:
            intra range       : {Range}
            intra _tup141     : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra _tup141     : _
         visit 6:
            local lUniq       : {UID}
            local constTy     : {Ty}
            local fo_         : {FIOut}
            local ty          : {Ty}
            local tyVarMp     : {VarMp}
            intra _tup141     : _
            intra fe          : {FIEnv}
            intra range       : {Range}
         visit 7:
            local lUniq_cexpr : {UID}
            local cexprBase   : _
            local _tup140     : _
            local cexpr       : _
            local pp          : _
            local cexprCSubst : _
            local lamArgPPL   : _
            local lamBodyPP   : _
            local trppHere    : _
            intra _tup141     : _
            intra fo_         : {FIOut}
            intra range       : {Range}
      alternative Case:
         child hsrange        : {Range}
         child expr           : Expr 
         child alts           : CaseAlts 
         child mbCaseIds      : {Maybe UIDS}
         child caseFailS      : {UIDS}
         child isTupOfArg     : {Bool}
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup142     : _
            intra range       : {Range}
         visit 2:
            local isFirstLet  : _
            intra range       : {Range}
            intra _tup142     : _
         visit 3:
            local predScope   : {PredScope}
            intra range       : {Range}
            intra _tup142     : _
         visit 4:
            intra range       : {Range}
            intra _tup142     : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra _tup142     : _
         visit 6:
            local lUniq2      : {UID}
            local exprFiOpts  : {FIOpts}
            local altsFiOpts  : {FIOpts}
            intra _tup142     : _
            intra fe          : {FIEnv}
         visit 7:
            local exprCtxt    : _
            local caseIds     : _
            local rceEnv      : _
            local finalTyExpr : _
            local finalTyExprExpanded : _
            local sysfty      : _
            local acorety     : _
            local cexpr       : _
            local extraPP     : _
            local pp          : _
            local lamArgPPL   : _
            local lamBodyPP   : _
            local trppHere    : _
            intra fe          : {FIEnv}
            intra lUniq2      : {UID}
      alternative DataFields:
         child hsrange        : {Range}
         child dataFieldExpr  : DataFieldExpr 
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup145     : _
            intra range       : {Range}
         visit 2:
            intra range       : {Range}
            intra _tup145     : _
         visit 3:
            local predScope   : {PredScope}
            intra range       : {Range}
            intra _tup145     : _
         visit 4:
            intra range       : {Range}
            intra _tup145     : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra _tup145     : _
         visit 6:
            local fldFIOpts   : _
            local lUniq       : {UID}
            local fldL        : {[HsName]}
            local dgi         : {DataGamInfo}
            local dtiL        : {[DataTagInfo]}
            local fldS        : {HsNameS}
            local _tup144     : _
            intra _tup145     : _
            intra fe          : {FIEnv}
            intra range       : {Range}
         visit 7:
            local rceEnv      : _
            local _tup143     : _
            local dtiInFldL   : _
            local dfexpr      : _
            local cexpr       : _
            local pp          : _
            local dfErrs      : {ErrL}
            local fldDupErrs  : _
            local fldMissErrs : _
            local lamArgPPL   : _
            local lamBodyPP   : _
            local trppHere    : _
            local ppAST       : _
            intra dgi         : {DataGamInfo}
            intra dtiL        : {[DataTagInfo]}
            intra fldS        : {HsNameS}
            intra fldL        : {[HsName]}
            intra lUniq       : {UID}
            intra _tup144     : _
            intra range       : {Range}
      alternative Rec:
         child hsrange        : {Range}
         child recExpr        : RecExpr 
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup151     : _
            intra range       : {Range}
         visit 2:
            local mustEnterNewPredScope : {Bool}
            local _tup147     : _
            local predSameScopeCounterTop : _
            intra range       : {Range}
            intra _tup151     : _
         visit 3:
            local predScope   : {PredScope}
            intra mustEnterNewPredScope : {Bool}
            intra range       : {Range}
            intra _tup151     : _
         visit 4:
            intra range       : {Range}
            intra predScope   : {PredScope}
            intra _tup151     : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra predScope   : {PredScope}
            intra _tup151     : _
         visit 6:
            local lUniq_freshKnTy : {UID}
            local lUniq_fit   : {UID}
            local _tup150     : _
            local resTy       : {Ty}
            local doFit       : {DoFit}
            local recFiOpts   : {FIOpts}
            local foKnRes     : {FIOut}
            local forExprTyVarMp : _
            local fo_         : {FIOut}
            local knTopTy     : _
            local knRecTy     : {Ty}
            local imTy        : {Ty}
            local imSubsTy    : {Ty}
            local _tup148     : _
            local knPrL       : {[PredOcc]}
            local hereCnstrMp : _
            local ty          : {Ty}
            intra _tup151     : _
            intra fe          : {FIEnv}
            intra predScope   : {PredScope}
            intra range       : {Range}
         visit 7:
            local _tup146     : _
            local chrScopeBindMp : _
            local lUniq_cexpr : {UID}
            local lUniq3      : {UID}
            local knImplsTl   : {Impls}
            local impls2KnTl  : _
            local impls2KnHd  : _
            local impls2KnHdTl : _
            local poiPrL      : _
            local finKnImplsL : _
            local finKnImplsLExpanded : _
            local poiL        : _
            local poiAndAcoreTyL : _
            local chrAssumeBindL : _
            local chrScopeBindL : _
            local poiBindL    : _
            local lamArgCoeL  : {[Coe]}
            local rcexpr      : _
            local cann        : _
            local cSubstTop   : _
            local cexprtop    : _
            local _tup149     : _
            local cexpr       : _
            local cexprapptopCSubst : _
            local appFunNm    : _
            local pp          : _
            local lamArgPPL   : _
            local lamBodyPP   : _
            local trppHere    : _
            local ppAST       : _
            intra predScope   : {PredScope}
            intra _tup151     : _
            intra _tup148     : _
            intra imSubsTy    : {Ty}
            intra fe          : {FIEnv}
            intra fo_         : {FIOut}
            intra range       : {Range}
      alternative Sel:
         child hsrange        : {Range}
         child expr           : Expr 
         child lbl            : {HsName}
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup156     : _
            intra range       : {Range}
         visit 2:
            local isFirstLet  : _
            intra range       : {Range}
            intra _tup156     : _
         visit 3:
            local predScope   : {PredScope}
            intra range       : {Range}
            intra _tup156     : _
         visit 4:
            intra range       : {Range}
            intra _tup156     : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra _tup156     : _
         visit 6:
            local lUniq_freshKnTy : {UID}
            local lUniq2      : {UID}
            local _tup154     : _
            local knExprTy    : {Ty}
            local knRowTy     : _
            local prUid       : {PredOccId}
            local prOccL      : {[PredOcc]}
            local hereCnstrMp : _
            local _tup155     : _
            local ty          : {Ty}
            intra _tup156     : _
            intra range       : {Range}
         visit 7:
            local exprCtxt    : _
            local rceEnv      : _
            local offset      : _
            local cexpr       : _
            local pp          : _
            local lamArgPPL   : _
            local lamBodyPP   : _
            local trppHere    : _
            local ppAST       : _
            intra prUid       : {PredOccId}
            intra lUniq_freshKnTy : {UID}
      alternative Undefined:
         child hsrange        : {Range}
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup157     : _
            intra range       : {Range}
         visit 2:
            intra range       : {Range}
            intra _tup157     : _
         visit 3:
            intra range       : {Range}
            intra _tup157     : _
         visit 4:
            intra range       : {Range}
            intra _tup157     : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra _tup157     : _
         visit 6:
            local lUniq       : {UID}
            local ty          : {Ty}
            intra _tup157     : _
         visit 7:
            local cexpr       : _
            local pp          : _
            local lamArgPPL   : _
            local lamBodyPP   : _
      alternative CaseAltFail:
         child hsrange        : {Range}
         child caseId         : {UID}
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup158     : _
            intra range       : {Range}
         visit 2:
            intra range       : {Range}
            intra _tup158     : _
         visit 3:
            intra range       : {Range}
            intra _tup158     : _
         visit 4:
            intra range       : {Range}
            intra _tup158     : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra _tup158     : _
         visit 6:
            local lUniq       : {UID}
            local ty          : {Ty}
            intra _tup158     : _
         visit 7:
            local cexpr       : _
            local pp          : _
            local lamArgPPL   : _
            local lamBodyPP   : _
      alternative AppImpl:
         child hsrange        : {Range}
         child func           : Expr 
         child argPr          : PrExpr 
         child arg            : Expr 
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup163     : _
            intra range       : {Range}
         visit 2:
            local isFirstLet  : _
            intra range       : {Range}
            intra _tup163     : _
         visit 3:
            local predScope   : {PredScope}
            intra range       : {Range}
            intra _tup163     : _
         visit 4:
            intra range       : {Range}
            intra _tup163     : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra _tup163     : _
         visit 6:
            local lUniq       : {UID}
            local knFunTy     : _
            local _tup161     : _
            local knImpls     : {TyL}
            local _tup162     : _
            local knArgImpl   : _
            local foPr        : {FIOut}
            local knResImpls  : _
            local ty_         : _
            local ty          : {Ty}
            intra _tup163     : _
            intra range       : {Range}
         visit 7:
            local exprCtxt    : _
            local appImplsCoeL : _
            local _tup160     : _
            local argPP       : _
            local lUniq_cexpr : {UID}
            local _tup159     : _
            local cexprappCSubst : _
            local cexprapp    : _
            local cexpr       : _
            local nmErrs      : {ErrL}
            local pp          : _
            local lamArgPPL   : _
            local lamBodyPP   : _
            local trppHere    : _
            intra _tup163     : _
            intra foPr        : {FIOut}
            intra range       : {Range}
      alternative LamImpl:
         child hsrange        : {Range}
         child argPr          : PrExpr 
         child arg            : PatExpr 
         child body           : Expr 
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup169     : _
            intra range       : {Range}
         visit 2:
            local lexLev      : {Int}
            local isFirstLet  : _
            local mustEnterNewPredScope : {Bool}
            local _tup165     : _
            local predSameScopeCounterLam : _
            intra range       : {Range}
            intra _tup169     : _
         visit 3:
            local predScope   : {PredScope}
            intra mustEnterNewPredScope : {Bool}
            intra lexLev      : {Int}
            intra range       : {Range}
            intra _tup169     : _
         visit 4:
            intra range       : {Range}
            intra predScope   : {PredScope}
            intra _tup169     : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra predScope   : {PredScope}
            intra _tup169     : _
         visit 6:
            local tySigGam    : {ValGam}
            local lUniq4      : {UID}
            local lUniq2      : {UID}
            local lUniq       : {UID}
            local funTy       : {Ty}
            local doFit       : {DoFit}
            local fo_fitF_    : {FIOut}
            local knImplsVarMp : _
            local _tup167     : _
            local knImpls     : {TyL}
            local _tup168     : _
            local knArgImpl   : _
            local foPr        : {FIOut}
            local forArgTyVarMp : _
            local knResImpls  : _
            local ty_         : _
            local knPrUid     : {PredOccId}
            local knPr        : _
            local knPrL       : {[PredOcc]}
            local hereCnstrMp : _
            local ty          : {Ty}
            intra _tup169     : _
            intra fe          : {FIEnv}
            intra predScope   : {PredScope}
            intra range       : {Range}
         visit 7:
            local _tup164     : _
            local chrScopeBindMp : _
            local tySigVarMp  : _
            local lUniq_cexpr : {UID}
            local rceEnv      : _
            local finalTyArg  : _
            local finalTyArgExpanded : _
            local sysftyLamArg : _
            local acoretyArg  : _
            local poiL        : _
            local chrAssumeBindL : _
            local chrScopeBindL : _
            local poiBindL    : _
            local lamArgCoeL  : {[Coe]}
            local lamBodyCoeL : _
            local _tup166     : _
            local cexpr       : _
            local argPP       : _
            local lamArgPPL   : _
            local pp          : _
            local cexprlamCSubst : _
            local nmErrs      : {ErrL}
            local trppHere    : _
            intra predScope   : {PredScope}
            intra _tup169     : _
            intra fe          : {FIEnv}
            intra knPrUid     : {PredOccId}
            intra foPr        : {FIOut}
            intra fo_fitF_    : {FIOut}
            intra range       : {Range}
      alternative DynVar:
         child hsrange        : {Range}
         child nm             : {HsName}
         visit 0:
            local range       : {Range}
         visit 1:
            intra range       : {Range}
         visit 2:
            intra range       : {Range}
         visit 3:
            intra range       : {Range}
         visit 4:
            intra range       : {Range}
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
         visit 6:
            local ty          : {Ty}
         visit 7:
            local cexpr       : _
            local pp          : _
            local lamArgPPL   : _
            local lamBodyPP   : _
            local trppHere    : _
      alternative IIConst:
         child hsrange        : {Range}
         child integer        : {Integer}
         visit 0:
            local range       : {Range}
         visit 1:
            local _tup171     : _
            intra range       : {Range}
         visit 2:
            intra range       : {Range}
            intra _tup171     : _
         visit 3:
            intra range       : {Range}
            intra _tup171     : _
         visit 4:
            intra range       : {Range}
            intra _tup171     : _
         visit 5:
            local fe          : {FIEnv}
            local chrFIIn     : {FIIn}
            intra range       : {Range}
            intra _tup171     : _
         visit 6:
            local lUniq       : {UID}
            local constTy     : {Ty}
            local fo_         : {FIOut}
            local ty          : {Ty}
            local tyVarMp     : {VarMp}
            intra _tup171     : _
            intra fe          : {FIEnv}
         visit 7:
            local lUniq_cexpr : {UID}
            local cexprBase   : _
            local _tup170     : _
            local cexpr       : _
            local pp          : _
            local cexprCSubst : _
            local lamArgPPL   : _
            local lamBodyPP   : _
            local trppHere    : _
            intra _tup171     : _
            intra fo_         : {FIOut}
-}
sem_Expr_IConst :: Range ->
                   Int ->
                   T_Expr

sem_Expr_IConst hsrange_ int_ | hsrange_ `seq` (int_ `seq` (True)) =
    (case (hsrange_) of
     { _range | _range `seq` (True) ->
     (case (_range) of
      { _lhsOrange | _lhsOrange `seq` (True) ->
      (case ((let sem_Expr_IConst_1 :: T_Expr_1
                  sem_Expr_IConst_1 =
                      (\ _lhsIgUniq ->
                           _lhsIgUniq `seq`
                           ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq_cexpr) -> (__cont,lUniq,lUniq_cexpr)}} )) of
                             { __tup63 | __tup63 `seq` (True) ->
                             (case (__tup63) of
                              { (_lhsOgUniq,_,_) | _lhsOgUniq `seq` (True) ->
                              (case (False) of
                               { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                               (case ((let sem_Expr_IConst_2 :: T_Expr_2
                                           sem_Expr_IConst_2 =
                                               (\ _lhsIisFirstLet
                                                  _lhsIkiGam
                                                  _lhsIlexLev
                                                  _lhsIpredSameScopeCounter ->
                                                    _lhsIisFirstLet `seq`
                                                    (_lhsIkiGam `seq`
                                                     (_lhsIlexLev `seq`
                                                      (_lhsIpredSameScopeCounter `seq`
                                                       ((case (_lhsIpredSameScopeCounter) of
                                                         { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                         (case ((let sem_Expr_IConst_3 :: T_Expr_3
                                                                     sem_Expr_IConst_3 =
                                                                         (\ _lhsIgenerDataInfoMp
                                                                            _lhsIkiVarMp
                                                                            _lhsIopts
                                                                            _lhsIpolGam
                                                                            _lhsIpolVarMp
                                                                            _lhsIpredScope
                                                                            _lhsItyGam
                                                                            _lhsItyKiGam
                                                                            _lhsItyKiGlobFreeTvarS ->
                                                                              _lhsIgenerDataInfoMp `seq`
                                                                              (_lhsIkiVarMp `seq`
                                                                               (_lhsIopts `seq`
                                                                                (_lhsIpolGam `seq`
                                                                                 (_lhsIpolVarMp `seq`
                                                                                  (_lhsIpredScope `seq`
                                                                                   (_lhsItyGam `seq`
                                                                                    (_lhsItyKiGam `seq`
                                                                                     (_lhsItyKiGlobFreeTvarS `seq`
                                                                                      ((case (_lhsIgenerDataInfoMp) of
                                                                                        { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                        (case (_lhsIkiVarMp) of
                                                                                         { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                         (case (_lhsIpolVarMp) of
                                                                                          { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                          (case ((let sem_Expr_IConst_4 :: T_Expr_4
                                                                                                      sem_Expr_IConst_4 =
                                                                                                          (\ _lhsIclGam
                                                                                                             _lhsIfinKiVarMp
                                                                                                             _lhsIfinTyKiGam
                                                                                                             _lhsIgathDataGam
                                                                                                             _lhsItyTyTySigFreeTvarS ->
                                                                                                               _lhsIclGam `seq`
                                                                                                               (_lhsIfinKiVarMp `seq`
                                                                                                                (_lhsIfinTyKiGam `seq`
                                                                                                                 (_lhsIgathDataGam `seq`
                                                                                                                  (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                   ((case (_lhsIgathDataGam) of
                                                                                                                     { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                     (case ((let sem_Expr_IConst_5 :: T_Expr_5
                                                                                                                                 sem_Expr_IConst_5 =
                                                                                                                                     (\ _lhsIdataGam ->
                                                                                                                                          _lhsIdataGam `seq`
                                                                                                                                          ((case (Seq.empty) of
                                                                                                                                            { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                            (case (defaultFIEnv
                                                                                                                                                       { feEHCOpts = _lhsIopts
                                                                                                                                                       , fePredScope = _lhsIpredScope
                                                                                                                                                       , feTyGam = _lhsItyGam
                                                                                                                                                       , fePolGam = _lhsIpolGam
                                                                                                                                                       , feRange = _range
                                                                                                                                                       }) of
                                                                                                                                             { _fe | _fe `seq` (True) ->
                                                                                                                                             (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                              { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                              (case (_chrFIIn) of
                                                                                                                                               { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                               (case (Seq.empty) of
                                                                                                                                                { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                (case (emptyGam) of
                                                                                                                                                 { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                 (case ((let sem_Expr_IConst_6 :: T_Expr_6
                                                                                                                                                             sem_Expr_IConst_6 =
                                                                                                                                                                 (\ _lhsIchrStore
                                                                                                                                                                    _lhsIclDfGam
                                                                                                                                                                    _lhsIfiOpts
                                                                                                                                                                    _lhsIknTy
                                                                                                                                                                    _lhsItvKiVarMp
                                                                                                                                                                    _lhsItyTyGlobFreeTvarS
                                                                                                                                                                    _lhsItyVarMp
                                                                                                                                                                    _lhsIvalGam
                                                                                                                                                                    _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                      _lhsIchrStore `seq`
                                                                                                                                                                      (_lhsIclDfGam `seq`
                                                                                                                                                                       (_lhsIfiOpts `seq`
                                                                                                                                                                        (_lhsIknTy `seq`
                                                                                                                                                                         (_lhsItvKiVarMp `seq`
                                                                                                                                                                          (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                           (_lhsItyVarMp `seq`
                                                                                                                                                                            (_lhsIvalGam `seq`
                                                                                                                                                                             (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                              ((case (__tup63) of
                                                                                                                                                                                { (_,_lUniq,_) | _lUniq `seq` (True) ->
                                                                                                                                                                                (case (tyInt) of
                                                                                                                                                                                 { _constTy | _constTy `seq` (True) ->
                                                                                                                                                                                 (case (ehcOptTrace _lhsIopts "Expr.?Const.loc.fo_" $
                                                                                                                                                                                        fitsIn _lhsIfiOpts _fe _lUniq _lhsItyVarMp _constTy _lhsIknTy) of
                                                                                                                                                                                  { _fo_ | _fo_ `seq` (True) ->
                                                                                                                                                                                  (case (foGathCnstrMp _fo_) of
                                                                                                                                                                                   { _hereCnstrMp | _hereCnstrMp `seq` (True) ->
                                                                                                                                                                                   (case (_hereCnstrMp) of
                                                                                                                                                                                    { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                    (case (Map.empty) of
                                                                                                                                                                                     { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                     (case (emptyGam) of
                                                                                                                                                                                      { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                      (case (Set.empty) of
                                                                                                                                                                                       { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                       (case (foTy _fo_) of
                                                                                                                                                                                        { _ty | _ty `seq` (True) ->
                                                                                                                                                                                        (case (_ty) of
                                                                                                                                                                                         { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                         (case (foVarMp _fo_ `varUpd` _lhsItyVarMp) of
                                                                                                                                                                                          { _tyVarMp | _tyVarMp `seq` (True) ->
                                                                                                                                                                                          (case (_tyVarMp) of
                                                                                                                                                                                           { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                           (case ((let sem_Expr_IConst_7 :: T_Expr_7
                                                                                                                                                                                                       sem_Expr_IConst_7 =
                                                                                                                                                                                                           (\ _lhsIcSubst
                                                                                                                                                                                                              _lhsIchrEvidBindMp
                                                                                                                                                                                                              _lhsIchrScopeBindMp
                                                                                                                                                                                                              _lhsIexprCtxt
                                                                                                                                                                                                              _lhsIfinTyVarMp
                                                                                                                                                                                                              _lhsIfinValGam
                                                                                                                                                                                                              _lhsImoduleNm
                                                                                                                                                                                                              _lhsIrangeMp
                                                                                                                                                                                                              _lhsIsysfEnv
                                                                                                                                                                                                              _lhsItr ->
                                                                                                                                                                                                                _lhsIcSubst `seq`
                                                                                                                                                                                                                (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                 (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                  (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                   (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                    (_lhsIfinValGam `seq`
                                                                                                                                                                                                                     (_lhsImoduleNm `seq`
                                                                                                                                                                                                                      (_lhsIrangeMp `seq`
                                                                                                                                                                                                                       (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                        (_lhsItr `seq`
                                                                                                                                                                                                                         ((case (Seq.empty) of
                                                                                                                                                                                                                           { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                           (case ([]) of
                                                                                                                                                                                                                            { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                            (case ([]) of
                                                                                                                                                                                                                             { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                             (case (__tup63) of
                                                                                                                                                                                                                              { (_,_,_lUniq_cexpr) | _lUniq_cexpr `seq` (True) ->
                                                                                                                                                                                                                              (case (acoreInt _lhsIopts int_) of
                                                                                                                                                                                                                               { _cexprBase | _cexprBase `seq` (True) ->
                                                                                                                                                                                                                               (case (foAppLRCoeAsSubst _lhsIopts _lUniq_cexpr _fo_ _lhsIfinTyVarMp _lhsIcSubst $
                                                                                                                                                                                                                                      _cexprBase) of
                                                                                                                                                                                                                                { __tup62 | __tup62 `seq` (True) ->
                                                                                                                                                                                                                                (case (__tup62) of
                                                                                                                                                                                                                                 { (_cexpr,_) | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                 (case (_cexpr) of
                                                                                                                                                                                                                                  { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                  (case (hsnUnknown) of
                                                                                                                                                                                                                                   { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                   (case (pp (show int_)) of
                                                                                                                                                                                                                                    { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                    (case (_pp) of
                                                                                                                                                                                                                                     { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                     (case ([]) of
                                                                                                                                                                                                                                      { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                      (case (__tup62) of
                                                                                                                                                                                                                                       { (_,_cexprCSubst) | _cexprCSubst `seq` (True) ->
                                                                                                                                                                                                                                       (case (cSubstApp _lhsIcSubst _cexprCSubst) of
                                                                                                                                                                                                                                        { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                        (case (Set.empty) of
                                                                                                                                                                                                                                         { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                         (case (_cexpr) of
                                                                                                                                                                                                                                          { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                          (case (rngLift _range mkNestErr' _pp [foErrSq _fo_]) of
                                                                                                                                                                                                                                           { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                           (case ([]) of
                                                                                                                                                                                                                                            { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                            (case ([]) of
                                                                                                                                                                                                                                             { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                             (case (emptyGam) of
                                                                                                                                                                                                                                              { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                              (case (Seq.empty) of
                                                                                                                                                                                                                                               { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                               (case (emptyGam) of
                                                                                                                                                                                                                                                { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                (case (Map.empty) of
                                                                                                                                                                                                                                                 { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                 (case (Map.empty) of
                                                                                                                                                                                                                                                  { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                  (case (emptyGam) of
                                                                                                                                                                                                                                                   { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                   (case (emptyVarMp) of
                                                                                                                                                                                                                                                    { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                    (case (emptyGam) of
                                                                                                                                                                                                                                                     { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                     (case (emptyGam) of
                                                                                                                                                                                                                                                      { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                      (case (False) of
                                                                                                                                                                                                                                                       { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                       (case ([]) of
                                                                                                                                                                                                                                                        { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                        (case (_lamArgPPL) of
                                                                                                                                                                                                                                                         { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                         (case (_pp) of
                                                                                                                                                                                                                                                          { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                          (case (_lamBodyPP) of
                                                                                                                                                                                                                                                           { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                           (case (_cexpr) of
                                                                                                                                                                                                                                                            { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                            (case ([]) of
                                                                                                                                                                                                                                                             { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                             (case ([]) of
                                                                                                                                                                                                                                                              { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                              (case ([]) of
                                                                                                                                                                                                                                                               { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                               (case (Set.empty) of
                                                                                                                                                                                                                                                                { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                (case (_pp) of
                                                                                                                                                                                                                                                                 { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                 (case (trppEmpty) of
                                                                                                                                                                                                                                                                  { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                  (case (ppNestTrPP ["Expr","IConst"] [_pp] [] _trppHere) of
                                                                                                                                                                                                                                                                   { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                   (case (trppEmpty) of
                                                                                                                                                                                                                                                                    { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                    ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                   in  sem_Expr_IConst_7)) of
                                                                                                                                                                                            { ( sem_Expr_7) | True ->
                                                                                                                                                                                            ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                         in  sem_Expr_IConst_6)) of
                                                                                                                                                  { ( sem_Expr_6) | True ->
                                                                                                                                                  ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) })))
                                                                                                                             in  sem_Expr_IConst_5)) of
                                                                                                                      { ( sem_Expr_5) | True ->
                                                                                                                      ( _lhsOgathDataGam,sem_Expr_5) }) })))))))
                                                                                                  in  sem_Expr_IConst_4)) of
                                                                                           { ( sem_Expr_4) | True ->
                                                                                           ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) })))))))))))
                                                                 in  sem_Expr_IConst_3)) of
                                                          { ( sem_Expr_3) | True ->
                                                          ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }))))))
                                       in  sem_Expr_IConst_2)) of
                                { ( sem_Expr_2) | True ->
                                ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) })))
              in  sem_Expr_IConst_1)) of
       { ( sem_Expr_1) | True ->
       ( _lhsOrange,sem_Expr_1) }) }) })

sem_Expr_CConst :: Range ->
                   Char ->
                   T_Expr

sem_Expr_CConst hsrange_ char_ | hsrange_ `seq` (char_ `seq` (True)) =
    (case (hsrange_) of
     { _range | _range `seq` (True) ->
     (case (_range) of
      { _lhsOrange | _lhsOrange `seq` (True) ->
      (case ((let sem_Expr_CConst_1 :: T_Expr_1
                  sem_Expr_CConst_1 =
                      (\ _lhsIgUniq ->
                           _lhsIgUniq `seq`
                           ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq_cexpr) -> (__cont,lUniq,lUniq_cexpr)}} )) of
                             { __tup65 | __tup65 `seq` (True) ->
                             (case (__tup65) of
                              { (_lhsOgUniq,_,_) | _lhsOgUniq `seq` (True) ->
                              (case (False) of
                               { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                               (case ((let sem_Expr_CConst_2 :: T_Expr_2
                                           sem_Expr_CConst_2 =
                                               (\ _lhsIisFirstLet
                                                  _lhsIkiGam
                                                  _lhsIlexLev
                                                  _lhsIpredSameScopeCounter ->
                                                    _lhsIisFirstLet `seq`
                                                    (_lhsIkiGam `seq`
                                                     (_lhsIlexLev `seq`
                                                      (_lhsIpredSameScopeCounter `seq`
                                                       ((case (_lhsIpredSameScopeCounter) of
                                                         { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                         (case ((let sem_Expr_CConst_3 :: T_Expr_3
                                                                     sem_Expr_CConst_3 =
                                                                         (\ _lhsIgenerDataInfoMp
                                                                            _lhsIkiVarMp
                                                                            _lhsIopts
                                                                            _lhsIpolGam
                                                                            _lhsIpolVarMp
                                                                            _lhsIpredScope
                                                                            _lhsItyGam
                                                                            _lhsItyKiGam
                                                                            _lhsItyKiGlobFreeTvarS ->
                                                                              _lhsIgenerDataInfoMp `seq`
                                                                              (_lhsIkiVarMp `seq`
                                                                               (_lhsIopts `seq`
                                                                                (_lhsIpolGam `seq`
                                                                                 (_lhsIpolVarMp `seq`
                                                                                  (_lhsIpredScope `seq`
                                                                                   (_lhsItyGam `seq`
                                                                                    (_lhsItyKiGam `seq`
                                                                                     (_lhsItyKiGlobFreeTvarS `seq`
                                                                                      ((case (_lhsIgenerDataInfoMp) of
                                                                                        { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                        (case (_lhsIkiVarMp) of
                                                                                         { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                         (case (_lhsIpolVarMp) of
                                                                                          { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                          (case ((let sem_Expr_CConst_4 :: T_Expr_4
                                                                                                      sem_Expr_CConst_4 =
                                                                                                          (\ _lhsIclGam
                                                                                                             _lhsIfinKiVarMp
                                                                                                             _lhsIfinTyKiGam
                                                                                                             _lhsIgathDataGam
                                                                                                             _lhsItyTyTySigFreeTvarS ->
                                                                                                               _lhsIclGam `seq`
                                                                                                               (_lhsIfinKiVarMp `seq`
                                                                                                                (_lhsIfinTyKiGam `seq`
                                                                                                                 (_lhsIgathDataGam `seq`
                                                                                                                  (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                   ((case (_lhsIgathDataGam) of
                                                                                                                     { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                     (case ((let sem_Expr_CConst_5 :: T_Expr_5
                                                                                                                                 sem_Expr_CConst_5 =
                                                                                                                                     (\ _lhsIdataGam ->
                                                                                                                                          _lhsIdataGam `seq`
                                                                                                                                          ((case (Seq.empty) of
                                                                                                                                            { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                            (case (defaultFIEnv
                                                                                                                                                       { feEHCOpts = _lhsIopts
                                                                                                                                                       , fePredScope = _lhsIpredScope
                                                                                                                                                       , feTyGam = _lhsItyGam
                                                                                                                                                       , fePolGam = _lhsIpolGam
                                                                                                                                                       , feRange = _range
                                                                                                                                                       }) of
                                                                                                                                             { _fe | _fe `seq` (True) ->
                                                                                                                                             (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                              { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                              (case (_chrFIIn) of
                                                                                                                                               { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                               (case (Seq.empty) of
                                                                                                                                                { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                (case (emptyGam) of
                                                                                                                                                 { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                 (case ((let sem_Expr_CConst_6 :: T_Expr_6
                                                                                                                                                             sem_Expr_CConst_6 =
                                                                                                                                                                 (\ _lhsIchrStore
                                                                                                                                                                    _lhsIclDfGam
                                                                                                                                                                    _lhsIfiOpts
                                                                                                                                                                    _lhsIknTy
                                                                                                                                                                    _lhsItvKiVarMp
                                                                                                                                                                    _lhsItyTyGlobFreeTvarS
                                                                                                                                                                    _lhsItyVarMp
                                                                                                                                                                    _lhsIvalGam
                                                                                                                                                                    _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                      _lhsIchrStore `seq`
                                                                                                                                                                      (_lhsIclDfGam `seq`
                                                                                                                                                                       (_lhsIfiOpts `seq`
                                                                                                                                                                        (_lhsIknTy `seq`
                                                                                                                                                                         (_lhsItvKiVarMp `seq`
                                                                                                                                                                          (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                           (_lhsItyVarMp `seq`
                                                                                                                                                                            (_lhsIvalGam `seq`
                                                                                                                                                                             (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                              ((case (__tup65) of
                                                                                                                                                                                { (_,_lUniq,_) | _lUniq `seq` (True) ->
                                                                                                                                                                                (case (tyChar) of
                                                                                                                                                                                 { _constTy | _constTy `seq` (True) ->
                                                                                                                                                                                 (case (ehcOptTrace _lhsIopts "Expr.?Const.loc.fo_" $
                                                                                                                                                                                        fitsIn _lhsIfiOpts _fe _lUniq _lhsItyVarMp _constTy _lhsIknTy) of
                                                                                                                                                                                  { _fo_ | _fo_ `seq` (True) ->
                                                                                                                                                                                  (case (foGathCnstrMp _fo_) of
                                                                                                                                                                                   { _hereCnstrMp | _hereCnstrMp `seq` (True) ->
                                                                                                                                                                                   (case (_hereCnstrMp) of
                                                                                                                                                                                    { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                    (case (Map.empty) of
                                                                                                                                                                                     { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                     (case (emptyGam) of
                                                                                                                                                                                      { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                      (case (Set.empty) of
                                                                                                                                                                                       { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                       (case (foTy _fo_) of
                                                                                                                                                                                        { _ty | _ty `seq` (True) ->
                                                                                                                                                                                        (case (_ty) of
                                                                                                                                                                                         { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                         (case (foVarMp _fo_ `varUpd` _lhsItyVarMp) of
                                                                                                                                                                                          { _tyVarMp | _tyVarMp `seq` (True) ->
                                                                                                                                                                                          (case (_tyVarMp) of
                                                                                                                                                                                           { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                           (case ((let sem_Expr_CConst_7 :: T_Expr_7
                                                                                                                                                                                                       sem_Expr_CConst_7 =
                                                                                                                                                                                                           (\ _lhsIcSubst
                                                                                                                                                                                                              _lhsIchrEvidBindMp
                                                                                                                                                                                                              _lhsIchrScopeBindMp
                                                                                                                                                                                                              _lhsIexprCtxt
                                                                                                                                                                                                              _lhsIfinTyVarMp
                                                                                                                                                                                                              _lhsIfinValGam
                                                                                                                                                                                                              _lhsImoduleNm
                                                                                                                                                                                                              _lhsIrangeMp
                                                                                                                                                                                                              _lhsIsysfEnv
                                                                                                                                                                                                              _lhsItr ->
                                                                                                                                                                                                                _lhsIcSubst `seq`
                                                                                                                                                                                                                (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                 (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                  (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                   (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                    (_lhsIfinValGam `seq`
                                                                                                                                                                                                                     (_lhsImoduleNm `seq`
                                                                                                                                                                                                                      (_lhsIrangeMp `seq`
                                                                                                                                                                                                                       (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                        (_lhsItr `seq`
                                                                                                                                                                                                                         ((case (Seq.empty) of
                                                                                                                                                                                                                           { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                           (case ([]) of
                                                                                                                                                                                                                            { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                            (case ([]) of
                                                                                                                                                                                                                             { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                             (case (__tup65) of
                                                                                                                                                                                                                              { (_,_,_lUniq_cexpr) | _lUniq_cexpr `seq` (True) ->
                                                                                                                                                                                                                              (case (CExpr_Char char_) of
                                                                                                                                                                                                                               { _cexprBase | _cexprBase `seq` (True) ->
                                                                                                                                                                                                                               (case (foAppLRCoeAsSubst _lhsIopts _lUniq_cexpr _fo_ _lhsIfinTyVarMp _lhsIcSubst $
                                                                                                                                                                                                                                      _cexprBase) of
                                                                                                                                                                                                                                { __tup64 | __tup64 `seq` (True) ->
                                                                                                                                                                                                                                (case (__tup64) of
                                                                                                                                                                                                                                 { (_cexpr,_) | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                 (case (_cexpr) of
                                                                                                                                                                                                                                  { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                  (case (hsnUnknown) of
                                                                                                                                                                                                                                   { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                   (case (pp (show char_)) of
                                                                                                                                                                                                                                    { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                    (case (_pp) of
                                                                                                                                                                                                                                     { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                     (case ([]) of
                                                                                                                                                                                                                                      { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                      (case (__tup64) of
                                                                                                                                                                                                                                       { (_,_cexprCSubst) | _cexprCSubst `seq` (True) ->
                                                                                                                                                                                                                                       (case (cSubstApp _lhsIcSubst _cexprCSubst) of
                                                                                                                                                                                                                                        { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                        (case (Set.empty) of
                                                                                                                                                                                                                                         { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                         (case (_cexpr) of
                                                                                                                                                                                                                                          { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                          (case (rngLift _range mkNestErr' _pp [foErrSq _fo_]) of
                                                                                                                                                                                                                                           { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                           (case ([]) of
                                                                                                                                                                                                                                            { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                            (case ([]) of
                                                                                                                                                                                                                                             { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                             (case (emptyGam) of
                                                                                                                                                                                                                                              { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                              (case (Seq.empty) of
                                                                                                                                                                                                                                               { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                               (case (emptyGam) of
                                                                                                                                                                                                                                                { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                (case (Map.empty) of
                                                                                                                                                                                                                                                 { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                 (case (Map.empty) of
                                                                                                                                                                                                                                                  { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                  (case (emptyGam) of
                                                                                                                                                                                                                                                   { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                   (case (emptyVarMp) of
                                                                                                                                                                                                                                                    { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                    (case (emptyGam) of
                                                                                                                                                                                                                                                     { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                     (case (emptyGam) of
                                                                                                                                                                                                                                                      { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                      (case (False) of
                                                                                                                                                                                                                                                       { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                       (case ([]) of
                                                                                                                                                                                                                                                        { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                        (case (_lamArgPPL) of
                                                                                                                                                                                                                                                         { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                         (case (_pp) of
                                                                                                                                                                                                                                                          { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                          (case (_lamBodyPP) of
                                                                                                                                                                                                                                                           { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                           (case (_cexpr) of
                                                                                                                                                                                                                                                            { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                            (case ([]) of
                                                                                                                                                                                                                                                             { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                             (case ([]) of
                                                                                                                                                                                                                                                              { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                              (case ([]) of
                                                                                                                                                                                                                                                               { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                               (case (Set.empty) of
                                                                                                                                                                                                                                                                { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                (case (_pp) of
                                                                                                                                                                                                                                                                 { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                 (case (trppEmpty) of
                                                                                                                                                                                                                                                                  { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                  (case (ppNestTrPP ["Expr","CConst"] [_pp] [] _trppHere) of
                                                                                                                                                                                                                                                                   { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                   (case (trppEmpty) of
                                                                                                                                                                                                                                                                    { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                    ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                   in  sem_Expr_CConst_7)) of
                                                                                                                                                                                            { ( sem_Expr_7) | True ->
                                                                                                                                                                                            ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                         in  sem_Expr_CConst_6)) of
                                                                                                                                                  { ( sem_Expr_6) | True ->
                                                                                                                                                  ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) })))
                                                                                                                             in  sem_Expr_CConst_5)) of
                                                                                                                      { ( sem_Expr_5) | True ->
                                                                                                                      ( _lhsOgathDataGam,sem_Expr_5) }) })))))))
                                                                                                  in  sem_Expr_CConst_4)) of
                                                                                           { ( sem_Expr_4) | True ->
                                                                                           ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) })))))))))))
                                                                 in  sem_Expr_CConst_3)) of
                                                          { ( sem_Expr_3) | True ->
                                                          ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }))))))
                                       in  sem_Expr_CConst_2)) of
                                { ( sem_Expr_2) | True ->
                                ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) })))
              in  sem_Expr_CConst_1)) of
       { ( sem_Expr_1) | True ->
       ( _lhsOrange,sem_Expr_1) }) }) })

sem_Expr_Con :: Range ->
                HsName ->
                T_Expr

sem_Expr_Con hsrange_ nm_ | hsrange_ `seq` (nm_ `seq` (True)) =
    (case (hsrange_) of
     { _range | _range `seq` (True) ->
     (case (_range) of
      { _lhsOrange | _lhsOrange `seq` (True) ->
      (case ((let sem_Expr_Con_1 :: T_Expr_1
                  sem_Expr_Con_1 =
                      (\ _lhsIgUniq ->
                           _lhsIgUniq `seq`
                           ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq_cexpr) -> (__cont,lUniq,lUniq_cexpr)}} )) of
                             { __tup69 | __tup69 `seq` (True) ->
                             (case (__tup69) of
                              { (_lhsOgUniq,_,_) | _lhsOgUniq `seq` (True) ->
                              (case (False) of
                               { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                               (case ((let sem_Expr_Con_2 :: T_Expr_2
                                           sem_Expr_Con_2 =
                                               (\ _lhsIisFirstLet
                                                  _lhsIkiGam
                                                  _lhsIlexLev
                                                  _lhsIpredSameScopeCounter ->
                                                    _lhsIisFirstLet `seq`
                                                    (_lhsIkiGam `seq`
                                                     (_lhsIlexLev `seq`
                                                      (_lhsIpredSameScopeCounter `seq`
                                                       ((case (_lhsIpredSameScopeCounter) of
                                                         { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                         (case ((let sem_Expr_Con_3 :: T_Expr_3
                                                                     sem_Expr_Con_3 =
                                                                         (\ _lhsIgenerDataInfoMp
                                                                            _lhsIkiVarMp
                                                                            _lhsIopts
                                                                            _lhsIpolGam
                                                                            _lhsIpolVarMp
                                                                            _lhsIpredScope
                                                                            _lhsItyGam
                                                                            _lhsItyKiGam
                                                                            _lhsItyKiGlobFreeTvarS ->
                                                                              _lhsIgenerDataInfoMp `seq`
                                                                              (_lhsIkiVarMp `seq`
                                                                               (_lhsIopts `seq`
                                                                                (_lhsIpolGam `seq`
                                                                                 (_lhsIpolVarMp `seq`
                                                                                  (_lhsIpredScope `seq`
                                                                                   (_lhsItyGam `seq`
                                                                                    (_lhsItyKiGam `seq`
                                                                                     (_lhsItyKiGlobFreeTvarS `seq`
                                                                                      ((case (_lhsIgenerDataInfoMp) of
                                                                                        { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                        (case (_lhsIkiVarMp) of
                                                                                         { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                         (case (_lhsIpolVarMp) of
                                                                                          { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                          (case ((let sem_Expr_Con_4 :: T_Expr_4
                                                                                                      sem_Expr_Con_4 =
                                                                                                          (\ _lhsIclGam
                                                                                                             _lhsIfinKiVarMp
                                                                                                             _lhsIfinTyKiGam
                                                                                                             _lhsIgathDataGam
                                                                                                             _lhsItyTyTySigFreeTvarS ->
                                                                                                               _lhsIclGam `seq`
                                                                                                               (_lhsIfinKiVarMp `seq`
                                                                                                                (_lhsIfinTyKiGam `seq`
                                                                                                                 (_lhsIgathDataGam `seq`
                                                                                                                  (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                   ((case (_lhsIgathDataGam) of
                                                                                                                     { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                     (case ((let sem_Expr_Con_5 :: T_Expr_5
                                                                                                                                 sem_Expr_Con_5 =
                                                                                                                                     (\ _lhsIdataGam ->
                                                                                                                                          _lhsIdataGam `seq`
                                                                                                                                          ((case (Seq.empty) of
                                                                                                                                            { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                            (case (defaultFIEnv
                                                                                                                                                       { feEHCOpts = _lhsIopts
                                                                                                                                                       , fePredScope = _lhsIpredScope
                                                                                                                                                       , feTyGam = _lhsItyGam
                                                                                                                                                       , fePolGam = _lhsIpolGam
                                                                                                                                                       , feRange = _range
                                                                                                                                                       }) of
                                                                                                                                             { _fe | _fe `seq` (True) ->
                                                                                                                                             (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                              { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                              (case (_chrFIIn) of
                                                                                                                                               { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                               (case (Seq.empty) of
                                                                                                                                                { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                (case (emptyGam) of
                                                                                                                                                 { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                 (case ((let sem_Expr_Con_6 :: T_Expr_6
                                                                                                                                                             sem_Expr_Con_6 =
                                                                                                                                                                 (\ _lhsIchrStore
                                                                                                                                                                    _lhsIclDfGam
                                                                                                                                                                    _lhsIfiOpts
                                                                                                                                                                    _lhsIknTy
                                                                                                                                                                    _lhsItvKiVarMp
                                                                                                                                                                    _lhsItyTyGlobFreeTvarS
                                                                                                                                                                    _lhsItyVarMp
                                                                                                                                                                    _lhsIvalGam
                                                                                                                                                                    _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                      _lhsIchrStore `seq`
                                                                                                                                                                      (_lhsIclDfGam `seq`
                                                                                                                                                                       (_lhsIfiOpts `seq`
                                                                                                                                                                        (_lhsIknTy `seq`
                                                                                                                                                                         (_lhsItvKiVarMp `seq`
                                                                                                                                                                          (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                           (_lhsItyVarMp `seq`
                                                                                                                                                                            (_lhsIvalGam `seq`
                                                                                                                                                                             (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                              ((case (__tup69) of
                                                                                                                                                                                { (_,_lUniq,_) | _lUniq `seq` (True) ->
                                                                                                                                                                                (case (valGamLookupTy nm_ _lhsIvalGam) of
                                                                                                                                                                                 { __tup68 | __tup68 `seq` (True) ->
                                                                                                                                                                                 (case (__tup68) of
                                                                                                                                                                                  { (_ty_g_,_) | _ty_g_ `seq` (True) ->
                                                                                                                                                                                  (case (\o m -> fitsIn o _fe _lUniq m _ty_g_ _lhsIknTy) of
                                                                                                                                                                                   { _doFit | _doFit `seq` (True) ->
                                                                                                                                                                                   (case (_doFit _lhsIfiOpts _lhsItyVarMp) of
                                                                                                                                                                                    { _fo_ | _fo_ `seq` (True) ->
                                                                                                                                                                                    (case (foGathCnstrMp _fo_) of
                                                                                                                                                                                     { _hereCnstrMp | _hereCnstrMp `seq` (True) ->
                                                                                                                                                                                     (case (_hereCnstrMp) of
                                                                                                                                                                                      { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                      (case (Map.empty) of
                                                                                                                                                                                       { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                       (case (emptyGam) of
                                                                                                                                                                                        { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                        (case (Set.empty) of
                                                                                                                                                                                         { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                         (case (foTy _fo_) of
                                                                                                                                                                                          { _ty | _ty `seq` (True) ->
                                                                                                                                                                                          (case (_ty) of
                                                                                                                                                                                           { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                           (case (foVarMp _fo_ `varUpd` _lhsItyVarMp) of
                                                                                                                                                                                            { _tyVarMp | _tyVarMp `seq` (True) ->
                                                                                                                                                                                            (case (_tyVarMp) of
                                                                                                                                                                                             { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                             (case ((let sem_Expr_Con_7 :: T_Expr_7
                                                                                                                                                                                                         sem_Expr_Con_7 =
                                                                                                                                                                                                             (\ _lhsIcSubst
                                                                                                                                                                                                                _lhsIchrEvidBindMp
                                                                                                                                                                                                                _lhsIchrScopeBindMp
                                                                                                                                                                                                                _lhsIexprCtxt
                                                                                                                                                                                                                _lhsIfinTyVarMp
                                                                                                                                                                                                                _lhsIfinValGam
                                                                                                                                                                                                                _lhsImoduleNm
                                                                                                                                                                                                                _lhsIrangeMp
                                                                                                                                                                                                                _lhsIsysfEnv
                                                                                                                                                                                                                _lhsItr ->
                                                                                                                                                                                                                  _lhsIcSubst `seq`
                                                                                                                                                                                                                  (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                   (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                    (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                     (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                      (_lhsIfinValGam `seq`
                                                                                                                                                                                                                       (_lhsImoduleNm `seq`
                                                                                                                                                                                                                        (_lhsIrangeMp `seq`
                                                                                                                                                                                                                         (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                          (_lhsItr `seq`
                                                                                                                                                                                                                           ((case (Seq.empty) of
                                                                                                                                                                                                                             { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                             (case ([]) of
                                                                                                                                                                                                                              { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                              (case ([]) of
                                                                                                                                                                                                                               { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                               (case (__tup69) of
                                                                                                                                                                                                                                { (_,_,_lUniq_cexpr) | _lUniq_cexpr `seq` (True) ->
                                                                                                                                                                                                                                (case (acoreExprUnThunk $ acoreVar nm_) of
                                                                                                                                                                                                                                 { _cexprBase | _cexprBase `seq` (True) ->
                                                                                                                                                                                                                                 (case (foAppLRCoeAsSubst _lhsIopts _lUniq_cexpr _fo_ _lhsIfinTyVarMp _lhsIcSubst $
                                                                                                                                                                                                                                        _cexprBase) of
                                                                                                                                                                                                                                  { __tup66 | __tup66 `seq` (True) ->
                                                                                                                                                                                                                                  (case (__tup66) of
                                                                                                                                                                                                                                   { (_cexpr,_) | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                   (case (_cexpr) of
                                                                                                                                                                                                                                    { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                    (case (nm_) of
                                                                                                                                                                                                                                     { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                     (case (ppCon nm_) of
                                                                                                                                                                                                                                      { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                      (case (_pp) of
                                                                                                                                                                                                                                       { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                       (case ([]) of
                                                                                                                                                                                                                                        { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                        (case (__tup66) of
                                                                                                                                                                                                                                         { (_,_cexprCSubst) | _cexprCSubst `seq` (True) ->
                                                                                                                                                                                                                                         (case (cSubstApp _lhsIcSubst _cexprCSubst) of
                                                                                                                                                                                                                                          { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                          (case (Set.empty) of
                                                                                                                                                                                                                                           { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                           (case (_cexpr) of
                                                                                                                                                                                                                                            { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                            (case (__tup68) of
                                                                                                                                                                                                                                             { (_,_nmErrs) | _nmErrs `seq` (True) ->
                                                                                                                                                                                                                                             (case (rngLift _range mkNestErr' _pp [Seq.fromList _nmErrs, foErrSq _fo_]) of
                                                                                                                                                                                                                                              { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                              (case ([]) of
                                                                                                                                                                                                                                               { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                               (case ([]) of
                                                                                                                                                                                                                                                { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                                (case (emptyGam) of
                                                                                                                                                                                                                                                 { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                                 (case (Seq.empty) of
                                                                                                                                                                                                                                                  { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                                  (case (emptyGam) of
                                                                                                                                                                                                                                                   { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                   (case (Map.empty) of
                                                                                                                                                                                                                                                    { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                    (case (_lhsIfinTyVarMp `varUpd` _ty) of
                                                                                                                                                                                                                                                     { _finalTy | _finalTy `seq` (True) ->
                                                                                                                                                                                                                                                     (case (mentrelFilterMpSingleton [_lhsImoduleNm] IdOcc_Val nm_
                                                                                                                                                                                                                                                            `mentrelFilterMpUnion`
                                                                                                                                                                                                                                                            tyUsedNames _lhsImoduleNm _finalTy) of
                                                                                                                                                                                                                                                      { _gathMentrelFilterMp | _gathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                      (case (_gathMentrelFilterMp) of
                                                                                                                                                                                                                                                       { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                       (case (emptyGam) of
                                                                                                                                                                                                                                                        { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                        (case (emptyVarMp) of
                                                                                                                                                                                                                                                         { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                         (case (emptyGam) of
                                                                                                                                                                                                                                                          { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                          (case (emptyGam) of
                                                                                                                                                                                                                                                           { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                           (case (dataGamLookupErr nm_ _lhsIdataGam) of
                                                                                                                                                                                                                                                            { __tup67 | __tup67 `seq` (True) ->
                                                                                                                                                                                                                                                            (case (__tup67) of
                                                                                                                                                                                                                                                             { (_dgi,_) | _dgi `seq` (True) ->
                                                                                                                                                                                                                                                             (case (dgiIsNewtype _dgi) of
                                                                                                                                                                                                                                                              { _isNewtype | _isNewtype `seq` (True) ->
                                                                                                                                                                                                                                                              (case (_isNewtype) of
                                                                                                                                                                                                                                                               { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                               (case ([]) of
                                                                                                                                                                                                                                                                { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                (case (_lamArgPPL) of
                                                                                                                                                                                                                                                                 { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                 (case (_pp) of
                                                                                                                                                                                                                                                                  { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                  (case (_lamBodyPP) of
                                                                                                                                                                                                                                                                   { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                   (case (_cexpr) of
                                                                                                                                                                                                                                                                    { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                                    (case ([]) of
                                                                                                                                                                                                                                                                     { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                     (case ([]) of
                                                                                                                                                                                                                                                                      { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                      (case ([]) of
                                                                                                                                                                                                                                                                       { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                       (case (Set.empty) of
                                                                                                                                                                                                                                                                        { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                        (case (_pp) of
                                                                                                                                                                                                                                                                         { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                         (case (trppEmpty) of
                                                                                                                                                                                                                                                                          { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                          (case (ppNestTrPP ["Expr","Con"] [ppTrNm nm_] [] _trppHere) of
                                                                                                                                                                                                                                                                           { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                           (case (trppEmpty) of
                                                                                                                                                                                                                                                                            { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                            ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                     in  sem_Expr_Con_7)) of
                                                                                                                                                                                              { ( sem_Expr_7) | True ->
                                                                                                                                                                                              ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                         in  sem_Expr_Con_6)) of
                                                                                                                                                  { ( sem_Expr_6) | True ->
                                                                                                                                                  ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) })))
                                                                                                                             in  sem_Expr_Con_5)) of
                                                                                                                      { ( sem_Expr_5) | True ->
                                                                                                                      ( _lhsOgathDataGam,sem_Expr_5) }) })))))))
                                                                                                  in  sem_Expr_Con_4)) of
                                                                                           { ( sem_Expr_4) | True ->
                                                                                           ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) })))))))))))
                                                                 in  sem_Expr_Con_3)) of
                                                          { ( sem_Expr_3) | True ->
                                                          ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }))))))
                                       in  sem_Expr_Con_2)) of
                                { ( sem_Expr_2) | True ->
                                ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) })))
              in  sem_Expr_Con_1)) of
       { ( sem_Expr_1) | True ->
       ( _lhsOrange,sem_Expr_1) }) }) })

sem_Expr_Var :: Range ->
                HsName ->
                T_Expr

sem_Expr_Var hsrange_ nm_ | hsrange_ `seq` (nm_ `seq` (True)) =
    (case (hsrange_) of
     { _range | _range `seq` (True) ->
     (case (_range) of
      { _lhsOrange | _lhsOrange `seq` (True) ->
      (case ((let sem_Expr_Var_1 :: T_Expr_1
                  sem_Expr_Var_1 =
                      (\ _lhsIgUniq ->
                           _lhsIgUniq `seq`
                           ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq_cexpr) -> (__cont,lUniq,lUniq_cexpr)}} )) of
                             { __tup72 | __tup72 `seq` (True) ->
                             (case (__tup72) of
                              { (_lhsOgUniq,_,_) | _lhsOgUniq `seq` (True) ->
                              (case (False) of
                               { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                               (case ((let sem_Expr_Var_2 :: T_Expr_2
                                           sem_Expr_Var_2 =
                                               (\ _lhsIisFirstLet
                                                  _lhsIkiGam
                                                  _lhsIlexLev
                                                  _lhsIpredSameScopeCounter ->
                                                    _lhsIisFirstLet `seq`
                                                    (_lhsIkiGam `seq`
                                                     (_lhsIlexLev `seq`
                                                      (_lhsIpredSameScopeCounter `seq`
                                                       ((case (_lhsIpredSameScopeCounter) of
                                                         { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                         (case ((let sem_Expr_Var_3 :: T_Expr_3
                                                                     sem_Expr_Var_3 =
                                                                         (\ _lhsIgenerDataInfoMp
                                                                            _lhsIkiVarMp
                                                                            _lhsIopts
                                                                            _lhsIpolGam
                                                                            _lhsIpolVarMp
                                                                            _lhsIpredScope
                                                                            _lhsItyGam
                                                                            _lhsItyKiGam
                                                                            _lhsItyKiGlobFreeTvarS ->
                                                                              _lhsIgenerDataInfoMp `seq`
                                                                              (_lhsIkiVarMp `seq`
                                                                               (_lhsIopts `seq`
                                                                                (_lhsIpolGam `seq`
                                                                                 (_lhsIpolVarMp `seq`
                                                                                  (_lhsIpredScope `seq`
                                                                                   (_lhsItyGam `seq`
                                                                                    (_lhsItyKiGam `seq`
                                                                                     (_lhsItyKiGlobFreeTvarS `seq`
                                                                                      ((case (_lhsIgenerDataInfoMp) of
                                                                                        { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                        (case (_lhsIkiVarMp) of
                                                                                         { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                         (case (_lhsIpolVarMp) of
                                                                                          { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                          (case ((let sem_Expr_Var_4 :: T_Expr_4
                                                                                                      sem_Expr_Var_4 =
                                                                                                          (\ _lhsIclGam
                                                                                                             _lhsIfinKiVarMp
                                                                                                             _lhsIfinTyKiGam
                                                                                                             _lhsIgathDataGam
                                                                                                             _lhsItyTyTySigFreeTvarS ->
                                                                                                               _lhsIclGam `seq`
                                                                                                               (_lhsIfinKiVarMp `seq`
                                                                                                                (_lhsIfinTyKiGam `seq`
                                                                                                                 (_lhsIgathDataGam `seq`
                                                                                                                  (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                   ((case (_lhsIgathDataGam) of
                                                                                                                     { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                     (case ((let sem_Expr_Var_5 :: T_Expr_5
                                                                                                                                 sem_Expr_Var_5 =
                                                                                                                                     (\ _lhsIdataGam ->
                                                                                                                                          _lhsIdataGam `seq`
                                                                                                                                          ((case (Seq.empty) of
                                                                                                                                            { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                            (case (defaultFIEnv
                                                                                                                                                       { feEHCOpts = _lhsIopts
                                                                                                                                                       , fePredScope = _lhsIpredScope
                                                                                                                                                       , feTyGam = _lhsItyGam
                                                                                                                                                       , fePolGam = _lhsIpolGam
                                                                                                                                                       , feRange = _range
                                                                                                                                                       }) of
                                                                                                                                             { _fe | _fe `seq` (True) ->
                                                                                                                                             (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                              { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                              (case (_chrFIIn) of
                                                                                                                                               { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                               (case (Seq.empty) of
                                                                                                                                                { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                (case (emptyGam) of
                                                                                                                                                 { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                 (case ((let sem_Expr_Var_6 :: T_Expr_6
                                                                                                                                                             sem_Expr_Var_6 =
                                                                                                                                                                 (\ _lhsIchrStore
                                                                                                                                                                    _lhsIclDfGam
                                                                                                                                                                    _lhsIfiOpts
                                                                                                                                                                    _lhsIknTy
                                                                                                                                                                    _lhsItvKiVarMp
                                                                                                                                                                    _lhsItyTyGlobFreeTvarS
                                                                                                                                                                    _lhsItyVarMp
                                                                                                                                                                    _lhsIvalGam
                                                                                                                                                                    _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                      _lhsIchrStore `seq`
                                                                                                                                                                      (_lhsIclDfGam `seq`
                                                                                                                                                                       (_lhsIfiOpts `seq`
                                                                                                                                                                        (_lhsIknTy `seq`
                                                                                                                                                                         (_lhsItvKiVarMp `seq`
                                                                                                                                                                          (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                           (_lhsItyVarMp `seq`
                                                                                                                                                                            (_lhsIvalGam `seq`
                                                                                                                                                                             (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                              ((case (__tup72) of
                                                                                                                                                                                { (_,_lUniq,_) | _lUniq `seq` (True) ->
                                                                                                                                                                                (case (valGamLookupTy nm_ _lhsIvalGam) of
                                                                                                                                                                                 { __tup71 | __tup71 `seq` (True) ->
                                                                                                                                                                                 (case (__tup71) of
                                                                                                                                                                                  { (_ty_g_,_) | _ty_g_ `seq` (True) ->
                                                                                                                                                                                  (case (\o m -> fitsIn o _fe _lUniq m _ty_g_ _lhsIknTy) of
                                                                                                                                                                                   { _doFit | _doFit `seq` (True) ->
                                                                                                                                                                                   (case (_doFit _lhsIfiOpts _lhsItyVarMp) of
                                                                                                                                                                                    { _fo_ | _fo_ `seq` (True) ->
                                                                                                                                                                                    (case (foGathCnstrMp _fo_) of
                                                                                                                                                                                     { _hereCnstrMp | _hereCnstrMp `seq` (True) ->
                                                                                                                                                                                     (case (_hereCnstrMp) of
                                                                                                                                                                                      { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                      (case (Map.empty) of
                                                                                                                                                                                       { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                       (case (emptyGam) of
                                                                                                                                                                                        { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                        (case (Set.empty) of
                                                                                                                                                                                         { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                         (case (foTy _fo_) of
                                                                                                                                                                                          { _ty | _ty `seq` (True) ->
                                                                                                                                                                                          (case (_ty) of
                                                                                                                                                                                           { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                           (case (foVarMp _fo_ `varUpd` _lhsItyVarMp) of
                                                                                                                                                                                            { _tyVarMp | _tyVarMp `seq` (True) ->
                                                                                                                                                                                            (case (_tyVarMp) of
                                                                                                                                                                                             { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                             (case ((let sem_Expr_Var_7 :: T_Expr_7
                                                                                                                                                                                                         sem_Expr_Var_7 =
                                                                                                                                                                                                             (\ _lhsIcSubst
                                                                                                                                                                                                                _lhsIchrEvidBindMp
                                                                                                                                                                                                                _lhsIchrScopeBindMp
                                                                                                                                                                                                                _lhsIexprCtxt
                                                                                                                                                                                                                _lhsIfinTyVarMp
                                                                                                                                                                                                                _lhsIfinValGam
                                                                                                                                                                                                                _lhsImoduleNm
                                                                                                                                                                                                                _lhsIrangeMp
                                                                                                                                                                                                                _lhsIsysfEnv
                                                                                                                                                                                                                _lhsItr ->
                                                                                                                                                                                                                  _lhsIcSubst `seq`
                                                                                                                                                                                                                  (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                   (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                    (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                     (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                      (_lhsIfinValGam `seq`
                                                                                                                                                                                                                       (_lhsImoduleNm `seq`
                                                                                                                                                                                                                        (_lhsIrangeMp `seq`
                                                                                                                                                                                                                         (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                          (_lhsItr `seq`
                                                                                                                                                                                                                           ((case (Seq.empty) of
                                                                                                                                                                                                                             { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                             (case ([]) of
                                                                                                                                                                                                                              { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                              (case ([]) of
                                                                                                                                                                                                                               { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                               (case (__tup72) of
                                                                                                                                                                                                                                { (_,_,_lUniq_cexpr) | _lUniq_cexpr `seq` (True) ->
                                                                                                                                                                                                                                (case (acoreExprUnThunk $ acoreVar nm_) of
                                                                                                                                                                                                                                 { _cexprBase | _cexprBase `seq` (True) ->
                                                                                                                                                                                                                                 (case (foAppLRCoeAsSubst _lhsIopts _lUniq_cexpr _fo_ _lhsIfinTyVarMp _lhsIcSubst $
                                                                                                                                                                                                                                        _cexprBase) of
                                                                                                                                                                                                                                  { __tup70 | __tup70 `seq` (True) ->
                                                                                                                                                                                                                                  (case (__tup70) of
                                                                                                                                                                                                                                   { (_cexpr,_) | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                   (case (_cexpr) of
                                                                                                                                                                                                                                    { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                    (case (hsnUnknown) of
                                                                                                                                                                                                                                     { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                     (case (pp nm_) of
                                                                                                                                                                                                                                      { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                      (case (_pp) of
                                                                                                                                                                                                                                       { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                       (case ([]) of
                                                                                                                                                                                                                                        { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                        (case (__tup70) of
                                                                                                                                                                                                                                         { (_,_cexprCSubst) | _cexprCSubst `seq` (True) ->
                                                                                                                                                                                                                                         (case (cSubstApp _lhsIcSubst _cexprCSubst) of
                                                                                                                                                                                                                                          { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                          (case (Set.empty) of
                                                                                                                                                                                                                                           { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                           (case (_cexpr) of
                                                                                                                                                                                                                                            { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                            (case (__tup71) of
                                                                                                                                                                                                                                             { (_,_nmErrs) | _nmErrs `seq` (True) ->
                                                                                                                                                                                                                                             (case (rngLift _range mkNestErr' _pp [Seq.fromList _nmErrs, foErrSq _fo_]) of
                                                                                                                                                                                                                                              { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                              (case ([]) of
                                                                                                                                                                                                                                               { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                               (case ([]) of
                                                                                                                                                                                                                                                { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                                (case (emptyGam) of
                                                                                                                                                                                                                                                 { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                                 (case (Seq.empty) of
                                                                                                                                                                                                                                                  { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                                  (case (emptyGam) of
                                                                                                                                                                                                                                                   { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                   (case (Map.empty) of
                                                                                                                                                                                                                                                    { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                    (case (_lhsIfinTyVarMp `varUpd` _ty) of
                                                                                                                                                                                                                                                     { _finalTy | _finalTy `seq` (True) ->
                                                                                                                                                                                                                                                     (case (mentrelFilterMpSingleton [_lhsImoduleNm] IdOcc_Val nm_
                                                                                                                                                                                                                                                            `mentrelFilterMpUnion`
                                                                                                                                                                                                                                                            tyUsedNames _lhsImoduleNm _finalTy) of
                                                                                                                                                                                                                                                      { _gathMentrelFilterMp | _gathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                      (case (_gathMentrelFilterMp) of
                                                                                                                                                                                                                                                       { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                       (case (emptyGam) of
                                                                                                                                                                                                                                                        { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                        (case (emptyVarMp) of
                                                                                                                                                                                                                                                         { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                         (case (emptyGam) of
                                                                                                                                                                                                                                                          { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                          (case (emptyGam) of
                                                                                                                                                                                                                                                           { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                           (case (False) of
                                                                                                                                                                                                                                                            { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                            (case ([]) of
                                                                                                                                                                                                                                                             { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                             (case (_lamArgPPL) of
                                                                                                                                                                                                                                                              { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                              (case (_pp) of
                                                                                                                                                                                                                                                               { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                               (case (_lamBodyPP) of
                                                                                                                                                                                                                                                                { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                (case (_cexpr) of
                                                                                                                                                                                                                                                                 { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                                 (case ([]) of
                                                                                                                                                                                                                                                                  { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                  (case ([]) of
                                                                                                                                                                                                                                                                   { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                   (case ([]) of
                                                                                                                                                                                                                                                                    { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                    (case (Set.empty) of
                                                                                                                                                                                                                                                                     { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                     (case (_pp) of
                                                                                                                                                                                                                                                                      { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                      (case (trppEmpty) of
                                                                                                                                                                                                                                                                       { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                       (case (ppNestTrPP ["Expr","Var"] [ppTrNm nm_] [] _trppHere) of
                                                                                                                                                                                                                                                                        { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                        (case (trppEmpty) of
                                                                                                                                                                                                                                                                         { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                         ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                     in  sem_Expr_Var_7)) of
                                                                                                                                                                                              { ( sem_Expr_7) | True ->
                                                                                                                                                                                              ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                         in  sem_Expr_Var_6)) of
                                                                                                                                                  { ( sem_Expr_6) | True ->
                                                                                                                                                  ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) })))
                                                                                                                             in  sem_Expr_Var_5)) of
                                                                                                                      { ( sem_Expr_5) | True ->
                                                                                                                      ( _lhsOgathDataGam,sem_Expr_5) }) })))))))
                                                                                                  in  sem_Expr_Var_4)) of
                                                                                           { ( sem_Expr_4) | True ->
                                                                                           ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) })))))))))))
                                                                 in  sem_Expr_Var_3)) of
                                                          { ( sem_Expr_3) | True ->
                                                          ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }))))))
                                       in  sem_Expr_Var_2)) of
                                { ( sem_Expr_2) | True ->
                                ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) })))
              in  sem_Expr_Var_1)) of
       { ( sem_Expr_1) | True ->
       ( _lhsOrange,sem_Expr_1) }) }) })

sem_Expr_App :: Range ->
                T_Expr ->
                T_Expr ->
                T_Expr

sem_Expr_App hsrange_ func_ arg_ | hsrange_ `seq` (func_ `seq` (arg_ `seq` (True))) =
    (case (arg_) of
     { ( _argIrange,arg_1) | True ->
         (case (func_) of
          { ( _funcIrange,func_1) | True ->
              (case (rangeUnions [hsrange_, _funcIrange   , _argIrange   ]) of
               { _range | _range `seq` (True) ->
               (case (_range) of
                { _lhsOrange | _lhsOrange `seq` (True) ->
                (case ((let sem_Expr_App_1 :: T_Expr_1
                            sem_Expr_App_1 =
                                (\ _lhsIgUniq ->
                                     _lhsIgUniq `seq`
                                     ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq3) -> case nextUnique __cont of { (__cont, lUniq_cexpr) -> (__cont,lUniq,lUniq3,lUniq_cexpr)}}} )) of
                                       { __tup80 | __tup80 `seq` (True) ->
                                       (case (__tup80) of
                                        { (_funcOgUniq,_,_,_) | _funcOgUniq `seq` (True) ->
                                        (case (func_1 _funcOgUniq) of
                                         { ( _funcIgUniq,_funcIhasInstDecl,func_2) | True ->
                                             (case (_funcIgUniq) of
                                              { _argOgUniq | _argOgUniq `seq` (True) ->
                                              (case (arg_1 _argOgUniq) of
                                               { ( _argIgUniq,_argIhasInstDecl,arg_2) | True ->
                                                   (case (_argIgUniq) of
                                                    { _lhsOgUniq | _lhsOgUniq `seq` (True) ->
                                                    (case (False) of
                                                     { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                                                     (case ((let sem_Expr_App_2 :: T_Expr_2
                                                                 sem_Expr_App_2 =
                                                                     (\ _lhsIisFirstLet
                                                                        _lhsIkiGam
                                                                        _lhsIlexLev
                                                                        _lhsIpredSameScopeCounter ->
                                                                          _lhsIisFirstLet `seq`
                                                                          (_lhsIkiGam `seq`
                                                                           (_lhsIlexLev `seq`
                                                                            (_lhsIpredSameScopeCounter `seq`
                                                                             ((case (_lhsIpredSameScopeCounter) of
                                                                               { _funcOpredSameScopeCounter | _funcOpredSameScopeCounter `seq` (True) ->
                                                                               (case (_lhsIlexLev) of
                                                                                { _funcOlexLev | _funcOlexLev `seq` (True) ->
                                                                                (case (_lhsIkiGam) of
                                                                                 { _funcOkiGam | _funcOkiGam `seq` (True) ->
                                                                                 (case (True) of
                                                                                  { _isFirstLet | _isFirstLet `seq` (True) ->
                                                                                  (case (_isFirstLet) of
                                                                                   { _funcOisFirstLet | _funcOisFirstLet `seq` (True) ->
                                                                                   (case (func_2 _funcOisFirstLet _funcOkiGam _funcOlexLev _funcOpredSameScopeCounter) of
                                                                                    { ( _funcIpredSameScopeCounter,func_3) | True ->
                                                                                        (case (_funcIpredSameScopeCounter) of
                                                                                         { _argOpredSameScopeCounter | _argOpredSameScopeCounter `seq` (True) ->
                                                                                         (case (_lhsIlexLev) of
                                                                                          { _argOlexLev | _argOlexLev `seq` (True) ->
                                                                                          (case (_lhsIkiGam) of
                                                                                           { _argOkiGam | _argOkiGam `seq` (True) ->
                                                                                           (case (_isFirstLet) of
                                                                                            { _argOisFirstLet | _argOisFirstLet `seq` (True) ->
                                                                                            (case (arg_2 _argOisFirstLet _argOkiGam _argOlexLev _argOpredSameScopeCounter) of
                                                                                             { ( _argIpredSameScopeCounter,arg_3) | True ->
                                                                                                 (case (_argIpredSameScopeCounter) of
                                                                                                  { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                                                                  (case ((let sem_Expr_App_3 :: T_Expr_3
                                                                                                              sem_Expr_App_3 =
                                                                                                                  (\ _lhsIgenerDataInfoMp
                                                                                                                     _lhsIkiVarMp
                                                                                                                     _lhsIopts
                                                                                                                     _lhsIpolGam
                                                                                                                     _lhsIpolVarMp
                                                                                                                     _lhsIpredScope
                                                                                                                     _lhsItyGam
                                                                                                                     _lhsItyKiGam
                                                                                                                     _lhsItyKiGlobFreeTvarS ->
                                                                                                                       _lhsIgenerDataInfoMp `seq`
                                                                                                                       (_lhsIkiVarMp `seq`
                                                                                                                        (_lhsIopts `seq`
                                                                                                                         (_lhsIpolGam `seq`
                                                                                                                          (_lhsIpolVarMp `seq`
                                                                                                                           (_lhsIpredScope `seq`
                                                                                                                            (_lhsItyGam `seq`
                                                                                                                             (_lhsItyKiGam `seq`
                                                                                                                              (_lhsItyKiGlobFreeTvarS `seq`
                                                                                                                               ((case (_lhsItyKiGlobFreeTvarS) of
                                                                                                                                 { _argOtyKiGlobFreeTvarS | _argOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                                 (case (_lhsItyKiGam) of
                                                                                                                                  { _argOtyKiGam | _argOtyKiGam `seq` (True) ->
                                                                                                                                  (case (_lhsItyGam) of
                                                                                                                                   { _argOtyGam | _argOtyGam `seq` (True) ->
                                                                                                                                   (case (_lhsIpredScope) of
                                                                                                                                    { _predScope | _predScope `seq` (True) ->
                                                                                                                                    (case (_predScope) of
                                                                                                                                     { _argOpredScope | _argOpredScope `seq` (True) ->
                                                                                                                                     (case (_lhsItyKiGlobFreeTvarS) of
                                                                                                                                      { _funcOtyKiGlobFreeTvarS | _funcOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                                      (case (_lhsItyKiGam) of
                                                                                                                                       { _funcOtyKiGam | _funcOtyKiGam `seq` (True) ->
                                                                                                                                       (case (_lhsItyGam) of
                                                                                                                                        { _funcOtyGam | _funcOtyGam `seq` (True) ->
                                                                                                                                        (case (_predScope) of
                                                                                                                                         { _funcOpredScope | _funcOpredScope `seq` (True) ->
                                                                                                                                         (case (_lhsIpolVarMp) of
                                                                                                                                          { _funcOpolVarMp | _funcOpolVarMp `seq` (True) ->
                                                                                                                                          (case (_lhsIpolGam) of
                                                                                                                                           { _funcOpolGam | _funcOpolGam `seq` (True) ->
                                                                                                                                           (case (_lhsIopts) of
                                                                                                                                            { _funcOopts | _funcOopts `seq` (True) ->
                                                                                                                                            (case (_lhsIkiVarMp) of
                                                                                                                                             { _funcOkiVarMp | _funcOkiVarMp `seq` (True) ->
                                                                                                                                             (case (_lhsIgenerDataInfoMp) of
                                                                                                                                              { _funcOgenerDataInfoMp | _funcOgenerDataInfoMp `seq` (True) ->
                                                                                                                                              (case (func_3 _funcOgenerDataInfoMp _funcOkiVarMp _funcOopts _funcOpolGam _funcOpolVarMp _funcOpredScope _funcOtyGam _funcOtyKiGam _funcOtyKiGlobFreeTvarS) of
                                                                                                                                               { ( _funcIgenerDataInfoMp,_funcIkiVarMp,_funcIpolVarMp,func_4) | True ->
                                                                                                                                                   (case (_funcIpolVarMp) of
                                                                                                                                                    { _argOpolVarMp | _argOpolVarMp `seq` (True) ->
                                                                                                                                                    (case (_lhsIpolGam) of
                                                                                                                                                     { _argOpolGam | _argOpolGam `seq` (True) ->
                                                                                                                                                     (case (_lhsIopts) of
                                                                                                                                                      { _argOopts | _argOopts `seq` (True) ->
                                                                                                                                                      (case (_funcIkiVarMp) of
                                                                                                                                                       { _argOkiVarMp | _argOkiVarMp `seq` (True) ->
                                                                                                                                                       (case (_funcIgenerDataInfoMp) of
                                                                                                                                                        { _argOgenerDataInfoMp | _argOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                        (case (arg_3 _argOgenerDataInfoMp _argOkiVarMp _argOopts _argOpolGam _argOpolVarMp _argOpredScope _argOtyGam _argOtyKiGam _argOtyKiGlobFreeTvarS) of
                                                                                                                                                         { ( _argIgenerDataInfoMp,_argIkiVarMp,_argIpolVarMp,arg_4) | True ->
                                                                                                                                                             (case (_argIgenerDataInfoMp) of
                                                                                                                                                              { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                              (case (_argIkiVarMp) of
                                                                                                                                                               { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                                                                                               (case (_argIpolVarMp) of
                                                                                                                                                                { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                                                                                                (case ((let sem_Expr_App_4 :: T_Expr_4
                                                                                                                                                                            sem_Expr_App_4 =
                                                                                                                                                                                (\ _lhsIclGam
                                                                                                                                                                                   _lhsIfinKiVarMp
                                                                                                                                                                                   _lhsIfinTyKiGam
                                                                                                                                                                                   _lhsIgathDataGam
                                                                                                                                                                                   _lhsItyTyTySigFreeTvarS ->
                                                                                                                                                                                     _lhsIclGam `seq`
                                                                                                                                                                                     (_lhsIfinKiVarMp `seq`
                                                                                                                                                                                      (_lhsIfinTyKiGam `seq`
                                                                                                                                                                                       (_lhsIgathDataGam `seq`
                                                                                                                                                                                        (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                                                                                         ((case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                           { _argOtyTyTySigFreeTvarS | _argOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                           (case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                            { _funcOtyTyTySigFreeTvarS | _funcOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                            (case (_lhsIgathDataGam) of
                                                                                                                                                                                             { _funcOgathDataGam | _funcOgathDataGam `seq` (True) ->
                                                                                                                                                                                             (case (_lhsIfinTyKiGam) of
                                                                                                                                                                                              { _funcOfinTyKiGam | _funcOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                              (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                               { _funcOfinKiVarMp | _funcOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                               (case (_lhsIclGam) of
                                                                                                                                                                                                { _funcOclGam | _funcOclGam `seq` (True) ->
                                                                                                                                                                                                (case (func_4 _funcOclGam _funcOfinKiVarMp _funcOfinTyKiGam _funcOgathDataGam _funcOtyTyTySigFreeTvarS) of
                                                                                                                                                                                                 { ( _funcIgathDataGam,func_5) | True ->
                                                                                                                                                                                                     (case (_funcIgathDataGam) of
                                                                                                                                                                                                      { _argOgathDataGam | _argOgathDataGam `seq` (True) ->
                                                                                                                                                                                                      (case (_lhsIfinTyKiGam) of
                                                                                                                                                                                                       { _argOfinTyKiGam | _argOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                                       (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                                        { _argOfinKiVarMp | _argOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                                        (case (_lhsIclGam) of
                                                                                                                                                                                                         { _argOclGam | _argOclGam `seq` (True) ->
                                                                                                                                                                                                         (case (arg_4 _argOclGam _argOfinKiVarMp _argOfinTyKiGam _argOgathDataGam _argOtyTyTySigFreeTvarS) of
                                                                                                                                                                                                          { ( _argIgathDataGam,arg_5) | True ->
                                                                                                                                                                                                              (case (_argIgathDataGam) of
                                                                                                                                                                                                               { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                                                                                                               (case ((let sem_Expr_App_5 :: T_Expr_5
                                                                                                                                                                                                                           sem_Expr_App_5 =
                                                                                                                                                                                                                               (\ _lhsIdataGam ->
                                                                                                                                                                                                                                    _lhsIdataGam `seq`
                                                                                                                                                                                                                                    ((case (Seq.empty) of
                                                                                                                                                                                                                                      { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                                                                                                                      (case (defaultFIEnv
                                                                                                                                                                                                                                                 { feEHCOpts = _lhsIopts
                                                                                                                                                                                                                                                 , fePredScope = _lhsIpredScope
                                                                                                                                                                                                                                                 , feTyGam = _lhsItyGam
                                                                                                                                                                                                                                                 , fePolGam = _lhsIpolGam
                                                                                                                                                                                                                                                 , feRange = _range
                                                                                                                                                                                                                                                 }) of
                                                                                                                                                                                                                                       { _fe | _fe `seq` (True) ->
                                                                                                                                                                                                                                       (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                                                                                                                        { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                                                                                                                        (case (_chrFIIn) of
                                                                                                                                                                                                                                         { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                                                                                                                         (case (_lhsIdataGam) of
                                                                                                                                                                                                                                          { _argOdataGam | _argOdataGam `seq` (True) ->
                                                                                                                                                                                                                                          (case (_lhsIdataGam) of
                                                                                                                                                                                                                                           { _funcOdataGam | _funcOdataGam `seq` (True) ->
                                                                                                                                                                                                                                           (case (arg_5 _argOdataGam) of
                                                                                                                                                                                                                                            { ( _argIchrClassDeclSq,_argIchrFIIn,_argIchrInstDeclSq,_argIgathClDfGam,arg_6) | True ->
                                                                                                                                                                                                                                                (case (func_5 _funcOdataGam) of
                                                                                                                                                                                                                                                 { ( _funcIchrClassDeclSq,_funcIchrFIIn,_funcIchrInstDeclSq,_funcIgathClDfGam,func_6) | True ->
                                                                                                                                                                                                                                                     (case (_funcIchrInstDeclSq `Seq.union` _argIchrInstDeclSq) of
                                                                                                                                                                                                                                                      { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                                                                                                                      (case (emptyGam) of
                                                                                                                                                                                                                                                       { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                                                                                                                       (case ((let sem_Expr_App_6 :: T_Expr_6
                                                                                                                                                                                                                                                                   sem_Expr_App_6 =
                                                                                                                                                                                                                                                                       (\ _lhsIchrStore
                                                                                                                                                                                                                                                                          _lhsIclDfGam
                                                                                                                                                                                                                                                                          _lhsIfiOpts
                                                                                                                                                                                                                                                                          _lhsIknTy
                                                                                                                                                                                                                                                                          _lhsItvKiVarMp
                                                                                                                                                                                                                                                                          _lhsItyTyGlobFreeTvarS
                                                                                                                                                                                                                                                                          _lhsItyVarMp
                                                                                                                                                                                                                                                                          _lhsIvalGam
                                                                                                                                                                                                                                                                          _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                                                                                                                            _lhsIchrStore `seq`
                                                                                                                                                                                                                                                                            (_lhsIclDfGam `seq`
                                                                                                                                                                                                                                                                             (_lhsIfiOpts `seq`
                                                                                                                                                                                                                                                                              (_lhsIknTy `seq`
                                                                                                                                                                                                                                                                               (_lhsItvKiVarMp `seq`
                                                                                                                                                                                                                                                                                (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                                                                 (_lhsItyVarMp `seq`
                                                                                                                                                                                                                                                                                  (_lhsIvalGam `seq`
                                                                                                                                                                                                                                                                                   (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                                                                    ((case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                      { _argOvalTyGlobFreeTvarS | _argOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                      (case (_lhsIvalGam) of
                                                                                                                                                                                                                                                                                       { _argOvalGam | _argOvalGam `seq` (True) ->
                                                                                                                                                                                                                                                                                       (case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                        { _funcOvalTyGlobFreeTvarS | _funcOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                        (case (_lhsIvalGam) of
                                                                                                                                                                                                                                                                                         { _funcOvalGam | _funcOvalGam `seq` (True) ->
                                                                                                                                                                                                                                                                                         (case (_lhsItyVarMp) of
                                                                                                                                                                                                                                                                                          { _funcOtyVarMp | _funcOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                          (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                           { _funcOtyTyGlobFreeTvarS | _funcOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                           (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                                                                            { _funcOtvKiVarMp | _funcOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                            (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                                                                             { _funcOclDfGam | _funcOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                             (case (_lhsIchrStore) of
                                                                                                                                                                                                                                                                                              { _funcOchrStore | _funcOchrStore `seq` (True) ->
                                                                                                                                                                                                                                                                                              (case (__tup80) of
                                                                                                                                                                                                                                                                                               { (_,_lUniq,_,_) | _lUniq `seq` (True) ->
                                                                                                                                                                                                                                                                                               (case (let  [i,a] = mkNewUIDL 2 _lUniq
                                                                                                                                                                                                                                                                                                           im = mkImplsVar i
                                                                                                                                                                                                                                                                                                           at = mkTyVar a
                                                                                                                                                                                                                                                                                                      in   ([im,at] `appArr` _lhsIknTy,im,at)) of
                                                                                                                                                                                                                                                                                                { __tup78 | __tup78 `seq` (True) ->
                                                                                                                                                                                                                                                                                                (case (__tup78) of
                                                                                                                                                                                                                                                                                                 { (_knFunTy,_,_) | _knFunTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                 (case (_knFunTy) of
                                                                                                                                                                                                                                                                                                  { _funcOknTy | _funcOknTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                  (case (implFIOpts) of
                                                                                                                                                                                                                                                                                                   { _funcOfiOpts | _funcOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                                   (case (func_6 _funcOchrStore _funcOclDfGam _funcOfiOpts _funcOknTy _funcOtvKiVarMp _funcOtyTyGlobFreeTvarS _funcOtyVarMp _funcOvalGam _funcOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                    { ( _funcIgathCnstrMp,_funcIgathRangeMp,_funcIgathValGam,_funcInoLetQuantTyVarIdS,_funcIty,_funcItyVarMp,func_7) | True ->
                                                                                                                                                                                                                                                                                                        (case (_funcItyVarMp) of
                                                                                                                                                                                                                                                                                                         { _argOtyVarMp | _argOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                         (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                          { _argOtyTyGlobFreeTvarS | _argOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                          (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                                                                                           { _argOtvKiVarMp | _argOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                           (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                                                                                            { _argOclDfGam | _argOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                            (case (_lhsIchrStore) of
                                                                                                                                                                                                                                                                                                             { _argOchrStore | _argOchrStore `seq` (True) ->
                                                                                                                                                                                                                                                                                                             (case (__tup78) of
                                                                                                                                                                                                                                                                                                              { (_,_,_argTy) | _argTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                              (case (__tup78) of
                                                                                                                                                                                                                                                                                                               { (_,_imTy,_) | _imTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                               (case (_argTy) of
                                                                                                                                                                                                                                                                                                                { _argOknTy | _argOknTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                (case (instLFIOpts) of
                                                                                                                                                                                                                                                                                                                 { _argFIOpts | _argFIOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                                                 (case (_argFIOpts) of
                                                                                                                                                                                                                                                                                                                  { _argOfiOpts | _argOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                                                  (case (arg_6 _argOchrStore _argOclDfGam _argOfiOpts _argOknTy _argOtvKiVarMp _argOtyTyGlobFreeTvarS _argOtyVarMp _argOvalGam _argOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                   { ( _argIgathCnstrMp,_argIgathRangeMp,_argIgathValGam,_argInoLetQuantTyVarIdS,_argIty,_argItyVarMp,arg_7) | True ->
                                                                                                                                                                                                                                                                                                                       (case (implsPredsTailWithLkup (varmpImplsLookupCyc2 _argItyVarMp) _lhsIpredScope $ tyImplsWithLkup (varmpTyLookupCyc2 _argItyVarMp) _imTy) of
                                                                                                                                                                                                                                                                                                                        { __tup79 | __tup79 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                        (case (__tup79) of
                                                                                                                                                                                                                                                                                                                         { (_prOccL,_) | _prOccL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                         (case (gathPredLToProveCnstrMp _prOccL) of
                                                                                                                                                                                                                                                                                                                          { _hereCnstrMp | _hereCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                          (case (cnstrMpUnions [_hereCnstrMp, _funcIgathCnstrMp, _argIgathCnstrMp]) of
                                                                                                                                                                                                                                                                                                                           { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                           (case (_funcIgathRangeMp `Map.union` _argIgathRangeMp) of
                                                                                                                                                                                                                                                                                                                            { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                            (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                             { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                             (case (_funcInoLetQuantTyVarIdS `Set.union` _argInoLetQuantTyVarIdS) of
                                                                                                                                                                                                                                                                                                                              { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                              (case (_lhsIknTy) of
                                                                                                                                                                                                                                                                                                                               { _ty | _ty `seq` (True) ->
                                                                                                                                                                                                                                                                                                                               (case (_ty) of
                                                                                                                                                                                                                                                                                                                                { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                (case (__tup80) of
                                                                                                                                                                                                                                                                                                                                 { (_,_,_lUniq3,_) | _lUniq3 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                 (case (__tup79) of
                                                                                                                                                                                                                                                                                                                                  { (_,_implsTl) | _implsTl `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                  (case (mkImplsProveOcc _lUniq3 _lhsIpredScope) of
                                                                                                                                                                                                                                                                                                                                   { _imPrvOcc | _imPrvOcc `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                   (case (varmpTailAddOcc _imPrvOcc _implsTl) of
                                                                                                                                                                                                                                                                                                                                    { __tup73 | __tup73 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                    (case (__tup73) of
                                                                                                                                                                                                                                                                                                                                     { (_,_prvOccTlVarMp) | _prvOccTlVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                     (case (_prvOccTlVarMp `varUpd` _argItyVarMp) of
                                                                                                                                                                                                                                                                                                                                      { _tyVarMpApp | _tyVarMpApp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                      (case (_tyVarMpApp) of
                                                                                                                                                                                                                                                                                                                                       { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                       (case ((let sem_Expr_App_7 :: T_Expr_7
                                                                                                                                                                                                                                                                                                                                                   sem_Expr_App_7 =
                                                                                                                                                                                                                                                                                                                                                       (\ _lhsIcSubst
                                                                                                                                                                                                                                                                                                                                                          _lhsIchrEvidBindMp
                                                                                                                                                                                                                                                                                                                                                          _lhsIchrScopeBindMp
                                                                                                                                                                                                                                                                                                                                                          _lhsIexprCtxt
                                                                                                                                                                                                                                                                                                                                                          _lhsIfinTyVarMp
                                                                                                                                                                                                                                                                                                                                                          _lhsIfinValGam
                                                                                                                                                                                                                                                                                                                                                          _lhsImoduleNm
                                                                                                                                                                                                                                                                                                                                                          _lhsIrangeMp
                                                                                                                                                                                                                                                                                                                                                          _lhsIsysfEnv
                                                                                                                                                                                                                                                                                                                                                          _lhsItr ->
                                                                                                                                                                                                                                                                                                                                                            _lhsIcSubst `seq`
                                                                                                                                                                                                                                                                                                                                                            (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                                                                                                                                                             (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                                                                                                                                                              (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                                                                                                                                                               (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                                                                                                                                                                (_lhsIfinValGam `seq`
                                                                                                                                                                                                                                                                                                                                                                 (_lhsImoduleNm `seq`
                                                                                                                                                                                                                                                                                                                                                                  (_lhsIrangeMp `seq`
                                                                                                                                                                                                                                                                                                                                                                   (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                                                                                                                                                                    (_lhsItr `seq`
                                                                                                                                                                                                                                                                                                                                                                     ((case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                                                                                       { _argOsysfEnv | _argOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                       (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                                                                                        { _argOrangeMp | _argOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                        (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                                                                                         { _argOfinValGam | _argOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                         (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                          { _argOfinTyVarMp | _argOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                          (case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                                                                                           { _funcOsysfEnv | _funcOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                           (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                                                                                            { _funcOrangeMp | _funcOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                            (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                                                                                             { _funcOfinValGam | _funcOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                             (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                              { _funcOfinTyVarMp | _funcOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                              (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                                               { _argOtr | _argOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                               (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                                                { _argOmoduleNm | _argOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                (case (ExprCtxt_Internal) of
                                                                                                                                                                                                                                                                                                                                                                                 { _exprCtxt | _exprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                 (case (_exprCtxt) of
                                                                                                                                                                                                                                                                                                                                                                                  { _argOexprCtxt | _argOexprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                  (case (_lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                   { _argOchrScopeBindMp | _argOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                   (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                    { _argOchrEvidBindMp | _argOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                    (case (_lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                     { _funcOchrScopeBindMp | _funcOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                     (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                      { _funcOchrEvidBindMp | _funcOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                      (case (_lhsIcSubst) of
                                                                                                                                                                                                                                                                                                                                                                                       { _funcOcSubst | _funcOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                       (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                                                        { _funcOtr | _funcOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                        (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                                                         { _funcOmoduleNm | _funcOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                         (case (_exprCtxt) of
                                                                                                                                                                                                                                                                                                                                                                                          { _funcOexprCtxt | _funcOexprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                          (case (func_7 _funcOcSubst _funcOchrEvidBindMp _funcOchrScopeBindMp _funcOexprCtxt _funcOfinTyVarMp _funcOfinValGam _funcOmoduleNm _funcOrangeMp _funcOsysfEnv _funcOtr) of
                                                                                                                                                                                                                                                                                                                                                                                           { ( _funcIallErrSq,_funcIappArgCoeL,_funcIappArgPPL,_funcIappFunCExpr,_funcIappFunNm,_funcIappFunPP,_funcIbackCBindL,_funcIcSubst,_funcIcaseFailS,_funcIcexpr,_funcIerrSq,_funcIfrontCBindL,_funcIfuCExprL,_funcIgathClGam,_funcIgathHiddenExports,_funcIgathKiGam,_funcIgathLamMp,_funcIgathMentrelFilterMp,_funcIgathPolGam,_funcIgathTvKiVarMp,_funcIgathTyGam,_funcIgathTyKiGam,_funcIisNewtype,_funcIlamArgPPL,_funcIlamBodyPP,_funcIletCBody,_funcIletTyCBindL,_funcIletValCBindL,_funcIletValMainCBindL,_funcIorphanS,_funcIpp,_funcIppAST,_funcItrpp) | True ->
                                                                                                                                                                                                                                                                                                                                                                                               (case (_funcIcSubst) of
                                                                                                                                                                                                                                                                                                                                                                                                { _argOcSubst | _argOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                (case (arg_7 _argOcSubst _argOchrEvidBindMp _argOchrScopeBindMp _argOexprCtxt _argOfinTyVarMp _argOfinValGam _argOmoduleNm _argOrangeMp _argOsysfEnv _argOtr) of
                                                                                                                                                                                                                                                                                                                                                                                                 { ( _argIallErrSq,_argIappArgCoeL,_argIappArgPPL,_argIappFunCExpr,_argIappFunNm,_argIappFunPP,_argIbackCBindL,_argIcSubst,_argIcaseFailS,_argIcexpr,_argIerrSq,_argIfrontCBindL,_argIfuCExprL,_argIgathClGam,_argIgathHiddenExports,_argIgathKiGam,_argIgathLamMp,_argIgathMentrelFilterMp,_argIgathPolGam,_argIgathTvKiVarMp,_argIgathTyGam,_argIgathTyKiGam,_argIisNewtype,_argIlamArgPPL,_argIlamBodyPP,_argIletCBody,_argIletTyCBindL,_argIletValCBindL,_argIletValMainCBindL,_argIorphanS,_argIpp,_argIppAST,_argItrpp) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                     (case (_funcIallErrSq `Seq.union` _argIallErrSq) of
                                                                                                                                                                                                                                                                                                                                                                                                      { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                      (case ((acoreCoePoiLApp $ map poPoi _prOccL) ++ [Coe_ImplApp $ ipoId _imPrvOcc]) of
                                                                                                                                                                                                                                                                                                                                                                                                       { _appImplsCoeL | _appImplsCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                       (case (if _funcIisNewtype
                                                                                                                                                                                                                                                                                                                                                                                                              then ([],_argIcexpr)
                                                                                                                                                                                                                                                                                                                                                                                                              else (_funcIappArgCoeL ++ _appImplsCoeL ++ [acoreCoeApp1 _argIcexpr],_funcIappFunCExpr)) of
                                                                                                                                                                                                                                                                                                                                                                                                        { __tup75 | __tup75 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                        (case (__tup75) of
                                                                                                                                                                                                                                                                                                                                                                                                         { (_lhsOappArgCoeL,_) | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                         (case (mkExtAppPP  (_funcIappFunNm,_funcIappFunPP,_funcIappArgPPL)
                                                                                                                                                                                                                                                                                                                                                                                                                            (_argIappFunNm,_argIappFunPP,_argIappArgPPL,_argIpp)) of
                                                                                                                                                                                                                                                                                                                                                                                                          { __tup76 | __tup76 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                          (case (__tup76) of
                                                                                                                                                                                                                                                                                                                                                                                                           { (_,_lhsOappArgPPL) | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                           (case (__tup75) of
                                                                                                                                                                                                                                                                                                                                                                                                            { (_,_lhsOappFunCExpr) | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                            (case (_funcIappFunNm) of
                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                             (case (__tup76) of
                                                                                                                                                                                                                                                                                                                                                                                                              { (_lhsOappFunPP,_) | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                              (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                               { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                               (case (__tup80) of
                                                                                                                                                                                                                                                                                                                                                                                                                { (_,_,_,_lUniq_cexpr) | _lUniq_cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                (case (let mkapp f = wr $ acore1App f _argIcexpr
                                                                                                                                                                                                                                                                                                                                                                                                                           wr      = id
                                                                                                                                                                                                                                                                                                                                                                                                                           impl app= mkWeaveExpr _lhsIopts _lUniq_cexpr _lhsIfinTyVarMp _argIcSubst app _funcIcexpr _appImplsCoeL []
                                                                                                                                                                                                                                                                                                                                                                                                                       in  impl mkapp) of
                                                                                                                                                                                                                                                                                                                                                                                                                 { __tup74 | __tup74 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                 (case (__tup74) of
                                                                                                                                                                                                                                                                                                                                                                                                                  { (_,_cexprappCSubst) | _cexprappCSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                  (case (cSubstApp _argIcSubst _cexprappCSubst) of
                                                                                                                                                                                                                                                                                                                                                                                                                   { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_funcIcaseFailS `Set.union` _argIcaseFailS) of
                                                                                                                                                                                                                                                                                                                                                                                                                    { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                    (case (__tup74) of
                                                                                                                                                                                                                                                                                                                                                                                                                     { (_cexprapp,_) | _cexprapp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                     (case (if _funcIisNewtype then _argIcexpr else _cexprapp) of
                                                                                                                                                                                                                                                                                                                                                                                                                      { _cexpr | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                      (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                                       { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                       (case (_funcIpp >#< _argIpp) of
                                                                                                                                                                                                                                                                                                                                                                                                                        { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                        (case (rngLift _range mkNestErr' _pp [_funcIerrSq, _argIerrSq]) of
                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                         (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                          (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                           (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                            (case (_funcIgathHiddenExports `Seq.union` _argIgathHiddenExports) of
                                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                             (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                              (case (_funcIgathLamMp `lamMpUnionBindAspMp` _argIgathLamMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                               { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                               (case (_funcIgathMentrelFilterMp `mentrelFilterMpUnion` _argIgathMentrelFilterMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (_funcIgathTvKiVarMp `varmpUnion` _argIgathTvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                   { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                    { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (False) of
                                                                                                                                                                                                                                                                                                                                                                                                                                     { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                     (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                      { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (_lamArgPPL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                       { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                        { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_lamBodyPP) of
                                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                          (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                           (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                            (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (Set.empty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                               { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (ppNestTrPP ["Expr","App"] [] [_funcIppAST,_argIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (_funcItrpp >< _argItrpp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                  ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                                                                                                                                                               in  sem_Expr_App_7)) of
                                                                                                                                                                                                                                                                                                                                        { ( sem_Expr_7) | True ->
                                                                                                                                                                                                                                                                                                                                        ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                                                                                                                               in  sem_Expr_App_6)) of
                                                                                                                                                                                                                                                        { ( sem_Expr_6) | True ->
                                                                                                                                                                                                                                                        ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) }) }) }) }) })))
                                                                                                                                                                                                                       in  sem_Expr_App_5)) of
                                                                                                                                                                                                                { ( sem_Expr_5) | True ->
                                                                                                                                                                                                                ( _lhsOgathDataGam,sem_Expr_5) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))
                                                                                                                                                                        in  sem_Expr_App_4)) of
                                                                                                                                                                 { ( sem_Expr_4) | True ->
                                                                                                                                                                 ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                          in  sem_Expr_App_3)) of
                                                                                                   { ( sem_Expr_3) | True ->
                                                                                                   ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }) }) }) }) }) }) }) }) }) }) }) }))))))
                                                             in  sem_Expr_App_2)) of
                                                      { ( sem_Expr_2) | True ->
                                                      ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) }) }) }) }) })))
                        in  sem_Expr_App_1)) of
                 { ( sem_Expr_1) | True ->
                 ( _lhsOrange,sem_Expr_1) }) }) }) }) })

sem_Expr_Let :: Range ->
                Bool ->
                T_Decls ->
                T_Expr ->
                T_Expr

sem_Expr_Let hsrange_ isStrict_ decls_ body_ | hsrange_ `seq` (isStrict_ `seq` (decls_ `seq` (body_ `seq` (True)))) =
    (case (body_) of
     { ( _bodyIrange,body_1) | True ->
         (case (decls_) of
          { ( _declsIrange,decls_1) | True ->
              (case (rangeUnions [hsrange_, _declsIrange  , _bodyIrange  ]) of
               { _range | _range `seq` (True) ->
               (case (_range) of
                { _lhsOrange | _lhsOrange `seq` (True) ->
                (case ((let sem_Expr_Let_1 :: T_Expr_1
                            sem_Expr_Let_1 =
                                (\ _lhsIgUniq ->
                                     _lhsIgUniq `seq`
                                     ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq2) -> case nextUnique __cont of { (__cont, lUniq3) -> case nextUnique __cont of { (__cont, lUniq4) -> case nextUnique __cont of { (__cont, lUniq5) -> case nextUnique __cont of { (__cont, lUniq6) -> case nextUnique __cont of { (__cont, lUniq_92_prTyMeta) -> case nextUnique __cont of { (__cont, lUniq_cexpr) -> case nextUnique __cont of { (__cont, lUniq_fit) -> case nextUnique __cont of { (__cont, lUniq_freshKnTy) -> case nextUnique __cont of { (__cont, lUniq_gener) -> (__cont,lUniq,lUniq2,lUniq3,lUniq4,lUniq5,lUniq6,lUniq_92_prTyMeta,lUniq_cexpr,lUniq_fit,lUniq_freshKnTy,lUniq_gener)}}}}}}}}}}} )) of
                                       { __tup114 | __tup114 `seq` (True) ->
                                       (case (__tup114) of
                                        { (_declsOgUniq,_,_,_,_,_,_,_,_,_,_,_) | _declsOgUniq `seq` (True) ->
                                        (case (emptyGam) of
                                         { _declsOgathKiSigGam | _declsOgathKiSigGam `seq` (True) ->
                                         (case (decls_1 _declsOgUniq _declsOgathKiSigGam) of
                                          { ( _declsIgUniq,_declsIgathKiSigGam,_declsIhasInstDecl,decls_2) | True ->
                                              (case (_declsIgUniq) of
                                               { _bodyOgUniq | _bodyOgUniq `seq` (True) ->
                                               (case (body_1 _bodyOgUniq) of
                                                { ( _bodyIgUniq,_bodyIhasInstDecl,body_2) | True ->
                                                    (case (_bodyIgUniq) of
                                                     { _lhsOgUniq | _lhsOgUniq `seq` (True) ->
                                                     (case (_declsIhasInstDecl || _bodyIhasInstDecl) of
                                                      { _hasInstDecl | _hasInstDecl `seq` (True) ->
                                                      (case (_hasInstDecl) of
                                                       { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                                                       (case ((let sem_Expr_Let_2 :: T_Expr_2
                                                                   sem_Expr_Let_2 =
                                                                       (\ _lhsIisFirstLet
                                                                          _lhsIkiGam
                                                                          _lhsIlexLev
                                                                          _lhsIpredSameScopeCounter ->
                                                                            _lhsIisFirstLet `seq`
                                                                            (_lhsIkiGam `seq`
                                                                             (_lhsIlexLev `seq`
                                                                              (_lhsIpredSameScopeCounter `seq`
                                                                               ((case (if _lhsIisFirstLet then _lhsIlexLev + 1 else _lhsIlexLev) of
                                                                                 { _lexLev | _lexLev `seq` (True) ->
                                                                                 (case (_lexLev) of
                                                                                  { _declsOlexLev | _declsOlexLev `seq` (True) ->
                                                                                  (case (_lhsIkiGam) of
                                                                                   { _declsOkiGam | _declsOkiGam `seq` (True) ->
                                                                                   (case (_lexLev == 0) of
                                                                                    { _lexLevIsGlobal | _lexLevIsGlobal `seq` (True) ->
                                                                                    (case (not _lexLevIsGlobal && _lhsIisFirstLet && _hasInstDecl) of
                                                                                     { _mustEnterNewPredScope | _mustEnterNewPredScope `seq` (True) ->
                                                                                     (case (pscpEnter' _mustEnterNewPredScope _lhsIpredSameScopeCounter) of
                                                                                      { __tup94 | __tup94 `seq` (True) ->
                                                                                      (case (decls_2 _declsOkiGam) of
                                                                                       { ( _declsIgathTyKiSigGam,decls_3) | True ->
                                                                                           (case (__tup94) of
                                                                                            { (_,_declsOpredSameScopeCounter) | _declsOpredSameScopeCounter `seq` (True) ->
                                                                                            (case (decls_3 _declsOlexLev _declsOpredSameScopeCounter) of
                                                                                             { ( _declsIpredSameScopeCounter,decls_4) | True ->
                                                                                                 (case (_declsIpredSameScopeCounter) of
                                                                                                  { _bodyOpredSameScopeCounter | _bodyOpredSameScopeCounter `seq` (True) ->
                                                                                                  (case (_lexLev) of
                                                                                                   { _bodyOlexLev | _bodyOlexLev `seq` (True) ->
                                                                                                   (case (_lhsIkiGam) of
                                                                                                    { _bodyOkiGam | _bodyOkiGam `seq` (True) ->
                                                                                                    (case (False) of
                                                                                                     { _isFirstLet | _isFirstLet `seq` (True) ->
                                                                                                     (case (_isFirstLet) of
                                                                                                      { _bodyOisFirstLet | _bodyOisFirstLet `seq` (True) ->
                                                                                                      (case (__tup94) of
                                                                                                       { (_predSameScopeCounterLet,_) | _predSameScopeCounterLet `seq` (True) ->
                                                                                                       (case (body_2 _bodyOisFirstLet _bodyOkiGam _bodyOlexLev _bodyOpredSameScopeCounter) of
                                                                                                        { ( _bodyIpredSameScopeCounter,body_3) | True ->
                                                                                                            (case (pscpLeave' _mustEnterNewPredScope _predSameScopeCounterLet _bodyIpredSameScopeCounter) of
                                                                                                             { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                                                                             (case ((let sem_Expr_Let_3 :: T_Expr_3
                                                                                                                         sem_Expr_Let_3 =
                                                                                                                             (\ _lhsIgenerDataInfoMp
                                                                                                                                _lhsIkiVarMp
                                                                                                                                _lhsIopts
                                                                                                                                _lhsIpolGam
                                                                                                                                _lhsIpolVarMp
                                                                                                                                _lhsIpredScope
                                                                                                                                _lhsItyGam
                                                                                                                                _lhsItyKiGam
                                                                                                                                _lhsItyKiGlobFreeTvarS ->
                                                                                                                                  _lhsIgenerDataInfoMp `seq`
                                                                                                                                  (_lhsIkiVarMp `seq`
                                                                                                                                   (_lhsIopts `seq`
                                                                                                                                    (_lhsIpolGam `seq`
                                                                                                                                     (_lhsIpolVarMp `seq`
                                                                                                                                      (_lhsIpredScope `seq`
                                                                                                                                       (_lhsItyGam `seq`
                                                                                                                                        (_lhsItyKiGam `seq`
                                                                                                                                         (_lhsItyKiGlobFreeTvarS `seq`
                                                                                                                                          ((case (pscpMk' _mustEnterNewPredScope _lhsIpredSameScopeCounter _lhsIpredScope) of
                                                                                                                                            { _predScope | _predScope `seq` (True) ->
                                                                                                                                            (case (_predScope) of
                                                                                                                                             { _bodyOpredScope | _bodyOpredScope `seq` (True) ->
                                                                                                                                             (case (_predScope) of
                                                                                                                                              { _declsOpredScope | _declsOpredScope `seq` (True) ->
                                                                                                                                              (case (_lhsIpolVarMp) of
                                                                                                                                               { _declsOpolVarMp | _declsOpolVarMp `seq` (True) ->
                                                                                                                                               (case (_declsIgathTyKiSigGam) of
                                                                                                                                                { _declsOtyKiSigGam | _declsOtyKiSigGam `seq` (True) ->
                                                                                                                                                (case (emptyVarMp) of
                                                                                                                                                 { _declsOtyTyVarMp | _declsOtyTyVarMp `seq` (True) ->
                                                                                                                                                 (case (gamPushGam _declsIgathKiSigGam _lhsItyGam) of
                                                                                                                                                  { _declsOpatTyGam | _declsOpatTyGam `seq` (True) ->
                                                                                                                                                  (case (decls_4 _declsOpatTyGam _declsOtyKiSigGam) of
                                                                                                                                                   { ( _declsIpatTyGam,decls_5) | True ->
                                                                                                                                                       (case (gamPop _declsIpatTyGam) of
                                                                                                                                                        { __tup108 | __tup108 `seq` (True) ->
                                                                                                                                                        (case (__tup108) of
                                                                                                                                                         { (_tyGam_l_,_) | _tyGam_l_ `seq` (True) ->
                                                                                                                                                         (case (gamPushGam _tyGam_l_ _lhsItyGam) of
                                                                                                                                                          { _declsOtyGam | _declsOtyGam `seq` (True) ->
                                                                                                                                                          (case (gamPushGam _declsIgathTyKiSigGam _lhsItyKiGam) of
                                                                                                                                                           { _declsOpatTyKiGam | _declsOpatTyKiGam `seq` (True) ->
                                                                                                                                                           (case (decls_5 _declsOpatTyKiGam _declsOtyGam _declsOtyTyVarMp) of
                                                                                                                                                            { ( _declsIpatTyKiGam,_declsItyTyVarMp,decls_6) | True ->
                                                                                                                                                                (case (_lhsIopts) of
                                                                                                                                                                 { _declsOopts | _declsOopts `seq` (True) ->
                                                                                                                                                                 (case (_lhsIgenerDataInfoMp) of
                                                                                                                                                                  { _declsOgenerDataInfoMp | _declsOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                                  (case (gamPop _declsIpatTyKiGam) of
                                                                                                                                                                   { __tup109 | __tup109 `seq` (True) ->
                                                                                                                                                                   (case (__tup109) of
                                                                                                                                                                    { (_tyKiGam_l_,_) | _tyKiGam_l_ `seq` (True) ->
                                                                                                                                                                    (case (gamPushGam _tyKiGam_l_ _lhsItyKiGam) of
                                                                                                                                                                     { _declsOtyKiGam | _declsOtyKiGam `seq` (True) ->
                                                                                                                                                                     (case (_lhsIkiVarMp) of
                                                                                                                                                                      { _declsOpatKiVarMp | _declsOpatKiVarMp `seq` (True) ->
                                                                                                                                                                      (case (gamPushNew _lhsIpolGam) of
                                                                                                                                                                       { _declsOpatPolGam | _declsOpatPolGam `seq` (True) ->
                                                                                                                                                                       (case (decls_6 _declsOpatKiVarMp _declsOpatPolGam _declsOtyKiGam) of
                                                                                                                                                                        { ( _declsIpatKiVarMp,_declsIpatPolGam,decls_7) | True ->
                                                                                                                                                                            (case (_declsIpatKiVarMp) of
                                                                                                                                                                             { _declsOkiVarMp | _declsOkiVarMp `seq` (True) ->
                                                                                                                                                                             (case (varFreeSet _tyKiGam_l_ `Set.union` _lhsItyKiGlobFreeTvarS) of
                                                                                                                                                                              { _declsOtyKiGlobFreeTvarS | _declsOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                              (case (_declsIpatPolGam) of
                                                                                                                                                                               { _declsOpolGam | _declsOpolGam `seq` (True) ->
                                                                                                                                                                               (case (Nothing) of
                                                                                                                                                                                { _declsOmbKnPolCtx | _declsOmbKnPolCtx `seq` (True) ->
                                                                                                                                                                                (case (decls_7 _declsOgenerDataInfoMp _declsOkiVarMp _declsOmbKnPolCtx _declsOopts _declsOpolGam _declsOpolVarMp _declsOpredScope _declsOtyKiGlobFreeTvarS) of
                                                                                                                                                                                 { ( _declsIgenerDataInfoL,_declsIgenerDataInfoMp,_declsIkiVarMp,_declsIpolVarMp,decls_8) | True ->
                                                                                                                                                                                     (case (_declsIpolVarMp) of
                                                                                                                                                                                      { _bodyOpolVarMp | _bodyOpolVarMp `seq` (True) ->
                                                                                                                                                                                      (case (_lhsIopts) of
                                                                                                                                                                                       { _bodyOopts | _bodyOopts `seq` (True) ->
                                                                                                                                                                                       (case (_declsIgenerDataInfoMp) of
                                                                                                                                                                                        { _bodyOgenerDataInfoMp | _bodyOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                                                        (case (__tup114) of
                                                                                                                                                                                         { (_,_,_,_lUniq3,_,_,_,_,_,_,_,_) | _lUniq3 `seq` (True) ->
                                                                                                                                                                                         (case (defaultFIEnv
                                                                                                                                                                                                    { feEHCOpts = _lhsIopts
                                                                                                                                                                                                    , fePredScope = _lhsIpredScope
                                                                                                                                                                                                    , feTyGam = _lhsItyGam
                                                                                                                                                                                                    , fePolGam = _lhsIpolGam
                                                                                                                                                                                                    , feRange = _range
                                                                                                                                                                                                    }) of
                                                                                                                                                                                          { _fe | _fe `seq` (True) ->
                                                                                                                                                                                          (case (gamPop _declsIpatPolGam) of
                                                                                                                                                                                           { __tup83 | __tup83 `seq` (True) ->
                                                                                                                                                                                           (case (__tup83) of
                                                                                                                                                                                            { (_polGam_l,_) | _polGam_l `seq` (True) ->
                                                                                                                                                                                            (case (_declsIpolVarMp `varUpdCyc` _polGam_l) of
                                                                                                                                                                                             { __tup84 | __tup84 `seq` (True) ->
                                                                                                                                                                                             (case (__tup84) of
                                                                                                                                                                                              { (_,_polVarMpCyc) | _polVarMpCyc `seq` (True) ->
                                                                                                                                                                                              (case (partition
                                                                                                                                                                                                         (\(v,p) -> let v' = mkPolVar v
                                                                                                                                                                                                                        p' = varmpDel [v] _declsIpolVarMp `varUpd` p
                                                                                                                                                                                                                    in  mkPolNegate v' == p'
                                                                                                                                                                                                         )
                                                                                                                                                                                                         (varmpToAssocTyL _polVarMpCyc)) of
                                                                                                                                                                                               { __tup85 | __tup85 `seq` (True) ->
                                                                                                                                                                                               (case (__tup85) of
                                                                                                                                                                                                { (_polOkCyc,_) | _polOkCyc `seq` (True) ->
                                                                                                                                                                                                (case (assocTyLToVarMp [(v, polInvariant) | (v,_) <- _polOkCyc ]) of
                                                                                                                                                                                                 { _polInvVarMp | _polInvVarMp `seq` (True) ->
                                                                                                                                                                                                 (case (__tup84) of
                                                                                                                                                                                                  { (_lSubsPolGam1,_) | _lSubsPolGam1 `seq` (True) ->
                                                                                                                                                                                                  (case (_polInvVarMp `varUpd` _lSubsPolGam1) of
                                                                                                                                                                                                   { _lSubsPolGam2 | _lSubsPolGam2 `seq` (True) ->
                                                                                                                                                                                                   (case (quantifyPolGam
                                                                                                                                                                                                          $ mapPolGam (tyCanonic (emptyTyBetaRedEnv' _fe))
                                                                                                                                                                                                          $ _lSubsPolGam2) of
                                                                                                                                                                                                    { _finGathPolGam | _finGathPolGam `seq` (True) ->
                                                                                                                                                                                                    (case (gamUnions     [ (gamSingleton (hsnNm2GenerReprSyn arity origtnm)
                                                                                                                                                                                                                                         (PolGamInfo $ mkGenerRepresentableTypeSynonymPol _finGathPolGam origtnm)
                                                                                                                                                                                                                           )
                                                                                                                                                                                                                         | ((origtnm,tvs,_),_,_,remArity) <- _declsIgenerDataInfoL
                                                                                                                                                                                                                         , arity <- [0..remArity]
                                                                                                                                                                                                                         ]) of
                                                                                                                                                                                                     { _generPolGam | _generPolGam `seq` (True) ->
                                                                                                                                                                                                     (case (_generPolGam) of
                                                                                                                                                                                                      { _extraPolGam | _extraPolGam `seq` (True) ->
                                                                                                                                                                                                      (case (setSubst _declsIkiVarMp _lhsItyKiGlobFreeTvarS) of
                                                                                                                                                                                                       { _tyKiUpdFreeTvarS | _tyKiUpdFreeTvarS `seq` (True) ->
                                                                                                                                                                                                       (case (_tyKiUpdFreeTvarS) of
                                                                                                                                                                                                        { _gKiTvS | _gKiTvS `seq` (True) ->
                                                                                                                                                                                                        (case (tyKiGamQuantifyWithVarMp _lhsIopts _declsIkiVarMp _gKiTvS _tyKiGam_l_) of
                                                                                                                                                                                                         { __tup111 | __tup111 `seq` (True) ->
                                                                                                                                                                                                         (case (__tup111) of
                                                                                                                                                                                                          { (_,_quTyKiVarMp,_) | _quTyKiVarMp `seq` (True) ->
                                                                                                                                                                                                          (case (_quTyKiVarMp `varUpd` _declsIkiVarMp) of
                                                                                                                                                                                                           { _bodyTyKiVarMp1 | _bodyTyKiVarMp1 `seq` (True) ->
                                                                                                                                                                                                           (case (__tup111) of
                                                                                                                                                                                                            { (_lQuTyKiGam_qu,_,_) | _lQuTyKiGam_qu `seq` (True) ->
                                                                                                                                                                                                            (case (tyKiGamInst1ExistsWithVarMp _bodyTyKiVarMp1 _lUniq3 _lQuTyKiGam_qu) of
                                                                                                                                                                                                             { __tup112 | __tup112 `seq` (True) ->
                                                                                                                                                                                                             (case (__tup112) of
                                                                                                                                                                                                              { (_lQuTyKiGam_ex,_) | _lQuTyKiGam_ex `seq` (True) ->
                                                                                                                                                                                                              (case (unzip [ ( origtnm
                                                                                                                                                                                                                             , hsnNm2GenerDatatype origtnm : [ hsnNm2GenerConstructor $ ctagNm x | (x,_) <- cs ]
                                                                                                                                                                                                                             )
                                                                                                                                                                                                                           | ((origtnm,_,ki),cs,_,_) <- _declsIgenerDataInfoL
                                                                                                                                                                                                                           ]) of
                                                                                                                                                                                                               { __tup81 | __tup81 `seq` (True) ->
                                                                                                                                                                                                               (case (__tup81) of
                                                                                                                                                                                                                { (_,_generDataTyAndConNmLL) | _generDataTyAndConNmLL `seq` (True) ->
                                                                                                                                                                                                                (case (concat _generDataTyAndConNmLL) of
                                                                                                                                                                                                                 { _generDataTyAndConNmL | _generDataTyAndConNmL `seq` (True) ->
                                                                                                                                                                                                                 (case (gamUnions     [ (tyKiGamNameSingleton n (TyKiGamInfo kiStar))
                                                                                                                                                                                                                                      | n <- _generDataTyAndConNmL
                                                                                                                                                                                                                                      ]
                                                                                                                                                                                                                        `gamUnion`
                                                                                                                                                                                                                        gamUnions     [ (tyKiGamNameSingleton (hsnNm2GenerReprSyn arity origtnm) (TyKiGamInfo ki))
                                                                                                                                                                                                                                      | ((origtnm,_,_),_,_,remArity) <- _declsIgenerDataInfoL
                                                                                                                                                                                                                                      , let ki = mkGenerRepresentableTypeSynonymKi _lQuTyKiGam_ex origtnm
                                                                                                                                                                                                                                      , arity <- [0..remArity]
                                                                                                                                                                                                                                      ]) of
                                                                                                                                                                                                                  { _generTyKiGam | _generTyKiGam `seq` (True) ->
                                                                                                                                                                                                                  (case (_generTyKiGam) of
                                                                                                                                                                                                                   { _extraTyKiGam | _extraTyKiGam `seq` (True) ->
                                                                                                                                                                                                                   (case (__tup81) of
                                                                                                                                                                                                                    { (_generDataAllTyOrigNmL,_) | _generDataAllTyOrigNmL `seq` (True) ->
                                                                                                                                                                                                                    (case ([ ( origtnm, tvs, sc
                                                                                                                                                                                                                             , [ (hsnNm2GenerReprSyn arity origtnm, syn, proj, arity)
                                                                                                                                                                                                                               | arity <- [0..remArity]
                                                                                                                                                                                                                               , let (syn,proj) = mkGenerRepresentableTypeSynTyProj _lhsIopts arity
                                                                                                                                                                                                                                                     _generDataAllTyOrigNmL
                                                                                                                                                                                                                                                     (\tnm remArity -> tnm `elem` _generDataAllTyOrigNmL || isJust (tyGamLookup (hsnNm2GenerReprSyn remArity tnm) _lhsItyGam))
                                                                                                                                                                                                                                                     tnm tvs
                                                                                                                                                                                                                                                     [ (c,hsnNm2GenerConstructor $ ctagNm c,assocLMapKey (fmap hsnNm2GenerSelector) ps) | (c,ps) <- cs ]
                                                                                                                                                                                                                               ]
                                                                                                                                                                                                                             )
                                                                                                                                                                                                                           | ((origtnm,tvs,ki),cs,sc,remArity) <- _declsIgenerDataInfoL
                                                                                                                                                                                                                           , let
                                                                                                                                                                                                                                 tnm = hsnNm2GenerDatatype origtnm
                                                                                                                                                                                                                           ]) of
                                                                                                                                                                                                                     { _generTySynProjL | _generTySynProjL `seq` (True) ->
                                                                                                                                                                                                                     (case (gamFromAssocL [ (n, mkTGIData (appCon n) (appDbg $ "Generics.Expr.Let.TyGam.DataTyAndCon: " ++ show n))
                                                                                                                                                                                                                                          | n <- _generDataTyAndConNmL
                                                                                                                                                                                                                                          ]
                                                                                                                                                                                                                            `gamUnion`
                                                                                                                                                                                                                            gamFromAssocL [ ( tnm, mkTGIData syn (appDbg $ "Generics.Expr.Let.TyGam.TySyn: " ++ show tnm))
                                                                                                                                                                                                                                          | (_,_,_,ts) <- _generTySynProjL
                                                                                                                                                                                                                                          , (tnm,syn,_,_) <- ts
                                                                                                                                                                                                                                          ]) of
                                                                                                                                                                                                                      { _generTyGam | _generTyGam `seq` (True) ->
                                                                                                                                                                                                                      (case (_generTyGam) of
                                                                                                                                                                                                                       { _extraTyGam | _extraTyGam `seq` (True) ->
                                                                                                                                                                                                                       (case (gamUnion _extraTyGam _tyGam_l_) of
                                                                                                                                                                                                                        { _tyGam_l_extra | _tyGam_l_extra `seq` (True) ->
                                                                                                                                                                                                                        (case (_declsItyTyVarMp `varUpd` _tyGam_l_extra) of
                                                                                                                                                                                                                         { _lQuTyGam | _lQuTyGam `seq` (True) ->
                                                                                                                                                                                                                         (case (__tup112) of
                                                                                                                                                                                                                          { (_,_exTyKiVarMp2) | _exTyKiVarMp2 `seq` (True) ->
                                                                                                                                                                                                                          (case (_exTyKiVarMp2 `varUpd` _bodyTyKiVarMp1) of
                                                                                                                                                                                                                           { _bodyTyKiVarMp2 | _bodyTyKiVarMp2 `seq` (True) ->
                                                                                                                                                                                                                           (case (_bodyTyKiVarMp2) of
                                                                                                                                                                                                                            { _bodyOkiVarMp | _bodyOkiVarMp `seq` (True) ->
                                                                                                                                                                                                                            (case (gamUnion _extraTyKiGam _lQuTyKiGam_ex) of
                                                                                                                                                                                                                             { _lQuTyKiGam_ex_extra | _lQuTyKiGam_ex_extra `seq` (True) ->
                                                                                                                                                                                                                             (case (_bodyTyKiVarMp2 `varUpd` _lQuTyKiGam_ex_extra) of
                                                                                                                                                                                                                              { _lQuTyKiGam_ex_subst | _lQuTyKiGam_ex_subst `seq` (True) ->
                                                                                                                                                                                                                              (case (_lQuTyKiGam_ex_extra) of
                                                                                                                                                                                                                               { _lQuTyKiGam | _lQuTyKiGam `seq` (True) ->
                                                                                                                                                                                                                               (case (__tup109) of
                                                                                                                                                                                                                                { (_,_tyKiGam_g_) | _tyKiGam_g_ `seq` (True) ->
                                                                                                                                                                                                                                (case (_tyKiGam_g_) of
                                                                                                                                                                                                                                 { _gSubsTyKiGam | _gSubsTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                 (case (gamAddGam _lQuTyKiGam _gSubsTyKiGam) of
                                                                                                                                                                                                                                  { _bodyOtyKiGam | _bodyOtyKiGam `seq` (True) ->
                                                                                                                                                                                                                                  (case (__tup108) of
                                                                                                                                                                                                                                   { (_,_tyGam_g_) | _tyGam_g_ `seq` (True) ->
                                                                                                                                                                                                                                   (case (gamAddGam _lQuTyGam _tyGam_g_) of
                                                                                                                                                                                                                                    { _bodyOtyGam | _bodyOtyGam `seq` (True) ->
                                                                                                                                                                                                                                    (case (ehcOptTrace _lhsIopts "Expr.Let.body.tyKiGlobFreeTvarS" $
                                                                                                                                                                                                                                           varFreeSet _lQuTyKiGam_ex_subst `Set.union` setSubst _bodyTyKiVarMp2 _tyKiUpdFreeTvarS) of
                                                                                                                                                                                                                                     { _bodyOtyKiGlobFreeTvarS | _bodyOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                     (case (_extraPolGam `gamUnion` _finGathPolGam) of
                                                                                                                                                                                                                                      { _finGathPolGam_extra | _finGathPolGam_extra `seq` (True) ->
                                                                                                                                                                                                                                      (case (gamAddGam _finGathPolGam_extra _lhsIpolGam) of
                                                                                                                                                                                                                                       { _bodyOpolGam | _bodyOpolGam `seq` (True) ->
                                                                                                                                                                                                                                       (case (body_3 _bodyOgenerDataInfoMp _bodyOkiVarMp _bodyOopts _bodyOpolGam _bodyOpolVarMp _bodyOpredScope _bodyOtyGam _bodyOtyKiGam _bodyOtyKiGlobFreeTvarS) of
                                                                                                                                                                                                                                        { ( _bodyIgenerDataInfoMp,_bodyIkiVarMp,_bodyIpolVarMp,body_4) | True ->
                                                                                                                                                                                                                                            (case (_bodyIgenerDataInfoMp) of
                                                                                                                                                                                                                                             { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                                                                                                             (case (_bodyIkiVarMp) of
                                                                                                                                                                                                                                              { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                                                                                                                                                                              (case (_bodyIpolVarMp) of
                                                                                                                                                                                                                                               { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                                                                                                                                                                               (case ((let sem_Expr_Let_4 :: T_Expr_4
                                                                                                                                                                                                                                                           sem_Expr_Let_4 =
                                                                                                                                                                                                                                                               (\ _lhsIclGam
                                                                                                                                                                                                                                                                  _lhsIfinKiVarMp
                                                                                                                                                                                                                                                                  _lhsIfinTyKiGam
                                                                                                                                                                                                                                                                  _lhsIgathDataGam
                                                                                                                                                                                                                                                                  _lhsItyTyTySigFreeTvarS ->
                                                                                                                                                                                                                                                                    _lhsIclGam `seq`
                                                                                                                                                                                                                                                                    (_lhsIfinKiVarMp `seq`
                                                                                                                                                                                                                                                                     (_lhsIfinTyKiGam `seq`
                                                                                                                                                                                                                                                                      (_lhsIgathDataGam `seq`
                                                                                                                                                                                                                                                                       (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                                                                                                                                                                        ((case (_lhsIfinKiVarMp `varUpd` _tyKiGam_l_ `gamUnion` _lhsIfinTyKiGam) of
                                                                                                                                                                                                                                                                          { _finTyKiGam | _finTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                          (case (_finTyKiGam) of
                                                                                                                                                                                                                                                                           { _bodyOfinTyKiGam | _bodyOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                           (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                                                                                                            { _bodyOfinKiVarMp | _bodyOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                            (case (_lhsIgathDataGam) of
                                                                                                                                                                                                                                                                             { _declsOgathDataGam | _declsOgathDataGam `seq` (True) ->
                                                                                                                                                                                                                                                                             (case (_finTyKiGam) of
                                                                                                                                                                                                                                                                              { _declsOfinTyKiGam | _declsOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                              (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                                                                                                               { _declsOfinKiVarMp | _declsOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                               (case (gamFromAssocL [ (n, mkDGIPlain n (appCon n) kiStar [] Map.empty )
                                                                                                                                                                                                                                                                                                    | n <- _generDataTyAndConNmL
                                                                                                                                                                                                                                                                                                    ]) of
                                                                                                                                                                                                                                                                                { _generDataGam | _generDataGam `seq` (True) ->
                                                                                                                                                                                                                                                                                (case (_generDataGam) of
                                                                                                                                                                                                                                                                                 { _extraDataGam | _extraDataGam `seq` (True) ->
                                                                                                                                                                                                                                                                                 (case (gamPushNew _lhsIclGam) of
                                                                                                                                                                                                                                                                                  { _declsOpatClGam1 | _declsOpatClGam1 `seq` (True) ->
                                                                                                                                                                                                                                                                                  (case (decls_8 _declsOpatClGam1) of
                                                                                                                                                                                                                                                                                   { ( _declsIpatClGam1,decls_9) | True ->
                                                                                                                                                                                                                                                                                       (case (_declsIpatClGam1) of
                                                                                                                                                                                                                                                                                        { _declsOpatClGam2 | _declsOpatClGam2 `seq` (True) ->
                                                                                                                                                                                                                                                                                        (case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                                                                         { _declsOtyTyTySigFreeTvarS | _declsOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                         (case (decls_9 _declsOfinKiVarMp _declsOfinTyKiGam _declsOpatClGam2 _declsOtyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                                                                          { ( _declsIpatClGam2,decls_10) | True ->
                                                                                                                                                                                                                                                                                              (case (gamPop _declsIpatClGam2) of
                                                                                                                                                                                                                                                                                               { __tup113 | __tup113 `seq` (True) ->
                                                                                                                                                                                                                                                                                               (case (__tup113) of
                                                                                                                                                                                                                                                                                                { (_lClGam,_) | _lClGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                (case (gamNoDups _lClGam) of
                                                                                                                                                                                                                                                                                                 { _lClGamNoDups | _lClGamNoDups `seq` (True) ->
                                                                                                                                                                                                                                                                                                 (case (gamAddGam _lClGamNoDups _lhsIclGam) of
                                                                                                                                                                                                                                                                                                  { _forBodyClGam | _forBodyClGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                  (case (_forBodyClGam) of
                                                                                                                                                                                                                                                                                                   { _bodyOclGam | _bodyOclGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                   (case (gamPushGam _lClGamNoDups _lhsIclGam) of
                                                                                                                                                                                                                                                                                                    { _forDeclsClGam | _forDeclsClGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                    (case (_forDeclsClGam) of
                                                                                                                                                                                                                                                                                                     { _declsOclGam | _declsOclGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                     (case (ehcOptTrace _lhsIopts "Expr.Let.body.tyTyTySigFreeTvarS" $
                                                                                                                                                                                                                                                                                                            varFreeSet _lQuTyGam `Set.union` _lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                                                                                      { _bodyOtyTyTySigFreeTvarS | _bodyOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                      (case (decls_10 _declsOclGam _declsOgathDataGam) of
                                                                                                                                                                                                                                                                                                       { ( _declsIgathDataGam,_declsIgathDeclDataGam,_declsIgathTySigGam,_declsIgathTySigVarMp,decls_11) | True ->
                                                                                                                                                                                                                                                                                                           (case (_extraDataGam `gamUnion` _declsIgathDeclDataGam) of
                                                                                                                                                                                                                                                                                                            { _gathNewDataGam | _gathNewDataGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                            (case (_gathNewDataGam `gamUnion` _declsIgathDataGam) of
                                                                                                                                                                                                                                                                                                             { _gathBodyDataGam | _gathBodyDataGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                             (case (_gathBodyDataGam) of
                                                                                                                                                                                                                                                                                                              { _bodyOgathDataGam | _bodyOgathDataGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                              (case (body_4 _bodyOclGam _bodyOfinKiVarMp _bodyOfinTyKiGam _bodyOgathDataGam _bodyOtyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                                                                                               { ( _bodyIgathDataGam,body_5) | True ->
                                                                                                                                                                                                                                                                                                                   (case (_bodyIgathDataGam) of
                                                                                                                                                                                                                                                                                                                    { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                    (case ((let sem_Expr_Let_5 :: T_Expr_5
                                                                                                                                                                                                                                                                                                                                sem_Expr_Let_5 =
                                                                                                                                                                                                                                                                                                                                    (\ _lhsIdataGam ->
                                                                                                                                                                                                                                                                                                                                         _lhsIdataGam `seq`
                                                                                                                                                                                                                                                                                                                                         ((case (_lhsIdataGam) of
                                                                                                                                                                                                                                                                                                                                           { _bodyOdataGam | _bodyOdataGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                           (case (body_5 _bodyOdataGam) of
                                                                                                                                                                                                                                                                                                                                            { ( _bodyIchrClassDeclSq,_bodyIchrFIIn,_bodyIchrInstDeclSq,_bodyIgathClDfGam,body_6) | True ->
                                                                                                                                                                                                                                                                                                                                                (case (_lhsIdataGam) of
                                                                                                                                                                                                                                                                                                                                                 { _declsOdataGam | _declsOdataGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                 (case (decls_11 _declsOdataGam) of
                                                                                                                                                                                                                                                                                                                                                  { ( _declsIchrClassDeclSq,_declsIchrInstDeclSq,_declsIgathClDfGam,decls_12) | True ->
                                                                                                                                                                                                                                                                                                                                                      (case (ehcOptTrace _lhsIopts "Expr.Let.loc.chrClassDeclSq" $
                                                                                                                                                                                                                                                                                                                                                             _declsIchrClassDeclSq `Seq.union` _bodyIchrClassDeclSq) of
                                                                                                                                                                                                                                                                                                                                                       { _chrClassDeclSq | _chrClassDeclSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                       (case (_chrClassDeclSq) of
                                                                                                                                                                                                                                                                                                                                                        { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                        (case (_bodyIchrFIIn) of
                                                                                                                                                                                                                                                                                                                                                         { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                         (case (_chrFIIn) of
                                                                                                                                                                                                                                                                                                                                                          { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                          (case (__tup114) of
                                                                                                                                                                                                                                                                                                                                                           { (_,_,_,_,_,_,_,_lUniq_92_prTyMeta,_,_,_,_) | _lUniq_92_prTyMeta `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                           (case (let
                                                                                                                                                                                                                                                                                                                                                                      mkn' cl kind (orignm,nm) = (orignm,nm,cl,hsnUniqifyStr HsNameUniqifier_GenericClass (hsnBaseString cl) nm,kind)
                                                                                                                                                                                                                                                                                                                                                                      mkn  f   = mkn' (ehcOptBuiltin  _lhsIopts f  )
                                                                                                                                                                                                                                                                                                                                                                      mkn2 f i = mkn' (ehcOptBuiltin2 _lhsIopts f i)
                                                                                                                                                                                                                                                                                                                                                                      mkd sc (orignm,nm,cl,i,k)
                                                                                                                                                                                                                                                                                                                                                                        = ( ( [], pr, RedHow_ByInstance i pr sc, sc )
                                                                                                                                                                                                                                                                                                                                                                          , (orignm,i,cl,k,pr)
                                                                                                                                                                                                                                                                                                                                                                          )
                                                                                                                                                                                                                                                                                                                                                                        where pr = Pred_Class $ appConApp cl [appCon nm]
                                                                                                                                                                                                                                                                                                                                                                      mkDataInst (t@(origtnm,_,_),cs,sc,_)
                                                                                                                                                                                                                                                                                                                                                                        = map (mkd sc)
                                                                                                                                                                                                                                                                                                                                                                            $ [mkn ehbnGenerClassDatatype GenerInstKind_Datatype (origtnm, hsnNm2GenerDatatype origtnm)]
                                                                                                                                                                                                                                                                                                                                                                              ++ (map (mkn ehbnGenerClassConstructor $ GenerInstKind_Constructor origtnm)
                                                                                                                                                                                                                                                                                                                                                                                      [ (origdnm, hsnNm2GenerConstructor origdnm) | (tg,_) <- cs, let origdnm = ctagNm tg ]
                                                                                                                                                                                                                                                                                                                                                                                 )
                                                                                                                                                                                                                                                                                                                                                                              ++ (map (mkn ehbnGenerClassSelector $ GenerInstKind_Selector)
                                                                                                                                                                                                                                                                                                                                                                                  $ Map.toList $ Map.fromList
                                                                                                                                                                                                                                                                                                                                                                                    [ (origsnm, hsnNm2GenerSelector origsnm) | (_,fs) <- cs, (Just origsnm,_) <- fs ]
                                                                                                                                                                                                                                                                                                                                                                                 )
                                                                                                                                                                                                                                                                                                                                                                      mkr sc arity (tyNm,tyRepNm,repCl,i,k@(GenerInstKind_Representable remArity _))
                                                                                                                                                                                                                                                                                                                                                                        = ( ( [], pr, RedHow_ByInstance i pr sc, sc )
                                                                                                                                                                                                                                                                                                                                                                          , (tyNm,i,repCl,k,pr)
                                                                                                                                                                                                                                                                                                                                                                          )
                                                                                                                                                                                                                                                                                                                                                                        where pr = Pred_Class $ appConApp repCl [appConApp tyNm tvL, appConApp tyRepNm tvL]
                                                                                                                                                                                                                                                                                                                                                                              tvL = map mkTyMetaVar $ mkNewUIDL (arity - remArity) _lUniq_92_prTyMeta
                                                                                                                                                                                                                                                                                                                                                                      mkReprInst (origtnm,tvL,sc,syns)
                                                                                                                                                                                                                                                                                                                                                                        = map (mkr sc (length tvL))
                                                                                                                                                                                                                                                                                                                                                                            [ mkn2 ehbnGenerClassRepresentableN arity (GenerInstKind_Representable arity proj) (origtnm,tnm)
                                                                                                                                                                                                                                                                                                                                                                            | (tnm,_,proj,arity) <- syns
                                                                                                                                                                                                                                                                                                                                                                            ]
                                                                                                                                                                                                                                                                                                                                                                  in  unzip
                                                                                                                                                                                                                                                                                                                                                                      $ (concatMap mkReprInst _generTySynProjL)
                                                                                                                                                                                                                                                                                                                                                                        ++ (concatMap mkDataInst _declsIgenerDataInfoL)) of
                                                                                                                                                                                                                                                                                                                                                            { __tup82 | __tup82 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                            (case (__tup82) of
                                                                                                                                                                                                                                                                                                                                                             { (_generInstDeclL,_) | _generInstDeclL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                             (case (ehcOptTrace _lhsIopts "Expr.Let.lhs.chrInstDeclSq" $
                                                                                                                                                                                                                                                                                                                                                                    Seq.unions [Seq.fromList _generInstDeclL, _declsIchrInstDeclSq, _bodyIchrInstDeclSq]) of
                                                                                                                                                                                                                                                                                                                                                              { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                              (case (ehcOptTrace _lhsIopts "Expr.Let.lhs.gathClDfGam" $
                                                                                                                                                                                                                                                                                                                                                                     _bodyIgathClDfGam `gamUnion` _declsIgathClDfGam) of
                                                                                                                                                                                                                                                                                                                                                               { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                               (case ((let sem_Expr_Let_6 :: T_Expr_6
                                                                                                                                                                                                                                                                                                                                                                           sem_Expr_Let_6 =
                                                                                                                                                                                                                                                                                                                                                                               (\ _lhsIchrStore
                                                                                                                                                                                                                                                                                                                                                                                  _lhsIclDfGam
                                                                                                                                                                                                                                                                                                                                                                                  _lhsIfiOpts
                                                                                                                                                                                                                                                                                                                                                                                  _lhsIknTy
                                                                                                                                                                                                                                                                                                                                                                                  _lhsItvKiVarMp
                                                                                                                                                                                                                                                                                                                                                                                  _lhsItyTyGlobFreeTvarS
                                                                                                                                                                                                                                                                                                                                                                                  _lhsItyVarMp
                                                                                                                                                                                                                                                                                                                                                                                  _lhsIvalGam
                                                                                                                                                                                                                                                                                                                                                                                  _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                                                                                                                                                                                                                                    _lhsIchrStore `seq`
                                                                                                                                                                                                                                                                                                                                                                                    (_lhsIclDfGam `seq`
                                                                                                                                                                                                                                                                                                                                                                                     (_lhsIfiOpts `seq`
                                                                                                                                                                                                                                                                                                                                                                                      (_lhsIknTy `seq`
                                                                                                                                                                                                                                                                                                                                                                                       (_lhsItvKiVarMp `seq`
                                                                                                                                                                                                                                                                                                                                                                                        (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                                                                                                                                                                         (_lhsItyVarMp `seq`
                                                                                                                                                                                                                                                                                                                                                                                          (_lhsIvalGam `seq`
                                                                                                                                                                                                                                                                                                                                                                                           (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                                                                                                                                                                            ((case (__tup114) of
                                                                                                                                                                                                                                                                                                                                                                                              { (_,_,_,_,_,_,_,_,_,_,_lUniq_freshKnTy,_) | _lUniq_freshKnTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                              (case (mkFreshAppImTy _lUniq_freshKnTy id) of
                                                                                                                                                                                                                                                                                                                                                                                               { __tup100 | __tup100 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                               (case (__tup100) of
                                                                                                                                                                                                                                                                                                                                                                                                { (_,_knTopTy,_) | _knTopTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                (case (_knTopTy) of
                                                                                                                                                                                                                                                                                                                                                                                                 { _knTy | _knTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                 (case (_knTy) of
                                                                                                                                                                                                                                                                                                                                                                                                  { _bodyOknTy | _bodyOknTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                  (case (_lhsIfiOpts) of
                                                                                                                                                                                                                                                                                                                                                                                                   { _bodyOfiOpts | _bodyOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                   (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                    { _declsOtvKiVarMp | _declsOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                    (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                                                                                                                                                                                     { _declsOclDfGam | _declsOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                     (case (_lhsIchrStore) of
                                                                                                                                                                                                                                                                                                                                                                                                      { _declsOchrStore | _declsOchrStore `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                      (case (__tup114) of
                                                                                                                                                                                                                                                                                                                                                                                                       { (_,_,_,_,_,_,_,_,_,_lUniq_fit,_,_) | _lUniq_fit `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                       (case (__tup114) of
                                                                                                                                                                                                                                                                                                                                                                                                        { (_,_,_,_,_,_lUniq5,_,_,_,_,_,_) | _lUniq5 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                        (case (__tup114) of
                                                                                                                                                                                                                                                                                                                                                                                                         { (_,_,_lUniq2,_,_,_,_,_,_,_,_,_) | _lUniq2 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                         (case (__tup114) of
                                                                                                                                                                                                                                                                                                                                                                                                          { (_,_lUniq,_,_,_,_,_,_,_,_,_,_) | _lUniq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                          (case (_declsIgathTySigVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                           { _declsOtySigVarMp | _declsOtySigVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                           (case (_declsIgathTySigGam) of
                                                                                                                                                                                                                                                                                                                                                                                                            { _declsOtySigGam | _declsOtySigGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                            (case (valGamInst1ExistsWithVarMp _declsIgathTySigVarMp _lUniq _declsIgathTySigGam) of
                                                                                                                                                                                                                                                                                                                                                                                                             { __tup103 | __tup103 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                             (case (__tup103) of
                                                                                                                                                                                                                                                                                                                                                                                                              { (_,_exTyVarMp1) | _exTyVarMp1 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                              (case (__tup103) of
                                                                                                                                                                                                                                                                                                                                                                                                               { (_gathTySigGam_l_,_) | _gathTySigGam_l_ `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                               (case (id) of
                                                                                                                                                                                                                                                                                                                                                                                                                { _tyVarMpDeclsUpd | _tyVarMpDeclsUpd `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                (case (__tup100) of
                                                                                                                                                                                                                                                                                                                                                                                                                 { (_,_,_resTy) | _resTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                 (case (\o m -> fitsIn o _fe _lUniq_fit m _resTy _lhsIknTy) of
                                                                                                                                                                                                                                                                                                                                                                                                                  { _doFit | _doFit `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                  (case (ehcOptTrace _lhsIopts "Expr.Let.loc.foKnRes" $
                                                                                                                                                                                                                                                                                                                                                                                                                         _doFit _lhsIfiOpts _lhsItyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                   { _foKnRes | _foKnRes `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                   (case ((foVarMp _foKnRes `varUpd`) .
                                                                                                                                                                                                                                                                                                                                                                                                                          ((_exTyVarMp1 :: VarMp) `varUpd`) .
                                                                                                                                                                                                                                                                                                                                                                                                                          (_declsIgathTySigVarMp `varUpd`)) of
                                                                                                                                                                                                                                                                                                                                                                                                                    { _patTyVarMpDeclsUpd | _patTyVarMpDeclsUpd `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                    (case (_patTyVarMpDeclsUpd _lhsItyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                     { _declsOpatTyVarMp | _declsOpatTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                     (case (gamPushGam _gathTySigGam_l_ _lhsIvalGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                      { _declsOpatValGam | _declsOpatValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                      (case (decls_12 _declsOpatTyVarMp _declsOpatValGam _declsOtvKiVarMp _declsOtySigGam _declsOtySigVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                       { ( _declsIpatTyVarMp,_declsIpatValGam,decls_13) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                                           (case (_tyVarMpDeclsUpd _declsIpatTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                            { _declsOtyVarMp | _declsOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                            (case (_declsIpatValGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                             { _declsOvalGam | _declsOvalGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                             (case (gamPop _declsIpatValGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                              { __tup101 | __tup101 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                              (case (__tup101) of
                                                                                                                                                                                                                                                                                                                                                                                                                               { (_valGam_l_,_) | _valGam_l_ `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                               (case (varFreeSet _tyGam_l_ `Set.union` _lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                { _declsOtyTyGlobFreeTvarS | _declsOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                (case (varFreeSet _valGam_l_ `Set.union` _lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                 { _declsOvalTyGlobFreeTvarS | _declsOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (decls_13 _declsOchrStore _declsOclDfGam _declsOtyTyGlobFreeTvarS _declsOtyVarMp _declsOvalGam _declsOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                  { ( _declsIgathCnstrMp,_declsIgathRangeMp,_declsIintlTyKiGam,_declsInoLetQuantTyVarIdS,_declsIscopeGam,_declsItyVarMp,decls_14) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (varmpSelectMetaLev [0] _declsItyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                       { _tyVarMpDeclsL0 | _tyVarMpDeclsL0 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (varmpMapTyVarKey _tyVarMpDeclsL0 (varmpDecMetaLev _declsItyVarMp)) of
                                                                                                                                                                                                                                                                                                                                                                                                                                        { _gathTvKiVarMp1 | _gathTvKiVarMp1 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_gathTvKiVarMp1 `varUpd` _lhsItvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                         { _quTvKiVarMp | _quTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (varmpIncMetaLev _quTvKiVarMp `varUpd` _tyVarMpDeclsL0) of
                                                                                                                                                                                                                                                                                                                                                                                                                                          { _tyVarMpDeclsL01 | _tyVarMpDeclsL01 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (gamUnions [_finTyKiGam,_declsIintlTyKiGam]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                           { _valQuTyKiGam | _valQuTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (setSubst _tyVarMpDeclsL0 _lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                            { _tyTyUpdFreeTvarS | _tyTyUpdFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (setSubst _tyVarMpDeclsL0 _lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                             { _valTyUpdFreeTvarS | _valTyUpdFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (_valTyUpdFreeTvarS `Set.union` _tyTyUpdFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                              { _gTyTvS | _gTyTvS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (setSubst _tyVarMpDeclsL0 _declsInoLetQuantTyVarIdS `Set.union` _gTyTvS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                               { _noLetQuantTyVarIdS | _noLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (mkDoValGamQuantify _valQuTyKiGam _quTvKiVarMp _noLetQuantTyVarIdS _valGam_l_) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                { _doValGamQuantify | _doValGamQuantify `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (mkDoPredAmbigSplitForSimplify _doValGamQuantify _tyVarMpDeclsL01) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _doPredAmbigSplitForSimplify | _doPredAmbigSplitForSimplify `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (_tyVarMpDeclsL0         `varUpd` _declsIgathCnstrMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _toProveCnstrMp | _toProveCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (let (here,there) = Map.partitionWithKey (\k _ -> isLetProveCandidate _noLetQuantTyVarIdS $ cnstrPred k) _toProveCnstrMp
                                                                                                                                                                                                                                                                                                                                                                                                                                                         in  (here, predOccCnstrMpLiftScope _predScope there)) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                   { __tup86 | __tup86 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (__tup86) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                    { (_toProveHereCnstrMp,_) | _toProveHereCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (_chrFIIn {fiVarMp = _tyVarMpDeclsL0}) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _chrProveFIIn | _chrProveFIIn `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (ehcOptTrace _lhsIopts "Expr.Let.simplify1" $
                                                                                                                                                                                                                                                                                                                                                                                                                                                            simplify [SimplifyHow_Canonicalize] (_chrProveFIIn {fiUniq = _lUniq5}) _lhsIchrStore _lhsIclDfGam (heurScopedEHC _chrProveFIIn) _doPredAmbigSplitForSimplify Map.empty _toProveHereCnstrMp emptySimplifyResult) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                      { __tup87 | __tup87 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (__tup87) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                       { (_,_,_,_chrSolve1SimpTyVarMp,_,_,_,_,_,_,_) | _chrSolve1SimpTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (_chrSolve1SimpTyVarMp `varUpd` _tyVarMpDeclsL01) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _tyVarMpDeclsQuant | _tyVarMpDeclsQuant `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (__tup87) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                         { (_,_chrSolve1RemCnstrMp,_,_,_,_,_,_,_,_,_) | _chrSolve1RemCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (Map.partitionWithKey (\k _ -> isLetProveFailure _noLetQuantTyVarIdS $ cnstrPred k) _chrSolve1RemCnstrMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                          { __tup89 | __tup89 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (__tup89) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                           { (_toAssumeNeverCnstrMp,_) | _toAssumeNeverCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (__tup87) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                            { (_,_,_cannotRes1CnstrMp,_,_,_,_,_,_,_,_) | _cannotRes1CnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (cnstrMpUnions [_toAssumeNeverCnstrMp,_cannotRes1CnstrMp]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                             { _cannotProveCnstrMp | _cannotProveCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case ([ rngLift _range mkPredOccRng (cpoPr o) (mkPrIdCHR $ vunmId i) sc
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | (Assume o,[(RedHow_Assumption i sc, _)])
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <- Map.toList $ _chrSolve1RemCnstrMp `Map.difference` _cannotProveCnstrMp
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                              { _toQuantOverPrOccL | _toQuantOverPrOccL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (_doValGamQuantify True _tyVarMpDeclsQuant _toQuantOverPrOccL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                               { __tup106 | __tup106 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (__tup106) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                { (_,_,__tup107) | __tup107 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (__tup107) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { (_,_tqoGam) | _tqoGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (foldr (\tmpo c -> tmpoImplsVarMp tmpo `varUpd` c) (emptyVarMp :: VarMp) (gamElts _tqoGam)) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _tmpoTyVarMp | _tmpoTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (__tup106) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { (_,_quTyVarMp,_) | _quTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (__tup106) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { (_quValGam_qu_,_,_) | _quValGam_qu_ `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case ((valGamInst1Exists                             _lUniq2 (_quTyVarMp `varUpd` _quValGam_qu_), emptyVarMp)) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { __tup105 | __tup105 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (__tup105) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { (_,_exTyVarMp2) | _exTyVarMp2 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (_quTyVarMp `varUpd` _tyVarMpDeclsL0) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _bodyVarMp1 | _bodyVarMp1 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (_tmpoTyVarMp `varUpd` _chrSolve1SimpTyVarMp `varUpd` (_exTyVarMp2 :: VarMp) `varUpd` _bodyVarMp1) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _bodyVarMp2 | _bodyVarMp2 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_bodyVarMp2) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _bodyOtyVarMp | _bodyOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (__tup105) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { (_quValGam_ex_,_) | _quValGam_ex_ `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_quValGam_ex_) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _quValGam_ | _quValGam_ `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (__tup101) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { (_,_valGam_g_) | _valGam_g_ `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (_valGam_g_) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { _gSubsValGam_ | _gSubsValGam_ `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (ehcOptTrace _lhsIopts "Expr.Let.loc.bodyValGam" $
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    gamAddGam _quValGam_ _gSubsValGam_) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { _bodyValGam | _bodyValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (_bodyValGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                               { _bodyOvalGam | _bodyOvalGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (__tup100) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                { (_imTy,_,_) | _imTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (foVarMp _foKnRes `varUpd` _imTy) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _imSubsTy | _imSubsTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (implsPredsTail _predScope $ tyImpls _imSubsTy) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { __tup95 | __tup95 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (__tup95) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { (_knPrL,_) | _knPrL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (__tup86) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { (_,_toProveElsewhereCnstrMp) | _toProveElsewhereCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _bodyOclDfGam | _bodyOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (_lhsIchrStore) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { _bodyOchrStore | _bodyOchrStore `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (_bodyVarMp2 `varUpd` _quValGam_ex_) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _quValGam_ex_subst | _quValGam_ex_subst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (varmpFilterTy (\v _ -> v `Set.member` _noLetQuantTyVarIdS) _gathTvKiVarMp1) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _gathTvKiVarMp2 | _gathTvKiVarMp2 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_gathTvKiVarMp2 `varUpd` _lhsItvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _bodyOtvKiVarMp | _bodyOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (ehcOptTrace _lhsIopts "Expr.Let.loc.tyTyGlobFreeTvarSbody" $
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                varFreeSet _lQuTyGam `Set.union` _tyTyUpdFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _tyTyGlobFreeTvarSbody | _tyTyGlobFreeTvarSbody `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_tyTyGlobFreeTvarSbody) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _bodyOtyTyGlobFreeTvarS | _bodyOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (ehcOptTrace _lhsIopts "Expr.Let.body.valTyGlobFreeTvarS" $
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  varFreeSet _quValGam_ex_subst `Set.union` _valTyUpdFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _bodyOvalTyGlobFreeTvarS | _bodyOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (gathPredLToAssumeCnstrMp _knPrL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { _hereCnstrMp | _hereCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (body_6 _bodyOchrStore _bodyOclDfGam _bodyOfiOpts _bodyOknTy _bodyOtvKiVarMp _bodyOtyTyGlobFreeTvarS _bodyOtyVarMp _bodyOvalGam _bodyOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { ( _bodyIgathCnstrMp,_bodyIgathRangeMp,_bodyIgathValGam,_bodyInoLetQuantTyVarIdS,_bodyIty,_bodyItyVarMp,body_7) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (ehcOptTrace _lhsIopts "Expr.Let.loc.gathCnstrMp" $
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         cnstrMpUnions [_hereCnstrMp,_toProveElsewhereCnstrMp,_bodyIgathCnstrMp]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _gathCnstrMp | _gathCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_gathCnstrMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (_declsIgathRangeMp
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           `Map.union` cnstrMpToRangeMp _declsIgathCnstrMp
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           `Map.union` _bodyIgathRangeMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (_quValGam_ex_subst) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { _finValGamDecls | _finValGamDecls `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (ehcOptTrace _lhsIopts "Expr.Let.lhs.gathValGam" $
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _bodyIgathValGam `gamUnion` _finValGamDecls) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _gathValGam | _gathValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (_gathValGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_bodyInoLetQuantTyVarIdS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (_resTy) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _ty | _ty `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_ty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (_bodyItyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case ((let sem_Expr_Let_7 :: T_Expr_7
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        sem_Expr_Let_7 =
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (\ _lhsIcSubst
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _lhsIchrEvidBindMp
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _lhsIchrScopeBindMp
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _lhsIexprCtxt
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _lhsIfinTyVarMp
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _lhsIfinValGam
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _lhsImoduleNm
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _lhsIrangeMp
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _lhsIsysfEnv
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _lhsItr ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _lhsIcSubst `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (_lhsIfinValGam `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (_lhsImoduleNm `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (_lhsIrangeMp `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (_lhsItr `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ((case (_lhsIsysfEnv
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { sysfenvTyKiGam    = _finTyKiGam
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      , sysfenvClGam      = _forBodyClGam
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _sysfEnv | _sysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (_sysfEnv) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { _bodyOsysfEnv | _bodyOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { _bodyOrangeMp | _bodyOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case ((if _lhsIisFirstLet then gamUnion _gathValGam else id) _lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               { _finValGam | _finValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (_finValGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                { _bodyOfinValGam | _bodyOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _finTyVarMp | _finTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (_finTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _bodyOfinTyVarMp | _bodyOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (ExprCtxt_Internal) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _exprCtxt | _exprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_exprCtxt) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { _bodyOexprCtxt | _bodyOexprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (_sysfEnv) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _declsOsysfEnv | _declsOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { _declsOrangeMp | _declsOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (_finValGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _declsOfinValGam | _declsOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (_finTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _declsOfinTyVarMp | _declsOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (__tup114) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { (_,_,_,_,_,_,_,_,_,_,_,_lUniq_gener) | _lUniq_gener `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (__tup114) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { (_,_,_,_,_,_,_lUniq6,_,_,_,_,_) | _lUniq6 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (__tup114) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { (_,_,_,_,_lUniq4,_,_,_,_,_,_,_) | _lUniq4 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case ((emptyRCEEnv _lhsIopts) { rceValGam = _bodyValGam, rceDataGam = _lhsIdataGam, rceTyVarMp = _finTyVarMp }) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _rceEnv | _rceEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (__tup111) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { (_,_,_cycTyKiVarMp_l) | _cycTyKiVarMp_l `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (__tup107) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { (_cycTyVarMp_l,_) | _cycTyVarMp_l `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (let (_,amb) = doPredAmbigSplit id _tqoGam _toQuantOverPrOccL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         mkg = assocLMapElt (ppTy . vgiTy) . gamToAssocL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     in  if null amb
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         then []
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         else [rngLift _range Err_AmbigPreds
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (map (mkRangedPred _lhsIrangeMp . poPr) amb)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (mkg _quValGam_ex_subst) (mkg $ _tyVarMpDeclsL0 `varUpd` _valGam_l_)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               { _predAmbigErrs | _predAmbigErrs `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (mkPrvErr _lhsIrangeMp _range _cannotProveCnstrMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                { _predNotPrfErrs | _predNotPrfErrs `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (rngLift _range varmpOccurErr _declsIkiVarMp $ _cycTyKiVarMp_l) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _occCycTyKiErrs | _occCycTyKiErrs `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (rngLift _range varmpOccurErr _tyVarMpDeclsL0 $ _cycTyVarMp_l) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _occCycTyErrs | _occCycTyErrs `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (if ehcOptHsChecksInEH _lhsIopts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         then let nms = assocLKeys $ gamToOnlyDups $ gamTop _declsIpatValGam
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              in  if null nms
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then []
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else [rngLift _range Err_NamesDupIntrod "value" (zip nms (repeat Nothing))]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         else []) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _dupErrs | _dupErrs `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (__tup82) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { (_,_generInstInfoL) | _generInstInfoL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (mkDataGenerBinds
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _lhsIopts _sysfEnv
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (_rceEnv {rceValGam = _finValGam `gamUnion` rceValGam _rceEnv})
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _forDeclsClGam _lhsIfinTyKiGam _lhsIdataGam
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _lUniq_gener _generInstInfoL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { __tup99 | __tup99 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (__tup99) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { (_,_errsDataGenerBind) | _errsDataGenerBind `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (let mk u nm tmpo
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   = (cnstrMpFromList ass `cnstrMpUnion` cnstrMpUnions (map cnstrMpFromList prvs), concat coeArgIds)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   where assSc = maybe _predScope id $ gamLookup nm _declsIscopeGam
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (ass,prvs,coeArgIds)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           = unzip3 [ ( rngLift _range mkAssumeConstraint pr (poId po) assSc
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      , zipWith (\u i -> rngLift _range mkProveConstraint pr u (ipoScope i)) ups ipos
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      , zipWith (\u i -> (ipoId i,u)) ups ipos
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      )
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | ((po,ipos),u') <- zip impls $ mkNewLevUIDL (length impls) u
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    , let ups = mkNewLevUIDL (length ipos) u'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          pr  = poPr po
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         impls = tmpoImplsPrvReq tmpo
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 tmpos = gamToAssocL _tqoGam
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (quantCnstrMps, coeArgIds) = unzip $ zipWith (\(nm,tmpo) u -> mk u nm tmpo) tmpos $ mkNewLevUIDL (length tmpos) _lUniq6
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             in  ( cnstrMpUnions quantCnstrMps
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 , foldr (\(occ,arg) m -> Map.insertWith (++) occ [arg] m) Map.empty $ concat coeArgIds
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 )) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { __tup92 | __tup92 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (__tup92) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { (_quantCnstrMp,_) | _quantCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (not (Map.null _quantCnstrMp)) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _secondProofIsNeeded | _secondProofIsNeeded `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (__tup87) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { (_,_,_,_,_,_,_,_,_,_,_chrSolve1EvidCoreMp) | _chrSolve1EvidCoreMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (__tup87) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { (_,_,_,_,_,_,_,_,_,_chrSolve1ScopeBindMp,_) | _chrSolve1ScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (__tup87) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { (_,_,_,_,_,_,_,_,_chrSolve1EvidBindMp,_,_) | _chrSolve1EvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (__tup87) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { (_,_,_,_,_,_,_,_chrSolve1EvidCBindL,_,_,_) | _chrSolve1EvidCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (__tup87) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { (_,_,_,_,_,_,_chrSolve1EvidMp,_,_,_,_) | _chrSolve1EvidMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (__tup87) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               { (_,_,_,_,_,_chrSimplifyResult1,_,_,_,_,_) | _chrSimplifyResult1 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (__tup87) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                { (_toProveHereCnstrMpCanon,_,_,_,_,_,_,_,_,_,_) | _toProveHereCnstrMpCanon `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (if _secondProofIsNeeded
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       then ehcOptTrace _lhsIopts "Expr.Let.simplify2"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            $ simplify [] (_chrProveFIIn {fiUniq = _lUniq4}) _lhsIchrStore _lhsIclDfGam (heurScopedEHC _chrProveFIIn) ((,) []) _toProveHereCnstrMpCanon _quantCnstrMp
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            $ simplifyResultResetForAdditionalWork _chrSimplifyResult1
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       else ( emptyCnstrMp, _chrSolve1RemCnstrMp, emptyCnstrMp, emptyVarMp, [], _chrSimplifyResult1, _chrSolve1EvidMp
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            , _chrSolve1EvidCBindL, _chrSolve1EvidBindMp, _chrSolve1ScopeBindMp, _chrSolve1EvidCoreMp
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            )) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { __tup90 | __tup90 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (__tup90) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { (_,_,_,_,_chrSolve2Errs,_,_,_,_,_,_) | _chrSolve2Errs `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (__tup87) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { (_,_,_,_,_chrSolve1Errs,_,_,_,_,_,_) | _chrSolve1Errs `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (__tup85) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { (_,_polErrCyc) | _polErrCyc `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (assocTyLToVarMp _polErrCyc) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _cycVarMp | _cycVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (Seq.fromList $ rngLift _range varmpOccurErr _declsIpolVarMp _cycVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { _cycErrSq | _cycErrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (Seq.unions [ Seq.fromList _dupErrs, Seq.fromList _occCycTyErrs, Seq.fromList _occCycTyKiErrs
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        , Seq.unions $ map Seq.fromList [_predNotPrfErrs, _predAmbigErrs, firstNotEmpty [_chrSolve1Errs, _chrSolve2Errs]]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        , _cycErrSq
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        , Seq.fromList _errsDataGenerBind
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _letErrL | _letErrL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _bodyOtr | _bodyOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _bodyOmoduleNm | _bodyOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (__tup90) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { (_,_,_,_,_,_,_,_,_,_chrSolve2ScopeBindMp,_) | _chrSolve2ScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_chrSolve2ScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _chrSolveScopeBindMp | _chrSolveScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (ehcOptTrace _lhsIopts "Expr.Let.loc.chrLetScopeBindMp" $
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _chrSolveScopeBindMp `predScopeToBindMapUnion` _lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _chrLetScopeBindMp | _chrLetScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (mkScopeBindings True _predScope _chrLetScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { __tup93 | __tup93 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (__tup93) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { (_,_chrScopeBindMp) | _chrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (_chrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               { _bodyOchrScopeBindMp | _bodyOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (__tup90) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                { (_,_,_,_,_,_,_,_,_chrSolve2EvidBindMp,_,_) | _chrSolve2EvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (_chrSolve2EvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _chrSolveEvidBindMp | _chrSolveEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (ehcOptTrace _lhsIopts "Expr.Let.loc.chrEvidBindMp" $
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _chrSolveEvidBindMp `evidKeyToBindMapUnion` _lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _chrEvidBindMp | _chrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (_chrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _bodyOchrEvidBindMp | _bodyOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_chrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { _declsOchrScopeBindMp | _declsOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (_chrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _declsOchrEvidBindMp | _declsOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (__tup92) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { (_,_coeArgIdMp) | _coeArgIdMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (let mk a = (acoreNmHole a)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             in  acoreCSubstFromUidImplsL [ (occ, ([acoreCoeAppN $ map mk args], [])) | (occ,args) <- Map.toList _coeArgIdMp ]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _prvArgCSubst | _prvArgCSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (ehcOptTrace _lhsIopts "Expr.Let.decls.cSubst"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              $ cSubstApp _lhsIcSubst
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              $ cSubstApp _prvArgCSubst
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              $ cSubstApp (acoreCSubstFromVarMpImpls _tmpoTyVarMp)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              $ evidKeyBindMpToCSubst _chrSolveEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _declsOcSubst | _declsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _declsOtr | _declsOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _declsOmoduleNm | _declsOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (isStrict_) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _declsOisStrict | _declsOisStrict `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (_declsIgathKiSigGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _declsOkiSigGam | _declsOkiSigGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (decls_14 _declsOcSubst _declsOchrEvidBindMp _declsOchrScopeBindMp _declsOfinTyVarMp _declsOfinValGam _declsOisStrict _declsOkiSigGam _declsOmoduleNm _declsOrangeMp _declsOsysfEnv _declsOtr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { ( _declsIallErrSq,_declsIbangEvalL,_declsIcSubst,_declsIerrSq,_declsIffeCBindL,_declsIffiCBindL,_declsIgathHiddenExports,_declsIgathLamMp,_declsIgathMentrelFilterMp,_declsIgathTvKiVarMp,_declsIorphanS,_declsIpp,_declsIppAST,_declsItrpp,_declsItyCBindL,_declsIvalCBindL) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (_declsIcSubst) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _bodyOcSubst | _bodyOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (body_7 _bodyOcSubst _bodyOchrEvidBindMp _bodyOchrScopeBindMp _bodyOexprCtxt _bodyOfinTyVarMp _bodyOfinValGam _bodyOmoduleNm _bodyOrangeMp _bodyOsysfEnv _bodyOtr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { ( _bodyIallErrSq,_bodyIappArgCoeL,_bodyIappArgPPL,_bodyIappFunCExpr,_bodyIappFunNm,_bodyIappFunPP,_bodyIbackCBindL,_bodyIcSubst,_bodyIcaseFailS,_bodyIcexpr,_bodyIerrSq,_bodyIfrontCBindL,_bodyIfuCExprL,_bodyIgathClGam,_bodyIgathHiddenExports,_bodyIgathKiGam,_bodyIgathLamMp,_bodyIgathMentrelFilterMp,_bodyIgathPolGam,_bodyIgathTvKiVarMp,_bodyIgathTyGam,_bodyIgathTyKiGam,_bodyIisNewtype,_bodyIlamArgPPL,_bodyIlamBodyPP,_bodyIletCBody,_bodyIletTyCBindL,_bodyIletValCBindL,_bodyIletValMainCBindL,_bodyIorphanS,_bodyIpp,_bodyIppAST,_bodyItrpp) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (ehcOptTrace _lhsIopts "Expr.Let.lhs.allErrSq" $
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Seq.unions [_letErrL, _bodyIerrSq, _declsIallErrSq, _bodyIallErrSq]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (__tup114) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { (_,_,_,_,_,_,_,_,_lUniq_cexpr,_,_,_) | _lUniq_cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (__tup95) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { (_,_knImplsTl) | _knImplsTl `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (_lhsIfinTyVarMp `varUpd` _knImplsTl) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { _impls2KnTl | _impls2KnTl `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (tyImpls _imSubsTy) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { _impls2KnHd | _impls2KnHd `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case ([_impls2KnHd, _impls2KnTl]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               { _impls2KnHdTl | _impls2KnHdTl `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (concatMap implsPrIdPredL _impls2KnHdTl) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                { _poiPrL | _poiPrL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (map (mkTyPr . snd) _poiPrL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _finKnImplsL | _finKnImplsL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (map (tyCanonicFFI (emptyTyBetaRedEnv' _fe)) _finKnImplsL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _finKnImplsLExpanded | _finKnImplsLExpanded `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (__tup99) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { (_cDataGenerBindL,_) | _cDataGenerBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (mkDataBinds
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    \_ _ -> []
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (\isNewtype
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (DataTagInfo
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { dtiConNm      = conNm
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  , dtiConFldAnnL = annL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  , dtiCTag       = ctag
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }) -> mkDataConCBindL _lhsIopts _lhsIsysfEnv ctag
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (valGamLookupTyDefault conNm _finValGamDecls)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          annL conNm isNewtype
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              _declsIgathDeclDataGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { __tup97 | __tup97 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (__tup97) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { (_,_dataValCBindL) | _dataValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (__tup93) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { (_chrScopeBindL,_) | _chrScopeBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case ([ (CBindCateg_Rec,_chrScopeBindL) ]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _letCBindOtherL | _letCBindOtherL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (if isStrict_ then CBindCateg_Strict else CBindCateg_Rec) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _howToBind | _howToBind `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (__tup90) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { (_,_,_,_,_,_,_,_chrSolve2EvidCBindL,_,_,_) | _chrSolve2EvidCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case ([( _howToBind
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 , _dataValCBindL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ++ _chrSolve2EvidCBindL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ++ _cDataGenerBindL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ++ _declsIvalCBindL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 )]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _letValCBindL | _letValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (mkLetCBodyBindL isStrict_ _howToBind _letValCBindL _letCBindOtherL _bodyIletValCBindL _bodyIletCBody) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { __tup98 | __tup98 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (__tup98) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { (_,_,_letCBody) | _letCBody `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (__tup98) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { (_letCBindRemL,_,_) | _letCBindRemL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (map fst _poiPrL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { _poiL | _poiL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (zipWith (\po ty -> (po,SysF.ty2TyC _lhsIopts _lhsIsysfEnv ty)) _poiL _finKnImplsLExpanded) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               { _poiAndAcoreTyL | _poiAndAcoreTyL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (mkAssumeBindings (map poiId _poiL) _lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                { _chrAssumeBindL | _chrAssumeBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (_chrAssumeBindL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _poiBindL | _poiBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (acoreCoePoiLLamTy (acoreCoeLetRec _poiBindL) _poiAndAcoreTyL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _lamArgCoeL | _lamArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (id) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _cann | _cann `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_bodyIcSubst) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { _cSubstTop | _cSubstTop `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (\e -> foldr ($) e _declsIbangEvalL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _mkBangEval | _mkBangEval `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (ehcOptTrace _lhsIopts "Expr.Let.lhs.cexprtop" $
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            foldr (\(c,b) e -> acoreLet c b e)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (_mkBangEval _letCBody)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _letCBindRemL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { _cexprtop | _cexprtop `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (let
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 wr      = id
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 top     =
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           mkWeaveExpr _lhsIopts _lUniq_cexpr _lhsIfinTyVarMp _cSubstTop (wr . _cann) _cexprtop [] _lamArgCoeL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             in  top) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { __tup96 | __tup96 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (__tup96) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { (_cexpr,_) | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (hsnUnknown) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (ppErrsSq _letErrL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _errLetPP | _errLetPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (if True
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then ppCmt (    ppGam (_lhsIfinTyVarMp `varUpd` _finValGamDecls)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             >-<  ppGam (                               _gathNewDataGam)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             >-<  ppGam _lClGamNoDups
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             >-<  ppGam (fst $ gamPartition (\k _ -> tyKiKeyIsName k) _lQuTyKiGam_ex_subst)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             >-<  ppGam _lQuTyGam
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             )
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else empty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _extraPP | _extraPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (if ehcOptEhPP _lhsIopts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   then
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "let"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        >|< (if isStrict_ then pp "!" else empty)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        >#< (_declsIpp >-< _extraPP)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        >-< _errLetPP
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        >#< "in" >-< _bodyIpp
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   else empty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case ([(CBindCateg_FFE,_declsIffeCBindL)]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               { _backCBindL | _backCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (_backCBindL ++ _bodyIbackCBindL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (__tup96) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { (_,_cexprapptopCSubst) | _cexprapptopCSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (cSubstApp _bodyIcSubst _cexprapptopCSubst) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (_bodyIcaseFailS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (Seq.empty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case ([(CBindCateg_Plain,_declsIffiCBindL)]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { _frontCBindL | _frontCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (_frontCBindL ++ _bodyIfrontCBindL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (ehcOptTrace _lhsIopts "Expr.Let.lhs.gathClGam" $
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _bodyIgathClGam `gamUnion` _lClGamNoDups) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (Seq.fromList [ (dictNm,IdOcc_Val) | (_,dictNm,_,_,_) <- _generInstInfoL ]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                `Seq.union`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _declsIgathHiddenExports
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                `Seq.union`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _bodyIgathHiddenExports) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_bodyIgathKiGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (_declsIgathLamMp `lamMpUnionBindAspMp` _bodyIgathLamMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (__tup90) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { (_,_,_,_,_,_chrSimplifyResult2,_,_,_,_,_) | _chrSimplifyResult2 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (mentrelFilterMpUnions
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      [ _declsIgathMentrelFilterMp, _bodyIgathMentrelFilterMp
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      , gathMentrelFilterMpFromSimplifyResult _lhsImoduleNm _chrSimplifyResult1
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      , gathMentrelFilterMpFromSimplifyResult _lhsImoduleNm _chrSimplifyResult2
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { _gathMentrelFilterMp | _gathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (_gathMentrelFilterMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (ehcOptTrace _lhsIopts "Expr.Let.lhs.gathPolGam" $
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _bodyIgathPolGam `gamUnion` _finGathPolGam_extra) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (_declsIgathTvKiVarMp `varmpUnion` _bodyIgathTvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (ehcOptTrace _lhsIopts "Expr.Let.lhs.gathTyGam" $
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _bodyIgathTyGam `gamUnion` _lQuTyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (ehcOptTrace _lhsIopts "Expr.Let.lhs.gathTyKiGam" $
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _bodyIgathTyKiGam `gamUnion` _lQuTyKiGam_ex_subst) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (False) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (_lamArgPPL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (_lamBodyPP) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_letCBody) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (__tup97) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { (_dataTyCBindL,_) | _dataTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case ([( CBindCateg_Rec
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  , _dataTyCBindL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ++ _declsItyCBindL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  )]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _letTyCBindL | _letTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (_letTyCBindL ++ _bodyIletTyCBindL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (_letCBindRemL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (__tup98) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { (_,_letCBindMainL,_) | _letCBindMainL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (_letCBindMainL ++ _bodyIletValMainCBindL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (_declsIorphanS `Set.union` _bodyIorphanS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (ppNestTrPP ["Expr","Let"] [] [_declsIppAST] _trppHere
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         >-< _bodyIppAST) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_declsItrpp >< _bodyItrpp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    in  sem_Expr_Let_7)) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { ( sem_Expr_7) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                                                                                                                                                                                                                                       in  sem_Expr_Let_6)) of
                                                                                                                                                                                                                                                                                                                                                                { ( sem_Expr_6) | True ->
                                                                                                                                                                                                                                                                                                                                                                ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) }) }) }) }) }) }) }) })))
                                                                                                                                                                                                                                                                                                                            in  sem_Expr_Let_5)) of
                                                                                                                                                                                                                                                                                                                     { ( sem_Expr_5) | True ->
                                                                                                                                                                                                                                                                                                                     ( _lhsOgathDataGam,sem_Expr_5) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))
                                                                                                                                                                                                                                                       in  sem_Expr_Let_4)) of
                                                                                                                                                                                                                                                { ( sem_Expr_4) | True ->
                                                                                                                                                                                                                                                ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                     in  sem_Expr_Let_3)) of
                                                                                                              { ( sem_Expr_3) | True ->
                                                                                                              ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))
                                                               in  sem_Expr_Let_2)) of
                                                        { ( sem_Expr_2) | True ->
                                                        ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) }) }) }) }) }) }) })))
                        in  sem_Expr_Let_1)) of
                 { ( sem_Expr_1) | True ->
                 ( _lhsOrange,sem_Expr_1) }) }) }) }) })

sem_Expr_Lam :: Range ->
                T_PatExpr ->
                T_Expr ->
                T_Expr

sem_Expr_Lam hsrange_ arg_ body_ | hsrange_ `seq` (arg_ `seq` (body_ `seq` (True))) =
    (case (body_) of
     { ( _bodyIrange,body_1) | True ->
         (case (arg_) of
          { ( _argIrange,arg_1) | True ->
              (case (rangeUnions [hsrange_, _argIrange    , _bodyIrange  ]) of
               { _range | _range `seq` (True) ->
               (case (_range) of
                { _lhsOrange | _lhsOrange `seq` (True) ->
                (case ((let sem_Expr_Lam_1 :: T_Expr_1
                            sem_Expr_Lam_1 =
                                (\ _lhsIgUniq ->
                                     _lhsIgUniq `seq`
                                     ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq2) -> case nextUnique __cont of { (__cont, lUniq_cexpr) -> (__cont,lUniq,lUniq2,lUniq_cexpr)}}} )) of
                                       { __tup123 | __tup123 `seq` (True) ->
                                       (case (__tup123) of
                                        { (_argOgUniq,_,_,_) | _argOgUniq `seq` (True) ->
                                        (case (arg_1 _argOgUniq) of
                                         { ( _argIgUniq,arg_2) | True ->
                                             (case (_argIgUniq) of
                                              { _bodyOgUniq | _bodyOgUniq `seq` (True) ->
                                              (case (body_1 _bodyOgUniq) of
                                               { ( _bodyIgUniq,_bodyIhasInstDecl,body_2) | True ->
                                                   (case (_bodyIgUniq) of
                                                    { _lhsOgUniq | _lhsOgUniq `seq` (True) ->
                                                    (case (False) of
                                                     { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                                                     (case ((let sem_Expr_Lam_2 :: T_Expr_2
                                                                 sem_Expr_Lam_2 =
                                                                     (\ _lhsIisFirstLet
                                                                        _lhsIkiGam
                                                                        _lhsIlexLev
                                                                        _lhsIpredSameScopeCounter ->
                                                                          _lhsIisFirstLet `seq`
                                                                          (_lhsIkiGam `seq`
                                                                           (_lhsIlexLev `seq`
                                                                            (_lhsIpredSameScopeCounter `seq`
                                                                             ((case (_lhsIlexLev + 1) of
                                                                               { _lexLev | _lexLev `seq` (True) ->
                                                                               (case (_lexLev) of
                                                                                { _bodyOlexLev | _bodyOlexLev `seq` (True) ->
                                                                                (case (_lhsIkiGam) of
                                                                                 { _bodyOkiGam | _bodyOkiGam `seq` (True) ->
                                                                                 (case (True) of
                                                                                  { _isFirstLet | _isFirstLet `seq` (True) ->
                                                                                  (case (_isFirstLet) of
                                                                                   { _bodyOisFirstLet | _bodyOisFirstLet `seq` (True) ->
                                                                                   (case (True) of
                                                                                    { _mustEnterNewPredScope | _mustEnterNewPredScope `seq` (True) ->
                                                                                    (case (pscpEnter' _mustEnterNewPredScope _lhsIpredSameScopeCounter) of
                                                                                     { __tup116 | __tup116 `seq` (True) ->
                                                                                     (case (__tup116) of
                                                                                      { (_,_bodyOpredSameScopeCounter) | _bodyOpredSameScopeCounter `seq` (True) ->
                                                                                      (case (__tup116) of
                                                                                       { (_predSameScopeCounterLam,_) | _predSameScopeCounterLam `seq` (True) ->
                                                                                       (case (body_2 _bodyOisFirstLet _bodyOkiGam _bodyOlexLev _bodyOpredSameScopeCounter) of
                                                                                        { ( _bodyIpredSameScopeCounter,body_3) | True ->
                                                                                            (case (pscpLeave' _mustEnterNewPredScope _predSameScopeCounterLam _bodyIpredSameScopeCounter) of
                                                                                             { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                                                             (case ((let sem_Expr_Lam_3 :: T_Expr_3
                                                                                                         sem_Expr_Lam_3 =
                                                                                                             (\ _lhsIgenerDataInfoMp
                                                                                                                _lhsIkiVarMp
                                                                                                                _lhsIopts
                                                                                                                _lhsIpolGam
                                                                                                                _lhsIpolVarMp
                                                                                                                _lhsIpredScope
                                                                                                                _lhsItyGam
                                                                                                                _lhsItyKiGam
                                                                                                                _lhsItyKiGlobFreeTvarS ->
                                                                                                                  _lhsIgenerDataInfoMp `seq`
                                                                                                                  (_lhsIkiVarMp `seq`
                                                                                                                   (_lhsIopts `seq`
                                                                                                                    (_lhsIpolGam `seq`
                                                                                                                     (_lhsIpolVarMp `seq`
                                                                                                                      (_lhsIpredScope `seq`
                                                                                                                       (_lhsItyGam `seq`
                                                                                                                        (_lhsItyKiGam `seq`
                                                                                                                         (_lhsItyKiGlobFreeTvarS `seq`
                                                                                                                          ((case (_lhsItyKiGlobFreeTvarS) of
                                                                                                                            { _argOtyKiGlobFreeTvarS | _argOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                            (case (_lhsItyKiGam) of
                                                                                                                             { _argOtyKiGam | _argOtyKiGam `seq` (True) ->
                                                                                                                             (case (pscpMk' _mustEnterNewPredScope _lhsIpredSameScopeCounter _lhsIpredScope) of
                                                                                                                              { _predScope | _predScope `seq` (True) ->
                                                                                                                              (case (_predScope) of
                                                                                                                               { _argOpredScope | _argOpredScope `seq` (True) ->
                                                                                                                               (case (_lhsIpredSameScopeCounter) of
                                                                                                                                { _argOpredSameScopeCounter | _argOpredSameScopeCounter `seq` (True) ->
                                                                                                                                (case (_lhsIpolVarMp) of
                                                                                                                                 { _argOpolVarMp | _argOpolVarMp `seq` (True) ->
                                                                                                                                 (case (_lhsIpolGam) of
                                                                                                                                  { _argOpolGam | _argOpolGam `seq` (True) ->
                                                                                                                                  (case (_lhsIopts) of
                                                                                                                                   { _argOopts | _argOopts `seq` (True) ->
                                                                                                                                   (case (_lexLev) of
                                                                                                                                    { _argOlexLev | _argOlexLev `seq` (True) ->
                                                                                                                                    (case (_lhsIkiVarMp) of
                                                                                                                                     { _argOkiVarMp | _argOkiVarMp `seq` (True) ->
                                                                                                                                     (case (_lhsIkiGam) of
                                                                                                                                      { _argOkiGam | _argOkiGam `seq` (True) ->
                                                                                                                                      (case (_lhsIgenerDataInfoMp) of
                                                                                                                                       { _argOgenerDataInfoMp | _argOgenerDataInfoMp `seq` (True) ->
                                                                                                                                       (case (gamPushNew _lhsItyGam) of
                                                                                                                                        { _argOtyGam | _argOtyGam `seq` (True) ->
                                                                                                                                        (case (arg_2 _argOkiGam _argOlexLev _argOpredSameScopeCounter) of
                                                                                                                                         { ( _argIpredSameScopeCounter,arg_3) | True ->
                                                                                                                                             (case (arg_3 _argOgenerDataInfoMp _argOkiVarMp _argOopts _argOpolGam _argOpolVarMp _argOpredScope _argOtyGam _argOtyKiGam _argOtyKiGlobFreeTvarS) of
                                                                                                                                              { ( _argIgenerDataInfoMp,_argIkiVarMp,_argIpolVarMp,_argItyGam,_argItyKiGam,arg_4) | True ->
                                                                                                                                                  (case (_argItyKiGam) of
                                                                                                                                                   { _bodyOtyKiGam | _bodyOtyKiGam `seq` (True) ->
                                                                                                                                                   (case (_argItyGam) of
                                                                                                                                                    { _bodyOtyGam | _bodyOtyGam `seq` (True) ->
                                                                                                                                                    (case (_predScope) of
                                                                                                                                                     { _bodyOpredScope | _bodyOpredScope `seq` (True) ->
                                                                                                                                                     (case (_argIpolVarMp) of
                                                                                                                                                      { _bodyOpolVarMp | _bodyOpolVarMp `seq` (True) ->
                                                                                                                                                      (case (_lhsIpolGam) of
                                                                                                                                                       { _bodyOpolGam | _bodyOpolGam `seq` (True) ->
                                                                                                                                                       (case (_lhsIopts) of
                                                                                                                                                        { _bodyOopts | _bodyOopts `seq` (True) ->
                                                                                                                                                        (case (_argIkiVarMp) of
                                                                                                                                                         { _bodyOkiVarMp | _bodyOkiVarMp `seq` (True) ->
                                                                                                                                                         (case (_argIgenerDataInfoMp) of
                                                                                                                                                          { _bodyOgenerDataInfoMp | _bodyOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                          (case (varFreeSet (_argIkiVarMp `varUpd` gamTop _argItyKiGam) `Set.union` _lhsItyKiGlobFreeTvarS) of
                                                                                                                                                           { _bodyOtyKiGlobFreeTvarS | _bodyOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                                                           (case (body_3 _bodyOgenerDataInfoMp _bodyOkiVarMp _bodyOopts _bodyOpolGam _bodyOpolVarMp _bodyOpredScope _bodyOtyGam _bodyOtyKiGam _bodyOtyKiGlobFreeTvarS) of
                                                                                                                                                            { ( _bodyIgenerDataInfoMp,_bodyIkiVarMp,_bodyIpolVarMp,body_4) | True ->
                                                                                                                                                                (case (_bodyIgenerDataInfoMp) of
                                                                                                                                                                 { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                                 (case (_bodyIkiVarMp) of
                                                                                                                                                                  { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                                                                                                  (case (_bodyIpolVarMp) of
                                                                                                                                                                   { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                                                                                                   (case ((let sem_Expr_Lam_4 :: T_Expr_4
                                                                                                                                                                               sem_Expr_Lam_4 =
                                                                                                                                                                                   (\ _lhsIclGam
                                                                                                                                                                                      _lhsIfinKiVarMp
                                                                                                                                                                                      _lhsIfinTyKiGam
                                                                                                                                                                                      _lhsIgathDataGam
                                                                                                                                                                                      _lhsItyTyTySigFreeTvarS ->
                                                                                                                                                                                        _lhsIclGam `seq`
                                                                                                                                                                                        (_lhsIfinKiVarMp `seq`
                                                                                                                                                                                         (_lhsIfinTyKiGam `seq`
                                                                                                                                                                                          (_lhsIgathDataGam `seq`
                                                                                                                                                                                           (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                                                                                            ((case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                              { _bodyOtyTyTySigFreeTvarS | _bodyOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                              (case (_lhsIgathDataGam) of
                                                                                                                                                                                               { _bodyOgathDataGam | _bodyOgathDataGam `seq` (True) ->
                                                                                                                                                                                               (case (_lhsIfinTyKiGam) of
                                                                                                                                                                                                { _bodyOfinTyKiGam | _bodyOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                                (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                                 { _bodyOfinKiVarMp | _bodyOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                                 (case (_lhsIclGam) of
                                                                                                                                                                                                  { _bodyOclGam | _bodyOclGam `seq` (True) ->
                                                                                                                                                                                                  (case (body_4 _bodyOclGam _bodyOfinKiVarMp _bodyOfinTyKiGam _bodyOgathDataGam _bodyOtyTyTySigFreeTvarS) of
                                                                                                                                                                                                   { ( _bodyIgathDataGam,body_5) | True ->
                                                                                                                                                                                                       (case (_bodyIgathDataGam) of
                                                                                                                                                                                                        { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                                                                                                        (case ((let sem_Expr_Lam_5 :: T_Expr_5
                                                                                                                                                                                                                    sem_Expr_Lam_5 =
                                                                                                                                                                                                                        (\ _lhsIdataGam ->
                                                                                                                                                                                                                             _lhsIdataGam `seq`
                                                                                                                                                                                                                             ((case (Seq.empty) of
                                                                                                                                                                                                                               { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                                                                                                               (case (defaultFIEnv
                                                                                                                                                                                                                                          { feEHCOpts = _lhsIopts
                                                                                                                                                                                                                                          , fePredScope = _predScope
                                                                                                                                                                                                                                          , feTyGam = _lhsItyGam
                                                                                                                                                                                                                                          , fePolGam = _lhsIpolGam
                                                                                                                                                                                                                                          , feRange = _range
                                                                                                                                                                                                                                          }) of
                                                                                                                                                                                                                                { _fe | _fe `seq` (True) ->
                                                                                                                                                                                                                                (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                                                                                                                 { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                                                                                                                 (case (_chrFIIn) of
                                                                                                                                                                                                                                  { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                                                                                                                  (case (_lhsIdataGam) of
                                                                                                                                                                                                                                   { _bodyOdataGam | _bodyOdataGam `seq` (True) ->
                                                                                                                                                                                                                                   (case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                    { _argOtyTyTySigFreeTvarS | _argOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                    (case (_lhsIfinTyKiGam) of
                                                                                                                                                                                                                                     { _argOfinTyKiGam | _argOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                     (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                                                                      { _argOfinKiVarMp | _argOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                      (case (_lhsIdataGam) of
                                                                                                                                                                                                                                       { _argOdataGam | _argOdataGam `seq` (True) ->
                                                                                                                                                                                                                                       (case (_lhsIclGam) of
                                                                                                                                                                                                                                        { _argOclGam | _argOclGam `seq` (True) ->
                                                                                                                                                                                                                                        (case (body_5 _bodyOdataGam) of
                                                                                                                                                                                                                                         { ( _bodyIchrClassDeclSq,_bodyIchrFIIn,_bodyIchrInstDeclSq,_bodyIgathClDfGam,body_6) | True ->
                                                                                                                                                                                                                                             (case (arg_4 _argOclGam _argOdataGam _argOfinKiVarMp _argOfinTyKiGam _argOtyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                              { ( _argIchrInstDeclSq,_argItopNm,arg_5) | True ->
                                                                                                                                                                                                                                                  (case (_argIchrInstDeclSq `Seq.union` _bodyIchrInstDeclSq) of
                                                                                                                                                                                                                                                   { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                                                                                                                   (case (emptyGam) of
                                                                                                                                                                                                                                                    { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                                                                                                                    (case ((let sem_Expr_Lam_6 :: T_Expr_6
                                                                                                                                                                                                                                                                sem_Expr_Lam_6 =
                                                                                                                                                                                                                                                                    (\ _lhsIchrStore
                                                                                                                                                                                                                                                                       _lhsIclDfGam
                                                                                                                                                                                                                                                                       _lhsIfiOpts
                                                                                                                                                                                                                                                                       _lhsIknTy
                                                                                                                                                                                                                                                                       _lhsItvKiVarMp
                                                                                                                                                                                                                                                                       _lhsItyTyGlobFreeTvarS
                                                                                                                                                                                                                                                                       _lhsItyVarMp
                                                                                                                                                                                                                                                                       _lhsIvalGam
                                                                                                                                                                                                                                                                       _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                                                                                                                         _lhsIchrStore `seq`
                                                                                                                                                                                                                                                                         (_lhsIclDfGam `seq`
                                                                                                                                                                                                                                                                          (_lhsIfiOpts `seq`
                                                                                                                                                                                                                                                                           (_lhsIknTy `seq`
                                                                                                                                                                                                                                                                            (_lhsItvKiVarMp `seq`
                                                                                                                                                                                                                                                                             (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                                                              (_lhsItyVarMp `seq`
                                                                                                                                                                                                                                                                               (_lhsIvalGam `seq`
                                                                                                                                                                                                                                                                                (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                                                                 ((case (emptyGam) of
                                                                                                                                                                                                                                                                                   { _tySigGam | _tySigGam `seq` (True) ->
                                                                                                                                                                                                                                                                                   (case (_tySigGam) of
                                                                                                                                                                                                                                                                                    { _argOtySigGam | _argOtySigGam `seq` (True) ->
                                                                                                                                                                                                                                                                                    (case (_lhsIfiOpts) of
                                                                                                                                                                                                                                                                                     { _argOfiOpts | _argOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                     (case (__tup123) of
                                                                                                                                                                                                                                                                                      { (_,_,_lUniq2,_) | _lUniq2 `seq` (True) ->
                                                                                                                                                                                                                                                                                      (case (__tup123) of
                                                                                                                                                                                                                                                                                       { (_,_lUniq,_,_) | _lUniq `seq` (True) ->
                                                                                                                                                                                                                                                                                       (case (True) of
                                                                                                                                                                                                                                                                                        { _argOinclVarBind | _argOinclVarBind `seq` (True) ->
                                                                                                                                                                                                                                                                                        (case (mkFreshLamImTy _lUniq) of
                                                                                                                                                                                                                                                                                         { __tup121 | __tup121 `seq` (True) ->
                                                                                                                                                                                                                                                                                         (case (__tup121) of
                                                                                                                                                                                                                                                                                          { (_,_,_,_funTy) | _funTy `seq` (True) ->
                                                                                                                                                                                                                                                                                          (case (__tup121) of
                                                                                                                                                                                                                                                                                           { (_,_argTy,_,_) | _argTy `seq` (True) ->
                                                                                                                                                                                                                                                                                           (case (\o m -> fitsIn o _fe _lUniq2 m _funTy _lhsIknTy) of
                                                                                                                                                                                                                                                                                            { _doFit | _doFit `seq` (True) ->
                                                                                                                                                                                                                                                                                            (case (_lhsItyVarMp) of
                                                                                                                                                                                                                                                                                             { _lamKnTyVarMp | _lamKnTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                             (case ((_lhsIfiOpts { fioBindRFirst=True })) of
                                                                                                                                                                                                                                                                                              { _knFunFIOpts | _knFunFIOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                              (case (_doFit _knFunFIOpts _lamKnTyVarMp) of
                                                                                                                                                                                                                                                                                               { _fo_fitF_ | _fo_fitF_ `seq` (True) ->
                                                                                                                                                                                                                                                                                               (case (foVarMp _fo_fitF_ `varUpd` _lhsItyVarMp) of
                                                                                                                                                                                                                                                                                                { _forArgTyVarMp | _forArgTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                (case (_forArgTyVarMp) of
                                                                                                                                                                                                                                                                                                 { _argOpatTyVarMp | _argOpatTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                 (case (_argTy) of
                                                                                                                                                                                                                                                                                                  { _argOknTy | _argOknTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                  (case (gamPushNew _lhsIvalGam) of
                                                                                                                                                                                                                                                                                                   { _argOvalGam | _argOvalGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                   (case ([]) of
                                                                                                                                                                                                                                                                                                    { _argOknTyL | _argOknTyL `seq` (True) ->
                                                                                                                                                                                                                                                                                                    (case (arg_5 _argOvalGam) of
                                                                                                                                                                                                                                                                                                     { ( _argIarity,_argImbTopNm,_argIpatFunTy,arg_6) | True ->
                                                                                                                                                                                                                                                                                                         (case (arg_6 _argOfiOpts _argOinclVarBind _argOknTy _argOknTyL _argOpatTyVarMp _argOtySigGam) of
                                                                                                                                                                                                                                                                                                          { ( _argIpatTyVarMp,_argIvalGam,arg_7) | True ->
                                                                                                                                                                                                                                                                                                              (case (_argIvalGam) of
                                                                                                                                                                                                                                                                                                               { _bodyOvalGam | _bodyOvalGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                               (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                                                                                                { _bodyOtvKiVarMp | _bodyOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                (case (_lhsIfiOpts) of
                                                                                                                                                                                                                                                                                                                 { _bodyOfiOpts | _bodyOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                                                 (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                                                                                                  { _bodyOclDfGam | _bodyOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                  (case (_lhsIchrStore) of
                                                                                                                                                                                                                                                                                                                   { _bodyOchrStore | _bodyOchrStore `seq` (True) ->
                                                                                                                                                                                                                                                                                                                   (case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                    { _argOvalTyGlobFreeTvarS | _argOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                    (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                     { _argOtyTyGlobFreeTvarS | _argOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                     (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                                                                                                      { _argOtvKiVarMp | _argOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                      (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                                                                                                       { _argOclDfGam | _argOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                       (case (_lhsIchrStore) of
                                                                                                                                                                                                                                                                                                                        { _argOchrStore | _argOchrStore `seq` (True) ->
                                                                                                                                                                                                                                                                                                                        (case (_argIpatTyVarMp) of
                                                                                                                                                                                                                                                                                                                         { _argOtyVarMp | _argOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                         (case (arg_7 _argOchrStore _argOclDfGam _argOtvKiVarMp _argOtyTyGlobFreeTvarS _argOtyVarMp _argOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                          { ( _argIcpNm,_argIgathCnstrMp,_argIgathRangeMp,_argIscopeGam,_argIty,_argItyVarMp,arg_8) | True ->
                                                                                                                                                                                                                                                                                                                              (case (_argItyVarMp) of
                                                                                                                                                                                                                                                                                                                               { _bodyOtyVarMp | _bodyOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                               (case (__tup121) of
                                                                                                                                                                                                                                                                                                                                { (_,_,_resTy,_) | _resTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                (case (__tup121) of
                                                                                                                                                                                                                                                                                                                                 { (_imTy,_,_,_) | _imTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                 (case (_resTy) of
                                                                                                                                                                                                                                                                                                                                  { _bodyOknTy | _bodyOknTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                  (case (varFreeSet (gamTop _argItyGam) `Set.union` _lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                   { _bodyOtyTyGlobFreeTvarS | _bodyOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                   (case (varFreeSet (gamTop _argIvalGam) `Set.union` _lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                    { _bodyOvalTyGlobFreeTvarS | _bodyOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                    (case (foVarMp _fo_fitF_ `varUpd` _imTy) of
                                                                                                                                                                                                                                                                                                                                     { _imSubsTy | _imSubsTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                     (case (implsPredsTail _predScope $ tyImpls _imSubsTy) of
                                                                                                                                                                                                                                                                                                                                      { __tup117 | __tup117 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                      (case (__tup117) of
                                                                                                                                                                                                                                                                                                                                       { (_knPrL,_) | _knPrL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                       (case (gathPredLToAssumeCnstrMp _knPrL) of
                                                                                                                                                                                                                                                                                                                                        { _hereCnstrMp | _hereCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                        (case (body_6 _bodyOchrStore _bodyOclDfGam _bodyOfiOpts _bodyOknTy _bodyOtvKiVarMp _bodyOtyTyGlobFreeTvarS _bodyOtyVarMp _bodyOvalGam _bodyOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                         { ( _bodyIgathCnstrMp,_bodyIgathRangeMp,_bodyIgathValGam,_bodyInoLetQuantTyVarIdS,_bodyIty,_bodyItyVarMp,body_7) | True ->
                                                                                                                                                                                                                                                                                                                                             (case (cnstrMpUnions [_hereCnstrMp,_argIgathCnstrMp,_bodyIgathCnstrMp]) of
                                                                                                                                                                                                                                                                                                                                              { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                              (case (_argIgathRangeMp `Map.union` _bodyIgathRangeMp) of
                                                                                                                                                                                                                                                                                                                                               { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                               (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                (case (_bodyInoLetQuantTyVarIdS) of
                                                                                                                                                                                                                                                                                                                                                 { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                 (case (tyArrowImplsArgResWithLkup (varmpTyLookupCyc2 _forArgTyVarMp) _funTy) of
                                                                                                                                                                                                                                                                                                                                                  { __tup122 | __tup122 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                  (case (__tup122) of
                                                                                                                                                                                                                                                                                                                                                   { (_knImpls,_,_) | _knImpls `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                   (case ((_knImpls ++ [_argIty]) `appArr` _bodyIty) of
                                                                                                                                                                                                                                                                                                                                                    { _ty | _ty `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                    (case (_ty) of
                                                                                                                                                                                                                                                                                                                                                     { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                     (case (_bodyItyVarMp) of
                                                                                                                                                                                                                                                                                                                                                      { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                      (case ((let sem_Expr_Lam_7 :: T_Expr_7
                                                                                                                                                                                                                                                                                                                                                                  sem_Expr_Lam_7 =
                                                                                                                                                                                                                                                                                                                                                                      (\ _lhsIcSubst
                                                                                                                                                                                                                                                                                                                                                                         _lhsIchrEvidBindMp
                                                                                                                                                                                                                                                                                                                                                                         _lhsIchrScopeBindMp
                                                                                                                                                                                                                                                                                                                                                                         _lhsIexprCtxt
                                                                                                                                                                                                                                                                                                                                                                         _lhsIfinTyVarMp
                                                                                                                                                                                                                                                                                                                                                                         _lhsIfinValGam
                                                                                                                                                                                                                                                                                                                                                                         _lhsImoduleNm
                                                                                                                                                                                                                                                                                                                                                                         _lhsIrangeMp
                                                                                                                                                                                                                                                                                                                                                                         _lhsIsysfEnv
                                                                                                                                                                                                                                                                                                                                                                         _lhsItr ->
                                                                                                                                                                                                                                                                                                                                                                           _lhsIcSubst `seq`
                                                                                                                                                                                                                                                                                                                                                                           (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                                                                                                                                                                            (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                                                                                                                                                                             (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                                                                                                                                                                              (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                                                                                                                                                                               (_lhsIfinValGam `seq`
                                                                                                                                                                                                                                                                                                                                                                                (_lhsImoduleNm `seq`
                                                                                                                                                                                                                                                                                                                                                                                 (_lhsIrangeMp `seq`
                                                                                                                                                                                                                                                                                                                                                                                  (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                                                                                                                                                                                   (_lhsItr `seq`
                                                                                                                                                                                                                                                                                                                                                                                    ((case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                                                                                                      { _bodyOsysfEnv | _bodyOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                      (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                                                                                                       { _bodyOrangeMp | _bodyOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                       (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                                                                                                        { _bodyOfinValGam | _bodyOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                        (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                         { _bodyOfinTyVarMp | _bodyOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                         (case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                                                                                                          { _argOsysfEnv | _argOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                          (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                                                                                                           { _argOrangeMp | _argOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                           (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                                                                                                            { _argOfinValGam | _argOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                            (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                             { _argOfinTyVarMp | _argOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                             (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                                                              { _bodyOtr | _bodyOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                              (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                                                               { _bodyOmoduleNm | _bodyOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                               (case (mkScopeBindings False _predScope _lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                { __tup115 | __tup115 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                (case (__tup115) of
                                                                                                                                                                                                                                                                                                                                                                                                 { (_,_chrScopeBindMp) | _chrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                 (case (_chrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                  { _bodyOchrScopeBindMp | _bodyOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                  (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                   { _bodyOchrEvidBindMp | _bodyOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                   (case (_chrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                    { _argOchrScopeBindMp | _argOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                    (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                     { _argOchrEvidBindMp | _argOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                     (case (_lhsIcSubst) of
                                                                                                                                                                                                                                                                                                                                                                                                      { _argOcSubst | _argOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                      (case (emptyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                       { _tySigVarMp | _tySigVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                       (case (_tySigVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                        { _argOtySigVarMp | _argOtySigVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                        (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                                                                         { _argOtr | _argOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                         (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                                                                          { _argOmoduleNm | _argOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                          (case (_argItopNm) of
                                                                                                                                                                                                                                                                                                                                                                                                           { _argOceParentNm | _argOceParentNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                           (case (arg_8 _argOcSubst _argOceParentNm _argOchrEvidBindMp _argOchrScopeBindMp _argOfinTyVarMp _argOfinValGam _argOmoduleNm _argOrangeMp _argOsysfEnv _argOtr _argOtySigVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                            { ( _argIallErrSq,_argIappArgPPL,_argIappFunNm,_argIappFunPP,_argIcSubst,_argIerrSq,_argIfsRPatL,_argIgathMentrelFilterMp,_argIgathTvKiVarMp,_argIisBang,_argIpatCRest,_argIpp,_argIppAST,_argIrpat,_argItrpp,_argIvalCBindL) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                                (case (_argIcSubst) of
                                                                                                                                                                                                                                                                                                                                                                                                                 { _bodyOcSubst | _bodyOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                 (case (ExprCtxt_Lam) of
                                                                                                                                                                                                                                                                                                                                                                                                                  { _bodyOexprCtxt | _bodyOexprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                  (case (body_7 _bodyOcSubst _bodyOchrEvidBindMp _bodyOchrScopeBindMp _bodyOexprCtxt _bodyOfinTyVarMp _bodyOfinValGam _bodyOmoduleNm _bodyOrangeMp _bodyOsysfEnv _bodyOtr) of
                                                                                                                                                                                                                                                                                                                                                                                                                   { ( _bodyIallErrSq,_bodyIappArgCoeL,_bodyIappArgPPL,_bodyIappFunCExpr,_bodyIappFunNm,_bodyIappFunPP,_bodyIbackCBindL,_bodyIcSubst,_bodyIcaseFailS,_bodyIcexpr,_bodyIerrSq,_bodyIfrontCBindL,_bodyIfuCExprL,_bodyIgathClGam,_bodyIgathHiddenExports,_bodyIgathKiGam,_bodyIgathLamMp,_bodyIgathMentrelFilterMp,_bodyIgathPolGam,_bodyIgathTvKiVarMp,_bodyIgathTyGam,_bodyIgathTyKiGam,_bodyIisNewtype,_bodyIlamArgPPL,_bodyIlamBodyPP,_bodyIletCBody,_bodyIletTyCBindL,_bodyIletValCBindL,_bodyIletValMainCBindL,_bodyIorphanS,_bodyIpp,_bodyIppAST,_bodyItrpp) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                                       (case (_argIallErrSq `Seq.union` _bodyIallErrSq) of
                                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                        (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                         (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                          (case (__tup123) of
                                                                                                                                                                                                                                                                                                                                                                                                                           { (_,_,_,_lUniq_cexpr) | _lUniq_cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                           (case ((emptyRCEEnv _lhsIopts) { rceValGam = _lhsIvalGam, rceDataGam = _lhsIdataGam, rceTyVarMp = _lhsIfinTyVarMp }) of
                                                                                                                                                                                                                                                                                                                                                                                                                            { _rceEnv | _rceEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                            (case (__tup117) of
                                                                                                                                                                                                                                                                                                                                                                                                                             { (_,_knImplsTl) | _knImplsTl `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                             (case (_lhsIfinTyVarMp `varUpd` _knImplsTl) of
                                                                                                                                                                                                                                                                                                                                                                                                                              { _impls2KnTl | _impls2KnTl `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                              (case (tyImpls _imSubsTy) of
                                                                                                                                                                                                                                                                                                                                                                                                                               { _impls2KnHd | _impls2KnHd `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                               (case ([_impls2KnHd, _impls2KnTl]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                { _impls2KnHdTl | _impls2KnHdTl `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                (case (concatMap implsPrIdPredL _impls2KnHdTl) of
                                                                                                                                                                                                                                                                                                                                                                                                                                 { _poiPrL | _poiPrL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (map (mkTyPr . snd) _poiPrL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                  { _finKnImplsL | _finKnImplsL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (map (tyCanonicFFI (emptyTyBetaRedEnv' _fe)) _finKnImplsL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                   { _finKnImplsLExpanded | _finKnImplsLExpanded `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_lhsIfinTyVarMp `varUpd` _argIty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                    { _finalTyArg | _finalTyArg `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (tyCanonicFFI (emptyTyBetaRedEnv' _fe) _finalTyArg) of
                                                                                                                                                                                                                                                                                                                                                                                                                                     { _finalTyArgExpanded | _finalTyArgExpanded `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (map fst _poiPrL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                      { _poiL | _poiL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (zipWith (\po ty -> (po,SysF.ty2TyC _lhsIopts _lhsIsysfEnv ty)) _poiL _finKnImplsLExpanded) of
                                                                                                                                                                                                                                                                                                                                                                                                                                       { _poiAndAcoreTyL | _poiAndAcoreTyL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                       (case ((appDbg "Expr.{Lam LamImpl}.sysftyArg not implemented" :: SysfTy)) of
                                                                                                                                                                                                                                                                                                                                                                                                                                        { _sysftyLamArg | _sysftyLamArg `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (mkCTy _lhsIopts _finalTyArgExpanded _sysftyLamArg) of
                                                                                                                                                                                                                                                                                                                                                                                                                                         { _acoretyArg | _acoretyArg `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (mkAssumeBindings (map poiId _poiL) _lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                          { _chrAssumeBindL | _chrAssumeBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (__tup115) of
                                                                                                                                                                                                                                                                                                                                                                                                                                           { (_chrScopeBindL,_) | _chrScopeBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (_chrAssumeBindL ++ _chrScopeBindL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                            { _poiBindL | _poiBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (acoreCoePoiLLamTy (acoreCoeLetRec _poiBindL) _poiAndAcoreTyL
                                                                                                                                                                                                                                                                                                                                                                                                                                                   ++ [acoreCoeLam1Ty _argItopNm _acoretyArg]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                             { _lamArgCoeL | _lamArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (mkLamBodyCoe
                                                                                                                                                                                                                                                                                                                                                                                                                                                        (acoreCoeMap (\e -> rceMatchTy _rceEnv [(_argItopNm,_acoretyArg)] [RAlt_Alt [_argIrpat] e Set.empty]))
                                                                                                                                                                                                                                                                                                                                                                                                                                                        _bodyIappArgCoeL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                              { _lamBodyCoeL | _lamBodyCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (let
                                                                                                                                                                                                                                                                                                                                                                                                                                                         wr      = id
                                                                                                                                                                                                                                                                                                                                                                                                                                                         lam     = mkWeaveExpr _lhsIopts _lUniq_cexpr _lhsIfinTyVarMp _bodyIcSubst wr _bodyIappFunCExpr _lamBodyCoeL _lamArgCoeL
                                                                                                                                                                                                                                                                                                                                                                                                                                                     in  lam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                               { __tup118 | __tup118 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (__tup118) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                { (_cexpr,_) | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (hsnUnknown) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (_argIpp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _argPP | _argPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_argPP : _bodyIlamArgPPL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                    { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (if _lhsIexprCtxt /= ExprCtxt_Lam
                                                                                                                                                                                                                                                                                                                                                                                                                                                           then let sep = case _lamArgPPL of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            [_] -> (>#<)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            _   -> (>###<)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                in  ("\\" >|< ppSpaces _lamArgPPL) `sep` ("->" >#< _bodyIlamBodyPP)
                                                                                                                                                                                                                                                                                                                                                                                                                                                           else "\\" >|< _argPP >#< "->" >#< _bodyIpp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                      { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (__tup118) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                        { (_,_cexprlamCSubst) | _cexprlamCSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (cSubstApp _bodyIcSubst _cexprlamCSubst) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (_bodyIcaseFailS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (rngLift _range mkNestErr' _pp [foErrSq _fo_fitF_, _argIerrSq, _bodyIerrSq]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                               { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (_bodyIgathHiddenExports) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (_bodyIgathLamMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (_argIgathMentrelFilterMp `mentrelFilterMpUnion` _bodyIgathMentrelFilterMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (_argIgathTvKiVarMp `varmpUnion` _bodyIgathTvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (False) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_lamArgPPL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (_bodyIlamBodyPP) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (Set.empty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                               { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (ppNestTrPP ["Expr","Lam"] [] [_argIppAST,_bodyIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (_argItrpp >< _bodyItrpp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                                                                                                                                                                              in  sem_Expr_Lam_7)) of
                                                                                                                                                                                                                                                                                                                                                       { ( sem_Expr_7) | True ->
                                                                                                                                                                                                                                                                                                                                                       ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                                                                                                                            in  sem_Expr_Lam_6)) of
                                                                                                                                                                                                                                                     { ( sem_Expr_6) | True ->
                                                                                                                                                                                                                                                     ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))
                                                                                                                                                                                                                in  sem_Expr_Lam_5)) of
                                                                                                                                                                                                         { ( sem_Expr_5) | True ->
                                                                                                                                                                                                         ( _lhsOgathDataGam,sem_Expr_5) }) }) }) }) }) }) }) })))))))
                                                                                                                                                                           in  sem_Expr_Lam_4)) of
                                                                                                                                                                    { ( sem_Expr_4) | True ->
                                                                                                                                                                    ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                     in  sem_Expr_Lam_3)) of
                                                                                              { ( sem_Expr_3) | True ->
                                                                                              ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }) }) }) }) }) }) }) }) }) }) }))))))
                                                             in  sem_Expr_Lam_2)) of
                                                      { ( sem_Expr_2) | True ->
                                                      ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) }) }) }) }) })))
                        in  sem_Expr_Lam_1)) of
                 { ( sem_Expr_1) | True ->
                 ( _lhsOrange,sem_Expr_1) }) }) }) }) })

sem_Expr_AppTop :: Range ->
                   T_Expr ->
                   T_Expr

sem_Expr_AppTop hsrange_ expr_ | hsrange_ `seq` (expr_ `seq` (True)) =
    (case (expr_) of
     { ( _exprIrange,expr_1) | True ->
         (case (rangeUnions [hsrange_, _exprIrange   , _exprIrange  ]) of
          { _range | _range `seq` (True) ->
          (case (_range) of
           { _lhsOrange | _lhsOrange `seq` (True) ->
           (case ((let sem_Expr_AppTop_1 :: T_Expr_1
                       sem_Expr_AppTop_1 =
                           (\ _lhsIgUniq ->
                                _lhsIgUniq `seq`
                                ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq_cexpr) -> case nextUnique __cont of { (__cont, lUniq_fit) -> case nextUnique __cont of { (__cont, lUniq_freshKnTy) -> (__cont,lUniq_cexpr,lUniq_fit,lUniq_freshKnTy)}}} )) of
                                  { __tup130 | __tup130 `seq` (True) ->
                                  (case (__tup130) of
                                   { (_exprOgUniq,_,_,_) | _exprOgUniq `seq` (True) ->
                                   (case (expr_1 _exprOgUniq) of
                                    { ( _exprIgUniq,_exprIhasInstDecl,expr_2) | True ->
                                        (case (_exprIgUniq) of
                                         { _lhsOgUniq | _lhsOgUniq `seq` (True) ->
                                         (case (False) of
                                          { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                                          (case ((let sem_Expr_AppTop_2 :: T_Expr_2
                                                      sem_Expr_AppTop_2 =
                                                          (\ _lhsIisFirstLet
                                                             _lhsIkiGam
                                                             _lhsIlexLev
                                                             _lhsIpredSameScopeCounter ->
                                                               _lhsIisFirstLet `seq`
                                                               (_lhsIkiGam `seq`
                                                                (_lhsIlexLev `seq`
                                                                 (_lhsIpredSameScopeCounter `seq`
                                                                  ((case (_lhsIlexLev) of
                                                                    { _exprOlexLev | _exprOlexLev `seq` (True) ->
                                                                    (case (_lhsIkiGam) of
                                                                     { _exprOkiGam | _exprOkiGam `seq` (True) ->
                                                                     (case (True) of
                                                                      { _isFirstLet | _isFirstLet `seq` (True) ->
                                                                      (case (_isFirstLet) of
                                                                       { _exprOisFirstLet | _exprOisFirstLet `seq` (True) ->
                                                                       (case (False) of
                                                                        { _mustEnterNewPredScope | _mustEnterNewPredScope `seq` (True) ->
                                                                        (case (pscpEnter' _mustEnterNewPredScope _lhsIpredSameScopeCounter) of
                                                                         { __tup125 | __tup125 `seq` (True) ->
                                                                         (case (__tup125) of
                                                                          { (_,_exprOpredSameScopeCounter) | _exprOpredSameScopeCounter `seq` (True) ->
                                                                          (case (__tup125) of
                                                                           { (_predSameScopeCounterTop,_) | _predSameScopeCounterTop `seq` (True) ->
                                                                           (case (expr_2 _exprOisFirstLet _exprOkiGam _exprOlexLev _exprOpredSameScopeCounter) of
                                                                            { ( _exprIpredSameScopeCounter,expr_3) | True ->
                                                                                (case (pscpLeave' _mustEnterNewPredScope _predSameScopeCounterTop _exprIpredSameScopeCounter) of
                                                                                 { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                                                 (case ((let sem_Expr_AppTop_3 :: T_Expr_3
                                                                                             sem_Expr_AppTop_3 =
                                                                                                 (\ _lhsIgenerDataInfoMp
                                                                                                    _lhsIkiVarMp
                                                                                                    _lhsIopts
                                                                                                    _lhsIpolGam
                                                                                                    _lhsIpolVarMp
                                                                                                    _lhsIpredScope
                                                                                                    _lhsItyGam
                                                                                                    _lhsItyKiGam
                                                                                                    _lhsItyKiGlobFreeTvarS ->
                                                                                                      _lhsIgenerDataInfoMp `seq`
                                                                                                      (_lhsIkiVarMp `seq`
                                                                                                       (_lhsIopts `seq`
                                                                                                        (_lhsIpolGam `seq`
                                                                                                         (_lhsIpolVarMp `seq`
                                                                                                          (_lhsIpredScope `seq`
                                                                                                           (_lhsItyGam `seq`
                                                                                                            (_lhsItyKiGam `seq`
                                                                                                             (_lhsItyKiGlobFreeTvarS `seq`
                                                                                                              ((case (_lhsItyKiGlobFreeTvarS) of
                                                                                                                { _exprOtyKiGlobFreeTvarS | _exprOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                (case (_lhsItyKiGam) of
                                                                                                                 { _exprOtyKiGam | _exprOtyKiGam `seq` (True) ->
                                                                                                                 (case (_lhsItyGam) of
                                                                                                                  { _exprOtyGam | _exprOtyGam `seq` (True) ->
                                                                                                                  (case (pscpMk' _mustEnterNewPredScope _lhsIpredSameScopeCounter _lhsIpredScope) of
                                                                                                                   { _predScope | _predScope `seq` (True) ->
                                                                                                                   (case (_predScope) of
                                                                                                                    { _exprOpredScope | _exprOpredScope `seq` (True) ->
                                                                                                                    (case (_lhsIpolVarMp) of
                                                                                                                     { _exprOpolVarMp | _exprOpolVarMp `seq` (True) ->
                                                                                                                     (case (_lhsIpolGam) of
                                                                                                                      { _exprOpolGam | _exprOpolGam `seq` (True) ->
                                                                                                                      (case (_lhsIopts) of
                                                                                                                       { _exprOopts | _exprOopts `seq` (True) ->
                                                                                                                       (case (_lhsIkiVarMp) of
                                                                                                                        { _exprOkiVarMp | _exprOkiVarMp `seq` (True) ->
                                                                                                                        (case (_lhsIgenerDataInfoMp) of
                                                                                                                         { _exprOgenerDataInfoMp | _exprOgenerDataInfoMp `seq` (True) ->
                                                                                                                         (case (expr_3 _exprOgenerDataInfoMp _exprOkiVarMp _exprOopts _exprOpolGam _exprOpolVarMp _exprOpredScope _exprOtyGam _exprOtyKiGam _exprOtyKiGlobFreeTvarS) of
                                                                                                                          { ( _exprIgenerDataInfoMp,_exprIkiVarMp,_exprIpolVarMp,expr_4) | True ->
                                                                                                                              (case (_exprIgenerDataInfoMp) of
                                                                                                                               { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                                                               (case (_exprIkiVarMp) of
                                                                                                                                { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                                                                (case (_exprIpolVarMp) of
                                                                                                                                 { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                                                                 (case ((let sem_Expr_AppTop_4 :: T_Expr_4
                                                                                                                                             sem_Expr_AppTop_4 =
                                                                                                                                                 (\ _lhsIclGam
                                                                                                                                                    _lhsIfinKiVarMp
                                                                                                                                                    _lhsIfinTyKiGam
                                                                                                                                                    _lhsIgathDataGam
                                                                                                                                                    _lhsItyTyTySigFreeTvarS ->
                                                                                                                                                      _lhsIclGam `seq`
                                                                                                                                                      (_lhsIfinKiVarMp `seq`
                                                                                                                                                       (_lhsIfinTyKiGam `seq`
                                                                                                                                                        (_lhsIgathDataGam `seq`
                                                                                                                                                         (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                                                          ((case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                            { _exprOtyTyTySigFreeTvarS | _exprOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                            (case (_lhsIgathDataGam) of
                                                                                                                                                             { _exprOgathDataGam | _exprOgathDataGam `seq` (True) ->
                                                                                                                                                             (case (_lhsIfinTyKiGam) of
                                                                                                                                                              { _exprOfinTyKiGam | _exprOfinTyKiGam `seq` (True) ->
                                                                                                                                                              (case (_lhsIfinKiVarMp) of
                                                                                                                                                               { _exprOfinKiVarMp | _exprOfinKiVarMp `seq` (True) ->
                                                                                                                                                               (case (_lhsIclGam) of
                                                                                                                                                                { _exprOclGam | _exprOclGam `seq` (True) ->
                                                                                                                                                                (case (expr_4 _exprOclGam _exprOfinKiVarMp _exprOfinTyKiGam _exprOgathDataGam _exprOtyTyTySigFreeTvarS) of
                                                                                                                                                                 { ( _exprIgathDataGam,expr_5) | True ->
                                                                                                                                                                     (case (_exprIgathDataGam) of
                                                                                                                                                                      { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                                                                      (case ((let sem_Expr_AppTop_5 :: T_Expr_5
                                                                                                                                                                                  sem_Expr_AppTop_5 =
                                                                                                                                                                                      (\ _lhsIdataGam ->
                                                                                                                                                                                           _lhsIdataGam `seq`
                                                                                                                                                                                           ((case (Seq.empty) of
                                                                                                                                                                                             { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                                                                             (case (defaultFIEnv
                                                                                                                                                                                                        { feEHCOpts = _lhsIopts
                                                                                                                                                                                                        , fePredScope = _predScope
                                                                                                                                                                                                        , feTyGam = _lhsItyGam
                                                                                                                                                                                                        , fePolGam = _lhsIpolGam
                                                                                                                                                                                                        , feRange = _range
                                                                                                                                                                                                        }) of
                                                                                                                                                                                              { _fe | _fe `seq` (True) ->
                                                                                                                                                                                              (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                                                                               { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                                                                               (case (_chrFIIn) of
                                                                                                                                                                                                { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                                                                                (case (_lhsIdataGam) of
                                                                                                                                                                                                 { _exprOdataGam | _exprOdataGam `seq` (True) ->
                                                                                                                                                                                                 (case (expr_5 _exprOdataGam) of
                                                                                                                                                                                                  { ( _exprIchrClassDeclSq,_exprIchrFIIn,_exprIchrInstDeclSq,_exprIgathClDfGam,expr_6) | True ->
                                                                                                                                                                                                      (case (_exprIchrInstDeclSq) of
                                                                                                                                                                                                       { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                                                                       (case (emptyGam) of
                                                                                                                                                                                                        { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                                                                        (case ((let sem_Expr_AppTop_6 :: T_Expr_6
                                                                                                                                                                                                                    sem_Expr_AppTop_6 =
                                                                                                                                                                                                                        (\ _lhsIchrStore
                                                                                                                                                                                                                           _lhsIclDfGam
                                                                                                                                                                                                                           _lhsIfiOpts
                                                                                                                                                                                                                           _lhsIknTy
                                                                                                                                                                                                                           _lhsItvKiVarMp
                                                                                                                                                                                                                           _lhsItyTyGlobFreeTvarS
                                                                                                                                                                                                                           _lhsItyVarMp
                                                                                                                                                                                                                           _lhsIvalGam
                                                                                                                                                                                                                           _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                                                                             _lhsIchrStore `seq`
                                                                                                                                                                                                                             (_lhsIclDfGam `seq`
                                                                                                                                                                                                                              (_lhsIfiOpts `seq`
                                                                                                                                                                                                                               (_lhsIknTy `seq`
                                                                                                                                                                                                                                (_lhsItvKiVarMp `seq`
                                                                                                                                                                                                                                 (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                  (_lhsItyVarMp `seq`
                                                                                                                                                                                                                                   (_lhsIvalGam `seq`
                                                                                                                                                                                                                                    (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                     ((case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                       { _exprOvalTyGlobFreeTvarS | _exprOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                       (case (_lhsIvalGam) of
                                                                                                                                                                                                                                        { _exprOvalGam | _exprOvalGam `seq` (True) ->
                                                                                                                                                                                                                                        (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                         { _exprOtyTyGlobFreeTvarS | _exprOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                         (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                          { _exprOtvKiVarMp | _exprOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                          (case (__tup130) of
                                                                                                                                                                                                                                           { (_,_,_,_lUniq_freshKnTy) | _lUniq_freshKnTy `seq` (True) ->
                                                                                                                                                                                                                                           (case (mkFreshAppImTy _lUniq_freshKnTy id) of
                                                                                                                                                                                                                                            { __tup129 | __tup129 `seq` (True) ->
                                                                                                                                                                                                                                            (case (__tup129) of
                                                                                                                                                                                                                                             { (_,_knTopTy,_) | _knTopTy `seq` (True) ->
                                                                                                                                                                                                                                             (case (_knTopTy) of
                                                                                                                                                                                                                                              { _knTy | _knTy `seq` (True) ->
                                                                                                                                                                                                                                              (case (_knTy) of
                                                                                                                                                                                                                                               { _exprOknTy | _exprOknTy `seq` (True) ->
                                                                                                                                                                                                                                               (case (_lhsIfiOpts) of
                                                                                                                                                                                                                                                { _exprOfiOpts | _exprOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                                (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                                 { _exprOclDfGam | _exprOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                                 (case (_lhsIchrStore) of
                                                                                                                                                                                                                                                  { _exprOchrStore | _exprOchrStore `seq` (True) ->
                                                                                                                                                                                                                                                  (case (__tup130) of
                                                                                                                                                                                                                                                   { (_,_,_lUniq_fit,_) | _lUniq_fit `seq` (True) ->
                                                                                                                                                                                                                                                   (case (__tup129) of
                                                                                                                                                                                                                                                    { (_,_,_resTy) | _resTy `seq` (True) ->
                                                                                                                                                                                                                                                    (case (\o m -> fitsIn o _fe _lUniq_fit m _resTy _lhsIknTy) of
                                                                                                                                                                                                                                                     { _doFit | _doFit `seq` (True) ->
                                                                                                                                                                                                                                                     (case (ehcOptTrace _lhsIopts "Expr.AppTop.loc.foKnRes" $
                                                                                                                                                                                                                                                            _doFit _lhsIfiOpts _lhsItyVarMp) of
                                                                                                                                                                                                                                                      { _foKnRes | _foKnRes `seq` (True) ->
                                                                                                                                                                                                                                                      (case (foVarMp _foKnRes `varUpd` _lhsItyVarMp) of
                                                                                                                                                                                                                                                       { _forExprTyVarMp | _forExprTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                       (case (_forExprTyVarMp) of
                                                                                                                                                                                                                                                        { _exprOtyVarMp | _exprOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                        (case (__tup129) of
                                                                                                                                                                                                                                                         { (_imTy,_,_) | _imTy `seq` (True) ->
                                                                                                                                                                                                                                                         (case (foVarMp _foKnRes `varUpd` _imTy) of
                                                                                                                                                                                                                                                          { _imSubsTy | _imSubsTy `seq` (True) ->
                                                                                                                                                                                                                                                          (case (implsPredsTail _predScope $ tyImpls _imSubsTy) of
                                                                                                                                                                                                                                                           { __tup126 | __tup126 `seq` (True) ->
                                                                                                                                                                                                                                                           (case (__tup126) of
                                                                                                                                                                                                                                                            { (_knPrL,_) | _knPrL `seq` (True) ->
                                                                                                                                                                                                                                                            (case (gathPredLToAssumeCnstrMp _knPrL) of
                                                                                                                                                                                                                                                             { _hereCnstrMp | _hereCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                             (case (expr_6 _exprOchrStore _exprOclDfGam _exprOfiOpts _exprOknTy _exprOtvKiVarMp _exprOtyTyGlobFreeTvarS _exprOtyVarMp _exprOvalGam _exprOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                              { ( _exprIgathCnstrMp,_exprIgathRangeMp,_exprIgathValGam,_exprInoLetQuantTyVarIdS,_exprIty,_exprItyVarMp,expr_7) | True ->
                                                                                                                                                                                                                                                                  (case (cnstrMpUnions [_hereCnstrMp,_exprIgathCnstrMp]) of
                                                                                                                                                                                                                                                                   { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                   (case (_exprIgathRangeMp) of
                                                                                                                                                                                                                                                                    { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                    (case (emptyGam) of
                                                                                                                                                                                                                                                                     { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                                                                                                     (case (_exprInoLetQuantTyVarIdS) of
                                                                                                                                                                                                                                                                      { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                                                                                                      (case (_resTy) of
                                                                                                                                                                                                                                                                       { _ty | _ty `seq` (True) ->
                                                                                                                                                                                                                                                                       (case (_ty) of
                                                                                                                                                                                                                                                                        { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                                                                                                        (case (_exprItyVarMp) of
                                                                                                                                                                                                                                                                         { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                         (case ((let sem_Expr_AppTop_7 :: T_Expr_7
                                                                                                                                                                                                                                                                                     sem_Expr_AppTop_7 =
                                                                                                                                                                                                                                                                                         (\ _lhsIcSubst
                                                                                                                                                                                                                                                                                            _lhsIchrEvidBindMp
                                                                                                                                                                                                                                                                                            _lhsIchrScopeBindMp
                                                                                                                                                                                                                                                                                            _lhsIexprCtxt
                                                                                                                                                                                                                                                                                            _lhsIfinTyVarMp
                                                                                                                                                                                                                                                                                            _lhsIfinValGam
                                                                                                                                                                                                                                                                                            _lhsImoduleNm
                                                                                                                                                                                                                                                                                            _lhsIrangeMp
                                                                                                                                                                                                                                                                                            _lhsIsysfEnv
                                                                                                                                                                                                                                                                                            _lhsItr ->
                                                                                                                                                                                                                                                                                              _lhsIcSubst `seq`
                                                                                                                                                                                                                                                                                              (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                                                                                               (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                                                                                                (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                                                                                                 (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                                                                                                  (_lhsIfinValGam `seq`
                                                                                                                                                                                                                                                                                                   (_lhsImoduleNm `seq`
                                                                                                                                                                                                                                                                                                    (_lhsIrangeMp `seq`
                                                                                                                                                                                                                                                                                                     (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                                                                                                      (_lhsItr `seq`
                                                                                                                                                                                                                                                                                                       ((case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                         { _exprOsysfEnv | _exprOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                         (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                          { _exprOrangeMp | _exprOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                          (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                           { _exprOfinValGam | _exprOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                           (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                            { _exprOfinTyVarMp | _exprOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                            (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                             { _exprOtr | _exprOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                             (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                              { _exprOmoduleNm | _exprOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                              (case (ExprCtxt_Internal) of
                                                                                                                                                                                                                                                                                                               { _exprCtxt | _exprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                               (case (_exprCtxt) of
                                                                                                                                                                                                                                                                                                                { _exprOexprCtxt | _exprOexprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                (case (mkScopeBindings False _predScope _lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                 { __tup124 | __tup124 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                 (case (__tup124) of
                                                                                                                                                                                                                                                                                                                  { (_,_chrScopeBindMp) | _chrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                  (case (_chrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                   { _exprOchrScopeBindMp | _exprOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                   (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                    { _exprOchrEvidBindMp | _exprOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                    (case (_lhsIcSubst) of
                                                                                                                                                                                                                                                                                                                     { _exprOcSubst | _exprOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                     (case (expr_7 _exprOcSubst _exprOchrEvidBindMp _exprOchrScopeBindMp _exprOexprCtxt _exprOfinTyVarMp _exprOfinValGam _exprOmoduleNm _exprOrangeMp _exprOsysfEnv _exprOtr) of
                                                                                                                                                                                                                                                                                                                      { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIletValMainCBindL,_exprIorphanS,_exprIpp,_exprIppAST,_exprItrpp) | True ->
                                                                                                                                                                                                                                                                                                                          (case (_exprIallErrSq) of
                                                                                                                                                                                                                                                                                                                           { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                           (case (__tup130) of
                                                                                                                                                                                                                                                                                                                            { (_,_lUniq_cexpr,_,_) | _lUniq_cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                            (case (__tup126) of
                                                                                                                                                                                                                                                                                                                             { (_,_knImplsTl) | _knImplsTl `seq` (True) ->
                                                                                                                                                                                                                                                                                                                             (case (_lhsIfinTyVarMp `varUpd` _knImplsTl) of
                                                                                                                                                                                                                                                                                                                              { _impls2KnTl | _impls2KnTl `seq` (True) ->
                                                                                                                                                                                                                                                                                                                              (case (tyImpls _imSubsTy) of
                                                                                                                                                                                                                                                                                                                               { _impls2KnHd | _impls2KnHd `seq` (True) ->
                                                                                                                                                                                                                                                                                                                               (case ([_impls2KnHd, _impls2KnTl]) of
                                                                                                                                                                                                                                                                                                                                { _impls2KnHdTl | _impls2KnHdTl `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                (case (concatMap implsPrIdPredL _impls2KnHdTl) of
                                                                                                                                                                                                                                                                                                                                 { _poiPrL | _poiPrL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                 (case (map (mkTyPr . snd) _poiPrL) of
                                                                                                                                                                                                                                                                                                                                  { _finKnImplsL | _finKnImplsL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                  (case (map (tyCanonicFFI (emptyTyBetaRedEnv' _fe)) _finKnImplsL) of
                                                                                                                                                                                                                                                                                                                                   { _finKnImplsLExpanded | _finKnImplsLExpanded `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                   (case (_lhsIfinTyVarMp `varUpd` _ty) of
                                                                                                                                                                                                                                                                                                                                    { _finalTy | _finalTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                    (case (tyCanonicFFI (emptyTyBetaRedEnv' _fe) _finalTy) of
                                                                                                                                                                                                                                                                                                                                     { _finalTyExpanded | _finalTyExpanded `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                     (case (map fst _poiPrL) of
                                                                                                                                                                                                                                                                                                                                      { _poiL | _poiL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                      (case (zipWith (\po ty -> (po,SysF.ty2TyC _lhsIopts _lhsIsysfEnv ty)) _poiL _finKnImplsLExpanded) of
                                                                                                                                                                                                                                                                                                                                       { _poiAndAcoreTyL | _poiAndAcoreTyL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                       (case (mkAssumeBindings (map poiId _poiL) _lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                        { _chrAssumeBindL | _chrAssumeBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                        (case (__tup124) of
                                                                                                                                                                                                                                                                                                                                         { (_chrScopeBindL,_) | _chrScopeBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                         (case (_chrAssumeBindL ++ _chrScopeBindL) of
                                                                                                                                                                                                                                                                                                                                          { _poiBindL | _poiBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                          (case (acoreCoePoiLLamTy (acoreCoeLetRec _poiBindL) _poiAndAcoreTyL) of
                                                                                                                                                                                                                                                                                                                                           { _lamArgCoeL | _lamArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                           (case (CExpr_Ann (CExprAnn_Ty _finalTyExpanded)) of
                                                                                                                                                                                                                                                                                                                                            { _cann | _cann `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                            (case (_exprIcSubst) of
                                                                                                                                                                                                                                                                                                                                             { _cSubstTop | _cSubstTop `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                             (case (_exprIcexpr) of
                                                                                                                                                                                                                                                                                                                                              { _cexprtop | _cexprtop `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                              (case (let
                                                                                                                                                                                                                                                                                                                                                         wr      = id
                                                                                                                                                                                                                                                                                                                                                         top     =
                                                                                                                                                                                                                                                                                                                                                                   mkWeaveExpr _lhsIopts _lUniq_cexpr _lhsIfinTyVarMp _cSubstTop (wr . _cann) _cexprtop [] _lamArgCoeL
                                                                                                                                                                                                                                                                                                                                                     in  top) of
                                                                                                                                                                                                                                                                                                                                               { __tup127 | __tup127 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                               (case (__tup127) of
                                                                                                                                                                                                                                                                                                                                                { (_cexpr,_) | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                (case (if null _lamArgCoeL
                                                                                                                                                                                                                                                                                                                                                       then (_exprIappArgCoeL,_exprIappFunCExpr)
                                                                                                                                                                                                                                                                                                                                                       else ([],_cexpr)) of
                                                                                                                                                                                                                                                                                                                                                 { __tup128 | __tup128 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                 (case (__tup128) of
                                                                                                                                                                                                                                                                                                                                                  { (_lhsOappArgCoeL,_) | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                  (case ([]) of
                                                                                                                                                                                                                                                                                                                                                   { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                   (case (__tup128) of
                                                                                                                                                                                                                                                                                                                                                    { (_,_lhsOappFunCExpr) | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                    (case (hsnUnknown) of
                                                                                                                                                                                                                                                                                                                                                     { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                     (case (ppAppTop  (_exprIappFunNm,_exprIappFunPP)
                                                                                                                                                                                                                                                                                                                                                                      _exprIappArgPPL _exprIpp) of
                                                                                                                                                                                                                                                                                                                                                      { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                      (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                       { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                       (case ([]) of
                                                                                                                                                                                                                                                                                                                                                        { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                        (case (__tup127) of
                                                                                                                                                                                                                                                                                                                                                         { (_,_cexprapptopCSubst) | _cexprapptopCSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                         (case (cSubstApp _exprIcSubst _cexprapptopCSubst) of
                                                                                                                                                                                                                                                                                                                                                          { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                          (case (_exprIcaseFailS) of
                                                                                                                                                                                                                                                                                                                                                           { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                           (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                            { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                            (case (rngLift _range mkNestErr' _pp [_exprIerrSq]) of
                                                                                                                                                                                                                                                                                                                                                             { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                             (case ([]) of
                                                                                                                                                                                                                                                                                                                                                              { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                              (case ([]) of
                                                                                                                                                                                                                                                                                                                                                               { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                               (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                (case (_exprIgathHiddenExports) of
                                                                                                                                                                                                                                                                                                                                                                 { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                 (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                  { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                  (case (_exprIgathLamMp) of
                                                                                                                                                                                                                                                                                                                                                                   { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                   (case (_exprIgathMentrelFilterMp) of
                                                                                                                                                                                                                                                                                                                                                                    { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                    (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                     { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                     (case (_exprIgathTvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                                      { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                      (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                       { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                       (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                        { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                        (case (False) of
                                                                                                                                                                                                                                                                                                                                                                         { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                         (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                          { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                          (case (_lamArgPPL) of
                                                                                                                                                                                                                                                                                                                                                                           { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                           (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                            { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                            (case (_lamBodyPP) of
                                                                                                                                                                                                                                                                                                                                                                             { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                             (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                              { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                              (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                               { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                               (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                 (case (Set.empty) of
                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                  (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                   { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                   (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                    { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                    (case (ppNestTrPP ["Expr","AppTop"] [] [_exprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                     { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                     (case (_exprItrpp) of
                                                                                                                                                                                                                                                                                                                                                                                      { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                      ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                                                                                                 in  sem_Expr_AppTop_7)) of
                                                                                                                                                                                                                                                                          { ( sem_Expr_7) | True ->
                                                                                                                                                                                                                                                                          ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                                                                                in  sem_Expr_AppTop_6)) of
                                                                                                                                                                                                         { ( sem_Expr_6) | True ->
                                                                                                                                                                                                         ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) }) }) })))
                                                                                                                                                                              in  sem_Expr_AppTop_5)) of
                                                                                                                                                                       { ( sem_Expr_5) | True ->
                                                                                                                                                                       ( _lhsOgathDataGam,sem_Expr_5) }) }) }) }) }) }) }) })))))))
                                                                                                                                         in  sem_Expr_AppTop_4)) of
                                                                                                                                  { ( sem_Expr_4) | True ->
                                                                                                                                  ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                         in  sem_Expr_AppTop_3)) of
                                                                                  { ( sem_Expr_3) | True ->
                                                                                  ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }) }) }) }) }) }) }) }) }) }))))))
                                                  in  sem_Expr_AppTop_2)) of
                                           { ( sem_Expr_2) | True ->
                                           ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) }) }) })))
                   in  sem_Expr_AppTop_1)) of
            { ( sem_Expr_1) | True ->
            ( _lhsOrange,sem_Expr_1) }) }) }) })

sem_Expr_Parens :: Range ->
                   T_Expr ->
                   T_Expr

sem_Expr_Parens hsrange_ expr_ | hsrange_ `seq` (expr_ `seq` (True)) =
    (case (expr_) of
     { ( _exprIrange,expr_1) | True ->
         (case (rangeUnions [hsrange_, _exprIrange   , _exprIrange  ]) of
          { _range | _range `seq` (True) ->
          (case (_range) of
           { _lhsOrange | _lhsOrange `seq` (True) ->
           (case ((let sem_Expr_Parens_1 :: T_Expr_1
                       sem_Expr_Parens_1 =
                           (\ _lhsIgUniq ->
                                _lhsIgUniq `seq`
                                ((case (_lhsIgUniq) of
                                  { _exprOgUniq | _exprOgUniq `seq` (True) ->
                                  (case (expr_1 _exprOgUniq) of
                                   { ( _exprIgUniq,_exprIhasInstDecl,expr_2) | True ->
                                       (case (_exprIgUniq) of
                                        { _lhsOgUniq | _lhsOgUniq `seq` (True) ->
                                        (case (False) of
                                         { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                                         (case ((let sem_Expr_Parens_2 :: T_Expr_2
                                                     sem_Expr_Parens_2 =
                                                         (\ _lhsIisFirstLet
                                                            _lhsIkiGam
                                                            _lhsIlexLev
                                                            _lhsIpredSameScopeCounter ->
                                                              _lhsIisFirstLet `seq`
                                                              (_lhsIkiGam `seq`
                                                               (_lhsIlexLev `seq`
                                                                (_lhsIpredSameScopeCounter `seq`
                                                                 ((case (_lhsIpredSameScopeCounter) of
                                                                   { _exprOpredSameScopeCounter | _exprOpredSameScopeCounter `seq` (True) ->
                                                                   (case (_lhsIlexLev) of
                                                                    { _exprOlexLev | _exprOlexLev `seq` (True) ->
                                                                    (case (_lhsIkiGam) of
                                                                     { _exprOkiGam | _exprOkiGam `seq` (True) ->
                                                                     (case (True) of
                                                                      { _isFirstLet | _isFirstLet `seq` (True) ->
                                                                      (case (_isFirstLet) of
                                                                       { _exprOisFirstLet | _exprOisFirstLet `seq` (True) ->
                                                                       (case (expr_2 _exprOisFirstLet _exprOkiGam _exprOlexLev _exprOpredSameScopeCounter) of
                                                                        { ( _exprIpredSameScopeCounter,expr_3) | True ->
                                                                            (case (_exprIpredSameScopeCounter) of
                                                                             { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                                             (case ((let sem_Expr_Parens_3 :: T_Expr_3
                                                                                         sem_Expr_Parens_3 =
                                                                                             (\ _lhsIgenerDataInfoMp
                                                                                                _lhsIkiVarMp
                                                                                                _lhsIopts
                                                                                                _lhsIpolGam
                                                                                                _lhsIpolVarMp
                                                                                                _lhsIpredScope
                                                                                                _lhsItyGam
                                                                                                _lhsItyKiGam
                                                                                                _lhsItyKiGlobFreeTvarS ->
                                                                                                  _lhsIgenerDataInfoMp `seq`
                                                                                                  (_lhsIkiVarMp `seq`
                                                                                                   (_lhsIopts `seq`
                                                                                                    (_lhsIpolGam `seq`
                                                                                                     (_lhsIpolVarMp `seq`
                                                                                                      (_lhsIpredScope `seq`
                                                                                                       (_lhsItyGam `seq`
                                                                                                        (_lhsItyKiGam `seq`
                                                                                                         (_lhsItyKiGlobFreeTvarS `seq`
                                                                                                          ((case (_lhsItyKiGlobFreeTvarS) of
                                                                                                            { _exprOtyKiGlobFreeTvarS | _exprOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                            (case (_lhsItyKiGam) of
                                                                                                             { _exprOtyKiGam | _exprOtyKiGam `seq` (True) ->
                                                                                                             (case (_lhsItyGam) of
                                                                                                              { _exprOtyGam | _exprOtyGam `seq` (True) ->
                                                                                                              (case (_lhsIpredScope) of
                                                                                                               { _predScope | _predScope `seq` (True) ->
                                                                                                               (case (_predScope) of
                                                                                                                { _exprOpredScope | _exprOpredScope `seq` (True) ->
                                                                                                                (case (_lhsIpolVarMp) of
                                                                                                                 { _exprOpolVarMp | _exprOpolVarMp `seq` (True) ->
                                                                                                                 (case (_lhsIpolGam) of
                                                                                                                  { _exprOpolGam | _exprOpolGam `seq` (True) ->
                                                                                                                  (case (_lhsIopts) of
                                                                                                                   { _exprOopts | _exprOopts `seq` (True) ->
                                                                                                                   (case (_lhsIkiVarMp) of
                                                                                                                    { _exprOkiVarMp | _exprOkiVarMp `seq` (True) ->
                                                                                                                    (case (_lhsIgenerDataInfoMp) of
                                                                                                                     { _exprOgenerDataInfoMp | _exprOgenerDataInfoMp `seq` (True) ->
                                                                                                                     (case (expr_3 _exprOgenerDataInfoMp _exprOkiVarMp _exprOopts _exprOpolGam _exprOpolVarMp _exprOpredScope _exprOtyGam _exprOtyKiGam _exprOtyKiGlobFreeTvarS) of
                                                                                                                      { ( _exprIgenerDataInfoMp,_exprIkiVarMp,_exprIpolVarMp,expr_4) | True ->
                                                                                                                          (case (_exprIgenerDataInfoMp) of
                                                                                                                           { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                                                           (case (_exprIkiVarMp) of
                                                                                                                            { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                                                            (case (_exprIpolVarMp) of
                                                                                                                             { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                                                             (case ((let sem_Expr_Parens_4 :: T_Expr_4
                                                                                                                                         sem_Expr_Parens_4 =
                                                                                                                                             (\ _lhsIclGam
                                                                                                                                                _lhsIfinKiVarMp
                                                                                                                                                _lhsIfinTyKiGam
                                                                                                                                                _lhsIgathDataGam
                                                                                                                                                _lhsItyTyTySigFreeTvarS ->
                                                                                                                                                  _lhsIclGam `seq`
                                                                                                                                                  (_lhsIfinKiVarMp `seq`
                                                                                                                                                   (_lhsIfinTyKiGam `seq`
                                                                                                                                                    (_lhsIgathDataGam `seq`
                                                                                                                                                     (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                                                      ((case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                        { _exprOtyTyTySigFreeTvarS | _exprOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                        (case (_lhsIgathDataGam) of
                                                                                                                                                         { _exprOgathDataGam | _exprOgathDataGam `seq` (True) ->
                                                                                                                                                         (case (_lhsIfinTyKiGam) of
                                                                                                                                                          { _exprOfinTyKiGam | _exprOfinTyKiGam `seq` (True) ->
                                                                                                                                                          (case (_lhsIfinKiVarMp) of
                                                                                                                                                           { _exprOfinKiVarMp | _exprOfinKiVarMp `seq` (True) ->
                                                                                                                                                           (case (_lhsIclGam) of
                                                                                                                                                            { _exprOclGam | _exprOclGam `seq` (True) ->
                                                                                                                                                            (case (expr_4 _exprOclGam _exprOfinKiVarMp _exprOfinTyKiGam _exprOgathDataGam _exprOtyTyTySigFreeTvarS) of
                                                                                                                                                             { ( _exprIgathDataGam,expr_5) | True ->
                                                                                                                                                                 (case (_exprIgathDataGam) of
                                                                                                                                                                  { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                                                                  (case ((let sem_Expr_Parens_5 :: T_Expr_5
                                                                                                                                                                              sem_Expr_Parens_5 =
                                                                                                                                                                                  (\ _lhsIdataGam ->
                                                                                                                                                                                       _lhsIdataGam `seq`
                                                                                                                                                                                       ((case (Seq.empty) of
                                                                                                                                                                                         { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                                                                         (case (defaultFIEnv
                                                                                                                                                                                                    { feEHCOpts = _lhsIopts
                                                                                                                                                                                                    , fePredScope = _lhsIpredScope
                                                                                                                                                                                                    , feTyGam = _lhsItyGam
                                                                                                                                                                                                    , fePolGam = _lhsIpolGam
                                                                                                                                                                                                    , feRange = _range
                                                                                                                                                                                                    }) of
                                                                                                                                                                                          { _fe | _fe `seq` (True) ->
                                                                                                                                                                                          (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                                                                           { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                                                                           (case (_chrFIIn) of
                                                                                                                                                                                            { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                                                                            (case (_lhsIdataGam) of
                                                                                                                                                                                             { _exprOdataGam | _exprOdataGam `seq` (True) ->
                                                                                                                                                                                             (case (expr_5 _exprOdataGam) of
                                                                                                                                                                                              { ( _exprIchrClassDeclSq,_exprIchrFIIn,_exprIchrInstDeclSq,_exprIgathClDfGam,expr_6) | True ->
                                                                                                                                                                                                  (case (_exprIchrInstDeclSq) of
                                                                                                                                                                                                   { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                                                                   (case (emptyGam) of
                                                                                                                                                                                                    { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                                                                    (case ((let sem_Expr_Parens_6 :: T_Expr_6
                                                                                                                                                                                                                sem_Expr_Parens_6 =
                                                                                                                                                                                                                    (\ _lhsIchrStore
                                                                                                                                                                                                                       _lhsIclDfGam
                                                                                                                                                                                                                       _lhsIfiOpts
                                                                                                                                                                                                                       _lhsIknTy
                                                                                                                                                                                                                       _lhsItvKiVarMp
                                                                                                                                                                                                                       _lhsItyTyGlobFreeTvarS
                                                                                                                                                                                                                       _lhsItyVarMp
                                                                                                                                                                                                                       _lhsIvalGam
                                                                                                                                                                                                                       _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                                                                         _lhsIchrStore `seq`
                                                                                                                                                                                                                         (_lhsIclDfGam `seq`
                                                                                                                                                                                                                          (_lhsIfiOpts `seq`
                                                                                                                                                                                                                           (_lhsIknTy `seq`
                                                                                                                                                                                                                            (_lhsItvKiVarMp `seq`
                                                                                                                                                                                                                             (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                              (_lhsItyVarMp `seq`
                                                                                                                                                                                                                               (_lhsIvalGam `seq`
                                                                                                                                                                                                                                (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                 ((case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                   { _exprOvalTyGlobFreeTvarS | _exprOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                   (case (_lhsIvalGam) of
                                                                                                                                                                                                                                    { _exprOvalGam | _exprOvalGam `seq` (True) ->
                                                                                                                                                                                                                                    (case (_lhsItyVarMp) of
                                                                                                                                                                                                                                     { _exprOtyVarMp | _exprOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                     (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                      { _exprOtyTyGlobFreeTvarS | _exprOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                      (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                       { _exprOtvKiVarMp | _exprOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                       (case (_lhsIknTy) of
                                                                                                                                                                                                                                        { _exprOknTy | _exprOknTy `seq` (True) ->
                                                                                                                                                                                                                                        (case (_lhsIfiOpts) of
                                                                                                                                                                                                                                         { _exprOfiOpts | _exprOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                         (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                          { _exprOclDfGam | _exprOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                          (case (_lhsIchrStore) of
                                                                                                                                                                                                                                           { _exprOchrStore | _exprOchrStore `seq` (True) ->
                                                                                                                                                                                                                                           (case (expr_6 _exprOchrStore _exprOclDfGam _exprOfiOpts _exprOknTy _exprOtvKiVarMp _exprOtyTyGlobFreeTvarS _exprOtyVarMp _exprOvalGam _exprOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                            { ( _exprIgathCnstrMp,_exprIgathRangeMp,_exprIgathValGam,_exprInoLetQuantTyVarIdS,_exprIty,_exprItyVarMp,expr_7) | True ->
                                                                                                                                                                                                                                                (case (_exprIgathCnstrMp) of
                                                                                                                                                                                                                                                 { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                 (case (_exprIgathRangeMp) of
                                                                                                                                                                                                                                                  { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                                                                                  (case (emptyGam) of
                                                                                                                                                                                                                                                   { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                                                                                   (case (_exprInoLetQuantTyVarIdS) of
                                                                                                                                                                                                                                                    { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                                                                                    (case (_exprIty) of
                                                                                                                                                                                                                                                     { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                                                                                     (case (_exprItyVarMp) of
                                                                                                                                                                                                                                                      { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                      (case ((let sem_Expr_Parens_7 :: T_Expr_7
                                                                                                                                                                                                                                                                  sem_Expr_Parens_7 =
                                                                                                                                                                                                                                                                      (\ _lhsIcSubst
                                                                                                                                                                                                                                                                         _lhsIchrEvidBindMp
                                                                                                                                                                                                                                                                         _lhsIchrScopeBindMp
                                                                                                                                                                                                                                                                         _lhsIexprCtxt
                                                                                                                                                                                                                                                                         _lhsIfinTyVarMp
                                                                                                                                                                                                                                                                         _lhsIfinValGam
                                                                                                                                                                                                                                                                         _lhsImoduleNm
                                                                                                                                                                                                                                                                         _lhsIrangeMp
                                                                                                                                                                                                                                                                         _lhsIsysfEnv
                                                                                                                                                                                                                                                                         _lhsItr ->
                                                                                                                                                                                                                                                                           _lhsIcSubst `seq`
                                                                                                                                                                                                                                                                           (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                                                                            (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                                                                             (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                                                                              (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                                                                               (_lhsIfinValGam `seq`
                                                                                                                                                                                                                                                                                (_lhsImoduleNm `seq`
                                                                                                                                                                                                                                                                                 (_lhsIrangeMp `seq`
                                                                                                                                                                                                                                                                                  (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                                                                                   (_lhsItr `seq`
                                                                                                                                                                                                                                                                                    ((case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                      { _exprOsysfEnv | _exprOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                      (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                       { _exprOrangeMp | _exprOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                       (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                        { _exprOfinValGam | _exprOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                        (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                         { _exprOfinTyVarMp | _exprOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                         (case (_lhsItr) of
                                                                                                                                                                                                                                                                                          { _exprOtr | _exprOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                          (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                           { _exprOmoduleNm | _exprOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                           (case (_lhsIexprCtxt) of
                                                                                                                                                                                                                                                                                            { _exprOexprCtxt | _exprOexprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                            (case (_lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                             { _exprOchrScopeBindMp | _exprOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                             (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                              { _exprOchrEvidBindMp | _exprOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                              (case (_lhsIcSubst) of
                                                                                                                                                                                                                                                                                               { _exprOcSubst | _exprOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                               (case (expr_7 _exprOcSubst _exprOchrEvidBindMp _exprOchrScopeBindMp _exprOexprCtxt _exprOfinTyVarMp _exprOfinValGam _exprOmoduleNm _exprOrangeMp _exprOsysfEnv _exprOtr) of
                                                                                                                                                                                                                                                                                                { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIletValMainCBindL,_exprIorphanS,_exprIpp,_exprIppAST,_exprItrpp) | True ->
                                                                                                                                                                                                                                                                                                    (case (_exprIallErrSq) of
                                                                                                                                                                                                                                                                                                     { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                     (case ([]) of
                                                                                                                                                                                                                                                                                                      { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                      (case ([]) of
                                                                                                                                                                                                                                                                                                       { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                       (case (_exprIcexpr) of
                                                                                                                                                                                                                                                                                                        { _cexpr | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                        (case (_cexpr) of
                                                                                                                                                                                                                                                                                                         { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                         (case (hsnUnknown) of
                                                                                                                                                                                                                                                                                                          { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                          (case (ppParens _exprIpp) of
                                                                                                                                                                                                                                                                                                           { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                                                                                           (case (_pp) of
                                                                                                                                                                                                                                                                                                            { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                            (case ([]) of
                                                                                                                                                                                                                                                                                                             { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                             (case (_exprIcSubst) of
                                                                                                                                                                                                                                                                                                              { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                              (case (_exprIcaseFailS) of
                                                                                                                                                                                                                                                                                                               { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                                                                                               (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                (case (_exprIerrSq) of
                                                                                                                                                                                                                                                                                                                 { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                 (case ([]) of
                                                                                                                                                                                                                                                                                                                  { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                  (case ([]) of
                                                                                                                                                                                                                                                                                                                   { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                   (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                    { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                    (case (_exprIgathHiddenExports) of
                                                                                                                                                                                                                                                                                                                     { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                                                                                                     (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                      { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                      (case (_exprIgathLamMp) of
                                                                                                                                                                                                                                                                                                                       { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                       (case (_exprIgathMentrelFilterMp) of
                                                                                                                                                                                                                                                                                                                        { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                        (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                         { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                         (case (_exprIgathTvKiVarMp) of
                                                                                                                                                                                                                                                                                                                          { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                          (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                           { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                           (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                            { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                            (case (False) of
                                                                                                                                                                                                                                                                                                                             { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                                                                                             (case ([]) of
                                                                                                                                                                                                                                                                                                                              { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                              (case (_lamArgPPL) of
                                                                                                                                                                                                                                                                                                                               { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                               (case (_pp) of
                                                                                                                                                                                                                                                                                                                                { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                (case (_lamBodyPP) of
                                                                                                                                                                                                                                                                                                                                 { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                 (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                  { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                  (case ([]) of
                                                                                                                                                                                                                                                                                                                                   { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                   (case ([]) of
                                                                                                                                                                                                                                                                                                                                    { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                    (case ([]) of
                                                                                                                                                                                                                                                                                                                                     { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                     (case (Set.empty) of
                                                                                                                                                                                                                                                                                                                                      { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                      (case (_pp) of
                                                                                                                                                                                                                                                                                                                                       { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                       (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                        { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                        (case (ppNestTrPP ["Expr","Parens"] [] [_exprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                         { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                         (case (_exprItrpp) of
                                                                                                                                                                                                                                                                                                                                          { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                          ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                                                                              in  sem_Expr_Parens_7)) of
                                                                                                                                                                                                                                                       { ( sem_Expr_7) | True ->
                                                                                                                                                                                                                                                       ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                                                                            in  sem_Expr_Parens_6)) of
                                                                                                                                                                                                     { ( sem_Expr_6) | True ->
                                                                                                                                                                                                     ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) }) }) })))
                                                                                                                                                                          in  sem_Expr_Parens_5)) of
                                                                                                                                                                   { ( sem_Expr_5) | True ->
                                                                                                                                                                   ( _lhsOgathDataGam,sem_Expr_5) }) }) }) }) }) }) }) })))))))
                                                                                                                                     in  sem_Expr_Parens_4)) of
                                                                                                                              { ( sem_Expr_4) | True ->
                                                                                                                              ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                     in  sem_Expr_Parens_3)) of
                                                                              { ( sem_Expr_3) | True ->
                                                                              ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }) }) }) }) }) }) }))))))
                                                 in  sem_Expr_Parens_2)) of
                                          { ( sem_Expr_2) | True ->
                                          ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) }) })))
                   in  sem_Expr_Parens_1)) of
            { ( sem_Expr_1) | True ->
            ( _lhsOrange,sem_Expr_1) }) }) }) })

sem_Expr_TypeAs :: Range ->
                   Bool ->
                   T_TyExpr ->
                   T_Expr ->
                   T_Expr

sem_Expr_TypeAs hsrange_ isScoped_ tyExpr_ expr_ | hsrange_ `seq` (isScoped_ `seq` (tyExpr_ `seq` (expr_ `seq` (True)))) =
    (case (expr_) of
     { ( _exprIrange,expr_1) | True ->
         (case (tyExpr_) of
          { ( _tyExprIrange,tyExpr_1) | True ->
              (case (rangeUnions [hsrange_, _tyExprIrange , _exprIrange  ]) of
               { _range | _range `seq` (True) ->
               (case (_range) of
                { _lhsOrange | _lhsOrange `seq` (True) ->
                (case ((let sem_Expr_TypeAs_1 :: T_Expr_1
                            sem_Expr_TypeAs_1 =
                                (\ _lhsIgUniq ->
                                     _lhsIgUniq `seq`
                                     ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq2) -> case nextUnique __cont of { (__cont, lUniq3) -> case nextUnique __cont of { (__cont, lUniq_cexpr) -> (__cont,lUniq,lUniq2,lUniq3,lUniq_cexpr)}}}} )) of
                                       { __tup132 | __tup132 `seq` (True) ->
                                       (case (__tup132) of
                                        { (_tyExprOgUniq,_,_,_,_) | _tyExprOgUniq `seq` (True) ->
                                        (case (tyExpr_1 _tyExprOgUniq) of
                                         { ( _tyExprIgUniq,tyExpr_2) | True ->
                                             (case (_tyExprIgUniq) of
                                              { _exprOgUniq | _exprOgUniq `seq` (True) ->
                                              (case (expr_1 _exprOgUniq) of
                                               { ( _exprIgUniq,_exprIhasInstDecl,expr_2) | True ->
                                                   (case (_exprIgUniq) of
                                                    { _lhsOgUniq | _lhsOgUniq `seq` (True) ->
                                                    (case (False) of
                                                     { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                                                     (case ((let sem_Expr_TypeAs_2 :: T_Expr_2
                                                                 sem_Expr_TypeAs_2 =
                                                                     (\ _lhsIisFirstLet
                                                                        _lhsIkiGam
                                                                        _lhsIlexLev
                                                                        _lhsIpredSameScopeCounter ->
                                                                          _lhsIisFirstLet `seq`
                                                                          (_lhsIkiGam `seq`
                                                                           (_lhsIlexLev `seq`
                                                                            (_lhsIpredSameScopeCounter `seq`
                                                                             ((case (_lhsIpredSameScopeCounter) of
                                                                               { _exprOpredSameScopeCounter | _exprOpredSameScopeCounter `seq` (True) ->
                                                                               (case (_lhsIlexLev) of
                                                                                { _exprOlexLev | _exprOlexLev `seq` (True) ->
                                                                                (case (_lhsIkiGam) of
                                                                                 { _exprOkiGam | _exprOkiGam `seq` (True) ->
                                                                                 (case (True) of
                                                                                  { _isFirstLet | _isFirstLet `seq` (True) ->
                                                                                  (case (_isFirstLet) of
                                                                                   { _exprOisFirstLet | _exprOisFirstLet `seq` (True) ->
                                                                                   (case (expr_2 _exprOisFirstLet _exprOkiGam _exprOlexLev _exprOpredSameScopeCounter) of
                                                                                    { ( _exprIpredSameScopeCounter,expr_3) | True ->
                                                                                        (case (_exprIpredSameScopeCounter) of
                                                                                         { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                                                         (case ((let sem_Expr_TypeAs_3 :: T_Expr_3
                                                                                                     sem_Expr_TypeAs_3 =
                                                                                                         (\ _lhsIgenerDataInfoMp
                                                                                                            _lhsIkiVarMp
                                                                                                            _lhsIopts
                                                                                                            _lhsIpolGam
                                                                                                            _lhsIpolVarMp
                                                                                                            _lhsIpredScope
                                                                                                            _lhsItyGam
                                                                                                            _lhsItyKiGam
                                                                                                            _lhsItyKiGlobFreeTvarS ->
                                                                                                              _lhsIgenerDataInfoMp `seq`
                                                                                                              (_lhsIkiVarMp `seq`
                                                                                                               (_lhsIopts `seq`
                                                                                                                (_lhsIpolGam `seq`
                                                                                                                 (_lhsIpolVarMp `seq`
                                                                                                                  (_lhsIpredScope `seq`
                                                                                                                   (_lhsItyGam `seq`
                                                                                                                    (_lhsItyKiGam `seq`
                                                                                                                     (_lhsItyKiGlobFreeTvarS `seq`
                                                                                                                      ((case (_lhsItyKiGlobFreeTvarS) of
                                                                                                                        { _exprOtyKiGlobFreeTvarS | _exprOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                        (case (_lhsIpolVarMp) of
                                                                                                                         { _tyExprOpolVarMp | _tyExprOpolVarMp `seq` (True) ->
                                                                                                                         (case (_lhsIpolGam) of
                                                                                                                          { _tyExprOpolGam | _tyExprOpolGam `seq` (True) ->
                                                                                                                          (case (gamPushNew _lhsItyKiGam) of
                                                                                                                           { _tyExprOtyKiGam | _tyExprOtyKiGam `seq` (True) ->
                                                                                                                           (case (gamPushNew _lhsItyGam) of
                                                                                                                            { _tyExprOtyGam | _tyExprOtyGam `seq` (True) ->
                                                                                                                            (case (polCovariant) of
                                                                                                                             { _tyExprOknPolCtx | _tyExprOknPolCtx `seq` (True) ->
                                                                                                                             (case (tyExpr_2 _tyExprOtyGam) of
                                                                                                                              { ( _tyExprIty,_tyExprItyGam,tyExpr_3) | True ->
                                                                                                                                  (case (tyExpr_3 _tyExprOknPolCtx) of
                                                                                                                                   { ( _tyExprIpolVarL,tyExpr_4) | True ->
                                                                                                                                       (case (tyExpr_4 _tyExprOpolGam _tyExprOpolVarMp) of
                                                                                                                                        { ( _tyExprImbStrictness,_tyExprIpolVarMp,tyExpr_5) | True ->
                                                                                                                                            (case (tyExpr_5 _tyExprOtyKiGam) of
                                                                                                                                             { ( _tyExprIintlTyKiGam,_tyExprItyKiGam,tyExpr_6) | True ->
                                                                                                                                                 (case (_tyExprItyKiGam) of
                                                                                                                                                  { _exprOtyKiGam | _exprOtyKiGam `seq` (True) ->
                                                                                                                                                  (case (_tyExprItyGam) of
                                                                                                                                                   { _exprOtyGam | _exprOtyGam `seq` (True) ->
                                                                                                                                                   (case (_lhsIpredScope) of
                                                                                                                                                    { _predScope | _predScope `seq` (True) ->
                                                                                                                                                    (case (_predScope) of
                                                                                                                                                     { _exprOpredScope | _exprOpredScope `seq` (True) ->
                                                                                                                                                     (case (_tyExprIpolVarMp) of
                                                                                                                                                      { _exprOpolVarMp | _exprOpolVarMp `seq` (True) ->
                                                                                                                                                      (case (_lhsIpolGam) of
                                                                                                                                                       { _exprOpolGam | _exprOpolGam `seq` (True) ->
                                                                                                                                                       (case (_lhsIopts) of
                                                                                                                                                        { _exprOopts | _exprOopts `seq` (True) ->
                                                                                                                                                        (case (_lhsIkiVarMp) of
                                                                                                                                                         { _tyExprOkiVarMp | _tyExprOkiVarMp `seq` (True) ->
                                                                                                                                                         (case (tyExpr_6 _tyExprOkiVarMp) of
                                                                                                                                                          { ( _tyExprIgathTyVarPolGam,_tyExprIki,_tyExprIkiVarMp,_tyExprIpol,_tyExprItyVarWildMp,tyExpr_7) | True ->
                                                                                                                                                              (case (_tyExprIkiVarMp) of
                                                                                                                                                               { _exprOkiVarMp | _exprOkiVarMp `seq` (True) ->
                                                                                                                                                               (case (_lhsIgenerDataInfoMp) of
                                                                                                                                                                { _exprOgenerDataInfoMp | _exprOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                                (case (expr_3 _exprOgenerDataInfoMp _exprOkiVarMp _exprOopts _exprOpolGam _exprOpolVarMp _exprOpredScope _exprOtyGam _exprOtyKiGam _exprOtyKiGlobFreeTvarS) of
                                                                                                                                                                 { ( _exprIgenerDataInfoMp,_exprIkiVarMp,_exprIpolVarMp,expr_4) | True ->
                                                                                                                                                                     (case (_exprIgenerDataInfoMp) of
                                                                                                                                                                      { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                                      (case (_exprIkiVarMp) of
                                                                                                                                                                       { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                                                                                                       (case (_exprIpolVarMp) of
                                                                                                                                                                        { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                                                                                                        (case ((let sem_Expr_TypeAs_4 :: T_Expr_4
                                                                                                                                                                                    sem_Expr_TypeAs_4 =
                                                                                                                                                                                        (\ _lhsIclGam
                                                                                                                                                                                           _lhsIfinKiVarMp
                                                                                                                                                                                           _lhsIfinTyKiGam
                                                                                                                                                                                           _lhsIgathDataGam
                                                                                                                                                                                           _lhsItyTyTySigFreeTvarS ->
                                                                                                                                                                                             _lhsIclGam `seq`
                                                                                                                                                                                             (_lhsIfinKiVarMp `seq`
                                                                                                                                                                                              (_lhsIfinTyKiGam `seq`
                                                                                                                                                                                               (_lhsIgathDataGam `seq`
                                                                                                                                                                                                (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                                                                                                 ((case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                                   { _exprOtyTyTySigFreeTvarS | _exprOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                                   (case (_lhsIgathDataGam) of
                                                                                                                                                                                                    { _exprOgathDataGam | _exprOgathDataGam `seq` (True) ->
                                                                                                                                                                                                    (case (_lhsIfinTyKiGam) of
                                                                                                                                                                                                     { _exprOfinTyKiGam | _exprOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                                     (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                                      { _exprOfinKiVarMp | _exprOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                                      (case (_lhsIclGam) of
                                                                                                                                                                                                       { _exprOclGam | _exprOclGam `seq` (True) ->
                                                                                                                                                                                                       (case (expr_4 _exprOclGam _exprOfinKiVarMp _exprOfinTyKiGam _exprOgathDataGam _exprOtyTyTySigFreeTvarS) of
                                                                                                                                                                                                        { ( _exprIgathDataGam,expr_5) | True ->
                                                                                                                                                                                                            (case (_exprIgathDataGam) of
                                                                                                                                                                                                             { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                                                                                                             (case ((let sem_Expr_TypeAs_5 :: T_Expr_5
                                                                                                                                                                                                                         sem_Expr_TypeAs_5 =
                                                                                                                                                                                                                             (\ _lhsIdataGam ->
                                                                                                                                                                                                                                  _lhsIdataGam `seq`
                                                                                                                                                                                                                                  ((case (Seq.empty) of
                                                                                                                                                                                                                                    { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                                                                                                                    (case (defaultFIEnv
                                                                                                                                                                                                                                               { feEHCOpts = _lhsIopts
                                                                                                                                                                                                                                               , fePredScope = _lhsIpredScope
                                                                                                                                                                                                                                               , feTyGam = _lhsItyGam
                                                                                                                                                                                                                                               , fePolGam = _lhsIpolGam
                                                                                                                                                                                                                                               , feRange = _range
                                                                                                                                                                                                                                               }) of
                                                                                                                                                                                                                                     { _fe | _fe `seq` (True) ->
                                                                                                                                                                                                                                     (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                                                                                                                      { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                                                                                                                      (case (_chrFIIn) of
                                                                                                                                                                                                                                       { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                                                                                                                       (case (_lhsIdataGam) of
                                                                                                                                                                                                                                        { _exprOdataGam | _exprOdataGam `seq` (True) ->
                                                                                                                                                                                                                                        (case (expr_5 _exprOdataGam) of
                                                                                                                                                                                                                                         { ( _exprIchrClassDeclSq,_exprIchrFIIn,_exprIchrInstDeclSq,_exprIgathClDfGam,expr_6) | True ->
                                                                                                                                                                                                                                             (case (_exprIchrInstDeclSq) of
                                                                                                                                                                                                                                              { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                                                                                                              (case (emptyGam) of
                                                                                                                                                                                                                                               { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                                                                                                               (case ((let sem_Expr_TypeAs_6 :: T_Expr_6
                                                                                                                                                                                                                                                           sem_Expr_TypeAs_6 =
                                                                                                                                                                                                                                                               (\ _lhsIchrStore
                                                                                                                                                                                                                                                                  _lhsIclDfGam
                                                                                                                                                                                                                                                                  _lhsIfiOpts
                                                                                                                                                                                                                                                                  _lhsIknTy
                                                                                                                                                                                                                                                                  _lhsItvKiVarMp
                                                                                                                                                                                                                                                                  _lhsItyTyGlobFreeTvarS
                                                                                                                                                                                                                                                                  _lhsItyVarMp
                                                                                                                                                                                                                                                                  _lhsIvalGam
                                                                                                                                                                                                                                                                  _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                                                                                                                    _lhsIchrStore `seq`
                                                                                                                                                                                                                                                                    (_lhsIclDfGam `seq`
                                                                                                                                                                                                                                                                     (_lhsIfiOpts `seq`
                                                                                                                                                                                                                                                                      (_lhsIknTy `seq`
                                                                                                                                                                                                                                                                       (_lhsItvKiVarMp `seq`
                                                                                                                                                                                                                                                                        (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                                                         (_lhsItyVarMp `seq`
                                                                                                                                                                                                                                                                          (_lhsIvalGam `seq`
                                                                                                                                                                                                                                                                           (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                                                            ((case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                              { _exprOvalTyGlobFreeTvarS | _exprOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                              (case (_lhsIvalGam) of
                                                                                                                                                                                                                                                                               { _exprOvalGam | _exprOvalGam `seq` (True) ->
                                                                                                                                                                                                                                                                               (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                                                                { _exprOtvKiVarMp | _exprOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                                                                 { _exprOclDfGam | _exprOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                 (case (_lhsIchrStore) of
                                                                                                                                                                                                                                                                                  { _exprOchrStore | _exprOchrStore `seq` (True) ->
                                                                                                                                                                                                                                                                                  (case (__tup132) of
                                                                                                                                                                                                                                                                                   { (_,_lUniq,_,_,_) | _lUniq `seq` (True) ->
                                                                                                                                                                                                                                                                                   (case (emptyFO) of
                                                                                                                                                                                                                                                                                    { _fo_fitDown | _fo_fitDown `seq` (True) ->
                                                                                                                                                                                                                                                                                    (case (Map.keysSet _tyExprItyVarWildMp
                                                                                                                                                                                                                                                                                           `Set.union` (if isScoped_ then varFreeSet _tyExprIty else Set.empty)) of
                                                                                                                                                                                                                                                                                     { _tyVarWildS | _tyVarWildS `seq` (True) ->
                                                                                                                                                                                                                                                                                     (case (setSubst _lhsItyVarMp _lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                      { _tyTyUpdFreeTvarS | _tyTyUpdFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                      (case (setSubst _lhsItyVarMp _lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                       { _valTyUpdFreeTvarS | _valTyUpdFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                       (case (_tyTyUpdFreeTvarS `Set.union` _valTyUpdFreeTvarS) of
                                                                                                                                                                                                                                                                                        { _gTyTvS | _gTyTvS `seq` (True) ->
                                                                                                                                                                                                                                                                                        (case (_lhsItyVarMp `varUpd` _tyExprIty) of
                                                                                                                                                                                                                                                                                         { _tyTy | _tyTy `seq` (True) ->
                                                                                                                                                                                                                                                                                         (case (tyQuantifyOuter (const kiStar          ) (`Set.member` (_tyVarWildS `Set.union` _gTyTvS)) _tyTy) of
                                                                                                                                                                                                                                                                                          { _ty_q_ | _ty_q_ `seq` (True) ->
                                                                                                                                                                                                                                                                                          (case (_lhsIfiOpts) of
                                                                                                                                                                                                                                                                                           { _knTyFIOpts | _knTyFIOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                           (case (fitsIn _knTyFIOpts _fe _lUniq _lhsItyVarMp _ty_q_ _lhsIknTy) of
                                                                                                                                                                                                                                                                                            { _fo_ | _fo_ `seq` (True) ->
                                                                                                                                                                                                                                                                                            (case (foVarMp _fo_ `varUpd` _lhsItyVarMp) of
                                                                                                                                                                                                                                                                                             { _ty_q_2_VarMp | _ty_q_2_VarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                             (case (foVarMp _fo_fitDown `varUpd` _ty_q_2_VarMp) of
                                                                                                                                                                                                                                                                                              { _exprOtyVarMp | _exprOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                              (case (_ty_q_) of
                                                                                                                                                                                                                                                                                               { _knTyDown | _knTyDown `seq` (True) ->
                                                                                                                                                                                                                                                                                               (case (_knTyDown) of
                                                                                                                                                                                                                                                                                                { _exprOknTy | _exprOknTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                (case (_lhsIfiOpts) of
                                                                                                                                                                                                                                                                                                 { _exprOfiOpts | _exprOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                                 (case (_tyVarWildS `Set.union` _lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                  { _exprOtyTyGlobFreeTvarS | _exprOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                  (case (foGathCnstrMp _fo_) of
                                                                                                                                                                                                                                                                                                   { _hereCnstrMp | _hereCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                   (case (expr_6 _exprOchrStore _exprOclDfGam _exprOfiOpts _exprOknTy _exprOtvKiVarMp _exprOtyTyGlobFreeTvarS _exprOtyVarMp _exprOvalGam _exprOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                    { ( _exprIgathCnstrMp,_exprIgathRangeMp,_exprIgathValGam,_exprInoLetQuantTyVarIdS,_exprIty,_exprItyVarMp,expr_7) | True ->
                                                                                                                                                                                                                                                                                                        (case (cnstrMpUnions [_hereCnstrMp, foGathCnstrMp _fo_fitDown, _exprIgathCnstrMp]) of
                                                                                                                                                                                                                                                                                                         { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                         (case (_exprIgathRangeMp) of
                                                                                                                                                                                                                                                                                                          { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                          (case (emptyGam) of
                                                                                                                                                                                                                                                                                                           { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                           (case (tvwmpNoQuantS _tyExprItyVarWildMp `Set.union` _exprInoLetQuantTyVarIdS) of
                                                                                                                                                                                                                                                                                                            { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                                                                                                                                            (case (_exprIty) of
                                                                                                                                                                                                                                                                                                             { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                                                                                                                                             (case (_exprItyVarMp) of
                                                                                                                                                                                                                                                                                                              { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                              (case ((let sem_Expr_TypeAs_7 :: T_Expr_7
                                                                                                                                                                                                                                                                                                                          sem_Expr_TypeAs_7 =
                                                                                                                                                                                                                                                                                                                              (\ _lhsIcSubst
                                                                                                                                                                                                                                                                                                                                 _lhsIchrEvidBindMp
                                                                                                                                                                                                                                                                                                                                 _lhsIchrScopeBindMp
                                                                                                                                                                                                                                                                                                                                 _lhsIexprCtxt
                                                                                                                                                                                                                                                                                                                                 _lhsIfinTyVarMp
                                                                                                                                                                                                                                                                                                                                 _lhsIfinValGam
                                                                                                                                                                                                                                                                                                                                 _lhsImoduleNm
                                                                                                                                                                                                                                                                                                                                 _lhsIrangeMp
                                                                                                                                                                                                                                                                                                                                 _lhsIsysfEnv
                                                                                                                                                                                                                                                                                                                                 _lhsItr ->
                                                                                                                                                                                                                                                                                                                                   _lhsIcSubst `seq`
                                                                                                                                                                                                                                                                                                                                   (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                                                                                                                                    (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                                                                                                                                     (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                                                                                                                                      (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                                                                                                                                       (_lhsIfinValGam `seq`
                                                                                                                                                                                                                                                                                                                                        (_lhsImoduleNm `seq`
                                                                                                                                                                                                                                                                                                                                         (_lhsIrangeMp `seq`
                                                                                                                                                                                                                                                                                                                                          (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                                                                                                                                           (_lhsItr `seq`
                                                                                                                                                                                                                                                                                                                                            ((case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                                                              { _exprOsysfEnv | _exprOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                              (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                                                               { _exprOrangeMp | _exprOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                               (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                                                                { _exprOfinValGam | _exprOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                 { _exprOfinTyVarMp | _exprOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                 (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                  { _exprOtr | _exprOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                  (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                   { _exprOmoduleNm | _exprOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                   (case (ExprCtxt_Internal) of
                                                                                                                                                                                                                                                                                                                                                    { _exprCtxt | _exprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                    (case (_exprCtxt) of
                                                                                                                                                                                                                                                                                                                                                     { _exprOexprCtxt | _exprOexprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                     (case (_lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                      { _exprOchrScopeBindMp | _exprOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                      (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                       { _exprOchrEvidBindMp | _exprOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                       (case (_lhsIcSubst) of
                                                                                                                                                                                                                                                                                                                                                        { _exprOcSubst | _exprOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                        (case (expr_7 _exprOcSubst _exprOchrEvidBindMp _exprOchrScopeBindMp _exprOexprCtxt _exprOfinTyVarMp _exprOfinValGam _exprOmoduleNm _exprOrangeMp _exprOsysfEnv _exprOtr) of
                                                                                                                                                                                                                                                                                                                                                         { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIletValMainCBindL,_exprIorphanS,_exprIpp,_exprIppAST,_exprItrpp) | True ->
                                                                                                                                                                                                                                                                                                                                                             (case (_lhsIclGam) of
                                                                                                                                                                                                                                                                                                                                                              { _tyExprOclGam | _tyExprOclGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                              (case (tyExpr_7 _tyExprOclGam) of
                                                                                                                                                                                                                                                                                                                                                               { ( _tyExprIevTy,tyExpr_8) | True ->
                                                                                                                                                                                                                                                                                                                                                                   (case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                    { _tyExprOvalTyGlobFreeTvarS | _tyExprOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                    (case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                     { _tyExprOtyTyTySigFreeTvarS | _tyExprOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                     (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                      { _tyExprOtyTyGlobFreeTvarS | _tyExprOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                      (case (_lhsItyKiGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                       { _tyExprOtyKiGlobFreeTvarS | _tyExprOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                       (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                                        { _tyExprOtr | _tyExprOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                        (case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                                                                                         { _tyExprOsysfEnv | _tyExprOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                         (case (_lhsIopts) of
                                                                                                                                                                                                                                                                                                                                                                          { _tyExprOopts | _tyExprOopts `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                          (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                                           { _tyExprOmoduleNm | _tyExprOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                           (case (_lhsIkiGam) of
                                                                                                                                                                                                                                                                                                                                                                            { _tyExprOkiGam | _tyExprOkiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                            (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                             { _tyExprOfinTyVarMp | _tyExprOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                             (case (_lhsIfinTyKiGam) of
                                                                                                                                                                                                                                                                                                                                                                              { _tyExprOfinTyKiGam | _tyExprOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                              (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                                               { _tyExprOfinKiVarMp | _tyExprOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                               (case (tyExpr_8 _tyExprOfinKiVarMp _tyExprOfinTyKiGam _tyExprOfinTyVarMp _tyExprOkiGam _tyExprOmoduleNm _tyExprOopts _tyExprOsysfEnv _tyExprOtr _tyExprOtyKiGlobFreeTvarS _tyExprOtyTyGlobFreeTvarS _tyExprOtyTyTySigFreeTvarS _tyExprOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                { ( _tyExprIallErrSq,_tyExprIappArgPPL,_tyExprIappFunNm,_tyExprIappFunPP,_tyExprIclMissNmS,_tyExprIclNmS,_tyExprIerrSq,_tyExprIgathMentrelFilterMp,_tyExprIpp,_tyExprIppAST,_tyExprItrpp,_tyExprItyWildL) | True ->
                                                                                                                                                                                                                                                                                                                                                                                    (case (_tyExprIallErrSq `Seq.union` _exprIallErrSq) of
                                                                                                                                                                                                                                                                                                                                                                                     { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                     (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                      { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                      (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                       { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                       (case (__tup132) of
                                                                                                                                                                                                                                                                                                                                                                                        { (_,_,_,_,_lUniq_cexpr) | _lUniq_cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                        (case (let (_,u1,u2) = mkNewLevUID2 _lUniq_cexpr
                                                                                                                                                                                                                                                                                                                                                                                                   (e1,s1)   = foAppLRCoeAsSubst _lhsIopts u1 _fo_fitDown _lhsIfinTyVarMp _exprIcSubst _exprIcexpr
                                                                                                                                                                                                                                                                                                                                                                                                   (e2,s2)   = foAppLRCoeAsSubst _lhsIopts u2 _fo_        _lhsIfinTyVarMp _exprIcSubst e1
                                                                                                                                                                                                                                                                                                                                                                                               in  (e2, s1 `cSubstApp` s2)) of
                                                                                                                                                                                                                                                                                                                                                                                         { __tup131 | __tup131 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                         (case (__tup131) of
                                                                                                                                                                                                                                                                                                                                                                                          { (_cexpr,_) | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                          (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                           (case (hsnUnknown) of
                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                            (case (ppParens _exprIpp >#< "::" >|< (if isScoped_ then "sc" else "") >#< _tyExprIpp) of
                                                                                                                                                                                                                                                                                                                                                                                             { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                             (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                              (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                               { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                               (case (__tup131) of
                                                                                                                                                                                                                                                                                                                                                                                                { (_,_cexprtypeasCSubst) | _cexprtypeasCSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                (case (cSubstApp _exprIcSubst _cexprtypeasCSubst) of
                                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                 (case (_exprIcaseFailS) of
                                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                  (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                   { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                   (case (rngLift _range mkNestErr' _pp [ _exprIerrSq, _tyExprIerrSq, foErrSq _fo_, foErrSq _fo_fitDown
                                                                                                                                                                                                                                                                                                                                                                                                                                        ]) of
                                                                                                                                                                                                                                                                                                                                                                                                    { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                    (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                     { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                     (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                      { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                      (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                       { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                       (case (_exprIgathHiddenExports) of
                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                        (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                         (case (_exprIgathLamMp) of
                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                          (case (_tyExprIgathMentrelFilterMp `mentrelFilterMpUnion` _exprIgathMentrelFilterMp) of
                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                           (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                            (case (_exprIgathTvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                             (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                              (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                               { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                               (case (False) of
                                                                                                                                                                                                                                                                                                                                                                                                                { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                 { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                 (case (_lamArgPPL) of
                                                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                  (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                                   { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_lamBodyPP) of
                                                                                                                                                                                                                                                                                                                                                                                                                    { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                    (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                                     { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                     (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                      { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                      (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                       { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                       (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                        (case (Set.empty) of
                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                         (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                          (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                                           { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                           (case (ppNestTrPP ["Expr","TypeAs"] [pp isScoped_] [_exprIppAST,_tyExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                            (case (_tyExprItrpp >< _exprItrpp) of
                                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                             ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                                                                                                                                      in  sem_Expr_TypeAs_7)) of
                                                                                                                                                                                                                                                                                                               { ( sem_Expr_7) | True ->
                                                                                                                                                                                                                                                                                                               ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                                                                                                                       in  sem_Expr_TypeAs_6)) of
                                                                                                                                                                                                                                                { ( sem_Expr_6) | True ->
                                                                                                                                                                                                                                                ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) }) }) })))
                                                                                                                                                                                                                     in  sem_Expr_TypeAs_5)) of
                                                                                                                                                                                                              { ( sem_Expr_5) | True ->
                                                                                                                                                                                                              ( _lhsOgathDataGam,sem_Expr_5) }) }) }) }) }) }) }) })))))))
                                                                                                                                                                                in  sem_Expr_TypeAs_4)) of
                                                                                                                                                                         { ( sem_Expr_4) | True ->
                                                                                                                                                                         ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                 in  sem_Expr_TypeAs_3)) of
                                                                                          { ( sem_Expr_3) | True ->
                                                                                          ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }) }) }) }) }) }) }))))))
                                                             in  sem_Expr_TypeAs_2)) of
                                                      { ( sem_Expr_2) | True ->
                                                      ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) }) }) }) }) })))
                        in  sem_Expr_TypeAs_1)) of
                 { ( sem_Expr_1) | True ->
                 ( _lhsOrange,sem_Expr_1) }) }) }) }) })

sem_Expr_Ann :: Range ->
                T_ExprAnn ->
                T_Expr ->
                T_Expr

sem_Expr_Ann hsrange_ ann_ expr_ | hsrange_ `seq` (ann_ `seq` (expr_ `seq` (True))) =
    (case (expr_) of
     { ( _exprIrange,expr_1) | True ->
         (case (rangeUnions [hsrange_, _exprIrange   , _exprIrange  ]) of
          { _range | _range `seq` (True) ->
          (case (_range) of
           { _lhsOrange | _lhsOrange `seq` (True) ->
           (case ((let sem_Expr_Ann_1 :: T_Expr_1
                       sem_Expr_Ann_1 =
                           (\ _lhsIgUniq ->
                                _lhsIgUniq `seq`
                                ((case (_lhsIgUniq) of
                                  { _exprOgUniq | _exprOgUniq `seq` (True) ->
                                  (case (expr_1 _exprOgUniq) of
                                   { ( _exprIgUniq,_exprIhasInstDecl,expr_2) | True ->
                                       (case (_exprIgUniq) of
                                        { _lhsOgUniq | _lhsOgUniq `seq` (True) ->
                                        (case (False) of
                                         { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                                         (case ((let sem_Expr_Ann_2 :: T_Expr_2
                                                     sem_Expr_Ann_2 =
                                                         (\ _lhsIisFirstLet
                                                            _lhsIkiGam
                                                            _lhsIlexLev
                                                            _lhsIpredSameScopeCounter ->
                                                              _lhsIisFirstLet `seq`
                                                              (_lhsIkiGam `seq`
                                                               (_lhsIlexLev `seq`
                                                                (_lhsIpredSameScopeCounter `seq`
                                                                 ((case (_lhsIpredSameScopeCounter) of
                                                                   { _exprOpredSameScopeCounter | _exprOpredSameScopeCounter `seq` (True) ->
                                                                   (case (_lhsIlexLev) of
                                                                    { _exprOlexLev | _exprOlexLev `seq` (True) ->
                                                                    (case (_lhsIkiGam) of
                                                                     { _exprOkiGam | _exprOkiGam `seq` (True) ->
                                                                     (case (True) of
                                                                      { _isFirstLet | _isFirstLet `seq` (True) ->
                                                                      (case (_isFirstLet) of
                                                                       { _exprOisFirstLet | _exprOisFirstLet `seq` (True) ->
                                                                       (case (expr_2 _exprOisFirstLet _exprOkiGam _exprOlexLev _exprOpredSameScopeCounter) of
                                                                        { ( _exprIpredSameScopeCounter,expr_3) | True ->
                                                                            (case (_exprIpredSameScopeCounter) of
                                                                             { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                                             (case ((let sem_Expr_Ann_3 :: T_Expr_3
                                                                                         sem_Expr_Ann_3 =
                                                                                             (\ _lhsIgenerDataInfoMp
                                                                                                _lhsIkiVarMp
                                                                                                _lhsIopts
                                                                                                _lhsIpolGam
                                                                                                _lhsIpolVarMp
                                                                                                _lhsIpredScope
                                                                                                _lhsItyGam
                                                                                                _lhsItyKiGam
                                                                                                _lhsItyKiGlobFreeTvarS ->
                                                                                                  _lhsIgenerDataInfoMp `seq`
                                                                                                  (_lhsIkiVarMp `seq`
                                                                                                   (_lhsIopts `seq`
                                                                                                    (_lhsIpolGam `seq`
                                                                                                     (_lhsIpolVarMp `seq`
                                                                                                      (_lhsIpredScope `seq`
                                                                                                       (_lhsItyGam `seq`
                                                                                                        (_lhsItyKiGam `seq`
                                                                                                         (_lhsItyKiGlobFreeTvarS `seq`
                                                                                                          ((case (_lhsItyKiGlobFreeTvarS) of
                                                                                                            { _exprOtyKiGlobFreeTvarS | _exprOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                            (case (_lhsItyKiGam) of
                                                                                                             { _exprOtyKiGam | _exprOtyKiGam `seq` (True) ->
                                                                                                             (case (_lhsItyGam) of
                                                                                                              { _exprOtyGam | _exprOtyGam `seq` (True) ->
                                                                                                              (case (_lhsIpredScope) of
                                                                                                               { _predScope | _predScope `seq` (True) ->
                                                                                                               (case (_predScope) of
                                                                                                                { _exprOpredScope | _exprOpredScope `seq` (True) ->
                                                                                                                (case (_lhsIpolVarMp) of
                                                                                                                 { _exprOpolVarMp | _exprOpolVarMp `seq` (True) ->
                                                                                                                 (case (_lhsIpolGam) of
                                                                                                                  { _exprOpolGam | _exprOpolGam `seq` (True) ->
                                                                                                                  (case (_lhsIopts) of
                                                                                                                   { _exprOopts | _exprOopts `seq` (True) ->
                                                                                                                   (case (_lhsIkiVarMp) of
                                                                                                                    { _exprOkiVarMp | _exprOkiVarMp `seq` (True) ->
                                                                                                                    (case (_lhsIgenerDataInfoMp) of
                                                                                                                     { _exprOgenerDataInfoMp | _exprOgenerDataInfoMp `seq` (True) ->
                                                                                                                     (case (expr_3 _exprOgenerDataInfoMp _exprOkiVarMp _exprOopts _exprOpolGam _exprOpolVarMp _exprOpredScope _exprOtyGam _exprOtyKiGam _exprOtyKiGlobFreeTvarS) of
                                                                                                                      { ( _exprIgenerDataInfoMp,_exprIkiVarMp,_exprIpolVarMp,expr_4) | True ->
                                                                                                                          (case (_exprIgenerDataInfoMp) of
                                                                                                                           { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                                                           (case (_exprIkiVarMp) of
                                                                                                                            { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                                                            (case (_exprIpolVarMp) of
                                                                                                                             { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                                                             (case ((let sem_Expr_Ann_4 :: T_Expr_4
                                                                                                                                         sem_Expr_Ann_4 =
                                                                                                                                             (\ _lhsIclGam
                                                                                                                                                _lhsIfinKiVarMp
                                                                                                                                                _lhsIfinTyKiGam
                                                                                                                                                _lhsIgathDataGam
                                                                                                                                                _lhsItyTyTySigFreeTvarS ->
                                                                                                                                                  _lhsIclGam `seq`
                                                                                                                                                  (_lhsIfinKiVarMp `seq`
                                                                                                                                                   (_lhsIfinTyKiGam `seq`
                                                                                                                                                    (_lhsIgathDataGam `seq`
                                                                                                                                                     (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                                                      ((case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                        { _exprOtyTyTySigFreeTvarS | _exprOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                        (case (_lhsIgathDataGam) of
                                                                                                                                                         { _exprOgathDataGam | _exprOgathDataGam `seq` (True) ->
                                                                                                                                                         (case (_lhsIfinTyKiGam) of
                                                                                                                                                          { _exprOfinTyKiGam | _exprOfinTyKiGam `seq` (True) ->
                                                                                                                                                          (case (_lhsIfinKiVarMp) of
                                                                                                                                                           { _exprOfinKiVarMp | _exprOfinKiVarMp `seq` (True) ->
                                                                                                                                                           (case (_lhsIclGam) of
                                                                                                                                                            { _exprOclGam | _exprOclGam `seq` (True) ->
                                                                                                                                                            (case (expr_4 _exprOclGam _exprOfinKiVarMp _exprOfinTyKiGam _exprOgathDataGam _exprOtyTyTySigFreeTvarS) of
                                                                                                                                                             { ( _exprIgathDataGam,expr_5) | True ->
                                                                                                                                                                 (case (_exprIgathDataGam) of
                                                                                                                                                                  { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                                                                  (case ((let sem_Expr_Ann_5 :: T_Expr_5
                                                                                                                                                                              sem_Expr_Ann_5 =
                                                                                                                                                                                  (\ _lhsIdataGam ->
                                                                                                                                                                                       _lhsIdataGam `seq`
                                                                                                                                                                                       ((case (Seq.empty) of
                                                                                                                                                                                         { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                                                                         (case (defaultFIEnv
                                                                                                                                                                                                    { feEHCOpts = _lhsIopts
                                                                                                                                                                                                    , fePredScope = _lhsIpredScope
                                                                                                                                                                                                    , feTyGam = _lhsItyGam
                                                                                                                                                                                                    , fePolGam = _lhsIpolGam
                                                                                                                                                                                                    , feRange = _range
                                                                                                                                                                                                    }) of
                                                                                                                                                                                          { _fe | _fe `seq` (True) ->
                                                                                                                                                                                          (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                                                                           { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                                                                           (case (_chrFIIn) of
                                                                                                                                                                                            { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                                                                            (case (_lhsIdataGam) of
                                                                                                                                                                                             { _exprOdataGam | _exprOdataGam `seq` (True) ->
                                                                                                                                                                                             (case (expr_5 _exprOdataGam) of
                                                                                                                                                                                              { ( _exprIchrClassDeclSq,_exprIchrFIIn,_exprIchrInstDeclSq,_exprIgathClDfGam,expr_6) | True ->
                                                                                                                                                                                                  (case (_exprIchrInstDeclSq) of
                                                                                                                                                                                                   { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                                                                   (case (emptyGam) of
                                                                                                                                                                                                    { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                                                                    (case ((let sem_Expr_Ann_6 :: T_Expr_6
                                                                                                                                                                                                                sem_Expr_Ann_6 =
                                                                                                                                                                                                                    (\ _lhsIchrStore
                                                                                                                                                                                                                       _lhsIclDfGam
                                                                                                                                                                                                                       _lhsIfiOpts
                                                                                                                                                                                                                       _lhsIknTy
                                                                                                                                                                                                                       _lhsItvKiVarMp
                                                                                                                                                                                                                       _lhsItyTyGlobFreeTvarS
                                                                                                                                                                                                                       _lhsItyVarMp
                                                                                                                                                                                                                       _lhsIvalGam
                                                                                                                                                                                                                       _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                                                                         _lhsIchrStore `seq`
                                                                                                                                                                                                                         (_lhsIclDfGam `seq`
                                                                                                                                                                                                                          (_lhsIfiOpts `seq`
                                                                                                                                                                                                                           (_lhsIknTy `seq`
                                                                                                                                                                                                                            (_lhsItvKiVarMp `seq`
                                                                                                                                                                                                                             (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                              (_lhsItyVarMp `seq`
                                                                                                                                                                                                                               (_lhsIvalGam `seq`
                                                                                                                                                                                                                                (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                 ((case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                   { _exprOvalTyGlobFreeTvarS | _exprOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                   (case (_lhsIvalGam) of
                                                                                                                                                                                                                                    { _exprOvalGam | _exprOvalGam `seq` (True) ->
                                                                                                                                                                                                                                    (case (_lhsItyVarMp) of
                                                                                                                                                                                                                                     { _exprOtyVarMp | _exprOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                     (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                      { _exprOtyTyGlobFreeTvarS | _exprOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                      (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                       { _exprOtvKiVarMp | _exprOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                       (case (_lhsIknTy) of
                                                                                                                                                                                                                                        { _exprOknTy | _exprOknTy `seq` (True) ->
                                                                                                                                                                                                                                        (case (_lhsIfiOpts) of
                                                                                                                                                                                                                                         { _exprOfiOpts | _exprOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                         (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                          { _exprOclDfGam | _exprOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                          (case (_lhsIchrStore) of
                                                                                                                                                                                                                                           { _exprOchrStore | _exprOchrStore `seq` (True) ->
                                                                                                                                                                                                                                           (case (expr_6 _exprOchrStore _exprOclDfGam _exprOfiOpts _exprOknTy _exprOtvKiVarMp _exprOtyTyGlobFreeTvarS _exprOtyVarMp _exprOvalGam _exprOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                            { ( _exprIgathCnstrMp,_exprIgathRangeMp,_exprIgathValGam,_exprInoLetQuantTyVarIdS,_exprIty,_exprItyVarMp,expr_7) | True ->
                                                                                                                                                                                                                                                (case (_exprIgathCnstrMp) of
                                                                                                                                                                                                                                                 { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                 (case (_exprIgathRangeMp) of
                                                                                                                                                                                                                                                  { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                                                                                  (case (emptyGam) of
                                                                                                                                                                                                                                                   { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                                                                                   (case (_exprInoLetQuantTyVarIdS) of
                                                                                                                                                                                                                                                    { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                                                                                    (case (_exprIty) of
                                                                                                                                                                                                                                                     { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                                                                                     (case (_exprItyVarMp) of
                                                                                                                                                                                                                                                      { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                      (case ((let sem_Expr_Ann_7 :: T_Expr_7
                                                                                                                                                                                                                                                                  sem_Expr_Ann_7 =
                                                                                                                                                                                                                                                                      (\ _lhsIcSubst
                                                                                                                                                                                                                                                                         _lhsIchrEvidBindMp
                                                                                                                                                                                                                                                                         _lhsIchrScopeBindMp
                                                                                                                                                                                                                                                                         _lhsIexprCtxt
                                                                                                                                                                                                                                                                         _lhsIfinTyVarMp
                                                                                                                                                                                                                                                                         _lhsIfinValGam
                                                                                                                                                                                                                                                                         _lhsImoduleNm
                                                                                                                                                                                                                                                                         _lhsIrangeMp
                                                                                                                                                                                                                                                                         _lhsIsysfEnv
                                                                                                                                                                                                                                                                         _lhsItr ->
                                                                                                                                                                                                                                                                           _lhsIcSubst `seq`
                                                                                                                                                                                                                                                                           (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                                                                            (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                                                                             (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                                                                              (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                                                                               (_lhsIfinValGam `seq`
                                                                                                                                                                                                                                                                                (_lhsImoduleNm `seq`
                                                                                                                                                                                                                                                                                 (_lhsIrangeMp `seq`
                                                                                                                                                                                                                                                                                  (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                                                                                   (_lhsItr `seq`
                                                                                                                                                                                                                                                                                    ((case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                      { _exprOsysfEnv | _exprOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                      (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                       { _exprOrangeMp | _exprOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                       (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                        { _exprOfinValGam | _exprOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                        (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                         { _exprOfinTyVarMp | _exprOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                         (case (_lhsItr) of
                                                                                                                                                                                                                                                                                          { _exprOtr | _exprOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                          (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                           { _exprOmoduleNm | _exprOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                           (case (ExprCtxt_Internal) of
                                                                                                                                                                                                                                                                                            { _exprCtxt | _exprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                            (case (_exprCtxt) of
                                                                                                                                                                                                                                                                                             { _exprOexprCtxt | _exprOexprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                             (case (_lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                              { _exprOchrScopeBindMp | _exprOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                              (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                               { _exprOchrEvidBindMp | _exprOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                               (case (_lhsIcSubst) of
                                                                                                                                                                                                                                                                                                { _exprOcSubst | _exprOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                (case (expr_7 _exprOcSubst _exprOchrEvidBindMp _exprOchrScopeBindMp _exprOexprCtxt _exprOfinTyVarMp _exprOfinValGam _exprOmoduleNm _exprOrangeMp _exprOsysfEnv _exprOtr) of
                                                                                                                                                                                                                                                                                                 { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIletValMainCBindL,_exprIorphanS,_exprIpp,_exprIppAST,_exprItrpp) | True ->
                                                                                                                                                                                                                                                                                                     (case (_exprIallErrSq) of
                                                                                                                                                                                                                                                                                                      { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                      (case ([]) of
                                                                                                                                                                                                                                                                                                       { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                       (case ([]) of
                                                                                                                                                                                                                                                                                                        { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                        (case (_exprIcexpr) of
                                                                                                                                                                                                                                                                                                         { _cexpr | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                         (case (_cexpr) of
                                                                                                                                                                                                                                                                                                          { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                          (case (hsnUnknown) of
                                                                                                                                                                                                                                                                                                           { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                           (case (_exprIpp) of
                                                                                                                                                                                                                                                                                                            { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                                                                                            (case (_pp) of
                                                                                                                                                                                                                                                                                                             { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                             (case ([]) of
                                                                                                                                                                                                                                                                                                              { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                              (case (_exprIcSubst) of
                                                                                                                                                                                                                                                                                                               { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                               (case (_exprIcaseFailS) of
                                                                                                                                                                                                                                                                                                                { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                 { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                 (case (_exprIerrSq) of
                                                                                                                                                                                                                                                                                                                  { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                  (case ([]) of
                                                                                                                                                                                                                                                                                                                   { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                   (case ([]) of
                                                                                                                                                                                                                                                                                                                    { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                    (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                     { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                     (case (_exprIgathHiddenExports) of
                                                                                                                                                                                                                                                                                                                      { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                                                                                                      (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                       { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                       (case (_exprIgathLamMp) of
                                                                                                                                                                                                                                                                                                                        { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                        (case (_exprIgathMentrelFilterMp) of
                                                                                                                                                                                                                                                                                                                         { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                         (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                          { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                          (case (_exprIgathTvKiVarMp) of
                                                                                                                                                                                                                                                                                                                           { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                           (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                            { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                            (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                             { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                             (case (False) of
                                                                                                                                                                                                                                                                                                                              { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                                                                                              (case ([]) of
                                                                                                                                                                                                                                                                                                                               { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                               (case (_lamArgPPL) of
                                                                                                                                                                                                                                                                                                                                { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                (case (_pp) of
                                                                                                                                                                                                                                                                                                                                 { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                 (case (_lamBodyPP) of
                                                                                                                                                                                                                                                                                                                                  { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                  (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                   { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                   (case ([]) of
                                                                                                                                                                                                                                                                                                                                    { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                    (case ([]) of
                                                                                                                                                                                                                                                                                                                                     { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                     (case ([]) of
                                                                                                                                                                                                                                                                                                                                      { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                      (case (Set.empty) of
                                                                                                                                                                                                                                                                                                                                       { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                       (case (_pp) of
                                                                                                                                                                                                                                                                                                                                        { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                        (case (_exprIppAST) of
                                                                                                                                                                                                                                                                                                                                         { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                         (case (_exprItrpp) of
                                                                                                                                                                                                                                                                                                                                          { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                          ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                                                                              in  sem_Expr_Ann_7)) of
                                                                                                                                                                                                                                                       { ( sem_Expr_7) | True ->
                                                                                                                                                                                                                                                       ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                                                                            in  sem_Expr_Ann_6)) of
                                                                                                                                                                                                     { ( sem_Expr_6) | True ->
                                                                                                                                                                                                     ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) }) }) })))
                                                                                                                                                                          in  sem_Expr_Ann_5)) of
                                                                                                                                                                   { ( sem_Expr_5) | True ->
                                                                                                                                                                   ( _lhsOgathDataGam,sem_Expr_5) }) }) }) }) }) }) }) })))))))
                                                                                                                                     in  sem_Expr_Ann_4)) of
                                                                                                                              { ( sem_Expr_4) | True ->
                                                                                                                              ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                     in  sem_Expr_Ann_3)) of
                                                                              { ( sem_Expr_3) | True ->
                                                                              ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }) }) }) }) }) }) }))))))
                                                 in  sem_Expr_Ann_2)) of
                                          { ( sem_Expr_2) | True ->
                                          ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) }) })))
                   in  sem_Expr_Ann_1)) of
            { ( sem_Expr_1) | True ->
            ( _lhsOrange,sem_Expr_1) }) }) }) })

sem_Expr_AppImpred :: Range ->
                      T_Expr ->
                      T_Expr ->
                      T_Expr

sem_Expr_AppImpred hsrange_ func_ arg_ | hsrange_ `seq` (func_ `seq` (arg_ `seq` (True))) =
    (case (arg_) of
     { ( _argIrange,arg_1) | True ->
         (case (func_) of
          { ( _funcIrange,func_1) | True ->
              (case (rangeUnions [hsrange_, _funcIrange   , _argIrange   ]) of
               { _range | _range `seq` (True) ->
               (case (_range) of
                { _lhsOrange | _lhsOrange `seq` (True) ->
                (case ((let sem_Expr_AppImpred_1 :: T_Expr_1
                            sem_Expr_AppImpred_1 =
                                (\ _lhsIgUniq ->
                                     _lhsIgUniq `seq`
                                     ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq3) -> case nextUnique __cont of { (__cont, lUniq_cexpr) -> (__cont,lUniq,lUniq3,lUniq_cexpr)}}} )) of
                                       { __tup139 | __tup139 `seq` (True) ->
                                       (case (__tup139) of
                                        { (_funcOgUniq,_,_,_) | _funcOgUniq `seq` (True) ->
                                        (case (func_1 _funcOgUniq) of
                                         { ( _funcIgUniq,_funcIhasInstDecl,func_2) | True ->
                                             (case (_funcIgUniq) of
                                              { _argOgUniq | _argOgUniq `seq` (True) ->
                                              (case (arg_1 _argOgUniq) of
                                               { ( _argIgUniq,_argIhasInstDecl,arg_2) | True ->
                                                   (case (_argIgUniq) of
                                                    { _lhsOgUniq | _lhsOgUniq `seq` (True) ->
                                                    (case (False) of
                                                     { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                                                     (case ((let sem_Expr_AppImpred_2 :: T_Expr_2
                                                                 sem_Expr_AppImpred_2 =
                                                                     (\ _lhsIisFirstLet
                                                                        _lhsIkiGam
                                                                        _lhsIlexLev
                                                                        _lhsIpredSameScopeCounter ->
                                                                          _lhsIisFirstLet `seq`
                                                                          (_lhsIkiGam `seq`
                                                                           (_lhsIlexLev `seq`
                                                                            (_lhsIpredSameScopeCounter `seq`
                                                                             ((case (_lhsIpredSameScopeCounter) of
                                                                               { _funcOpredSameScopeCounter | _funcOpredSameScopeCounter `seq` (True) ->
                                                                               (case (_lhsIlexLev) of
                                                                                { _funcOlexLev | _funcOlexLev `seq` (True) ->
                                                                                (case (_lhsIkiGam) of
                                                                                 { _funcOkiGam | _funcOkiGam `seq` (True) ->
                                                                                 (case (True) of
                                                                                  { _isFirstLet | _isFirstLet `seq` (True) ->
                                                                                  (case (_isFirstLet) of
                                                                                   { _funcOisFirstLet | _funcOisFirstLet `seq` (True) ->
                                                                                   (case (func_2 _funcOisFirstLet _funcOkiGam _funcOlexLev _funcOpredSameScopeCounter) of
                                                                                    { ( _funcIpredSameScopeCounter,func_3) | True ->
                                                                                        (case (_funcIpredSameScopeCounter) of
                                                                                         { _argOpredSameScopeCounter | _argOpredSameScopeCounter `seq` (True) ->
                                                                                         (case (_lhsIlexLev) of
                                                                                          { _argOlexLev | _argOlexLev `seq` (True) ->
                                                                                          (case (_lhsIkiGam) of
                                                                                           { _argOkiGam | _argOkiGam `seq` (True) ->
                                                                                           (case (_isFirstLet) of
                                                                                            { _argOisFirstLet | _argOisFirstLet `seq` (True) ->
                                                                                            (case (arg_2 _argOisFirstLet _argOkiGam _argOlexLev _argOpredSameScopeCounter) of
                                                                                             { ( _argIpredSameScopeCounter,arg_3) | True ->
                                                                                                 (case (_argIpredSameScopeCounter) of
                                                                                                  { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                                                                  (case ((let sem_Expr_AppImpred_3 :: T_Expr_3
                                                                                                              sem_Expr_AppImpred_3 =
                                                                                                                  (\ _lhsIgenerDataInfoMp
                                                                                                                     _lhsIkiVarMp
                                                                                                                     _lhsIopts
                                                                                                                     _lhsIpolGam
                                                                                                                     _lhsIpolVarMp
                                                                                                                     _lhsIpredScope
                                                                                                                     _lhsItyGam
                                                                                                                     _lhsItyKiGam
                                                                                                                     _lhsItyKiGlobFreeTvarS ->
                                                                                                                       _lhsIgenerDataInfoMp `seq`
                                                                                                                       (_lhsIkiVarMp `seq`
                                                                                                                        (_lhsIopts `seq`
                                                                                                                         (_lhsIpolGam `seq`
                                                                                                                          (_lhsIpolVarMp `seq`
                                                                                                                           (_lhsIpredScope `seq`
                                                                                                                            (_lhsItyGam `seq`
                                                                                                                             (_lhsItyKiGam `seq`
                                                                                                                              (_lhsItyKiGlobFreeTvarS `seq`
                                                                                                                               ((case (_lhsItyKiGlobFreeTvarS) of
                                                                                                                                 { _argOtyKiGlobFreeTvarS | _argOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                                 (case (_lhsItyKiGam) of
                                                                                                                                  { _argOtyKiGam | _argOtyKiGam `seq` (True) ->
                                                                                                                                  (case (_lhsItyGam) of
                                                                                                                                   { _argOtyGam | _argOtyGam `seq` (True) ->
                                                                                                                                   (case (_lhsIpredScope) of
                                                                                                                                    { _predScope | _predScope `seq` (True) ->
                                                                                                                                    (case (_predScope) of
                                                                                                                                     { _argOpredScope | _argOpredScope `seq` (True) ->
                                                                                                                                     (case (_lhsItyKiGlobFreeTvarS) of
                                                                                                                                      { _funcOtyKiGlobFreeTvarS | _funcOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                                      (case (_lhsItyKiGam) of
                                                                                                                                       { _funcOtyKiGam | _funcOtyKiGam `seq` (True) ->
                                                                                                                                       (case (_lhsItyGam) of
                                                                                                                                        { _funcOtyGam | _funcOtyGam `seq` (True) ->
                                                                                                                                        (case (_predScope) of
                                                                                                                                         { _funcOpredScope | _funcOpredScope `seq` (True) ->
                                                                                                                                         (case (_lhsIpolVarMp) of
                                                                                                                                          { _funcOpolVarMp | _funcOpolVarMp `seq` (True) ->
                                                                                                                                          (case (_lhsIpolGam) of
                                                                                                                                           { _funcOpolGam | _funcOpolGam `seq` (True) ->
                                                                                                                                           (case (_lhsIopts) of
                                                                                                                                            { _funcOopts | _funcOopts `seq` (True) ->
                                                                                                                                            (case (_lhsIkiVarMp) of
                                                                                                                                             { _funcOkiVarMp | _funcOkiVarMp `seq` (True) ->
                                                                                                                                             (case (_lhsIgenerDataInfoMp) of
                                                                                                                                              { _funcOgenerDataInfoMp | _funcOgenerDataInfoMp `seq` (True) ->
                                                                                                                                              (case (func_3 _funcOgenerDataInfoMp _funcOkiVarMp _funcOopts _funcOpolGam _funcOpolVarMp _funcOpredScope _funcOtyGam _funcOtyKiGam _funcOtyKiGlobFreeTvarS) of
                                                                                                                                               { ( _funcIgenerDataInfoMp,_funcIkiVarMp,_funcIpolVarMp,func_4) | True ->
                                                                                                                                                   (case (_funcIpolVarMp) of
                                                                                                                                                    { _argOpolVarMp | _argOpolVarMp `seq` (True) ->
                                                                                                                                                    (case (_lhsIpolGam) of
                                                                                                                                                     { _argOpolGam | _argOpolGam `seq` (True) ->
                                                                                                                                                     (case (_lhsIopts) of
                                                                                                                                                      { _argOopts | _argOopts `seq` (True) ->
                                                                                                                                                      (case (_funcIkiVarMp) of
                                                                                                                                                       { _argOkiVarMp | _argOkiVarMp `seq` (True) ->
                                                                                                                                                       (case (_funcIgenerDataInfoMp) of
                                                                                                                                                        { _argOgenerDataInfoMp | _argOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                        (case (arg_3 _argOgenerDataInfoMp _argOkiVarMp _argOopts _argOpolGam _argOpolVarMp _argOpredScope _argOtyGam _argOtyKiGam _argOtyKiGlobFreeTvarS) of
                                                                                                                                                         { ( _argIgenerDataInfoMp,_argIkiVarMp,_argIpolVarMp,arg_4) | True ->
                                                                                                                                                             (case (_argIgenerDataInfoMp) of
                                                                                                                                                              { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                              (case (_argIkiVarMp) of
                                                                                                                                                               { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                                                                                               (case (_argIpolVarMp) of
                                                                                                                                                                { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                                                                                                (case ((let sem_Expr_AppImpred_4 :: T_Expr_4
                                                                                                                                                                            sem_Expr_AppImpred_4 =
                                                                                                                                                                                (\ _lhsIclGam
                                                                                                                                                                                   _lhsIfinKiVarMp
                                                                                                                                                                                   _lhsIfinTyKiGam
                                                                                                                                                                                   _lhsIgathDataGam
                                                                                                                                                                                   _lhsItyTyTySigFreeTvarS ->
                                                                                                                                                                                     _lhsIclGam `seq`
                                                                                                                                                                                     (_lhsIfinKiVarMp `seq`
                                                                                                                                                                                      (_lhsIfinTyKiGam `seq`
                                                                                                                                                                                       (_lhsIgathDataGam `seq`
                                                                                                                                                                                        (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                                                                                         ((case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                           { _argOtyTyTySigFreeTvarS | _argOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                           (case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                            { _funcOtyTyTySigFreeTvarS | _funcOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                            (case (_lhsIgathDataGam) of
                                                                                                                                                                                             { _funcOgathDataGam | _funcOgathDataGam `seq` (True) ->
                                                                                                                                                                                             (case (_lhsIfinTyKiGam) of
                                                                                                                                                                                              { _funcOfinTyKiGam | _funcOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                              (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                               { _funcOfinKiVarMp | _funcOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                               (case (_lhsIclGam) of
                                                                                                                                                                                                { _funcOclGam | _funcOclGam `seq` (True) ->
                                                                                                                                                                                                (case (func_4 _funcOclGam _funcOfinKiVarMp _funcOfinTyKiGam _funcOgathDataGam _funcOtyTyTySigFreeTvarS) of
                                                                                                                                                                                                 { ( _funcIgathDataGam,func_5) | True ->
                                                                                                                                                                                                     (case (_funcIgathDataGam) of
                                                                                                                                                                                                      { _argOgathDataGam | _argOgathDataGam `seq` (True) ->
                                                                                                                                                                                                      (case (_lhsIfinTyKiGam) of
                                                                                                                                                                                                       { _argOfinTyKiGam | _argOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                                       (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                                        { _argOfinKiVarMp | _argOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                                        (case (_lhsIclGam) of
                                                                                                                                                                                                         { _argOclGam | _argOclGam `seq` (True) ->
                                                                                                                                                                                                         (case (arg_4 _argOclGam _argOfinKiVarMp _argOfinTyKiGam _argOgathDataGam _argOtyTyTySigFreeTvarS) of
                                                                                                                                                                                                          { ( _argIgathDataGam,arg_5) | True ->
                                                                                                                                                                                                              (case (_argIgathDataGam) of
                                                                                                                                                                                                               { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                                                                                                               (case ((let sem_Expr_AppImpred_5 :: T_Expr_5
                                                                                                                                                                                                                           sem_Expr_AppImpred_5 =
                                                                                                                                                                                                                               (\ _lhsIdataGam ->
                                                                                                                                                                                                                                    _lhsIdataGam `seq`
                                                                                                                                                                                                                                    ((case (Seq.empty) of
                                                                                                                                                                                                                                      { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                                                                                                                      (case (defaultFIEnv
                                                                                                                                                                                                                                                 { feEHCOpts = _lhsIopts
                                                                                                                                                                                                                                                 , fePredScope = _lhsIpredScope
                                                                                                                                                                                                                                                 , feTyGam = _lhsItyGam
                                                                                                                                                                                                                                                 , fePolGam = _lhsIpolGam
                                                                                                                                                                                                                                                 , feRange = _range
                                                                                                                                                                                                                                                 }) of
                                                                                                                                                                                                                                       { _fe | _fe `seq` (True) ->
                                                                                                                                                                                                                                       (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                                                                                                                        { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                                                                                                                        (case (_chrFIIn) of
                                                                                                                                                                                                                                         { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                                                                                                                         (case (_lhsIdataGam) of
                                                                                                                                                                                                                                          { _argOdataGam | _argOdataGam `seq` (True) ->
                                                                                                                                                                                                                                          (case (_lhsIdataGam) of
                                                                                                                                                                                                                                           { _funcOdataGam | _funcOdataGam `seq` (True) ->
                                                                                                                                                                                                                                           (case (arg_5 _argOdataGam) of
                                                                                                                                                                                                                                            { ( _argIchrClassDeclSq,_argIchrFIIn,_argIchrInstDeclSq,_argIgathClDfGam,arg_6) | True ->
                                                                                                                                                                                                                                                (case (func_5 _funcOdataGam) of
                                                                                                                                                                                                                                                 { ( _funcIchrClassDeclSq,_funcIchrFIIn,_funcIchrInstDeclSq,_funcIgathClDfGam,func_6) | True ->
                                                                                                                                                                                                                                                     (case (_funcIchrInstDeclSq `Seq.union` _argIchrInstDeclSq) of
                                                                                                                                                                                                                                                      { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                                                                                                                      (case (emptyGam) of
                                                                                                                                                                                                                                                       { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                                                                                                                       (case ((let sem_Expr_AppImpred_6 :: T_Expr_6
                                                                                                                                                                                                                                                                   sem_Expr_AppImpred_6 =
                                                                                                                                                                                                                                                                       (\ _lhsIchrStore
                                                                                                                                                                                                                                                                          _lhsIclDfGam
                                                                                                                                                                                                                                                                          _lhsIfiOpts
                                                                                                                                                                                                                                                                          _lhsIknTy
                                                                                                                                                                                                                                                                          _lhsItvKiVarMp
                                                                                                                                                                                                                                                                          _lhsItyTyGlobFreeTvarS
                                                                                                                                                                                                                                                                          _lhsItyVarMp
                                                                                                                                                                                                                                                                          _lhsIvalGam
                                                                                                                                                                                                                                                                          _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                                                                                                                            _lhsIchrStore `seq`
                                                                                                                                                                                                                                                                            (_lhsIclDfGam `seq`
                                                                                                                                                                                                                                                                             (_lhsIfiOpts `seq`
                                                                                                                                                                                                                                                                              (_lhsIknTy `seq`
                                                                                                                                                                                                                                                                               (_lhsItvKiVarMp `seq`
                                                                                                                                                                                                                                                                                (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                                                                 (_lhsItyVarMp `seq`
                                                                                                                                                                                                                                                                                  (_lhsIvalGam `seq`
                                                                                                                                                                                                                                                                                   (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                                                                    ((case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                      { _argOvalTyGlobFreeTvarS | _argOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                      (case (_lhsIvalGam) of
                                                                                                                                                                                                                                                                                       { _argOvalGam | _argOvalGam `seq` (True) ->
                                                                                                                                                                                                                                                                                       (case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                        { _funcOvalTyGlobFreeTvarS | _funcOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                        (case (_lhsIvalGam) of
                                                                                                                                                                                                                                                                                         { _funcOvalGam | _funcOvalGam `seq` (True) ->
                                                                                                                                                                                                                                                                                         (case (_lhsItyVarMp) of
                                                                                                                                                                                                                                                                                          { _funcOtyVarMp | _funcOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                          (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                           { _funcOtyTyGlobFreeTvarS | _funcOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                           (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                                                                            { _funcOtvKiVarMp | _funcOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                            (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                                                                             { _funcOclDfGam | _funcOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                             (case (_lhsIchrStore) of
                                                                                                                                                                                                                                                                                              { _funcOchrStore | _funcOchrStore `seq` (True) ->
                                                                                                                                                                                                                                                                                              (case (__tup139) of
                                                                                                                                                                                                                                                                                               { (_,_lUniq,_,_) | _lUniq `seq` (True) ->
                                                                                                                                                                                                                                                                                               (case (let  [i,a] = mkNewUIDL 2 _lUniq
                                                                                                                                                                                                                                                                                                           im = mkImplsVar i
                                                                                                                                                                                                                                                                                                           at = mkTyVar a
                                                                                                                                                                                                                                                                                                      in   ([im,at] `appArr` _lhsIknTy,im,at)) of
                                                                                                                                                                                                                                                                                                { __tup137 | __tup137 `seq` (True) ->
                                                                                                                                                                                                                                                                                                (case (__tup137) of
                                                                                                                                                                                                                                                                                                 { (_knFunTy,_,_) | _knFunTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                 (case (_knFunTy) of
                                                                                                                                                                                                                                                                                                  { _funcOknTy | _funcOknTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                  (case (strongFIOpts) of
                                                                                                                                                                                                                                                                                                   { _funcOfiOpts | _funcOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                                   (case (func_6 _funcOchrStore _funcOclDfGam _funcOfiOpts _funcOknTy _funcOtvKiVarMp _funcOtyTyGlobFreeTvarS _funcOtyVarMp _funcOvalGam _funcOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                    { ( _funcIgathCnstrMp,_funcIgathRangeMp,_funcIgathValGam,_funcInoLetQuantTyVarIdS,_funcIty,_funcItyVarMp,func_7) | True ->
                                                                                                                                                                                                                                                                                                        (case (_funcItyVarMp) of
                                                                                                                                                                                                                                                                                                         { _argOtyVarMp | _argOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                         (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                          { _argOtyTyGlobFreeTvarS | _argOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                          (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                                                                                           { _argOtvKiVarMp | _argOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                           (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                                                                                            { _argOclDfGam | _argOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                            (case (_lhsIchrStore) of
                                                                                                                                                                                                                                                                                                             { _argOchrStore | _argOchrStore `seq` (True) ->
                                                                                                                                                                                                                                                                                                             (case (__tup137) of
                                                                                                                                                                                                                                                                                                              { (_,_,_argTy) | _argTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                              (case (_argTy) of
                                                                                                                                                                                                                                                                                                               { _argOknTy | _argOknTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                               (case (strongFIOpts) of
                                                                                                                                                                                                                                                                                                                { _argFIOpts | _argFIOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                                                (case (_argFIOpts) of
                                                                                                                                                                                                                                                                                                                 { _argOfiOpts | _argOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                                                 (case (arg_6 _argOchrStore _argOclDfGam _argOfiOpts _argOknTy _argOtvKiVarMp _argOtyTyGlobFreeTvarS _argOtyVarMp _argOvalGam _argOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                  { ( _argIgathCnstrMp,_argIgathRangeMp,_argIgathValGam,_argInoLetQuantTyVarIdS,_argIty,_argItyVarMp,arg_7) | True ->
                                                                                                                                                                                                                                                                                                                      (case (_funcIgathCnstrMp `cnstrMpUnion` _argIgathCnstrMp) of
                                                                                                                                                                                                                                                                                                                       { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                       (case (_funcIgathRangeMp `Map.union` _argIgathRangeMp) of
                                                                                                                                                                                                                                                                                                                        { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                        (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                         { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                         (case (_funcInoLetQuantTyVarIdS `Set.union` _argInoLetQuantTyVarIdS) of
                                                                                                                                                                                                                                                                                                                          { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                          (case (_lhsIknTy) of
                                                                                                                                                                                                                                                                                                                           { _ty | _ty `seq` (True) ->
                                                                                                                                                                                                                                                                                                                           (case (_ty) of
                                                                                                                                                                                                                                                                                                                            { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                                                                                                                                                            (case (__tup139) of
                                                                                                                                                                                                                                                                                                                             { (_,_,_lUniq3,_) | _lUniq3 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                             (case (__tup137) of
                                                                                                                                                                                                                                                                                                                              { (_,_imTy,_) | _imTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                              (case (implsPredsTailWithLkup (varmpImplsLookupCyc2 _argItyVarMp) _lhsIpredScope $ tyImplsWithLkup (varmpTyLookupCyc2 _argItyVarMp) _imTy) of
                                                                                                                                                                                                                                                                                                                               { __tup138 | __tup138 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                               (case (__tup138) of
                                                                                                                                                                                                                                                                                                                                { (_,_implsTl) | _implsTl `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                (case (mkImplsProveOcc _lUniq3 _lhsIpredScope) of
                                                                                                                                                                                                                                                                                                                                 { _imPrvOcc | _imPrvOcc `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                 (case (varmpTailAddOcc _imPrvOcc _implsTl) of
                                                                                                                                                                                                                                                                                                                                  { __tup133 | __tup133 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                  (case (__tup133) of
                                                                                                                                                                                                                                                                                                                                   { (_,_prvOccTlVarMp) | _prvOccTlVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                   (case (_prvOccTlVarMp `varUpd` _argItyVarMp) of
                                                                                                                                                                                                                                                                                                                                    { _tyVarMpApp | _tyVarMpApp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                    (case (_tyVarMpApp) of
                                                                                                                                                                                                                                                                                                                                     { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                     (case ((let sem_Expr_AppImpred_7 :: T_Expr_7
                                                                                                                                                                                                                                                                                                                                                 sem_Expr_AppImpred_7 =
                                                                                                                                                                                                                                                                                                                                                     (\ _lhsIcSubst
                                                                                                                                                                                                                                                                                                                                                        _lhsIchrEvidBindMp
                                                                                                                                                                                                                                                                                                                                                        _lhsIchrScopeBindMp
                                                                                                                                                                                                                                                                                                                                                        _lhsIexprCtxt
                                                                                                                                                                                                                                                                                                                                                        _lhsIfinTyVarMp
                                                                                                                                                                                                                                                                                                                                                        _lhsIfinValGam
                                                                                                                                                                                                                                                                                                                                                        _lhsImoduleNm
                                                                                                                                                                                                                                                                                                                                                        _lhsIrangeMp
                                                                                                                                                                                                                                                                                                                                                        _lhsIsysfEnv
                                                                                                                                                                                                                                                                                                                                                        _lhsItr ->
                                                                                                                                                                                                                                                                                                                                                          _lhsIcSubst `seq`
                                                                                                                                                                                                                                                                                                                                                          (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                                                                                                                                                           (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                                                                                                                                                            (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                                                                                                                                                             (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                                                                                                                                                              (_lhsIfinValGam `seq`
                                                                                                                                                                                                                                                                                                                                                               (_lhsImoduleNm `seq`
                                                                                                                                                                                                                                                                                                                                                                (_lhsIrangeMp `seq`
                                                                                                                                                                                                                                                                                                                                                                 (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                                                                                                                                                                  (_lhsItr `seq`
                                                                                                                                                                                                                                                                                                                                                                   ((case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                                                                                     { _argOsysfEnv | _argOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                     (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                                                                                      { _argOrangeMp | _argOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                      (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                                                                                       { _argOfinValGam | _argOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                       (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                        { _argOfinTyVarMp | _argOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                        (case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                                                                                         { _funcOsysfEnv | _funcOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                         (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                                                                                          { _funcOrangeMp | _funcOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                          (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                                                                                           { _funcOfinValGam | _funcOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                           (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                            { _funcOfinTyVarMp | _funcOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                            (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                                             { _argOtr | _argOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                             (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                                              { _argOmoduleNm | _argOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                              (case (ExprCtxt_Internal) of
                                                                                                                                                                                                                                                                                                                                                                               { _exprCtxt | _exprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                               (case (_exprCtxt) of
                                                                                                                                                                                                                                                                                                                                                                                { _argOexprCtxt | _argOexprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                (case (_lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                 { _argOchrScopeBindMp | _argOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                 (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                  { _argOchrEvidBindMp | _argOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                  (case (_lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                   { _funcOchrScopeBindMp | _funcOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                   (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                    { _funcOchrEvidBindMp | _funcOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                    (case (_lhsIcSubst) of
                                                                                                                                                                                                                                                                                                                                                                                     { _funcOcSubst | _funcOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                     (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                                                      { _funcOtr | _funcOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                      (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                                                       { _funcOmoduleNm | _funcOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                       (case (_exprCtxt) of
                                                                                                                                                                                                                                                                                                                                                                                        { _funcOexprCtxt | _funcOexprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                        (case (func_7 _funcOcSubst _funcOchrEvidBindMp _funcOchrScopeBindMp _funcOexprCtxt _funcOfinTyVarMp _funcOfinValGam _funcOmoduleNm _funcOrangeMp _funcOsysfEnv _funcOtr) of
                                                                                                                                                                                                                                                                                                                                                                                         { ( _funcIallErrSq,_funcIappArgCoeL,_funcIappArgPPL,_funcIappFunCExpr,_funcIappFunNm,_funcIappFunPP,_funcIbackCBindL,_funcIcSubst,_funcIcaseFailS,_funcIcexpr,_funcIerrSq,_funcIfrontCBindL,_funcIfuCExprL,_funcIgathClGam,_funcIgathHiddenExports,_funcIgathKiGam,_funcIgathLamMp,_funcIgathMentrelFilterMp,_funcIgathPolGam,_funcIgathTvKiVarMp,_funcIgathTyGam,_funcIgathTyKiGam,_funcIisNewtype,_funcIlamArgPPL,_funcIlamBodyPP,_funcIletCBody,_funcIletTyCBindL,_funcIletValCBindL,_funcIletValMainCBindL,_funcIorphanS,_funcIpp,_funcIppAST,_funcItrpp) | True ->
                                                                                                                                                                                                                                                                                                                                                                                             (case (_funcIcSubst) of
                                                                                                                                                                                                                                                                                                                                                                                              { _argOcSubst | _argOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                              (case (arg_7 _argOcSubst _argOchrEvidBindMp _argOchrScopeBindMp _argOexprCtxt _argOfinTyVarMp _argOfinValGam _argOmoduleNm _argOrangeMp _argOsysfEnv _argOtr) of
                                                                                                                                                                                                                                                                                                                                                                                               { ( _argIallErrSq,_argIappArgCoeL,_argIappArgPPL,_argIappFunCExpr,_argIappFunNm,_argIappFunPP,_argIbackCBindL,_argIcSubst,_argIcaseFailS,_argIcexpr,_argIerrSq,_argIfrontCBindL,_argIfuCExprL,_argIgathClGam,_argIgathHiddenExports,_argIgathKiGam,_argIgathLamMp,_argIgathMentrelFilterMp,_argIgathPolGam,_argIgathTvKiVarMp,_argIgathTyGam,_argIgathTyKiGam,_argIisNewtype,_argIlamArgPPL,_argIlamBodyPP,_argIletCBody,_argIletTyCBindL,_argIletValCBindL,_argIletValMainCBindL,_argIorphanS,_argIpp,_argIppAST,_argItrpp) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                   (case (_funcIallErrSq `Seq.union` _argIallErrSq) of
                                                                                                                                                                                                                                                                                                                                                                                                    { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                    (case (__tup138) of
                                                                                                                                                                                                                                                                                                                                                                                                     { (_prOccL,_) | _prOccL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                     (case ((acoreCoePoiLApp $ map poPoi _prOccL) ++ [Coe_ImplApp $ ipoId _imPrvOcc]) of
                                                                                                                                                                                                                                                                                                                                                                                                      { _appImplsCoeL | _appImplsCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                      (case (if _funcIisNewtype
                                                                                                                                                                                                                                                                                                                                                                                                             then ([],_argIcexpr)
                                                                                                                                                                                                                                                                                                                                                                                                             else (_funcIappArgCoeL ++ _appImplsCoeL ++ [acoreCoeApp1 _argIcexpr],_funcIappFunCExpr)) of
                                                                                                                                                                                                                                                                                                                                                                                                       { __tup135 | __tup135 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                       (case (__tup135) of
                                                                                                                                                                                                                                                                                                                                                                                                        { (_lhsOappArgCoeL,_) | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                        (case ("~" >|< _argIpp) of
                                                                                                                                                                                                                                                                                                                                                                                                         { _argPP | _argPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                         (case (_funcIappArgPPL ++ [_argPP]) of
                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                          (case (__tup135) of
                                                                                                                                                                                                                                                                                                                                                                                                           { (_,_lhsOappFunCExpr) | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                           (case (_funcIappFunNm) of
                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                            (case (_funcIappFunPP) of
                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                             (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                              (case (__tup139) of
                                                                                                                                                                                                                                                                                                                                                                                                               { (_,_,_,_lUniq_cexpr) | _lUniq_cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                               (case (let mkapp f = wr $ acore1App f _argIcexpr
                                                                                                                                                                                                                                                                                                                                                                                                                          wr      = id
                                                                                                                                                                                                                                                                                                                                                                                                                          impl app= mkWeaveExpr _lhsIopts _lUniq_cexpr _lhsIfinTyVarMp _argIcSubst app _funcIcexpr _appImplsCoeL []
                                                                                                                                                                                                                                                                                                                                                                                                                      in  impl mkapp) of
                                                                                                                                                                                                                                                                                                                                                                                                                { __tup134 | __tup134 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                (case (__tup134) of
                                                                                                                                                                                                                                                                                                                                                                                                                 { (_,_cexprappCSubst) | _cexprappCSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                 (case (cSubstApp _argIcSubst _cexprappCSubst) of
                                                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                  (case (_funcIcaseFailS `Set.union` _argIcaseFailS) of
                                                                                                                                                                                                                                                                                                                                                                                                                   { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                   (case (__tup134) of
                                                                                                                                                                                                                                                                                                                                                                                                                    { (_cexprapp,_) | _cexprapp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                    (case (if _funcIisNewtype then _argIcexpr else _cexprapp) of
                                                                                                                                                                                                                                                                                                                                                                                                                     { _cexpr | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                     (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                                      { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                      (case (_funcIerrSq `Seq.union` _argIerrSq) of
                                                                                                                                                                                                                                                                                                                                                                                                                       { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                       (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                        (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                         (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_funcIgathHiddenExports `Seq.union` _argIgathHiddenExports) of
                                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                           (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                            (case (_funcIgathLamMp `lamMpUnionBindAspMp` _argIgathLamMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                             (case (_funcIgathMentrelFilterMp `mentrelFilterMpUnion` _argIgathMentrelFilterMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                              (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                               { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                               (case (_funcIgathTvKiVarMp `varmpUnion` _argIgathTvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (False) of
                                                                                                                                                                                                                                                                                                                                                                                                                                   { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                   (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                    { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (_lamArgPPL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                     { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (_funcIpp >#< _argPP) of
                                                                                                                                                                                                                                                                                                                                                                                                                                      { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                       { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (_lamBodyPP) of
                                                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                         (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                          (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                           (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (Set.empty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                               { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (ppNestTrPP ["Expr","AppImpred"] [] [_funcIppAST,_argIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (_funcItrpp >< _argItrpp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                 ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                                                                                                                                                             in  sem_Expr_AppImpred_7)) of
                                                                                                                                                                                                                                                                                                                                      { ( sem_Expr_7) | True ->
                                                                                                                                                                                                                                                                                                                                      ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                                                                                                                               in  sem_Expr_AppImpred_6)) of
                                                                                                                                                                                                                                                        { ( sem_Expr_6) | True ->
                                                                                                                                                                                                                                                        ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) }) }) }) }) })))
                                                                                                                                                                                                                       in  sem_Expr_AppImpred_5)) of
                                                                                                                                                                                                                { ( sem_Expr_5) | True ->
                                                                                                                                                                                                                ( _lhsOgathDataGam,sem_Expr_5) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))
                                                                                                                                                                        in  sem_Expr_AppImpred_4)) of
                                                                                                                                                                 { ( sem_Expr_4) | True ->
                                                                                                                                                                 ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                          in  sem_Expr_AppImpred_3)) of
                                                                                                   { ( sem_Expr_3) | True ->
                                                                                                   ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }) }) }) }) }) }) }) }) }) }) }) }))))))
                                                             in  sem_Expr_AppImpred_2)) of
                                                      { ( sem_Expr_2) | True ->
                                                      ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) }) }) }) }) })))
                        in  sem_Expr_AppImpred_1)) of
                 { ( sem_Expr_1) | True ->
                 ( _lhsOrange,sem_Expr_1) }) }) }) }) })

sem_Expr_SConst :: Range ->
                   String ->
                   T_Expr

sem_Expr_SConst hsrange_ str_ | hsrange_ `seq` (str_ `seq` (True)) =
    (case (hsrange_) of
     { _range | _range `seq` (True) ->
     (case (_range) of
      { _lhsOrange | _lhsOrange `seq` (True) ->
      (case ((let sem_Expr_SConst_1 :: T_Expr_1
                  sem_Expr_SConst_1 =
                      (\ _lhsIgUniq ->
                           _lhsIgUniq `seq`
                           ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq_cexpr) -> (__cont,lUniq,lUniq_cexpr)}} )) of
                             { __tup141 | __tup141 `seq` (True) ->
                             (case (__tup141) of
                              { (_lhsOgUniq,_,_) | _lhsOgUniq `seq` (True) ->
                              (case (False) of
                               { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                               (case ((let sem_Expr_SConst_2 :: T_Expr_2
                                           sem_Expr_SConst_2 =
                                               (\ _lhsIisFirstLet
                                                  _lhsIkiGam
                                                  _lhsIlexLev
                                                  _lhsIpredSameScopeCounter ->
                                                    _lhsIisFirstLet `seq`
                                                    (_lhsIkiGam `seq`
                                                     (_lhsIlexLev `seq`
                                                      (_lhsIpredSameScopeCounter `seq`
                                                       ((case (_lhsIpredSameScopeCounter) of
                                                         { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                         (case ((let sem_Expr_SConst_3 :: T_Expr_3
                                                                     sem_Expr_SConst_3 =
                                                                         (\ _lhsIgenerDataInfoMp
                                                                            _lhsIkiVarMp
                                                                            _lhsIopts
                                                                            _lhsIpolGam
                                                                            _lhsIpolVarMp
                                                                            _lhsIpredScope
                                                                            _lhsItyGam
                                                                            _lhsItyKiGam
                                                                            _lhsItyKiGlobFreeTvarS ->
                                                                              _lhsIgenerDataInfoMp `seq`
                                                                              (_lhsIkiVarMp `seq`
                                                                               (_lhsIopts `seq`
                                                                                (_lhsIpolGam `seq`
                                                                                 (_lhsIpolVarMp `seq`
                                                                                  (_lhsIpredScope `seq`
                                                                                   (_lhsItyGam `seq`
                                                                                    (_lhsItyKiGam `seq`
                                                                                     (_lhsItyKiGlobFreeTvarS `seq`
                                                                                      ((case (_lhsIgenerDataInfoMp) of
                                                                                        { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                        (case (_lhsIkiVarMp) of
                                                                                         { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                         (case (_lhsIpolVarMp) of
                                                                                          { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                          (case ((let sem_Expr_SConst_4 :: T_Expr_4
                                                                                                      sem_Expr_SConst_4 =
                                                                                                          (\ _lhsIclGam
                                                                                                             _lhsIfinKiVarMp
                                                                                                             _lhsIfinTyKiGam
                                                                                                             _lhsIgathDataGam
                                                                                                             _lhsItyTyTySigFreeTvarS ->
                                                                                                               _lhsIclGam `seq`
                                                                                                               (_lhsIfinKiVarMp `seq`
                                                                                                                (_lhsIfinTyKiGam `seq`
                                                                                                                 (_lhsIgathDataGam `seq`
                                                                                                                  (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                   ((case (_lhsIgathDataGam) of
                                                                                                                     { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                     (case ((let sem_Expr_SConst_5 :: T_Expr_5
                                                                                                                                 sem_Expr_SConst_5 =
                                                                                                                                     (\ _lhsIdataGam ->
                                                                                                                                          _lhsIdataGam `seq`
                                                                                                                                          ((case (Seq.empty) of
                                                                                                                                            { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                            (case (defaultFIEnv
                                                                                                                                                       { feEHCOpts = _lhsIopts
                                                                                                                                                       , fePredScope = _lhsIpredScope
                                                                                                                                                       , feTyGam = _lhsItyGam
                                                                                                                                                       , fePolGam = _lhsIpolGam
                                                                                                                                                       , feRange = _range
                                                                                                                                                       }) of
                                                                                                                                             { _fe | _fe `seq` (True) ->
                                                                                                                                             (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                              { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                              (case (_chrFIIn) of
                                                                                                                                               { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                               (case (Seq.empty) of
                                                                                                                                                { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                (case (emptyGam) of
                                                                                                                                                 { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                 (case ((let sem_Expr_SConst_6 :: T_Expr_6
                                                                                                                                                             sem_Expr_SConst_6 =
                                                                                                                                                                 (\ _lhsIchrStore
                                                                                                                                                                    _lhsIclDfGam
                                                                                                                                                                    _lhsIfiOpts
                                                                                                                                                                    _lhsIknTy
                                                                                                                                                                    _lhsItvKiVarMp
                                                                                                                                                                    _lhsItyTyGlobFreeTvarS
                                                                                                                                                                    _lhsItyVarMp
                                                                                                                                                                    _lhsIvalGam
                                                                                                                                                                    _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                      _lhsIchrStore `seq`
                                                                                                                                                                      (_lhsIclDfGam `seq`
                                                                                                                                                                       (_lhsIfiOpts `seq`
                                                                                                                                                                        (_lhsIknTy `seq`
                                                                                                                                                                         (_lhsItvKiVarMp `seq`
                                                                                                                                                                          (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                           (_lhsItyVarMp `seq`
                                                                                                                                                                            (_lhsIvalGam `seq`
                                                                                                                                                                             (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                              ((case (Map.empty) of
                                                                                                                                                                                { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                (case (Map.empty) of
                                                                                                                                                                                 { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                 (case (emptyGam) of
                                                                                                                                                                                  { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                  (case (Set.empty) of
                                                                                                                                                                                   { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                   (case (__tup141) of
                                                                                                                                                                                    { (_,_lUniq,_) | _lUniq `seq` (True) ->
                                                                                                                                                                                    (case (tyString _lhsIopts) of
                                                                                                                                                                                     { _constTy | _constTy `seq` (True) ->
                                                                                                                                                                                     (case (ehcOptTrace _lhsIopts "Expr.?Const.loc.fo_" $
                                                                                                                                                                                            fitsIn _lhsIfiOpts _fe _lUniq _lhsItyVarMp _constTy _lhsIknTy) of
                                                                                                                                                                                      { _fo_ | _fo_ `seq` (True) ->
                                                                                                                                                                                      (case (foTy _fo_) of
                                                                                                                                                                                       { _ty | _ty `seq` (True) ->
                                                                                                                                                                                       (case (_ty) of
                                                                                                                                                                                        { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                        (case (foVarMp _fo_ `varUpd` _lhsItyVarMp) of
                                                                                                                                                                                         { _tyVarMp | _tyVarMp `seq` (True) ->
                                                                                                                                                                                         (case (_tyVarMp) of
                                                                                                                                                                                          { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                          (case ((let sem_Expr_SConst_7 :: T_Expr_7
                                                                                                                                                                                                      sem_Expr_SConst_7 =
                                                                                                                                                                                                          (\ _lhsIcSubst
                                                                                                                                                                                                             _lhsIchrEvidBindMp
                                                                                                                                                                                                             _lhsIchrScopeBindMp
                                                                                                                                                                                                             _lhsIexprCtxt
                                                                                                                                                                                                             _lhsIfinTyVarMp
                                                                                                                                                                                                             _lhsIfinValGam
                                                                                                                                                                                                             _lhsImoduleNm
                                                                                                                                                                                                             _lhsIrangeMp
                                                                                                                                                                                                             _lhsIsysfEnv
                                                                                                                                                                                                             _lhsItr ->
                                                                                                                                                                                                               _lhsIcSubst `seq`
                                                                                                                                                                                                               (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                 (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                  (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                   (_lhsIfinValGam `seq`
                                                                                                                                                                                                                    (_lhsImoduleNm `seq`
                                                                                                                                                                                                                     (_lhsIrangeMp `seq`
                                                                                                                                                                                                                      (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                       (_lhsItr `seq`
                                                                                                                                                                                                                        ((case (Seq.empty) of
                                                                                                                                                                                                                          { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                          (case ([]) of
                                                                                                                                                                                                                           { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                           (case ([]) of
                                                                                                                                                                                                                            { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                            (case (__tup141) of
                                                                                                                                                                                                                             { (_,_,_lUniq_cexpr) | _lUniq_cexpr `seq` (True) ->
                                                                                                                                                                                                                             (case (acoreBuiltinString _lhsIopts str_) of
                                                                                                                                                                                                                              { _cexprBase | _cexprBase `seq` (True) ->
                                                                                                                                                                                                                              (case (foAppLRCoeAsSubst _lhsIopts _lUniq_cexpr _fo_ _lhsIfinTyVarMp _lhsIcSubst $
                                                                                                                                                                                                                                     _cexprBase) of
                                                                                                                                                                                                                               { __tup140 | __tup140 `seq` (True) ->
                                                                                                                                                                                                                               (case (__tup140) of
                                                                                                                                                                                                                                { (_cexpr,_) | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                (case (_cexpr) of
                                                                                                                                                                                                                                 { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                 (case (hsnUnknown) of
                                                                                                                                                                                                                                  { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                  (case (pp (show str_)) of
                                                                                                                                                                                                                                   { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                   (case (_pp) of
                                                                                                                                                                                                                                    { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                    (case ([]) of
                                                                                                                                                                                                                                     { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                     (case (__tup140) of
                                                                                                                                                                                                                                      { (_,_cexprCSubst) | _cexprCSubst `seq` (True) ->
                                                                                                                                                                                                                                      (case (cSubstApp _lhsIcSubst _cexprCSubst) of
                                                                                                                                                                                                                                       { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                       (case (Set.empty) of
                                                                                                                                                                                                                                        { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                        (case (_cexpr) of
                                                                                                                                                                                                                                         { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                         (case (rngLift _range mkNestErr' _pp [foErrSq _fo_]) of
                                                                                                                                                                                                                                          { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                          (case ([]) of
                                                                                                                                                                                                                                           { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                           (case ([]) of
                                                                                                                                                                                                                                            { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                            (case (emptyGam) of
                                                                                                                                                                                                                                             { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                             (case (Seq.empty) of
                                                                                                                                                                                                                                              { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                              (case (emptyGam) of
                                                                                                                                                                                                                                               { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                               (case (Map.empty) of
                                                                                                                                                                                                                                                { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                (case (Map.empty) of
                                                                                                                                                                                                                                                 { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                 (case (emptyGam) of
                                                                                                                                                                                                                                                  { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                  (case (emptyVarMp) of
                                                                                                                                                                                                                                                   { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                   (case (emptyGam) of
                                                                                                                                                                                                                                                    { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                    (case (emptyGam) of
                                                                                                                                                                                                                                                     { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                     (case (False) of
                                                                                                                                                                                                                                                      { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                      (case ([]) of
                                                                                                                                                                                                                                                       { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                       (case (_lamArgPPL) of
                                                                                                                                                                                                                                                        { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                        (case (_pp) of
                                                                                                                                                                                                                                                         { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                         (case (_lamBodyPP) of
                                                                                                                                                                                                                                                          { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                          (case (_cexpr) of
                                                                                                                                                                                                                                                           { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                           (case ([]) of
                                                                                                                                                                                                                                                            { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                            (case ([]) of
                                                                                                                                                                                                                                                             { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                             (case ([]) of
                                                                                                                                                                                                                                                              { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                              (case (Set.empty) of
                                                                                                                                                                                                                                                               { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                               (case (_pp) of
                                                                                                                                                                                                                                                                { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                (case (trppEmpty) of
                                                                                                                                                                                                                                                                 { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                 (case (ppNestTrPP ["Expr","SConst"] [_pp] [] _trppHere) of
                                                                                                                                                                                                                                                                  { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                  (case (trppEmpty) of
                                                                                                                                                                                                                                                                   { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                   ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                  in  sem_Expr_SConst_7)) of
                                                                                                                                                                                           { ( sem_Expr_7) | True ->
                                                                                                                                                                                           ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                         in  sem_Expr_SConst_6)) of
                                                                                                                                                  { ( sem_Expr_6) | True ->
                                                                                                                                                  ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) })))
                                                                                                                             in  sem_Expr_SConst_5)) of
                                                                                                                      { ( sem_Expr_5) | True ->
                                                                                                                      ( _lhsOgathDataGam,sem_Expr_5) }) })))))))
                                                                                                  in  sem_Expr_SConst_4)) of
                                                                                           { ( sem_Expr_4) | True ->
                                                                                           ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) })))))))))))
                                                                 in  sem_Expr_SConst_3)) of
                                                          { ( sem_Expr_3) | True ->
                                                          ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }))))))
                                       in  sem_Expr_SConst_2)) of
                                { ( sem_Expr_2) | True ->
                                ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) })))
              in  sem_Expr_SConst_1)) of
       { ( sem_Expr_1) | True ->
       ( _lhsOrange,sem_Expr_1) }) }) })

sem_Expr_Case :: Range ->
                 T_Expr ->
                 T_CaseAlts ->
                 (Maybe UIDS) ->
                 UIDS ->
                 Bool ->
                 T_Expr

sem_Expr_Case hsrange_ expr_ alts_ mbCaseIds_ caseFailS_ isTupOfArg_ | hsrange_ `seq` (expr_ `seq` (alts_ `seq` (mbCaseIds_ `seq` (caseFailS_ `seq` (isTupOfArg_ `seq` (True)))))) =
    (case (alts_) of
     { ( _altsIrange,alts_1) | True ->
         (case (expr_) of
          { ( _exprIrange,expr_1) | True ->
              (case (rangeUnions [hsrange_, _exprIrange   , _altsIrange  ]) of
               { _range | _range `seq` (True) ->
               (case (_range) of
                { _lhsOrange | _lhsOrange `seq` (True) ->
                (case ((let sem_Expr_Case_1 :: T_Expr_1
                            sem_Expr_Case_1 =
                                (\ _lhsIgUniq ->
                                     _lhsIgUniq `seq`
                                     ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq2) -> (__cont,lUniq2)} )) of
                                       { __tup142 | __tup142 `seq` (True) ->
                                       (case (__tup142) of
                                        { (_exprOgUniq,_) | _exprOgUniq `seq` (True) ->
                                        (case (expr_1 _exprOgUniq) of
                                         { ( _exprIgUniq,_exprIhasInstDecl,expr_2) | True ->
                                             (case (_exprIgUniq) of
                                              { _altsOgUniq | _altsOgUniq `seq` (True) ->
                                              (case (alts_1 _altsOgUniq) of
                                               { ( _altsIgUniq,alts_2) | True ->
                                                   (case (_altsIgUniq) of
                                                    { _lhsOgUniq | _lhsOgUniq `seq` (True) ->
                                                    (case (False) of
                                                     { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                                                     (case ((let sem_Expr_Case_2 :: T_Expr_2
                                                                 sem_Expr_Case_2 =
                                                                     (\ _lhsIisFirstLet
                                                                        _lhsIkiGam
                                                                        _lhsIlexLev
                                                                        _lhsIpredSameScopeCounter ->
                                                                          _lhsIisFirstLet `seq`
                                                                          (_lhsIkiGam `seq`
                                                                           (_lhsIlexLev `seq`
                                                                            (_lhsIpredSameScopeCounter `seq`
                                                                             ((case (_lhsIpredSameScopeCounter) of
                                                                               { _exprOpredSameScopeCounter | _exprOpredSameScopeCounter `seq` (True) ->
                                                                               (case (_lhsIlexLev) of
                                                                                { _exprOlexLev | _exprOlexLev `seq` (True) ->
                                                                                (case (_lhsIkiGam) of
                                                                                 { _exprOkiGam | _exprOkiGam `seq` (True) ->
                                                                                 (case (True) of
                                                                                  { _isFirstLet | _isFirstLet `seq` (True) ->
                                                                                  (case (_isFirstLet) of
                                                                                   { _exprOisFirstLet | _exprOisFirstLet `seq` (True) ->
                                                                                   (case (expr_2 _exprOisFirstLet _exprOkiGam _exprOlexLev _exprOpredSameScopeCounter) of
                                                                                    { ( _exprIpredSameScopeCounter,expr_3) | True ->
                                                                                        (case (_exprIpredSameScopeCounter) of
                                                                                         { _altsOpredSameScopeCounter | _altsOpredSameScopeCounter `seq` (True) ->
                                                                                         (case (_lhsIlexLev) of
                                                                                          { _altsOlexLev | _altsOlexLev `seq` (True) ->
                                                                                          (case (_lhsIkiGam) of
                                                                                           { _altsOkiGam | _altsOkiGam `seq` (True) ->
                                                                                           (case (alts_2 _altsOkiGam _altsOlexLev _altsOpredSameScopeCounter) of
                                                                                            { ( _altsIpredSameScopeCounter,alts_3) | True ->
                                                                                                (case (_altsIpredSameScopeCounter) of
                                                                                                 { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                                                                 (case ((let sem_Expr_Case_3 :: T_Expr_3
                                                                                                             sem_Expr_Case_3 =
                                                                                                                 (\ _lhsIgenerDataInfoMp
                                                                                                                    _lhsIkiVarMp
                                                                                                                    _lhsIopts
                                                                                                                    _lhsIpolGam
                                                                                                                    _lhsIpolVarMp
                                                                                                                    _lhsIpredScope
                                                                                                                    _lhsItyGam
                                                                                                                    _lhsItyKiGam
                                                                                                                    _lhsItyKiGlobFreeTvarS ->
                                                                                                                      _lhsIgenerDataInfoMp `seq`
                                                                                                                      (_lhsIkiVarMp `seq`
                                                                                                                       (_lhsIopts `seq`
                                                                                                                        (_lhsIpolGam `seq`
                                                                                                                         (_lhsIpolVarMp `seq`
                                                                                                                          (_lhsIpredScope `seq`
                                                                                                                           (_lhsItyGam `seq`
                                                                                                                            (_lhsItyKiGam `seq`
                                                                                                                             (_lhsItyKiGlobFreeTvarS `seq`
                                                                                                                              ((case (_lhsItyKiGlobFreeTvarS) of
                                                                                                                                { _altsOtyKiGlobFreeTvarS | _altsOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                                (case (_lhsItyKiGam) of
                                                                                                                                 { _altsOtyKiGam | _altsOtyKiGam `seq` (True) ->
                                                                                                                                 (case (_lhsItyGam) of
                                                                                                                                  { _altsOtyGam | _altsOtyGam `seq` (True) ->
                                                                                                                                  (case (_lhsIpredScope) of
                                                                                                                                   { _predScope | _predScope `seq` (True) ->
                                                                                                                                   (case (_predScope) of
                                                                                                                                    { _altsOpredScope | _altsOpredScope `seq` (True) ->
                                                                                                                                    (case (_lhsItyKiGlobFreeTvarS) of
                                                                                                                                     { _exprOtyKiGlobFreeTvarS | _exprOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                                     (case (_lhsItyKiGam) of
                                                                                                                                      { _exprOtyKiGam | _exprOtyKiGam `seq` (True) ->
                                                                                                                                      (case (_lhsItyGam) of
                                                                                                                                       { _exprOtyGam | _exprOtyGam `seq` (True) ->
                                                                                                                                       (case (_predScope) of
                                                                                                                                        { _exprOpredScope | _exprOpredScope `seq` (True) ->
                                                                                                                                        (case (_lhsIpolVarMp) of
                                                                                                                                         { _exprOpolVarMp | _exprOpolVarMp `seq` (True) ->
                                                                                                                                         (case (_lhsIpolGam) of
                                                                                                                                          { _exprOpolGam | _exprOpolGam `seq` (True) ->
                                                                                                                                          (case (_lhsIopts) of
                                                                                                                                           { _exprOopts | _exprOopts `seq` (True) ->
                                                                                                                                           (case (_lhsIkiVarMp) of
                                                                                                                                            { _exprOkiVarMp | _exprOkiVarMp `seq` (True) ->
                                                                                                                                            (case (_lhsIgenerDataInfoMp) of
                                                                                                                                             { _exprOgenerDataInfoMp | _exprOgenerDataInfoMp `seq` (True) ->
                                                                                                                                             (case (expr_3 _exprOgenerDataInfoMp _exprOkiVarMp _exprOopts _exprOpolGam _exprOpolVarMp _exprOpredScope _exprOtyGam _exprOtyKiGam _exprOtyKiGlobFreeTvarS) of
                                                                                                                                              { ( _exprIgenerDataInfoMp,_exprIkiVarMp,_exprIpolVarMp,expr_4) | True ->
                                                                                                                                                  (case (_exprIpolVarMp) of
                                                                                                                                                   { _altsOpolVarMp | _altsOpolVarMp `seq` (True) ->
                                                                                                                                                   (case (_lhsIpolGam) of
                                                                                                                                                    { _altsOpolGam | _altsOpolGam `seq` (True) ->
                                                                                                                                                    (case (_lhsIopts) of
                                                                                                                                                     { _altsOopts | _altsOopts `seq` (True) ->
                                                                                                                                                     (case (_exprIkiVarMp) of
                                                                                                                                                      { _altsOkiVarMp | _altsOkiVarMp `seq` (True) ->
                                                                                                                                                      (case (_exprIgenerDataInfoMp) of
                                                                                                                                                       { _altsOgenerDataInfoMp | _altsOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                       (case (alts_3 _altsOgenerDataInfoMp _altsOkiVarMp _altsOopts _altsOpolGam _altsOpolVarMp _altsOpredScope _altsOtyGam _altsOtyKiGam _altsOtyKiGlobFreeTvarS) of
                                                                                                                                                        { ( _altsIgenerDataInfoMp,_altsIkiVarMp,_altsIpolVarMp,alts_4) | True ->
                                                                                                                                                            (case (_altsIgenerDataInfoMp) of
                                                                                                                                                             { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                             (case (_altsIkiVarMp) of
                                                                                                                                                              { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                                                                                              (case (_altsIpolVarMp) of
                                                                                                                                                               { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                                                                                               (case ((let sem_Expr_Case_4 :: T_Expr_4
                                                                                                                                                                           sem_Expr_Case_4 =
                                                                                                                                                                               (\ _lhsIclGam
                                                                                                                                                                                  _lhsIfinKiVarMp
                                                                                                                                                                                  _lhsIfinTyKiGam
                                                                                                                                                                                  _lhsIgathDataGam
                                                                                                                                                                                  _lhsItyTyTySigFreeTvarS ->
                                                                                                                                                                                    _lhsIclGam `seq`
                                                                                                                                                                                    (_lhsIfinKiVarMp `seq`
                                                                                                                                                                                     (_lhsIfinTyKiGam `seq`
                                                                                                                                                                                      (_lhsIgathDataGam `seq`
                                                                                                                                                                                       (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                                                                                        ((case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                          { _exprOtyTyTySigFreeTvarS | _exprOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                          (case (_lhsIgathDataGam) of
                                                                                                                                                                                           { _exprOgathDataGam | _exprOgathDataGam `seq` (True) ->
                                                                                                                                                                                           (case (_lhsIfinTyKiGam) of
                                                                                                                                                                                            { _exprOfinTyKiGam | _exprOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                            (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                             { _exprOfinKiVarMp | _exprOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                             (case (_lhsIclGam) of
                                                                                                                                                                                              { _exprOclGam | _exprOclGam `seq` (True) ->
                                                                                                                                                                                              (case (expr_4 _exprOclGam _exprOfinKiVarMp _exprOfinTyKiGam _exprOgathDataGam _exprOtyTyTySigFreeTvarS) of
                                                                                                                                                                                               { ( _exprIgathDataGam,expr_5) | True ->
                                                                                                                                                                                                   (case (_exprIgathDataGam) of
                                                                                                                                                                                                    { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                                                                                                    (case ((let sem_Expr_Case_5 :: T_Expr_5
                                                                                                                                                                                                                sem_Expr_Case_5 =
                                                                                                                                                                                                                    (\ _lhsIdataGam ->
                                                                                                                                                                                                                         _lhsIdataGam `seq`
                                                                                                                                                                                                                         ((case (Seq.empty) of
                                                                                                                                                                                                                           { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                                                                                                           (case (defaultFIEnv
                                                                                                                                                                                                                                      { feEHCOpts = _lhsIopts
                                                                                                                                                                                                                                      , fePredScope = _lhsIpredScope
                                                                                                                                                                                                                                      , feTyGam = _lhsItyGam
                                                                                                                                                                                                                                      , fePolGam = _lhsIpolGam
                                                                                                                                                                                                                                      , feRange = _range
                                                                                                                                                                                                                                      }) of
                                                                                                                                                                                                                            { _fe | _fe `seq` (True) ->
                                                                                                                                                                                                                            (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                                                                                                             { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                                                                                                             (case (_chrFIIn) of
                                                                                                                                                                                                                              { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                                                                                                              (case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                                                               { _altsOtyTyTySigFreeTvarS | _altsOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                               (case (_lhsIfinTyKiGam) of
                                                                                                                                                                                                                                { _altsOfinTyKiGam | _altsOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                                                                 { _altsOfinKiVarMp | _altsOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                 (case (_lhsIdataGam) of
                                                                                                                                                                                                                                  { _altsOdataGam | _altsOdataGam `seq` (True) ->
                                                                                                                                                                                                                                  (case (_lhsIclGam) of
                                                                                                                                                                                                                                   { _altsOclGam | _altsOclGam `seq` (True) ->
                                                                                                                                                                                                                                   (case (_lhsIdataGam) of
                                                                                                                                                                                                                                    { _exprOdataGam | _exprOdataGam `seq` (True) ->
                                                                                                                                                                                                                                    (case (alts_4 _altsOclGam _altsOdataGam _altsOfinKiVarMp _altsOfinTyKiGam _altsOtyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                     { ( _altsIchrInstDeclSq,alts_5) | True ->
                                                                                                                                                                                                                                         (case (expr_5 _exprOdataGam) of
                                                                                                                                                                                                                                          { ( _exprIchrClassDeclSq,_exprIchrFIIn,_exprIchrInstDeclSq,_exprIgathClDfGam,expr_6) | True ->
                                                                                                                                                                                                                                              (case (_exprIchrInstDeclSq `Seq.union` _altsIchrInstDeclSq) of
                                                                                                                                                                                                                                               { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                                                                                                               (case (emptyGam) of
                                                                                                                                                                                                                                                { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                                                                                                                (case ((let sem_Expr_Case_6 :: T_Expr_6
                                                                                                                                                                                                                                                            sem_Expr_Case_6 =
                                                                                                                                                                                                                                                                (\ _lhsIchrStore
                                                                                                                                                                                                                                                                   _lhsIclDfGam
                                                                                                                                                                                                                                                                   _lhsIfiOpts
                                                                                                                                                                                                                                                                   _lhsIknTy
                                                                                                                                                                                                                                                                   _lhsItvKiVarMp
                                                                                                                                                                                                                                                                   _lhsItyTyGlobFreeTvarS
                                                                                                                                                                                                                                                                   _lhsItyVarMp
                                                                                                                                                                                                                                                                   _lhsIvalGam
                                                                                                                                                                                                                                                                   _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                                                                                                                     _lhsIchrStore `seq`
                                                                                                                                                                                                                                                                     (_lhsIclDfGam `seq`
                                                                                                                                                                                                                                                                      (_lhsIfiOpts `seq`
                                                                                                                                                                                                                                                                       (_lhsIknTy `seq`
                                                                                                                                                                                                                                                                        (_lhsItvKiVarMp `seq`
                                                                                                                                                                                                                                                                         (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                                                          (_lhsItyVarMp `seq`
                                                                                                                                                                                                                                                                           (_lhsIvalGam `seq`
                                                                                                                                                                                                                                                                            (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                                                             ((case (_lhsIknTy) of
                                                                                                                                                                                                                                                                               { _altsOknTy | _altsOknTy `seq` (True) ->
                                                                                                                                                                                                                                                                               (case (_lhsIvalGam) of
                                                                                                                                                                                                                                                                                { _altsOvalGam | _altsOvalGam `seq` (True) ->
                                                                                                                                                                                                                                                                                (case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                 { _exprOvalTyGlobFreeTvarS | _exprOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                 (case (_lhsIvalGam) of
                                                                                                                                                                                                                                                                                  { _exprOvalGam | _exprOvalGam `seq` (True) ->
                                                                                                                                                                                                                                                                                  (case (_lhsItyVarMp) of
                                                                                                                                                                                                                                                                                   { _exprOtyVarMp | _exprOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                   (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                    { _exprOtyTyGlobFreeTvarS | _exprOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                    (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                                                                     { _exprOtvKiVarMp | _exprOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                     (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                                                                      { _exprOclDfGam | _exprOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                      (case (_lhsIchrStore) of
                                                                                                                                                                                                                                                                                       { _exprOchrStore | _exprOchrStore `seq` (True) ->
                                                                                                                                                                                                                                                                                       (case (__tup142) of
                                                                                                                                                                                                                                                                                        { (_,_lUniq2) | _lUniq2 `seq` (True) ->
                                                                                                                                                                                                                                                                                        (case ((if isTupOfArg_ then strongFIOpts else weakFIOpts)) of
                                                                                                                                                                                                                                                                                         { _exprFiOpts | _exprFiOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                         (case (_exprFiOpts) of
                                                                                                                                                                                                                                                                                          { _exprOfiOpts | _exprOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                          (case (mkTyVar _lUniq2) of
                                                                                                                                                                                                                                                                                           { _exprOknTy | _exprOknTy `seq` (True) ->
                                                                                                                                                                                                                                                                                           (case (expr_6 _exprOchrStore _exprOclDfGam _exprOfiOpts _exprOknTy _exprOtvKiVarMp _exprOtyTyGlobFreeTvarS _exprOtyVarMp _exprOvalGam _exprOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                            { ( _exprIgathCnstrMp,_exprIgathRangeMp,_exprIgathValGam,_exprInoLetQuantTyVarIdS,_exprIty,_exprItyVarMp,expr_7) | True ->
                                                                                                                                                                                                                                                                                                (case (_exprItyVarMp) of
                                                                                                                                                                                                                                                                                                 { _altsOpatTyVarMp | _altsOpatTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                 (case (_exprIty) of
                                                                                                                                                                                                                                                                                                  { _altsOknPatTy | _altsOknPatTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                  (case (alts_5 _altsOknPatTy _altsOknTy _altsOpatTyVarMp _altsOvalGam) of
                                                                                                                                                                                                                                                                                                   { ( _altsIpatTyVarMp,_altsIty,alts_6) | True ->
                                                                                                                                                                                                                                                                                                       (case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                        { _altsOvalTyGlobFreeTvarS | _altsOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                        (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                         { _altsOtyTyGlobFreeTvarS | _altsOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                         (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                                                                                          { _altsOtvKiVarMp | _altsOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                          (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                                                                                           { _altsOclDfGam | _altsOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                           (case (_lhsIchrStore) of
                                                                                                                                                                                                                                                                                                            { _altsOchrStore | _altsOchrStore `seq` (True) ->
                                                                                                                                                                                                                                                                                                            (case (_lhsIfiOpts
                                                                                                                                                                                                                                                                                                                     { fioBindRFirst = False }) of
                                                                                                                                                                                                                                                                                                             { _altsFiOpts | _altsFiOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                                             (case (_altsFiOpts) of
                                                                                                                                                                                                                                                                                                              { _altsOfiOpts | _altsOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                                              (case (_altsIpatTyVarMp) of
                                                                                                                                                                                                                                                                                                               { _altsOtyVarMp | _altsOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                               (case (alts_6 _altsOchrStore _altsOclDfGam _altsOfiOpts _altsOtvKiVarMp _altsOtyTyGlobFreeTvarS _altsOtyVarMp _altsOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                { ( _altsIgathCnstrMp,_altsIgathRangeMp,_altsItyVarMp,alts_7) | True ->
                                                                                                                                                                                                                                                                                                                    (case (_exprIgathCnstrMp `cnstrMpUnion` _altsIgathCnstrMp) of
                                                                                                                                                                                                                                                                                                                     { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                     (case (_exprIgathRangeMp `Map.union` _altsIgathRangeMp) of
                                                                                                                                                                                                                                                                                                                      { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                      (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                       { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                       (case (_exprInoLetQuantTyVarIdS) of
                                                                                                                                                                                                                                                                                                                        { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                        (case (_altsIty) of
                                                                                                                                                                                                                                                                                                                         { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                                                                                                                                                         (case (_altsItyVarMp) of
                                                                                                                                                                                                                                                                                                                          { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                          (case ((let sem_Expr_Case_7 :: T_Expr_7
                                                                                                                                                                                                                                                                                                                                      sem_Expr_Case_7 =
                                                                                                                                                                                                                                                                                                                                          (\ _lhsIcSubst
                                                                                                                                                                                                                                                                                                                                             _lhsIchrEvidBindMp
                                                                                                                                                                                                                                                                                                                                             _lhsIchrScopeBindMp
                                                                                                                                                                                                                                                                                                                                             _lhsIexprCtxt
                                                                                                                                                                                                                                                                                                                                             _lhsIfinTyVarMp
                                                                                                                                                                                                                                                                                                                                             _lhsIfinValGam
                                                                                                                                                                                                                                                                                                                                             _lhsImoduleNm
                                                                                                                                                                                                                                                                                                                                             _lhsIrangeMp
                                                                                                                                                                                                                                                                                                                                             _lhsIsysfEnv
                                                                                                                                                                                                                                                                                                                                             _lhsItr ->
                                                                                                                                                                                                                                                                                                                                               _lhsIcSubst `seq`
                                                                                                                                                                                                                                                                                                                                               (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                                                                                                                                                (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                                                                                                                                                 (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                                                                                                                                                  (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                                                                                                                                                   (_lhsIfinValGam `seq`
                                                                                                                                                                                                                                                                                                                                                    (_lhsImoduleNm `seq`
                                                                                                                                                                                                                                                                                                                                                     (_lhsIrangeMp `seq`
                                                                                                                                                                                                                                                                                                                                                      (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                                                                                                                                                       (_lhsItr `seq`
                                                                                                                                                                                                                                                                                                                                                        ((case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                                                                          { _altsOsysfEnv | _altsOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                          (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                                                                           { _altsOrangeMp | _altsOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                           (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                                                                            { _altsOfinValGam | _altsOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                            (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                             { _altsOfinTyVarMp | _altsOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                             (case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                                                                              { _exprOsysfEnv | _exprOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                              (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                                                                               { _exprOrangeMp | _exprOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                               (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                                                                                { _exprOfinValGam | _exprOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                 { _exprOfinTyVarMp | _exprOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                 (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                                  { _altsOtr | _altsOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                  (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                                   { _altsOmoduleNm | _altsOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                   (case (_lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                    { _altsOchrScopeBindMp | _altsOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                    (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                     { _altsOchrEvidBindMp | _altsOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                     (case (_lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                      { _exprOchrScopeBindMp | _exprOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                      (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                       { _exprOchrEvidBindMp | _exprOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                       (case (_lhsIcSubst) of
                                                                                                                                                                                                                                                                                                                                                                        { _exprOcSubst | _exprOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                        (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                                         { _exprOtr | _exprOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                         (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                                          { _exprOmoduleNm | _exprOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                          (case (ExprCtxt_Internal) of
                                                                                                                                                                                                                                                                                                                                                                           { _exprCtxt | _exprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                           (case (_exprCtxt) of
                                                                                                                                                                                                                                                                                                                                                                            { _exprOexprCtxt | _exprOexprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                            (case (expr_7 _exprOcSubst _exprOchrEvidBindMp _exprOchrScopeBindMp _exprOexprCtxt _exprOfinTyVarMp _exprOfinValGam _exprOmoduleNm _exprOrangeMp _exprOsysfEnv _exprOtr) of
                                                                                                                                                                                                                                                                                                                                                                             { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIletValMainCBindL,_exprIorphanS,_exprIpp,_exprIppAST,_exprItrpp) | True ->
                                                                                                                                                                                                                                                                                                                                                                                 (case (_exprIcSubst) of
                                                                                                                                                                                                                                                                                                                                                                                  { _altsOcSubst | _altsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                  (case (alts_7 _altsOcSubst _altsOchrEvidBindMp _altsOchrScopeBindMp _altsOfinTyVarMp _altsOfinValGam _altsOmoduleNm _altsOrangeMp _altsOsysfEnv _altsOtr) of
                                                                                                                                                                                                                                                                                                                                                                                   { ( _altsIallErrSq,_altsIcSubst,_altsIerrSq,_altsIgathMentrelFilterMp,_altsIgathTvKiVarMp,_altsIpatTy,_altsIpp,_altsIppAST,_altsIppL,_altsIraltL,_altsIraltL',_altsItrpp) | True ->
                                                                                                                                                                                                                                                                                                                                                                                       (case (_exprIallErrSq `Seq.union` _altsIallErrSq) of
                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                        (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                         (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                          (case (maybe (Set.singleton uidStart) id mbCaseIds_) of
                                                                                                                                                                                                                                                                                                                                                                                           { _caseIds | _caseIds `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                           (case ((emptyRCEEnv _lhsIopts)
                                                                                                                                                                                                                                                                                                                                                                                                              { rceValGam  = _lhsIvalGam, rceDataGam = _lhsIdataGam, rceTyVarMp = _lhsIfinTyVarMp
                                                                                                                                                                                                                                                                                                                                                                                                              , rceCaseIds = _caseIds
                                                                                                                                                                                                                                                                                                                                                                                                              }) of
                                                                                                                                                                                                                                                                                                                                                                                            { _rceEnv | _rceEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                            (case (_lhsIfinTyVarMp `varUpd` _exprIty) of
                                                                                                                                                                                                                                                                                                                                                                                             { _finalTyExpr | _finalTyExpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                             (case (tyCanonicFFI (emptyTyBetaRedEnv' _fe) _finalTyExpr) of
                                                                                                                                                                                                                                                                                                                                                                                              { _finalTyExprExpanded | _finalTyExprExpanded `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                              (case ((appDbg "{Expr,PatExpr,Decl,DataFieldExpr}.sysfty not implemented" :: SysfTy)) of
                                                                                                                                                                                                                                                                                                                                                                                               { _sysfty | _sysfty `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                               (case (mkCTy _lhsIopts _finalTyExprExpanded _sysfty) of
                                                                                                                                                                                                                                                                                                                                                                                                { _acorety | _acorety `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                (case (let (ns,bs,as)
                                                                                                                                                                                                                                                                                                                                                                                                             = if isTupOfArg_
                                                                                                                                                                                                                                                                                                                                                                                                               then let ns = [ acbrefNm ref | (CExpr_Var ref) <- fuL2ExprL (reverse _exprIfuCExprL) ]
                                                                                                                                                                                                                                                                                                                                                                                                                    in  (zip ns (tyProdArgs _finalTyExprExpanded),[],_altsIraltL')
                                                                                                                                                                                                                                                                                                                                                                                                               else let n = uidHNm _lUniq2
                                                                                                                                                                                                                                                                                                                                                                                                                    in  ([(n,_finalTyExprExpanded)],[acoreBind1Ty n _acorety _exprIcexpr],_altsIraltL)
                                                                                                                                                                                                                                                                                                                                                                                                       in  acoreLet CBindCateg_Plain bs (rceMatchTy _rceEnv (assocLMapElt (SysF.ty2TyC _lhsIopts _lhsIsysfEnv) ns) as)) of
                                                                                                                                                                                                                                                                                                                                                                                                 { _cexpr | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                 (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                  (case (hsnUnknown) of
                                                                                                                                                                                                                                                                                                                                                                                                   { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                   (case (let pps e s = ppCmt $ e >#< (ppCommas' $ Set.toList s)
                                                                                                                                                                                                                                                                                                                                                                                                          in  maybe empty (\s -> pps "mbCaseIds" s) mbCaseIds_
                                                                                                                                                                                                                                                                                                                                                                                                              >|< (if Set.null caseFailS_ then empty else pps "caseFailS" caseFailS_)) of
                                                                                                                                                                                                                                                                                                                                                                                                    { _extraPP | _extraPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                    (case ("case"  >#< _exprIpp >#< "of"
                                                                                                                                                                                                                                                                                                                                                                                                                   >-< indent 2 (vlist _altsIppL)
                                                                                                                                                                                                                                                                                                                                                                                                                   >-< _extraPP) of
                                                                                                                                                                                                                                                                                                                                                                                                     { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                     (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                      { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                      (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                       { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                       (case (_altsIcSubst) of
                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                        (case (caseFailS_) of
                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                         (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                          (case (_exprIerrSq `Seq.union` _altsIerrSq) of
                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                           (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                            (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                             (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                              (case (_exprIgathHiddenExports) of
                                                                                                                                                                                                                                                                                                                                                                                                               { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                               (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                (case (_exprIgathLamMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                 (case (_exprIgathMentrelFilterMp `mentrelFilterMpUnion` _altsIgathMentrelFilterMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                  (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                   { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_exprIgathTvKiVarMp `varmpUnion` _altsIgathTvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                    { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                    (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                     { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                     (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                      { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                      (case (False) of
                                                                                                                                                                                                                                                                                                                                                                                                                       { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                       (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                        { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_lamArgPPL) of
                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                         (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                                          { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_lamBodyPP) of
                                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                           (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                            (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                             (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                              (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                               { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                               (case (Set.empty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                  { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (ppNestTrPP ["Expr","Case"] [] [_exprIppAST,_altsIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                                                                   { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_exprItrpp >< _altsItrpp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                    { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                    ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                                                                                                                                                  in  sem_Expr_Case_7)) of
                                                                                                                                                                                                                                                                                                                           { ( sem_Expr_7) | True ->
                                                                                                                                                                                                                                                                                                                           ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                                                                                                                        in  sem_Expr_Case_6)) of
                                                                                                                                                                                                                                                 { ( sem_Expr_6) | True ->
                                                                                                                                                                                                                                                 ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))
                                                                                                                                                                                                            in  sem_Expr_Case_5)) of
                                                                                                                                                                                                     { ( sem_Expr_5) | True ->
                                                                                                                                                                                                     ( _lhsOgathDataGam,sem_Expr_5) }) }) }) }) }) }) }) })))))))
                                                                                                                                                                       in  sem_Expr_Case_4)) of
                                                                                                                                                                { ( sem_Expr_4) | True ->
                                                                                                                                                                ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                         in  sem_Expr_Case_3)) of
                                                                                                  { ( sem_Expr_3) | True ->
                                                                                                  ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }) }) }) }) }) }) }) }) }) }) }))))))
                                                             in  sem_Expr_Case_2)) of
                                                      { ( sem_Expr_2) | True ->
                                                      ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) }) }) }) }) })))
                        in  sem_Expr_Case_1)) of
                 { ( sem_Expr_1) | True ->
                 ( _lhsOrange,sem_Expr_1) }) }) }) }) })

sem_Expr_DataFields :: Range ->
                       T_DataFieldExpr ->
                       T_Expr

sem_Expr_DataFields hsrange_ dataFieldExpr_ | hsrange_ `seq` (dataFieldExpr_ `seq` (True)) =
    (case (dataFieldExpr_) of
     { ( _dataFieldExprIrange,dataFieldExpr_1) | True ->
         (case (rangeUnions [hsrange_, _dataFieldExprIrange
                                                     , _dataFieldExprIrange
                                                                    ]) of
          { _range | _range `seq` (True) ->
          (case (_range) of
           { _lhsOrange | _lhsOrange `seq` (True) ->
           (case ((let sem_Expr_DataFields_1 :: T_Expr_1
                       sem_Expr_DataFields_1 =
                           (\ _lhsIgUniq ->
                                _lhsIgUniq `seq`
                                ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )) of
                                  { __tup145 | __tup145 `seq` (True) ->
                                  (case (__tup145) of
                                   { (_dataFieldExprOgUniq,_) | _dataFieldExprOgUniq `seq` (True) ->
                                   (case (dataFieldExpr_1 _dataFieldExprOgUniq) of
                                    { ( _dataFieldExprIgUniq,dataFieldExpr_2) | True ->
                                        (case (_dataFieldExprIgUniq) of
                                         { _lhsOgUniq | _lhsOgUniq `seq` (True) ->
                                         (case (False) of
                                          { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                                          (case ((let sem_Expr_DataFields_2 :: T_Expr_2
                                                      sem_Expr_DataFields_2 =
                                                          (\ _lhsIisFirstLet
                                                             _lhsIkiGam
                                                             _lhsIlexLev
                                                             _lhsIpredSameScopeCounter ->
                                                               _lhsIisFirstLet `seq`
                                                               (_lhsIkiGam `seq`
                                                                (_lhsIlexLev `seq`
                                                                 (_lhsIpredSameScopeCounter `seq`
                                                                  ((case (_lhsIpredSameScopeCounter) of
                                                                    { _dataFieldExprOpredSameScopeCounter | _dataFieldExprOpredSameScopeCounter `seq` (True) ->
                                                                    (case (_lhsIlexLev) of
                                                                     { _dataFieldExprOlexLev | _dataFieldExprOlexLev `seq` (True) ->
                                                                     (case (_lhsIkiGam) of
                                                                      { _dataFieldExprOkiGam | _dataFieldExprOkiGam `seq` (True) ->
                                                                      (case (dataFieldExpr_2 _dataFieldExprOkiGam _dataFieldExprOlexLev _dataFieldExprOpredSameScopeCounter) of
                                                                       { ( _dataFieldExprIpredSameScopeCounter,dataFieldExpr_3) | True ->
                                                                           (case (_dataFieldExprIpredSameScopeCounter) of
                                                                            { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                                            (case ((let sem_Expr_DataFields_3 :: T_Expr_3
                                                                                        sem_Expr_DataFields_3 =
                                                                                            (\ _lhsIgenerDataInfoMp
                                                                                               _lhsIkiVarMp
                                                                                               _lhsIopts
                                                                                               _lhsIpolGam
                                                                                               _lhsIpolVarMp
                                                                                               _lhsIpredScope
                                                                                               _lhsItyGam
                                                                                               _lhsItyKiGam
                                                                                               _lhsItyKiGlobFreeTvarS ->
                                                                                                 _lhsIgenerDataInfoMp `seq`
                                                                                                 (_lhsIkiVarMp `seq`
                                                                                                  (_lhsIopts `seq`
                                                                                                   (_lhsIpolGam `seq`
                                                                                                    (_lhsIpolVarMp `seq`
                                                                                                     (_lhsIpredScope `seq`
                                                                                                      (_lhsItyGam `seq`
                                                                                                       (_lhsItyKiGam `seq`
                                                                                                        (_lhsItyKiGlobFreeTvarS `seq`
                                                                                                         ((case (_lhsItyKiGlobFreeTvarS) of
                                                                                                           { _dataFieldExprOtyKiGlobFreeTvarS | _dataFieldExprOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                           (case (_lhsItyKiGam) of
                                                                                                            { _dataFieldExprOtyKiGam | _dataFieldExprOtyKiGam `seq` (True) ->
                                                                                                            (case (_lhsItyGam) of
                                                                                                             { _dataFieldExprOtyGam | _dataFieldExprOtyGam `seq` (True) ->
                                                                                                             (case (_lhsIpredScope) of
                                                                                                              { _predScope | _predScope `seq` (True) ->
                                                                                                              (case (_predScope) of
                                                                                                               { _dataFieldExprOpredScope | _dataFieldExprOpredScope `seq` (True) ->
                                                                                                               (case (_lhsIpolVarMp) of
                                                                                                                { _dataFieldExprOpolVarMp | _dataFieldExprOpolVarMp `seq` (True) ->
                                                                                                                (case (_lhsIpolGam) of
                                                                                                                 { _dataFieldExprOpolGam | _dataFieldExprOpolGam `seq` (True) ->
                                                                                                                 (case (_lhsIopts) of
                                                                                                                  { _dataFieldExprOopts | _dataFieldExprOopts `seq` (True) ->
                                                                                                                  (case (_lhsIkiVarMp) of
                                                                                                                   { _dataFieldExprOkiVarMp | _dataFieldExprOkiVarMp `seq` (True) ->
                                                                                                                   (case (_lhsIgenerDataInfoMp) of
                                                                                                                    { _dataFieldExprOgenerDataInfoMp | _dataFieldExprOgenerDataInfoMp `seq` (True) ->
                                                                                                                    (case (dataFieldExpr_3 _dataFieldExprOgenerDataInfoMp _dataFieldExprOkiVarMp _dataFieldExprOopts _dataFieldExprOpolGam _dataFieldExprOpolVarMp _dataFieldExprOpredScope _dataFieldExprOtyGam _dataFieldExprOtyKiGam _dataFieldExprOtyKiGlobFreeTvarS) of
                                                                                                                     { ( _dataFieldExprIgenerDataInfoMp,_dataFieldExprIkiVarMp,_dataFieldExprIpolVarMp,dataFieldExpr_4) | True ->
                                                                                                                         (case (_dataFieldExprIgenerDataInfoMp) of
                                                                                                                          { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                                                          (case (_dataFieldExprIkiVarMp) of
                                                                                                                           { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                                                           (case (_dataFieldExprIpolVarMp) of
                                                                                                                            { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                                                            (case ((let sem_Expr_DataFields_4 :: T_Expr_4
                                                                                                                                        sem_Expr_DataFields_4 =
                                                                                                                                            (\ _lhsIclGam
                                                                                                                                               _lhsIfinKiVarMp
                                                                                                                                               _lhsIfinTyKiGam
                                                                                                                                               _lhsIgathDataGam
                                                                                                                                               _lhsItyTyTySigFreeTvarS ->
                                                                                                                                                 _lhsIclGam `seq`
                                                                                                                                                 (_lhsIfinKiVarMp `seq`
                                                                                                                                                  (_lhsIfinTyKiGam `seq`
                                                                                                                                                   (_lhsIgathDataGam `seq`
                                                                                                                                                    (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                                                     ((case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                       { _dataFieldExprOtyTyTySigFreeTvarS | _dataFieldExprOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                       (case (_lhsIgathDataGam) of
                                                                                                                                                        { _dataFieldExprOgathDataGam | _dataFieldExprOgathDataGam `seq` (True) ->
                                                                                                                                                        (case (_lhsIfinTyKiGam) of
                                                                                                                                                         { _dataFieldExprOfinTyKiGam | _dataFieldExprOfinTyKiGam `seq` (True) ->
                                                                                                                                                         (case (_lhsIfinKiVarMp) of
                                                                                                                                                          { _dataFieldExprOfinKiVarMp | _dataFieldExprOfinKiVarMp `seq` (True) ->
                                                                                                                                                          (case (_lhsIclGam) of
                                                                                                                                                           { _dataFieldExprOclGam | _dataFieldExprOclGam `seq` (True) ->
                                                                                                                                                           (case (dataFieldExpr_4 _dataFieldExprOclGam _dataFieldExprOfinKiVarMp _dataFieldExprOfinTyKiGam _dataFieldExprOgathDataGam _dataFieldExprOtyTyTySigFreeTvarS) of
                                                                                                                                                            { ( _dataFieldExprIgathDataGam,dataFieldExpr_5) | True ->
                                                                                                                                                                (case (_dataFieldExprIgathDataGam) of
                                                                                                                                                                 { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                                                                 (case ((let sem_Expr_DataFields_5 :: T_Expr_5
                                                                                                                                                                             sem_Expr_DataFields_5 =
                                                                                                                                                                                 (\ _lhsIdataGam ->
                                                                                                                                                                                      _lhsIdataGam `seq`
                                                                                                                                                                                      ((case (Seq.empty) of
                                                                                                                                                                                        { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                                                                        (case (defaultFIEnv
                                                                                                                                                                                                   { feEHCOpts = _lhsIopts
                                                                                                                                                                                                   , fePredScope = _lhsIpredScope
                                                                                                                                                                                                   , feTyGam = _lhsItyGam
                                                                                                                                                                                                   , fePolGam = _lhsIpolGam
                                                                                                                                                                                                   , feRange = _range
                                                                                                                                                                                                   }) of
                                                                                                                                                                                         { _fe | _fe `seq` (True) ->
                                                                                                                                                                                         (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                                                                          { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                                                                          (case (_chrFIIn) of
                                                                                                                                                                                           { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                                                                           (case (_lhsIdataGam) of
                                                                                                                                                                                            { _dataFieldExprOdataGam | _dataFieldExprOdataGam `seq` (True) ->
                                                                                                                                                                                            (case (dataFieldExpr_5 _dataFieldExprOdataGam) of
                                                                                                                                                                                             { ( _dataFieldExprIchrInstDeclSq,dataFieldExpr_6) | True ->
                                                                                                                                                                                                 (case (_dataFieldExprIchrInstDeclSq) of
                                                                                                                                                                                                  { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                                                                  (case (emptyGam) of
                                                                                                                                                                                                   { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                                                                   (case ((let sem_Expr_DataFields_6 :: T_Expr_6
                                                                                                                                                                                                               sem_Expr_DataFields_6 =
                                                                                                                                                                                                                   (\ _lhsIchrStore
                                                                                                                                                                                                                      _lhsIclDfGam
                                                                                                                                                                                                                      _lhsIfiOpts
                                                                                                                                                                                                                      _lhsIknTy
                                                                                                                                                                                                                      _lhsItvKiVarMp
                                                                                                                                                                                                                      _lhsItyTyGlobFreeTvarS
                                                                                                                                                                                                                      _lhsItyVarMp
                                                                                                                                                                                                                      _lhsIvalGam
                                                                                                                                                                                                                      _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                                                                        _lhsIchrStore `seq`
                                                                                                                                                                                                                        (_lhsIclDfGam `seq`
                                                                                                                                                                                                                         (_lhsIfiOpts `seq`
                                                                                                                                                                                                                          (_lhsIknTy `seq`
                                                                                                                                                                                                                           (_lhsItvKiVarMp `seq`
                                                                                                                                                                                                                            (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                             (_lhsItyVarMp `seq`
                                                                                                                                                                                                                              (_lhsIvalGam `seq`
                                                                                                                                                                                                                               (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                ((case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                  { _dataFieldExprOvalTyGlobFreeTvarS | _dataFieldExprOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                  (case (_lhsIvalGam) of
                                                                                                                                                                                                                                   { _dataFieldExprOvalGam | _dataFieldExprOvalGam `seq` (True) ->
                                                                                                                                                                                                                                   (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                    { _dataFieldExprOtyTyGlobFreeTvarS | _dataFieldExprOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                    (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                     { _dataFieldExprOtvKiVarMp | _dataFieldExprOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                     (case (strongFIOpts) of
                                                                                                                                                                                                                                      { _fldFIOpts | _fldFIOpts `seq` (True) ->
                                                                                                                                                                                                                                      (case (_fldFIOpts) of
                                                                                                                                                                                                                                       { _dataFieldExprOfldFIOpts | _dataFieldExprOfldFIOpts `seq` (True) ->
                                                                                                                                                                                                                                       (case (_lhsIfiOpts) of
                                                                                                                                                                                                                                        { _dataFieldExprOfiOpts | _dataFieldExprOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                        (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                         { _dataFieldExprOclDfGam | _dataFieldExprOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                         (case (_lhsIchrStore) of
                                                                                                                                                                                                                                          { _dataFieldExprOchrStore | _dataFieldExprOchrStore `seq` (True) ->
                                                                                                                                                                                                                                          (case (__tup145) of
                                                                                                                                                                                                                                           { (_,_lUniq) | _lUniq `seq` (True) ->
                                                                                                                                                                                                                                           (case (_lhsItyVarMp) of
                                                                                                                                                                                                                                            { _dataFieldExprOupdExprTyVarMp | _dataFieldExprOupdExprTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                            (case (dataFieldExpr_6 _dataFieldExprOchrStore _dataFieldExprOclDfGam _dataFieldExprOfiOpts _dataFieldExprOtvKiVarMp _dataFieldExprOtyTyGlobFreeTvarS _dataFieldExprOupdExprTyVarMp _dataFieldExprOvalGam _dataFieldExprOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                             { ( _dataFieldExprIfldL,_dataFieldExprImbConNm,_dataFieldExprIupdExprTy,_dataFieldExprIupdExprTyVarMp,dataFieldExpr_7) | True ->
                                                                                                                                                                                                                                                 (case (sortBy rowLabCmp _dataFieldExprIfldL) of
                                                                                                                                                                                                                                                  { _fldL | _fldL `seq` (True) ->
                                                                                                                                                                                                                                                  (case (let dgiOf t = maybe emptyDataGamInfo id $ dataGamDgiOfTy t _lhsIdataGam
                                                                                                                                                                                                                                                         in  case (_dataFieldExprImbConNm,_fldL) of
                                                                                                                                                                                                                                                               (Just c,_)
                                                                                                                                                                                                                                                                 -> dgiOf t
                                                                                                                                                                                                                                                                 where (_,t,_) = valGamTyOfDataCon c _lhsIvalGam
                                                                                                                                                                                                                                                               (_,(f:_))
                                                                                                                                                                                                                                                                 -> dgiOf t
                                                                                                                                                                                                                                                                 where (_,t,_) = valGamTyOfDataFld f _lhsIvalGam
                                                                                                                                                                                                                                                               _ -> panic "Expr.DataFields.dgi") of
                                                                                                                                                                                                                                                   { _dgi | _dgi `seq` (True) ->
                                                                                                                                                                                                                                                   (case (Map.elems $ dgiConstrTagMp _dgi) of
                                                                                                                                                                                                                                                    { _dtiL | _dtiL `seq` (True) ->
                                                                                                                                                                                                                                                    (case (Set.fromList _fldL) of
                                                                                                                                                                                                                                                     { _fldS | _fldS `seq` (True) ->
                                                                                                                                                                                                                                                     (case (case _dataFieldExprImbConNm of
                                                                                                                                                                                                                                                              Just _
                                                                                                                                                                                                                                                                -> (_lhsIknTy,_lhsItyVarMp,[],[])
                                                                                                                                                                                                                                                              _ -> (t,c,e,foL)
                                                                                                                                                                                                                                                                where (t,_,c,e,foL,_)
                                                                                                                                                                                                                                                                        = foldr (\fldNm (knTy,updExprTy,tyVarMp,errL,foL,u)
                                                                                                                                                                                                                                                                                   -> let (u',u1,u2) = mkNewLevUID2 u
                                                                                                                                                                                                                                                                                          (_,knDTy,knFTy,fo1,e1) = dfCheck u1 _lhsIfiOpts _fe fldNm _lhsIvalGam tyVarMp knTy
                                                                                                                                                                                                                                                                                          tyVarMp' = foVarMp fo1 `varUpd` tyVarMp
                                                                                                                                                                                                                                                                                          (gTy,nmErrs) = valGamLookupTy fldNm _lhsIvalGam
                                                                                                                                                                                                                                                                                          fo2 = fitsIn _fldFIOpts _fe u2 tyVarMp' gTy ([updExprTy] `appArr` knFTy)
                                                                                                                                                                                                                                                                                      in  (knDTy, updExprTy, foVarMp fo2 `varUpd` tyVarMp', foErrL fo2 ++ foErrL fo1 ++ e1 ++ nmErrs ++ errL, fo1:fo2:foL, u')
                                                                                                                                                                                                                                                                                )
                                                                                                                                                                                                                                                                                (_lhsIknTy,_dataFieldExprIupdExprTy,_dataFieldExprIupdExprTyVarMp,[],[],_lUniq)
                                                                                                                                                                                                                                                                                (Set.toList $ Set.unions [ Map.keysSet (dtiFldMp i) | i <- _dtiL ] `Set.difference` _fldS)) of
                                                                                                                                                                                                                                                      { __tup144 | __tup144 `seq` (True) ->
                                                                                                                                                                                                                                                      (case (__tup144) of
                                                                                                                                                                                                                                                       { (_,_dataFieldExprOtyVarMp,_,_) | _dataFieldExprOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                       (case (__tup144) of
                                                                                                                                                                                                                                                        { (_dataFieldExprOknTy,_,_,_) | _dataFieldExprOknTy `seq` (True) ->
                                                                                                                                                                                                                                                        (case (dataFieldExpr_7 _dataFieldExprOfldFIOpts _dataFieldExprOknTy _dataFieldExprOtyVarMp) of
                                                                                                                                                                                                                                                         { ( _dataFieldExprIgathCnstrMp,_dataFieldExprIgathRangeMp,_dataFieldExprInoLetQuantTyVarIdS,_dataFieldExprIty,_dataFieldExprItyVarMp,dataFieldExpr_8) | True ->
                                                                                                                                                                                                                                                             (case (_dataFieldExprIgathCnstrMp) of
                                                                                                                                                                                                                                                              { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                              (case (_dataFieldExprIgathRangeMp) of
                                                                                                                                                                                                                                                               { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                                                                                               (case (emptyGam) of
                                                                                                                                                                                                                                                                { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                                                                                                (case (_dataFieldExprInoLetQuantTyVarIdS) of
                                                                                                                                                                                                                                                                 { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                                                                                                 (case (_dataFieldExprIty) of
                                                                                                                                                                                                                                                                  { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                                                                                                  (case (_dataFieldExprItyVarMp) of
                                                                                                                                                                                                                                                                   { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                   (case ((let sem_Expr_DataFields_7 :: T_Expr_7
                                                                                                                                                                                                                                                                               sem_Expr_DataFields_7 =
                                                                                                                                                                                                                                                                                   (\ _lhsIcSubst
                                                                                                                                                                                                                                                                                      _lhsIchrEvidBindMp
                                                                                                                                                                                                                                                                                      _lhsIchrScopeBindMp
                                                                                                                                                                                                                                                                                      _lhsIexprCtxt
                                                                                                                                                                                                                                                                                      _lhsIfinTyVarMp
                                                                                                                                                                                                                                                                                      _lhsIfinValGam
                                                                                                                                                                                                                                                                                      _lhsImoduleNm
                                                                                                                                                                                                                                                                                      _lhsIrangeMp
                                                                                                                                                                                                                                                                                      _lhsIsysfEnv
                                                                                                                                                                                                                                                                                      _lhsItr ->
                                                                                                                                                                                                                                                                                        _lhsIcSubst `seq`
                                                                                                                                                                                                                                                                                        (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                                                                                         (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                                                                                          (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                                                                                           (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                                                                                            (_lhsIfinValGam `seq`
                                                                                                                                                                                                                                                                                             (_lhsImoduleNm `seq`
                                                                                                                                                                                                                                                                                              (_lhsIrangeMp `seq`
                                                                                                                                                                                                                                                                                               (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                                                                                                (_lhsItr `seq`
                                                                                                                                                                                                                                                                                                 ((case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                   { _dataFieldExprOsysfEnv | _dataFieldExprOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                   (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                    { _dataFieldExprOrangeMp | _dataFieldExprOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                    (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                     { _dataFieldExprOfinValGam | _dataFieldExprOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                     (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                      { _dataFieldExprOfinTyVarMp | _dataFieldExprOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                      (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                       { _dataFieldExprOtr | _dataFieldExprOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                       (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                        { _dataFieldExprOmoduleNm | _dataFieldExprOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                        (case (_dgi) of
                                                                                                                                                                                                                                                                                                         { _dataFieldExprOdgi | _dataFieldExprOdgi `seq` (True) ->
                                                                                                                                                                                                                                                                                                         (case (_lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                                          { _dataFieldExprOchrScopeBindMp | _dataFieldExprOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                          (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                           { _dataFieldExprOchrEvidBindMp | _dataFieldExprOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                           (case (_lhsIcSubst) of
                                                                                                                                                                                                                                                                                                            { _dataFieldExprOcSubst | _dataFieldExprOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                            (case (dataFieldExpr_8 _dataFieldExprOcSubst _dataFieldExprOchrEvidBindMp _dataFieldExprOchrScopeBindMp _dataFieldExprOdgi _dataFieldExprOfinTyVarMp _dataFieldExprOfinValGam _dataFieldExprOmoduleNm _dataFieldExprOrangeMp _dataFieldExprOsysfEnv _dataFieldExprOtr) of
                                                                                                                                                                                                                                                                                                             { ( _dataFieldExprIallErrSq,_dataFieldExprIcSubst,_dataFieldExprIdfeCBindL,_dataFieldExprIdfeCExpr,_dataFieldExprIerrSq,_dataFieldExprIfuCExprL,_dataFieldExprIgathMentrelFilterMp,_dataFieldExprIgathTvKiVarMp,_dataFieldExprImbDti,_dataFieldExprIpp,_dataFieldExprIppAST,_dataFieldExprIppL,_dataFieldExprItrpp) | True ->
                                                                                                                                                                                                                                                                                                                 (case (_dataFieldExprIallErrSq) of
                                                                                                                                                                                                                                                                                                                  { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                  (case ([]) of
                                                                                                                                                                                                                                                                                                                   { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                   (case ([]) of
                                                                                                                                                                                                                                                                                                                    { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                    (case ((emptyRCEEnv _lhsIopts) { rceValGam = _lhsIvalGam, rceDataGam = _lhsIdataGam, rceTyVarMp = _lhsIfinTyVarMp }) of
                                                                                                                                                                                                                                                                                                                     { _rceEnv | _rceEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                     (case (partition (\i -> _fldS `Set.isSubsetOf` Map.keysSet (dtiFldMp i)) $ _dtiL) of
                                                                                                                                                                                                                                                                                                                      { __tup143 | __tup143 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                      (case (__tup143) of
                                                                                                                                                                                                                                                                                                                       { (_dtiInFldL,_) | _dtiInFldL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                       (case (let mkTup dti mkDflt con
                                                                                                                                                                                                                                                                                                                                    = foldl acore1App con
                                                                                                                                                                                                                                                                                                                                      . fuL2ExprL
                                                                                                                                                                                                                                                                                                                                      . listSaturateWith 0 (ctagArity (dtiCTag dti) - 1) (\(_,(_,Just o)) -> o) dflt
                                                                                                                                                                                                                                                                                                                                      . fuMap (\l mke -> let o = fldInt $ dtiOffsetOfFld l dti in (mke dti o,o))
                                                                                                                                                                                                                                                                                                                                    where dflt = [ (o,(f,(CExpr_TupIns (acoreBuiltinUndefined _lhsIopts) (dtiCTag dti) f (acoreInt _lhsIopts o) (mkDflt f),Just o)))
                                                                                                                                                                                                                                                                                                                                                 | (f,i) <- Map.toList $ dtiFldMp dti, let o = fldInt $ dfiOffset i
                                                                                                                                                                                                                                                                                                                                                 ]
                                                                                                                                                                                                                                                                                                                              in  if dgiIsNewtype _dgi
                                                                                                                                                                                                                                                                                                                                  then acoreLet CBindCateg_Plain _dataFieldExprIdfeCBindL
                                                                                                                                                                                                                                                                                                                                       $ head $ fuL2ExprL $ fuMap (\_ f -> (f emptyDataTagInfo 0,0)) $ _dataFieldExprIfuCExprL
                                                                                                                                                                                                                                                                                                                                  else case _dataFieldExprImbConNm of
                                                                                                                                                                                                                                                                                                                                         Just conNm
                                                                                                                                                                                                                                                                                                                                           -> acoreLet CBindCateg_Plain _dataFieldExprIdfeCBindL
                                                                                                                                                                                                                                                                                                                                                (mkTup (dgiDtiOfCon conNm _dgi) (const $ acoreBuiltinUndefined _lhsIopts) _dataFieldExprIdfeCExpr _dataFieldExprIfuCExprL)
                                                                                                                                                                                                                                                                                                                                         _ -> acoreLet CBindCateg_Plain (err ++  _dataFieldExprIdfeCBindL)
                                                                                                                                                                                                                                                                                                                                                (acoreSatSelsCasesTy (rceUpdEnv (acoreVar en) _rceEnv) (Just (mkHNm _lUniq,(acoreTyErr $ "EH.ToCore.Expr.DataFields: " ++ show (mkHNm _lUniq)))) _dataFieldExprIdfeCExpr alts)
                                                                                                                                                                                                                                                                                                                                           where alts = [ ( dtiCTag dti
                                                                                                                                                                                                                                                                                                                                                          , [ (f,acoreTyErr $ "EH.Expr.DataFields.dfexpr: " ++ show f,       fldInt $ dfiOffset i) | (f,i) <- Map.toList $ dtiFldMp dti ]
                                                                                                                                                                                                                                                                                                                                                          , Nothing
                                                                                                                                                                                                                                                                                                                                                          , mkTup dti acoreVar (CExpr_Tup $ dtiCTag dti) _dataFieldExprIfuCExprL
                                                                                                                                                                                                                                                                                                                                                          )
                                                                                                                                                                                                                                                                                                                                                        | dti <- _dtiInFldL
                                                                                                                                                                                                                                                                                                                                                        ]
                                                                                                                                                                                                                                                                                                                                                 err = [acoreBind1Ty en (acoreTyErr $ "EH.ToCore.Expr.DataFields.en: " ++ show en) (acoreBuiltinError _lhsIopts ("has no field update '" ++ show _fldL ++ "'"))]
                                                                                                                                                                                                                                                                                                                                                 en = mkHNm "_upd_error") of
                                                                                                                                                                                                                                                                                                                        { _dfexpr | _dfexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                        (case (_dfexpr) of
                                                                                                                                                                                                                                                                                                                         { _cexpr | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                         (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                          { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                          (case (hsnUnknown) of
                                                                                                                                                                                                                                                                                                                           { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                           (case (_dataFieldExprIpp >#< ppCurlysCommas' (reverse _dataFieldExprIppL)) of
                                                                                                                                                                                                                                                                                                                            { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                            (case (_pp) of
                                                                                                                                                                                                                                                                                                                             { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                             (case ([]) of
                                                                                                                                                                                                                                                                                                                              { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                              (case (_dataFieldExprIcSubst) of
                                                                                                                                                                                                                                                                                                                               { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                               (case (Set.empty) of
                                                                                                                                                                                                                                                                                                                                { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                 { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                 (case (__tup144) of
                                                                                                                                                                                                                                                                                                                                  { (_,_,_dfErrs,_) | _dfErrs `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                  (case (let fs = [ f | (f:_:_) <- group _fldL ]
                                                                                                                                                                                                                                                                                                                                         in  if null fs then [] else [rngLift _range Err_DuplicateDataFields fs]) of
                                                                                                                                                                                                                                                                                                                                   { _fldDupErrs | _fldDupErrs `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                   (case (case _dataFieldExprImbDti of
                                                                                                                                                                                                                                                                                                                                            Just dti | not (Set.null m)
                                                                                                                                                                                                                                                                                                                                              -> [rngLift _range Err_MissingDataFields (Set.toList m) (dtiConNm dti)]
                                                                                                                                                                                                                                                                                                                                              where m = Map.keysSet (dtiFldMp dti) `Set.difference` Set.fromList _fldL
                                                                                                                                                                                                                                                                                                                                            _ | null _dtiInFldL -> [rngLift _range Err_MissingAnyDataField _fldL (dgiTyNm _dgi)]
                                                                                                                                                                                                                                                                                                                                              | otherwise       -> []) of
                                                                                                                                                                                                                                                                                                                                    { _fldMissErrs | _fldMissErrs `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                    (case (rngLift _range mkNestErr' _pp [ _dataFieldExprIerrSq
                                                                                                                                                                                                                                                                                                                                                                         , Seq.fromList _fldMissErrs, Seq.fromList _fldDupErrs, Seq.fromList _dfErrs
                                                                                                                                                                                                                                                                                                                                                                         ]) of
                                                                                                                                                                                                                                                                                                                                     { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                     (case ([]) of
                                                                                                                                                                                                                                                                                                                                      { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                      (case ([]) of
                                                                                                                                                                                                                                                                                                                                       { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                       (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                        { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                        (case (Seq.empty) of
                                                                                                                                                                                                                                                                                                                                         { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                         (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                          { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                          (case (Map.empty) of
                                                                                                                                                                                                                                                                                                                                           { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                           (case (_dataFieldExprIgathMentrelFilterMp) of
                                                                                                                                                                                                                                                                                                                                            { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                            (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                             { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                             (case (_dataFieldExprIgathTvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                              { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                              (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                               { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                               (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                (case (False) of
                                                                                                                                                                                                                                                                                                                                                 { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                 (case ([]) of
                                                                                                                                                                                                                                                                                                                                                  { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                  (case (_lamArgPPL) of
                                                                                                                                                                                                                                                                                                                                                   { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                   (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                    { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                    (case (_lamBodyPP) of
                                                                                                                                                                                                                                                                                                                                                     { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                     (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                      { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                      (case ([]) of
                                                                                                                                                                                                                                                                                                                                                       { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                       (case ([]) of
                                                                                                                                                                                                                                                                                                                                                        { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                        (case ([]) of
                                                                                                                                                                                                                                                                                                                                                         { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                         (case (Set.empty) of
                                                                                                                                                                                                                                                                                                                                                          { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                          (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                           { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                           (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                            { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                            (case (ppNestTrPP ["Expr","DataFields"] [] [_dataFieldExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                             { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                             (case (_ppAST) of
                                                                                                                                                                                                                                                                                                                                                              { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                              (case (_dataFieldExprItrpp) of
                                                                                                                                                                                                                                                                                                                                                               { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                               ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                                                                                           in  sem_Expr_DataFields_7)) of
                                                                                                                                                                                                                                                                    { ( sem_Expr_7) | True ->
                                                                                                                                                                                                                                                                    ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                                                                           in  sem_Expr_DataFields_6)) of
                                                                                                                                                                                                    { ( sem_Expr_6) | True ->
                                                                                                                                                                                                    ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) }) }) })))
                                                                                                                                                                         in  sem_Expr_DataFields_5)) of
                                                                                                                                                                  { ( sem_Expr_5) | True ->
                                                                                                                                                                  ( _lhsOgathDataGam,sem_Expr_5) }) }) }) }) }) }) }) })))))))
                                                                                                                                    in  sem_Expr_DataFields_4)) of
                                                                                                                             { ( sem_Expr_4) | True ->
                                                                                                                             ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                    in  sem_Expr_DataFields_3)) of
                                                                             { ( sem_Expr_3) | True ->
                                                                             ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }) }) }) }) }))))))
                                                  in  sem_Expr_DataFields_2)) of
                                           { ( sem_Expr_2) | True ->
                                           ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) }) }) })))
                   in  sem_Expr_DataFields_1)) of
            { ( sem_Expr_1) | True ->
            ( _lhsOrange,sem_Expr_1) }) }) }) })

sem_Expr_Rec :: Range ->
                T_RecExpr ->
                T_Expr

sem_Expr_Rec hsrange_ recExpr_ | hsrange_ `seq` (recExpr_ `seq` (True)) =
    (case (recExpr_) of
     { ( _recExprIrange,recExpr_1) | True ->
         (case (rangeUnions [hsrange_, _recExprIrange, _recExprIrange
                                                                    ]) of
          { _range | _range `seq` (True) ->
          (case (_range) of
           { _lhsOrange | _lhsOrange `seq` (True) ->
           (case ((let sem_Expr_Rec_1 :: T_Expr_1
                       sem_Expr_Rec_1 =
                           (\ _lhsIgUniq ->
                                _lhsIgUniq `seq`
                                ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq2) -> case nextUnique __cont of { (__cont, lUniq3) -> case nextUnique __cont of { (__cont, lUniq_cexpr) -> case nextUnique __cont of { (__cont, lUniq_fit) -> case nextUnique __cont of { (__cont, lUniq_freshKnTy) -> (__cont,lUniq2,lUniq3,lUniq_cexpr,lUniq_fit,lUniq_freshKnTy)}}}}} )) of
                                  { __tup151 | __tup151 `seq` (True) ->
                                  (case (__tup151) of
                                   { (_recExprOgUniq,_,_,_,_,_) | _recExprOgUniq `seq` (True) ->
                                   (case (recExpr_1 _recExprOgUniq) of
                                    { ( _recExprIgUniq,recExpr_2) | True ->
                                        (case (_recExprIgUniq) of
                                         { _lhsOgUniq | _lhsOgUniq `seq` (True) ->
                                         (case (False) of
                                          { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                                          (case ((let sem_Expr_Rec_2 :: T_Expr_2
                                                      sem_Expr_Rec_2 =
                                                          (\ _lhsIisFirstLet
                                                             _lhsIkiGam
                                                             _lhsIlexLev
                                                             _lhsIpredSameScopeCounter ->
                                                               _lhsIisFirstLet `seq`
                                                               (_lhsIkiGam `seq`
                                                                (_lhsIlexLev `seq`
                                                                 (_lhsIpredSameScopeCounter `seq`
                                                                  ((case (_lhsIlexLev) of
                                                                    { _recExprOlexLev | _recExprOlexLev `seq` (True) ->
                                                                    (case (_lhsIkiGam) of
                                                                     { _recExprOkiGam | _recExprOkiGam `seq` (True) ->
                                                                     (case (False) of
                                                                      { _mustEnterNewPredScope | _mustEnterNewPredScope `seq` (True) ->
                                                                      (case (pscpEnter' _mustEnterNewPredScope _lhsIpredSameScopeCounter) of
                                                                       { __tup147 | __tup147 `seq` (True) ->
                                                                       (case (__tup147) of
                                                                        { (_,_recExprOpredSameScopeCounter) | _recExprOpredSameScopeCounter `seq` (True) ->
                                                                        (case (__tup147) of
                                                                         { (_predSameScopeCounterTop,_) | _predSameScopeCounterTop `seq` (True) ->
                                                                         (case (recExpr_2 _recExprOkiGam _recExprOlexLev _recExprOpredSameScopeCounter) of
                                                                          { ( _recExprIpredSameScopeCounter,recExpr_3) | True ->
                                                                              (case (pscpLeave' _mustEnterNewPredScope _predSameScopeCounterTop _recExprIpredSameScopeCounter) of
                                                                               { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                                               (case ((let sem_Expr_Rec_3 :: T_Expr_3
                                                                                           sem_Expr_Rec_3 =
                                                                                               (\ _lhsIgenerDataInfoMp
                                                                                                  _lhsIkiVarMp
                                                                                                  _lhsIopts
                                                                                                  _lhsIpolGam
                                                                                                  _lhsIpolVarMp
                                                                                                  _lhsIpredScope
                                                                                                  _lhsItyGam
                                                                                                  _lhsItyKiGam
                                                                                                  _lhsItyKiGlobFreeTvarS ->
                                                                                                    _lhsIgenerDataInfoMp `seq`
                                                                                                    (_lhsIkiVarMp `seq`
                                                                                                     (_lhsIopts `seq`
                                                                                                      (_lhsIpolGam `seq`
                                                                                                       (_lhsIpolVarMp `seq`
                                                                                                        (_lhsIpredScope `seq`
                                                                                                         (_lhsItyGam `seq`
                                                                                                          (_lhsItyKiGam `seq`
                                                                                                           (_lhsItyKiGlobFreeTvarS `seq`
                                                                                                            ((case (_lhsItyKiGlobFreeTvarS) of
                                                                                                              { _recExprOtyKiGlobFreeTvarS | _recExprOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                              (case (_lhsItyKiGam) of
                                                                                                               { _recExprOtyKiGam | _recExprOtyKiGam `seq` (True) ->
                                                                                                               (case (_lhsItyGam) of
                                                                                                                { _recExprOtyGam | _recExprOtyGam `seq` (True) ->
                                                                                                                (case (pscpMk' _mustEnterNewPredScope _lhsIpredSameScopeCounter _lhsIpredScope) of
                                                                                                                 { _predScope | _predScope `seq` (True) ->
                                                                                                                 (case (_predScope) of
                                                                                                                  { _recExprOpredScope | _recExprOpredScope `seq` (True) ->
                                                                                                                  (case (_lhsIpolVarMp) of
                                                                                                                   { _recExprOpolVarMp | _recExprOpolVarMp `seq` (True) ->
                                                                                                                   (case (_lhsIpolGam) of
                                                                                                                    { _recExprOpolGam | _recExprOpolGam `seq` (True) ->
                                                                                                                    (case (_lhsIopts) of
                                                                                                                     { _recExprOopts | _recExprOopts `seq` (True) ->
                                                                                                                     (case (_lhsIkiVarMp) of
                                                                                                                      { _recExprOkiVarMp | _recExprOkiVarMp `seq` (True) ->
                                                                                                                      (case (_lhsIgenerDataInfoMp) of
                                                                                                                       { _recExprOgenerDataInfoMp | _recExprOgenerDataInfoMp `seq` (True) ->
                                                                                                                       (case (recExpr_3 _recExprOgenerDataInfoMp _recExprOkiVarMp _recExprOopts _recExprOpolGam _recExprOpolVarMp _recExprOpredScope _recExprOtyGam _recExprOtyKiGam _recExprOtyKiGlobFreeTvarS) of
                                                                                                                        { ( _recExprIgenerDataInfoMp,_recExprIkiVarMp,_recExprIpolVarMp,recExpr_4) | True ->
                                                                                                                            (case (_recExprIgenerDataInfoMp) of
                                                                                                                             { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                                                             (case (_recExprIkiVarMp) of
                                                                                                                              { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                                                              (case (_recExprIpolVarMp) of
                                                                                                                               { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                                                               (case ((let sem_Expr_Rec_4 :: T_Expr_4
                                                                                                                                           sem_Expr_Rec_4 =
                                                                                                                                               (\ _lhsIclGam
                                                                                                                                                  _lhsIfinKiVarMp
                                                                                                                                                  _lhsIfinTyKiGam
                                                                                                                                                  _lhsIgathDataGam
                                                                                                                                                  _lhsItyTyTySigFreeTvarS ->
                                                                                                                                                    _lhsIclGam `seq`
                                                                                                                                                    (_lhsIfinKiVarMp `seq`
                                                                                                                                                     (_lhsIfinTyKiGam `seq`
                                                                                                                                                      (_lhsIgathDataGam `seq`
                                                                                                                                                       (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                                                        ((case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                          { _recExprOtyTyTySigFreeTvarS | _recExprOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                          (case (_lhsIgathDataGam) of
                                                                                                                                                           { _recExprOgathDataGam | _recExprOgathDataGam `seq` (True) ->
                                                                                                                                                           (case (_lhsIfinTyKiGam) of
                                                                                                                                                            { _recExprOfinTyKiGam | _recExprOfinTyKiGam `seq` (True) ->
                                                                                                                                                            (case (_lhsIfinKiVarMp) of
                                                                                                                                                             { _recExprOfinKiVarMp | _recExprOfinKiVarMp `seq` (True) ->
                                                                                                                                                             (case (_lhsIclGam) of
                                                                                                                                                              { _recExprOclGam | _recExprOclGam `seq` (True) ->
                                                                                                                                                              (case (recExpr_4 _recExprOclGam _recExprOfinKiVarMp _recExprOfinTyKiGam _recExprOgathDataGam _recExprOtyTyTySigFreeTvarS) of
                                                                                                                                                               { ( _recExprIgathDataGam,recExpr_5) | True ->
                                                                                                                                                                   (case (_recExprIgathDataGam) of
                                                                                                                                                                    { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                                                                    (case ((let sem_Expr_Rec_5 :: T_Expr_5
                                                                                                                                                                                sem_Expr_Rec_5 =
                                                                                                                                                                                    (\ _lhsIdataGam ->
                                                                                                                                                                                         _lhsIdataGam `seq`
                                                                                                                                                                                         ((case (Seq.empty) of
                                                                                                                                                                                           { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                                                                           (case (defaultFIEnv
                                                                                                                                                                                                      { feEHCOpts = _lhsIopts
                                                                                                                                                                                                      , fePredScope = _predScope
                                                                                                                                                                                                      , feTyGam = _lhsItyGam
                                                                                                                                                                                                      , fePolGam = _lhsIpolGam
                                                                                                                                                                                                      , feRange = _range
                                                                                                                                                                                                      }) of
                                                                                                                                                                                            { _fe | _fe `seq` (True) ->
                                                                                                                                                                                            (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                                                                             { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                                                                             (case (_chrFIIn) of
                                                                                                                                                                                              { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                                                                              (case (_lhsIdataGam) of
                                                                                                                                                                                               { _recExprOdataGam | _recExprOdataGam `seq` (True) ->
                                                                                                                                                                                               (case (positionalFldNames) of
                                                                                                                                                                                                { _recExprOpositionalFldNmL | _recExprOpositionalFldNmL `seq` (True) ->
                                                                                                                                                                                                (case (recExpr_5 _recExprOdataGam _recExprOpositionalFldNmL) of
                                                                                                                                                                                                 { ( _recExprIchrInstDeclSq,_recExprIpositionalFldNmL,recExpr_6) | True ->
                                                                                                                                                                                                     (case (_recExprIchrInstDeclSq) of
                                                                                                                                                                                                      { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                                                                      (case (emptyGam) of
                                                                                                                                                                                                       { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                                                                       (case ((let sem_Expr_Rec_6 :: T_Expr_6
                                                                                                                                                                                                                   sem_Expr_Rec_6 =
                                                                                                                                                                                                                       (\ _lhsIchrStore
                                                                                                                                                                                                                          _lhsIclDfGam
                                                                                                                                                                                                                          _lhsIfiOpts
                                                                                                                                                                                                                          _lhsIknTy
                                                                                                                                                                                                                          _lhsItvKiVarMp
                                                                                                                                                                                                                          _lhsItyTyGlobFreeTvarS
                                                                                                                                                                                                                          _lhsItyVarMp
                                                                                                                                                                                                                          _lhsIvalGam
                                                                                                                                                                                                                          _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                                                                            _lhsIchrStore `seq`
                                                                                                                                                                                                                            (_lhsIclDfGam `seq`
                                                                                                                                                                                                                             (_lhsIfiOpts `seq`
                                                                                                                                                                                                                              (_lhsIknTy `seq`
                                                                                                                                                                                                                               (_lhsItvKiVarMp `seq`
                                                                                                                                                                                                                                (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                 (_lhsItyVarMp `seq`
                                                                                                                                                                                                                                  (_lhsIvalGam `seq`
                                                                                                                                                                                                                                   (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                    ((case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                      { _recExprOvalTyGlobFreeTvarS | _recExprOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                      (case (_lhsIvalGam) of
                                                                                                                                                                                                                                       { _recExprOvalGam | _recExprOvalGam `seq` (True) ->
                                                                                                                                                                                                                                       (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                        { _recExprOtyTyGlobFreeTvarS | _recExprOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                        (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                         { _recExprOtvKiVarMp | _recExprOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                         (case (_lhsIfiOpts) of
                                                                                                                                                                                                                                          { _recExprOfiOpts | _recExprOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                          (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                           { _recExprOclDfGam | _recExprOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                           (case (_lhsIchrStore) of
                                                                                                                                                                                                                                            { _recExprOchrStore | _recExprOchrStore `seq` (True) ->
                                                                                                                                                                                                                                            (case (__tup151) of
                                                                                                                                                                                                                                             { (_,_,_,_,_,_lUniq_freshKnTy) | _lUniq_freshKnTy `seq` (True) ->
                                                                                                                                                                                                                                             (case (__tup151) of
                                                                                                                                                                                                                                              { (_,_,_,_,_lUniq_fit,_) | _lUniq_fit `seq` (True) ->
                                                                                                                                                                                                                                              (case (mkFreshAppImTy _lUniq_freshKnTy id) of
                                                                                                                                                                                                                                               { __tup150 | __tup150 `seq` (True) ->
                                                                                                                                                                                                                                               (case (__tup150) of
                                                                                                                                                                                                                                                { (_,_,_resTy) | _resTy `seq` (True) ->
                                                                                                                                                                                                                                                (case (\o m -> fitsIn o _fe _lUniq_fit m _resTy _lhsIknTy) of
                                                                                                                                                                                                                                                 { _doFit | _doFit `seq` (True) ->
                                                                                                                                                                                                                                                 (case (strongFIOpts) of
                                                                                                                                                                                                                                                  { _recFiOpts | _recFiOpts `seq` (True) ->
                                                                                                                                                                                                                                                  (case (_doFit _recFiOpts _lhsItyVarMp) of
                                                                                                                                                                                                                                                   { _foKnRes | _foKnRes `seq` (True) ->
                                                                                                                                                                                                                                                   (case (foVarMp _foKnRes `varUpd` _lhsItyVarMp) of
                                                                                                                                                                                                                                                    { _forExprTyVarMp | _forExprTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                    (case (_forExprTyVarMp) of
                                                                                                                                                                                                                                                     { _recExprOtyVarMp | _recExprOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                     (case (_foKnRes) of
                                                                                                                                                                                                                                                      { _fo_ | _fo_ `seq` (True) ->
                                                                                                                                                                                                                                                      (case (__tup150) of
                                                                                                                                                                                                                                                       { (_,_knTopTy,_) | _knTopTy `seq` (True) ->
                                                                                                                                                                                                                                                       (case (_knTopTy) of
                                                                                                                                                                                                                                                        { _knRecTy | _knRecTy `seq` (True) ->
                                                                                                                                                                                                                                                        (case (_knRecTy) of
                                                                                                                                                                                                                                                         { _recExprOknTy | _recExprOknTy `seq` (True) ->
                                                                                                                                                                                                                                                         (case (__tup150) of
                                                                                                                                                                                                                                                          { (_imTy,_,_) | _imTy `seq` (True) ->
                                                                                                                                                                                                                                                          (case (foVarMp _foKnRes `varUpd` _imTy) of
                                                                                                                                                                                                                                                           { _imSubsTy | _imSubsTy `seq` (True) ->
                                                                                                                                                                                                                                                           (case (implsPredsTail _predScope $ tyImpls _imSubsTy) of
                                                                                                                                                                                                                                                            { __tup148 | __tup148 `seq` (True) ->
                                                                                                                                                                                                                                                            (case (__tup148) of
                                                                                                                                                                                                                                                             { (_knPrL,_) | _knPrL `seq` (True) ->
                                                                                                                                                                                                                                                             (case (cnstrMpUnions [foGathCnstrMp _fo_, gathPredLToAssumeCnstrMp _knPrL]) of
                                                                                                                                                                                                                                                              { _hereCnstrMp | _hereCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                              (case (recExpr_6 _recExprOchrStore _recExprOclDfGam _recExprOfiOpts _recExprOknTy _recExprOtvKiVarMp _recExprOtyTyGlobFreeTvarS _recExprOtyVarMp _recExprOvalGam _recExprOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                               { ( _recExprIgathCnstrMp,_recExprIgathRangeMp,_recExprInoLetQuantTyVarIdS,_recExprItyVarMp,recExpr_7) | True ->
                                                                                                                                                                                                                                                                   (case (cnstrMpUnions [_hereCnstrMp,_recExprIgathCnstrMp]) of
                                                                                                                                                                                                                                                                    { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                    (case (_recExprIgathRangeMp) of
                                                                                                                                                                                                                                                                     { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                     (case (emptyGam) of
                                                                                                                                                                                                                                                                      { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                                                                                                      (case (_recExprInoLetQuantTyVarIdS) of
                                                                                                                                                                                                                                                                       { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                                                                                                       (case (_resTy) of
                                                                                                                                                                                                                                                                        { _ty | _ty `seq` (True) ->
                                                                                                                                                                                                                                                                        (case (_ty) of
                                                                                                                                                                                                                                                                         { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                                                                                                         (case (_recExprItyVarMp) of
                                                                                                                                                                                                                                                                          { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                          (case ((let sem_Expr_Rec_7 :: T_Expr_7
                                                                                                                                                                                                                                                                                      sem_Expr_Rec_7 =
                                                                                                                                                                                                                                                                                          (\ _lhsIcSubst
                                                                                                                                                                                                                                                                                             _lhsIchrEvidBindMp
                                                                                                                                                                                                                                                                                             _lhsIchrScopeBindMp
                                                                                                                                                                                                                                                                                             _lhsIexprCtxt
                                                                                                                                                                                                                                                                                             _lhsIfinTyVarMp
                                                                                                                                                                                                                                                                                             _lhsIfinValGam
                                                                                                                                                                                                                                                                                             _lhsImoduleNm
                                                                                                                                                                                                                                                                                             _lhsIrangeMp
                                                                                                                                                                                                                                                                                             _lhsIsysfEnv
                                                                                                                                                                                                                                                                                             _lhsItr ->
                                                                                                                                                                                                                                                                                               _lhsIcSubst `seq`
                                                                                                                                                                                                                                                                                               (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                                                                                                (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                                                                                                 (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                                                                                                  (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                                                                                                   (_lhsIfinValGam `seq`
                                                                                                                                                                                                                                                                                                    (_lhsImoduleNm `seq`
                                                                                                                                                                                                                                                                                                     (_lhsIrangeMp `seq`
                                                                                                                                                                                                                                                                                                      (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                                                                                                       (_lhsItr `seq`
                                                                                                                                                                                                                                                                                                        ((case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                          { _recExprOsysfEnv | _recExprOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                          (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                           { _recExprOrangeMp | _recExprOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                           (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                            { _recExprOfinValGam | _recExprOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                            (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                             { _recExprOfinTyVarMp | _recExprOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                             (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                              { _recExprOtr | _recExprOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                              (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                               { _recExprOmoduleNm | _recExprOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                               (case (mkScopeBindings False _predScope _lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                { __tup146 | __tup146 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                (case (__tup146) of
                                                                                                                                                                                                                                                                                                                 { (_,_chrScopeBindMp) | _chrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                 (case (_chrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                  { _recExprOchrScopeBindMp | _recExprOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                  (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                   { _recExprOchrEvidBindMp | _recExprOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                   (case (_lhsIcSubst) of
                                                                                                                                                                                                                                                                                                                    { _recExprOcSubst | _recExprOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                    (case (recExpr_7 _recExprOcSubst _recExprOchrEvidBindMp _recExprOchrScopeBindMp _recExprOfinTyVarMp _recExprOfinValGam _recExprOmoduleNm _recExprOrangeMp _recExprOsysfEnv _recExprOtr) of
                                                                                                                                                                                                                                                                                                                     { ( _recExprIallErrSq,_recExprIcSubst,_recExprIerrSq,_recExprIextNm,_recExprIfuCExprL,_recExprIgathMentrelFilterMp,_recExprIgathTvKiVarMp,_recExprIisExtFromEmpty,_recExprIpp,_recExprIppAST,_recExprIppL,_recExprIrecCExpr,_recExprItrpp,_recExprIty) | True ->
                                                                                                                                                                                                                                                                                                                         (case (_recExprIallErrSq) of
                                                                                                                                                                                                                                                                                                                          { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                          (case ([]) of
                                                                                                                                                                                                                                                                                                                           { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                           (case (reverse _recExprIppL) of
                                                                                                                                                                                                                                                                                                                            { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                            (case (__tup151) of
                                                                                                                                                                                                                                                                                                                             { (_,_,_,_lUniq_cexpr,_,_) | _lUniq_cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                             (case (__tup151) of
                                                                                                                                                                                                                                                                                                                              { (_,_,_lUniq3,_,_,_) | _lUniq3 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                              (case (__tup148) of
                                                                                                                                                                                                                                                                                                                               { (_,_knImplsTl) | _knImplsTl `seq` (True) ->
                                                                                                                                                                                                                                                                                                                               (case (_lhsIfinTyVarMp `varUpd` _knImplsTl) of
                                                                                                                                                                                                                                                                                                                                { _impls2KnTl | _impls2KnTl `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                (case (tyImpls _imSubsTy) of
                                                                                                                                                                                                                                                                                                                                 { _impls2KnHd | _impls2KnHd `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                 (case ([_impls2KnHd, _impls2KnTl]) of
                                                                                                                                                                                                                                                                                                                                  { _impls2KnHdTl | _impls2KnHdTl `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                  (case (concatMap implsPrIdPredL _impls2KnHdTl) of
                                                                                                                                                                                                                                                                                                                                   { _poiPrL | _poiPrL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                   (case (map (mkTyPr . snd) _poiPrL) of
                                                                                                                                                                                                                                                                                                                                    { _finKnImplsL | _finKnImplsL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                    (case (map (tyCanonicFFI (emptyTyBetaRedEnv' _fe)) _finKnImplsL) of
                                                                                                                                                                                                                                                                                                                                     { _finKnImplsLExpanded | _finKnImplsLExpanded `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                     (case (map fst _poiPrL) of
                                                                                                                                                                                                                                                                                                                                      { _poiL | _poiL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                      (case (zipWith (\po ty -> (po,SysF.ty2TyC _lhsIopts _lhsIsysfEnv ty)) _poiL _finKnImplsLExpanded) of
                                                                                                                                                                                                                                                                                                                                       { _poiAndAcoreTyL | _poiAndAcoreTyL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                       (case (mkAssumeBindings (map poiId _poiL) _lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                        { _chrAssumeBindL | _chrAssumeBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                        (case (__tup146) of
                                                                                                                                                                                                                                                                                                                                         { (_chrScopeBindL,_) | _chrScopeBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                         (case (_chrAssumeBindL ++ _chrScopeBindL) of
                                                                                                                                                                                                                                                                                                                                          { _poiBindL | _poiBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                          (case (acoreCoePoiLLamTy (acoreCoeLetRec _poiBindL) _poiAndAcoreTyL) of
                                                                                                                                                                                                                                                                                                                                           { _lamArgCoeL | _lamArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                           (case (if  not (_recExprIisExtFromEmpty)
                                                                                                                                                                                                                                                                                                                                                  then  fuMkCExpr _lhsIopts _lUniq3 (reverse _recExprIfuCExprL) _recExprIrecCExpr
                                                                                                                                                                                                                                                                                                                                                  else
                                                                                                                                                                                                                                                                                                                                                        acoreTagTupTy CTagRec (acoreTyErr "Expr.Rec.rexpr")
                                                                                                                                                                                                                                                                                                                                                          $ fuL2ExprL $ rowCanonOrder $ _recExprIfuCExprL) of
                                                                                                                                                                                                                                                                                                                                            { _rcexpr | _rcexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                            (case (id) of
                                                                                                                                                                                                                                                                                                                                             { _cann | _cann `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                             (case (_recExprIcSubst) of
                                                                                                                                                                                                                                                                                                                                              { _cSubstTop | _cSubstTop `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                              (case (_rcexpr) of
                                                                                                                                                                                                                                                                                                                                               { _cexprtop | _cexprtop `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                               (case (let
                                                                                                                                                                                                                                                                                                                                                          wr      = id
                                                                                                                                                                                                                                                                                                                                                          top     =
                                                                                                                                                                                                                                                                                                                                                                    mkWeaveExpr _lhsIopts _lUniq_cexpr _lhsIfinTyVarMp _cSubstTop (wr . _cann) _cexprtop [] _lamArgCoeL
                                                                                                                                                                                                                                                                                                                                                      in  top) of
                                                                                                                                                                                                                                                                                                                                                { __tup149 | __tup149 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                (case (__tup149) of
                                                                                                                                                                                                                                                                                                                                                 { (_cexpr,_) | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                 (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                  { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                  (case (hsnUnknown) of
                                                                                                                                                                                                                                                                                                                                                   { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                   (case (_recExprIpp) of
                                                                                                                                                                                                                                                                                                                                                    { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                    (case ([]) of
                                                                                                                                                                                                                                                                                                                                                     { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                     (case (__tup149) of
                                                                                                                                                                                                                                                                                                                                                      { (_,_cexprapptopCSubst) | _cexprapptopCSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                      (case (cSubstApp _recExprIcSubst _cexprapptopCSubst) of
                                                                                                                                                                                                                                                                                                                                                       { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                       (case (Set.empty) of
                                                                                                                                                                                                                                                                                                                                                        { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                        (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                         { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                         (case (_recExprIextNm) of
                                                                                                                                                                                                                                                                                                                                                          { _appFunNm | _appFunNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                          (case (ppAppTop  (hsnRec,mkPPAppFun _appFunNm _recExprIpp)
                                                                                                                                                                                                                                                                                                                                                                           (reverse _recExprIppL) _recExprIpp) of
                                                                                                                                                                                                                                                                                                                                                           { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                           (case (rngLift _range mkNestErr' _pp [ _recExprIerrSq
                                                                                                                                                                                                                                                                                                                                                                                                , foErrSq _fo_
                                                                                                                                                                                                                                                                                                                                                                                                ]) of
                                                                                                                                                                                                                                                                                                                                                            { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                            (case ([]) of
                                                                                                                                                                                                                                                                                                                                                             { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                             (case (_recExprIfuCExprL) of
                                                                                                                                                                                                                                                                                                                                                              { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                              (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                               { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                               (case (Seq.empty) of
                                                                                                                                                                                                                                                                                                                                                                { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                 { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                 (case (Map.empty) of
                                                                                                                                                                                                                                                                                                                                                                  { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                  (case (_recExprIgathMentrelFilterMp) of
                                                                                                                                                                                                                                                                                                                                                                   { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                   (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                    { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                    (case (_recExprIgathTvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                                     { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                     (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                      { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                      (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                       { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                       (case (False) of
                                                                                                                                                                                                                                                                                                                                                                        { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                        (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                         { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                         (case (_lamArgPPL) of
                                                                                                                                                                                                                                                                                                                                                                          { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                          (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                           { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                           (case (_lamBodyPP) of
                                                                                                                                                                                                                                                                                                                                                                            { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                            (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                             { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                             (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                              { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                              (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                               { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                               (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                (case (Set.empty) of
                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                 (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                  (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                   { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                   (case (ppNestTrPP ["Expr","Rec"] [] [_recExprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                    { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                    (case (_ppAST) of
                                                                                                                                                                                                                                                                                                                                                                                     { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                     (case (_recExprItrpp) of
                                                                                                                                                                                                                                                                                                                                                                                      { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                      ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                                                                                                  in  sem_Expr_Rec_7)) of
                                                                                                                                                                                                                                                                           { ( sem_Expr_7) | True ->
                                                                                                                                                                                                                                                                           ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                                                                               in  sem_Expr_Rec_6)) of
                                                                                                                                                                                                        { ( sem_Expr_6) | True ->
                                                                                                                                                                                                        ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) }) }) }) })))
                                                                                                                                                                            in  sem_Expr_Rec_5)) of
                                                                                                                                                                     { ( sem_Expr_5) | True ->
                                                                                                                                                                     ( _lhsOgathDataGam,sem_Expr_5) }) }) }) }) }) }) }) })))))))
                                                                                                                                       in  sem_Expr_Rec_4)) of
                                                                                                                                { ( sem_Expr_4) | True ->
                                                                                                                                ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                       in  sem_Expr_Rec_3)) of
                                                                                { ( sem_Expr_3) | True ->
                                                                                ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }) }) }) }) }) }) }) }))))))
                                                  in  sem_Expr_Rec_2)) of
                                           { ( sem_Expr_2) | True ->
                                           ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) }) }) })))
                   in  sem_Expr_Rec_1)) of
            { ( sem_Expr_1) | True ->
            ( _lhsOrange,sem_Expr_1) }) }) }) })

sem_Expr_Sel :: Range ->
                T_Expr ->
                HsName ->
                T_Expr

sem_Expr_Sel hsrange_ expr_ lbl_ | hsrange_ `seq` (expr_ `seq` (lbl_ `seq` (True))) =
    (case (expr_) of
     { ( _exprIrange,expr_1) | True ->
         (case (rangeUnions [hsrange_, _exprIrange   , _exprIrange  ]) of
          { _range | _range `seq` (True) ->
          (case (_range) of
           { _lhsOrange | _lhsOrange `seq` (True) ->
           (case ((let sem_Expr_Sel_1 :: T_Expr_1
                       sem_Expr_Sel_1 =
                           (\ _lhsIgUniq ->
                                _lhsIgUniq `seq`
                                ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq2) -> case nextUnique __cont of { (__cont, lUniq_freshKnTy) -> (__cont,lUniq2,lUniq_freshKnTy)}} )) of
                                  { __tup156 | __tup156 `seq` (True) ->
                                  (case (__tup156) of
                                   { (_exprOgUniq,_,_) | _exprOgUniq `seq` (True) ->
                                   (case (expr_1 _exprOgUniq) of
                                    { ( _exprIgUniq,_exprIhasInstDecl,expr_2) | True ->
                                        (case (_exprIgUniq) of
                                         { _lhsOgUniq | _lhsOgUniq `seq` (True) ->
                                         (case (False) of
                                          { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                                          (case ((let sem_Expr_Sel_2 :: T_Expr_2
                                                      sem_Expr_Sel_2 =
                                                          (\ _lhsIisFirstLet
                                                             _lhsIkiGam
                                                             _lhsIlexLev
                                                             _lhsIpredSameScopeCounter ->
                                                               _lhsIisFirstLet `seq`
                                                               (_lhsIkiGam `seq`
                                                                (_lhsIlexLev `seq`
                                                                 (_lhsIpredSameScopeCounter `seq`
                                                                  ((case (_lhsIpredSameScopeCounter) of
                                                                    { _exprOpredSameScopeCounter | _exprOpredSameScopeCounter `seq` (True) ->
                                                                    (case (_lhsIlexLev) of
                                                                     { _exprOlexLev | _exprOlexLev `seq` (True) ->
                                                                     (case (_lhsIkiGam) of
                                                                      { _exprOkiGam | _exprOkiGam `seq` (True) ->
                                                                      (case (True) of
                                                                       { _isFirstLet | _isFirstLet `seq` (True) ->
                                                                       (case (_isFirstLet) of
                                                                        { _exprOisFirstLet | _exprOisFirstLet `seq` (True) ->
                                                                        (case (expr_2 _exprOisFirstLet _exprOkiGam _exprOlexLev _exprOpredSameScopeCounter) of
                                                                         { ( _exprIpredSameScopeCounter,expr_3) | True ->
                                                                             (case (_exprIpredSameScopeCounter) of
                                                                              { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                                              (case ((let sem_Expr_Sel_3 :: T_Expr_3
                                                                                          sem_Expr_Sel_3 =
                                                                                              (\ _lhsIgenerDataInfoMp
                                                                                                 _lhsIkiVarMp
                                                                                                 _lhsIopts
                                                                                                 _lhsIpolGam
                                                                                                 _lhsIpolVarMp
                                                                                                 _lhsIpredScope
                                                                                                 _lhsItyGam
                                                                                                 _lhsItyKiGam
                                                                                                 _lhsItyKiGlobFreeTvarS ->
                                                                                                   _lhsIgenerDataInfoMp `seq`
                                                                                                   (_lhsIkiVarMp `seq`
                                                                                                    (_lhsIopts `seq`
                                                                                                     (_lhsIpolGam `seq`
                                                                                                      (_lhsIpolVarMp `seq`
                                                                                                       (_lhsIpredScope `seq`
                                                                                                        (_lhsItyGam `seq`
                                                                                                         (_lhsItyKiGam `seq`
                                                                                                          (_lhsItyKiGlobFreeTvarS `seq`
                                                                                                           ((case (_lhsItyKiGlobFreeTvarS) of
                                                                                                             { _exprOtyKiGlobFreeTvarS | _exprOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                             (case (_lhsItyKiGam) of
                                                                                                              { _exprOtyKiGam | _exprOtyKiGam `seq` (True) ->
                                                                                                              (case (_lhsItyGam) of
                                                                                                               { _exprOtyGam | _exprOtyGam `seq` (True) ->
                                                                                                               (case (_lhsIpredScope) of
                                                                                                                { _predScope | _predScope `seq` (True) ->
                                                                                                                (case (_predScope) of
                                                                                                                 { _exprOpredScope | _exprOpredScope `seq` (True) ->
                                                                                                                 (case (_lhsIpolVarMp) of
                                                                                                                  { _exprOpolVarMp | _exprOpolVarMp `seq` (True) ->
                                                                                                                  (case (_lhsIpolGam) of
                                                                                                                   { _exprOpolGam | _exprOpolGam `seq` (True) ->
                                                                                                                   (case (_lhsIopts) of
                                                                                                                    { _exprOopts | _exprOopts `seq` (True) ->
                                                                                                                    (case (_lhsIkiVarMp) of
                                                                                                                     { _exprOkiVarMp | _exprOkiVarMp `seq` (True) ->
                                                                                                                     (case (_lhsIgenerDataInfoMp) of
                                                                                                                      { _exprOgenerDataInfoMp | _exprOgenerDataInfoMp `seq` (True) ->
                                                                                                                      (case (expr_3 _exprOgenerDataInfoMp _exprOkiVarMp _exprOopts _exprOpolGam _exprOpolVarMp _exprOpredScope _exprOtyGam _exprOtyKiGam _exprOtyKiGlobFreeTvarS) of
                                                                                                                       { ( _exprIgenerDataInfoMp,_exprIkiVarMp,_exprIpolVarMp,expr_4) | True ->
                                                                                                                           (case (_exprIgenerDataInfoMp) of
                                                                                                                            { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                                                            (case (_exprIkiVarMp) of
                                                                                                                             { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                                                             (case (_exprIpolVarMp) of
                                                                                                                              { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                                                              (case ((let sem_Expr_Sel_4 :: T_Expr_4
                                                                                                                                          sem_Expr_Sel_4 =
                                                                                                                                              (\ _lhsIclGam
                                                                                                                                                 _lhsIfinKiVarMp
                                                                                                                                                 _lhsIfinTyKiGam
                                                                                                                                                 _lhsIgathDataGam
                                                                                                                                                 _lhsItyTyTySigFreeTvarS ->
                                                                                                                                                   _lhsIclGam `seq`
                                                                                                                                                   (_lhsIfinKiVarMp `seq`
                                                                                                                                                    (_lhsIfinTyKiGam `seq`
                                                                                                                                                     (_lhsIgathDataGam `seq`
                                                                                                                                                      (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                                                       ((case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                         { _exprOtyTyTySigFreeTvarS | _exprOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                         (case (_lhsIgathDataGam) of
                                                                                                                                                          { _exprOgathDataGam | _exprOgathDataGam `seq` (True) ->
                                                                                                                                                          (case (_lhsIfinTyKiGam) of
                                                                                                                                                           { _exprOfinTyKiGam | _exprOfinTyKiGam `seq` (True) ->
                                                                                                                                                           (case (_lhsIfinKiVarMp) of
                                                                                                                                                            { _exprOfinKiVarMp | _exprOfinKiVarMp `seq` (True) ->
                                                                                                                                                            (case (_lhsIclGam) of
                                                                                                                                                             { _exprOclGam | _exprOclGam `seq` (True) ->
                                                                                                                                                             (case (expr_4 _exprOclGam _exprOfinKiVarMp _exprOfinTyKiGam _exprOgathDataGam _exprOtyTyTySigFreeTvarS) of
                                                                                                                                                              { ( _exprIgathDataGam,expr_5) | True ->
                                                                                                                                                                  (case (_exprIgathDataGam) of
                                                                                                                                                                   { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                                                                   (case ((let sem_Expr_Sel_5 :: T_Expr_5
                                                                                                                                                                               sem_Expr_Sel_5 =
                                                                                                                                                                                   (\ _lhsIdataGam ->
                                                                                                                                                                                        _lhsIdataGam `seq`
                                                                                                                                                                                        ((case (Seq.empty) of
                                                                                                                                                                                          { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                                                                          (case (defaultFIEnv
                                                                                                                                                                                                     { feEHCOpts = _lhsIopts
                                                                                                                                                                                                     , fePredScope = _lhsIpredScope
                                                                                                                                                                                                     , feTyGam = _lhsItyGam
                                                                                                                                                                                                     , fePolGam = _lhsIpolGam
                                                                                                                                                                                                     , feRange = _range
                                                                                                                                                                                                     }) of
                                                                                                                                                                                           { _fe | _fe `seq` (True) ->
                                                                                                                                                                                           (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                                                                            { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                                                                            (case (_chrFIIn) of
                                                                                                                                                                                             { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                                                                             (case (_lhsIdataGam) of
                                                                                                                                                                                              { _exprOdataGam | _exprOdataGam `seq` (True) ->
                                                                                                                                                                                              (case (expr_5 _exprOdataGam) of
                                                                                                                                                                                               { ( _exprIchrClassDeclSq,_exprIchrFIIn,_exprIchrInstDeclSq,_exprIgathClDfGam,expr_6) | True ->
                                                                                                                                                                                                   (case (_exprIchrInstDeclSq) of
                                                                                                                                                                                                    { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                                                                    (case (emptyGam) of
                                                                                                                                                                                                     { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                                                                     (case ((let sem_Expr_Sel_6 :: T_Expr_6
                                                                                                                                                                                                                 sem_Expr_Sel_6 =
                                                                                                                                                                                                                     (\ _lhsIchrStore
                                                                                                                                                                                                                        _lhsIclDfGam
                                                                                                                                                                                                                        _lhsIfiOpts
                                                                                                                                                                                                                        _lhsIknTy
                                                                                                                                                                                                                        _lhsItvKiVarMp
                                                                                                                                                                                                                        _lhsItyTyGlobFreeTvarS
                                                                                                                                                                                                                        _lhsItyVarMp
                                                                                                                                                                                                                        _lhsIvalGam
                                                                                                                                                                                                                        _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                                                                          _lhsIchrStore `seq`
                                                                                                                                                                                                                          (_lhsIclDfGam `seq`
                                                                                                                                                                                                                           (_lhsIfiOpts `seq`
                                                                                                                                                                                                                            (_lhsIknTy `seq`
                                                                                                                                                                                                                             (_lhsItvKiVarMp `seq`
                                                                                                                                                                                                                              (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                               (_lhsItyVarMp `seq`
                                                                                                                                                                                                                                (_lhsIvalGam `seq`
                                                                                                                                                                                                                                 (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                  ((case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                    { _exprOvalTyGlobFreeTvarS | _exprOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                    (case (_lhsIvalGam) of
                                                                                                                                                                                                                                     { _exprOvalGam | _exprOvalGam `seq` (True) ->
                                                                                                                                                                                                                                     (case (_lhsItyVarMp) of
                                                                                                                                                                                                                                      { _exprOtyVarMp | _exprOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                      (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                       { _exprOtyTyGlobFreeTvarS | _exprOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                       (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                        { _exprOtvKiVarMp | _exprOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                        (case (_lhsIfiOpts) of
                                                                                                                                                                                                                                         { _exprOfiOpts | _exprOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                         (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                          { _exprOclDfGam | _exprOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                          (case (_lhsIchrStore) of
                                                                                                                                                                                                                                           { _exprOchrStore | _exprOchrStore `seq` (True) ->
                                                                                                                                                                                                                                           (case (__tup156) of
                                                                                                                                                                                                                                            { (_,_,_lUniq_freshKnTy) | _lUniq_freshKnTy `seq` (True) ->
                                                                                                                                                                                                                                            (case (__tup156) of
                                                                                                                                                                                                                                             { (_,_lUniq2,_) | _lUniq2 `seq` (True) ->
                                                                                                                                                                                                                                             (case (let r = mkNewTyVar _lUniq_freshKnTy
                                                                                                                                                                                                                                                    in  (r, [Ty_Impls Impls_Nil] `appArr` ((hsnRec `appConApp` [r]) `recRecExt` [(lbl_,_lhsIknTy)]))) of
                                                                                                                                                                                                                                              { __tup154 | __tup154 `seq` (True) ->
                                                                                                                                                                                                                                              (case (__tup154) of
                                                                                                                                                                                                                                               { (_,_knExprTy) | _knExprTy `seq` (True) ->
                                                                                                                                                                                                                                               (case (__tup154) of
                                                                                                                                                                                                                                                { (_knRowTy,_) | _knRowTy `seq` (True) ->
                                                                                                                                                                                                                                                (case (_knExprTy) of
                                                                                                                                                                                                                                                 { _exprOknTy | _exprOknTy `seq` (True) ->
                                                                                                                                                                                                                                                 (case (mkPrIdCHR _lUniq2) of
                                                                                                                                                                                                                                                  { _prUid | _prUid `seq` (True) ->
                                                                                                                                                                                                                                                  (case ([rngLift _range mkPredOccRng (Pred_Lacks _knRowTy (Label_Lab lbl_)) _prUid _lhsIpredScope]) of
                                                                                                                                                                                                                                                   { _prOccL | _prOccL `seq` (True) ->
                                                                                                                                                                                                                                                   (case (gathPredLToProveCnstrMp _prOccL) of
                                                                                                                                                                                                                                                    { _hereCnstrMp | _hereCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                    (case (expr_6 _exprOchrStore _exprOclDfGam _exprOfiOpts _exprOknTy _exprOtvKiVarMp _exprOtyTyGlobFreeTvarS _exprOtyVarMp _exprOvalGam _exprOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                     { ( _exprIgathCnstrMp,_exprIgathRangeMp,_exprIgathValGam,_exprInoLetQuantTyVarIdS,_exprIty,_exprItyVarMp,expr_7) | True ->
                                                                                                                                                                                                                                                         (case (cnstrMpUnions [_hereCnstrMp, _exprIgathCnstrMp]) of
                                                                                                                                                                                                                                                          { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                          (case (_exprIgathRangeMp) of
                                                                                                                                                                                                                                                           { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                                                                                           (case (emptyGam) of
                                                                                                                                                                                                                                                            { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                                                                                            (case (_exprInoLetQuantTyVarIdS) of
                                                                                                                                                                                                                                                             { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                                                                                             (case (maybe (Ty_Any,Ty_Any) id (tyRecExtrWithLkup (varmpTyLookupCyc2 _exprItyVarMp) lbl_ $ snd $ tyArrowImplsResWithLkup (varmpTyLookupCyc2 _exprItyVarMp) _exprIty)) of
                                                                                                                                                                                                                                                              { __tup155 | __tup155 `seq` (True) ->
                                                                                                                                                                                                                                                              (case (__tup155) of
                                                                                                                                                                                                                                                               { (_,_ty) | _ty `seq` (True) ->
                                                                                                                                                                                                                                                               (case (_ty) of
                                                                                                                                                                                                                                                                { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                                                                                                (case (_exprItyVarMp) of
                                                                                                                                                                                                                                                                 { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                 (case ((let sem_Expr_Sel_7 :: T_Expr_7
                                                                                                                                                                                                                                                                             sem_Expr_Sel_7 =
                                                                                                                                                                                                                                                                                 (\ _lhsIcSubst
                                                                                                                                                                                                                                                                                    _lhsIchrEvidBindMp
                                                                                                                                                                                                                                                                                    _lhsIchrScopeBindMp
                                                                                                                                                                                                                                                                                    _lhsIexprCtxt
                                                                                                                                                                                                                                                                                    _lhsIfinTyVarMp
                                                                                                                                                                                                                                                                                    _lhsIfinValGam
                                                                                                                                                                                                                                                                                    _lhsImoduleNm
                                                                                                                                                                                                                                                                                    _lhsIrangeMp
                                                                                                                                                                                                                                                                                    _lhsIsysfEnv
                                                                                                                                                                                                                                                                                    _lhsItr ->
                                                                                                                                                                                                                                                                                      _lhsIcSubst `seq`
                                                                                                                                                                                                                                                                                      (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                                                                                       (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                                                                                        (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                                                                                         (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                                                                                          (_lhsIfinValGam `seq`
                                                                                                                                                                                                                                                                                           (_lhsImoduleNm `seq`
                                                                                                                                                                                                                                                                                            (_lhsIrangeMp `seq`
                                                                                                                                                                                                                                                                                             (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                                                                                              (_lhsItr `seq`
                                                                                                                                                                                                                                                                                               ((case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                 { _exprOsysfEnv | _exprOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                 (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                  { _exprOrangeMp | _exprOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                  (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                   { _exprOfinValGam | _exprOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                   (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                    { _exprOfinTyVarMp | _exprOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                    (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                     { _exprOtr | _exprOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                     (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                      { _exprOmoduleNm | _exprOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                      (case (ExprCtxt_Internal) of
                                                                                                                                                                                                                                                                                                       { _exprCtxt | _exprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                       (case (_exprCtxt) of
                                                                                                                                                                                                                                                                                                        { _exprOexprCtxt | _exprOexprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                        (case (_lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                                         { _exprOchrScopeBindMp | _exprOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                         (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                          { _exprOchrEvidBindMp | _exprOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                          (case (_lhsIcSubst) of
                                                                                                                                                                                                                                                                                                           { _exprOcSubst | _exprOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                           (case (expr_7 _exprOcSubst _exprOchrEvidBindMp _exprOchrScopeBindMp _exprOexprCtxt _exprOfinTyVarMp _exprOfinValGam _exprOmoduleNm _exprOrangeMp _exprOsysfEnv _exprOtr) of
                                                                                                                                                                                                                                                                                                            { ( _exprIallErrSq,_exprIappArgCoeL,_exprIappArgPPL,_exprIappFunCExpr,_exprIappFunNm,_exprIappFunPP,_exprIbackCBindL,_exprIcSubst,_exprIcaseFailS,_exprIcexpr,_exprIerrSq,_exprIfrontCBindL,_exprIfuCExprL,_exprIgathClGam,_exprIgathHiddenExports,_exprIgathKiGam,_exprIgathLamMp,_exprIgathMentrelFilterMp,_exprIgathPolGam,_exprIgathTvKiVarMp,_exprIgathTyGam,_exprIgathTyKiGam,_exprIisNewtype,_exprIlamArgPPL,_exprIlamBodyPP,_exprIletCBody,_exprIletTyCBindL,_exprIletValCBindL,_exprIletValMainCBindL,_exprIorphanS,_exprIpp,_exprIppAST,_exprItrpp) | True ->
                                                                                                                                                                                                                                                                                                                (case (_exprIallErrSq) of
                                                                                                                                                                                                                                                                                                                 { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                 (case ([]) of
                                                                                                                                                                                                                                                                                                                  { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                  (case ([]) of
                                                                                                                                                                                                                                                                                                                   { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                   (case ((emptyRCEEnv _lhsIopts) { rceValGam = _lhsIvalGam, rceDataGam = _lhsIdataGam, rceTyVarMp = _lhsIfinTyVarMp }) of
                                                                                                                                                                                                                                                                                                                    { _rceEnv | _rceEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                    (case (cSubstApp _exprIcSubst $ acoreNmHolePred _prUid) of
                                                                                                                                                                                                                                                                                                                     { _offset | _offset `seq` (True) ->
                                                                                                                                                                                                                                                                                                                     (case (let  [n1,n2] = map uidHNm . mkNewUIDL 2 $ _lUniq_freshKnTy
                                                                                                                                                                                                                                                                                                                            in   acoreSelCaseTy _rceEnv (Just (n1,(acoreTyErr $ "EH.ToCore.Expr.Sel.n1: " ++ show n1))) _exprIcexpr CTagRec n2            _offset Nothing) of
                                                                                                                                                                                                                                                                                                                      { _cexpr | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                      (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                       { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                       (case (hsnUnknown) of
                                                                                                                                                                                                                                                                                                                        { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                        (case (_exprIpp >|< "." >|< lbl_) of
                                                                                                                                                                                                                                                                                                                         { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                         (case (_pp) of
                                                                                                                                                                                                                                                                                                                          { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                          (case ([]) of
                                                                                                                                                                                                                                                                                                                           { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                           (case (_exprIcSubst) of
                                                                                                                                                                                                                                                                                                                            { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                            (case (_exprIcaseFailS) of
                                                                                                                                                                                                                                                                                                                             { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                             (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                              { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                              (case (_exprIerrSq) of
                                                                                                                                                                                                                                                                                                                               { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                               (case ([]) of
                                                                                                                                                                                                                                                                                                                                { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                (case ([]) of
                                                                                                                                                                                                                                                                                                                                 { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                 (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                  { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                  (case (_exprIgathHiddenExports) of
                                                                                                                                                                                                                                                                                                                                   { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                   (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                    { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                    (case (_exprIgathLamMp) of
                                                                                                                                                                                                                                                                                                                                     { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                     (case (_exprIgathMentrelFilterMp) of
                                                                                                                                                                                                                                                                                                                                      { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                      (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                       { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                       (case (_exprIgathTvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                        { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                        (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                         { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                         (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                          { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                          (case (False) of
                                                                                                                                                                                                                                                                                                                                           { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                           (case ([]) of
                                                                                                                                                                                                                                                                                                                                            { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                            (case (_lamArgPPL) of
                                                                                                                                                                                                                                                                                                                                             { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                             (case (_pp) of
                                                                                                                                                                                                                                                                                                                                              { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                              (case (_lamBodyPP) of
                                                                                                                                                                                                                                                                                                                                               { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                               (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                (case ([]) of
                                                                                                                                                                                                                                                                                                                                                 { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                 (case ([]) of
                                                                                                                                                                                                                                                                                                                                                  { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                  (case ([]) of
                                                                                                                                                                                                                                                                                                                                                   { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                   (case (Set.empty) of
                                                                                                                                                                                                                                                                                                                                                    { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                    (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                     { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                     (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                      { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                      (case (ppNestTrPP ["Expr","Sel"] [ppTrNm lbl_] [_exprIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                       { _ppAST | _ppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                       (case (_ppAST) of
                                                                                                                                                                                                                                                                                                                                                        { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                        (case (_exprItrpp) of
                                                                                                                                                                                                                                                                                                                                                         { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                         ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                                                                                         in  sem_Expr_Sel_7)) of
                                                                                                                                                                                                                                                                  { ( sem_Expr_7) | True ->
                                                                                                                                                                                                                                                                  ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                                                                             in  sem_Expr_Sel_6)) of
                                                                                                                                                                                                      { ( sem_Expr_6) | True ->
                                                                                                                                                                                                      ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) }) }) })))
                                                                                                                                                                           in  sem_Expr_Sel_5)) of
                                                                                                                                                                    { ( sem_Expr_5) | True ->
                                                                                                                                                                    ( _lhsOgathDataGam,sem_Expr_5) }) }) }) }) }) }) }) })))))))
                                                                                                                                      in  sem_Expr_Sel_4)) of
                                                                                                                               { ( sem_Expr_4) | True ->
                                                                                                                               ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                      in  sem_Expr_Sel_3)) of
                                                                               { ( sem_Expr_3) | True ->
                                                                               ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }) }) }) }) }) }) }))))))
                                                  in  sem_Expr_Sel_2)) of
                                           { ( sem_Expr_2) | True ->
                                           ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) }) }) })))
                   in  sem_Expr_Sel_1)) of
            { ( sem_Expr_1) | True ->
            ( _lhsOrange,sem_Expr_1) }) }) }) })

sem_Expr_Undefined :: Range ->
                      T_Expr

sem_Expr_Undefined hsrange_ | hsrange_ `seq` (True) =
    (case (hsrange_) of
     { _range | _range `seq` (True) ->
     (case (_range) of
      { _lhsOrange | _lhsOrange `seq` (True) ->
      (case ((let sem_Expr_Undefined_1 :: T_Expr_1
                  sem_Expr_Undefined_1 =
                      (\ _lhsIgUniq ->
                           _lhsIgUniq `seq`
                           ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )) of
                             { __tup157 | __tup157 `seq` (True) ->
                             (case (__tup157) of
                              { (_lhsOgUniq,_) | _lhsOgUniq `seq` (True) ->
                              (case (False) of
                               { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                               (case ((let sem_Expr_Undefined_2 :: T_Expr_2
                                           sem_Expr_Undefined_2 =
                                               (\ _lhsIisFirstLet
                                                  _lhsIkiGam
                                                  _lhsIlexLev
                                                  _lhsIpredSameScopeCounter ->
                                                    _lhsIisFirstLet `seq`
                                                    (_lhsIkiGam `seq`
                                                     (_lhsIlexLev `seq`
                                                      (_lhsIpredSameScopeCounter `seq`
                                                       ((case (_lhsIpredSameScopeCounter) of
                                                         { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                         (case ((let sem_Expr_Undefined_3 :: T_Expr_3
                                                                     sem_Expr_Undefined_3 =
                                                                         (\ _lhsIgenerDataInfoMp
                                                                            _lhsIkiVarMp
                                                                            _lhsIopts
                                                                            _lhsIpolGam
                                                                            _lhsIpolVarMp
                                                                            _lhsIpredScope
                                                                            _lhsItyGam
                                                                            _lhsItyKiGam
                                                                            _lhsItyKiGlobFreeTvarS ->
                                                                              _lhsIgenerDataInfoMp `seq`
                                                                              (_lhsIkiVarMp `seq`
                                                                               (_lhsIopts `seq`
                                                                                (_lhsIpolGam `seq`
                                                                                 (_lhsIpolVarMp `seq`
                                                                                  (_lhsIpredScope `seq`
                                                                                   (_lhsItyGam `seq`
                                                                                    (_lhsItyKiGam `seq`
                                                                                     (_lhsItyKiGlobFreeTvarS `seq`
                                                                                      ((case (_lhsIgenerDataInfoMp) of
                                                                                        { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                        (case (_lhsIkiVarMp) of
                                                                                         { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                         (case (_lhsIpolVarMp) of
                                                                                          { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                          (case ((let sem_Expr_Undefined_4 :: T_Expr_4
                                                                                                      sem_Expr_Undefined_4 =
                                                                                                          (\ _lhsIclGam
                                                                                                             _lhsIfinKiVarMp
                                                                                                             _lhsIfinTyKiGam
                                                                                                             _lhsIgathDataGam
                                                                                                             _lhsItyTyTySigFreeTvarS ->
                                                                                                               _lhsIclGam `seq`
                                                                                                               (_lhsIfinKiVarMp `seq`
                                                                                                                (_lhsIfinTyKiGam `seq`
                                                                                                                 (_lhsIgathDataGam `seq`
                                                                                                                  (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                   ((case (_lhsIgathDataGam) of
                                                                                                                     { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                     (case ((let sem_Expr_Undefined_5 :: T_Expr_5
                                                                                                                                 sem_Expr_Undefined_5 =
                                                                                                                                     (\ _lhsIdataGam ->
                                                                                                                                          _lhsIdataGam `seq`
                                                                                                                                          ((case (Seq.empty) of
                                                                                                                                            { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                            (case (defaultFIEnv
                                                                                                                                                       { feEHCOpts = _lhsIopts
                                                                                                                                                       , fePredScope = _lhsIpredScope
                                                                                                                                                       , feTyGam = _lhsItyGam
                                                                                                                                                       , fePolGam = _lhsIpolGam
                                                                                                                                                       , feRange = _range
                                                                                                                                                       }) of
                                                                                                                                             { _fe | _fe `seq` (True) ->
                                                                                                                                             (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                              { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                              (case (_chrFIIn) of
                                                                                                                                               { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                               (case (Seq.empty) of
                                                                                                                                                { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                (case (emptyGam) of
                                                                                                                                                 { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                 (case ((let sem_Expr_Undefined_6 :: T_Expr_6
                                                                                                                                                             sem_Expr_Undefined_6 =
                                                                                                                                                                 (\ _lhsIchrStore
                                                                                                                                                                    _lhsIclDfGam
                                                                                                                                                                    _lhsIfiOpts
                                                                                                                                                                    _lhsIknTy
                                                                                                                                                                    _lhsItvKiVarMp
                                                                                                                                                                    _lhsItyTyGlobFreeTvarS
                                                                                                                                                                    _lhsItyVarMp
                                                                                                                                                                    _lhsIvalGam
                                                                                                                                                                    _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                      _lhsIchrStore `seq`
                                                                                                                                                                      (_lhsIclDfGam `seq`
                                                                                                                                                                       (_lhsIfiOpts `seq`
                                                                                                                                                                        (_lhsIknTy `seq`
                                                                                                                                                                         (_lhsItvKiVarMp `seq`
                                                                                                                                                                          (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                           (_lhsItyVarMp `seq`
                                                                                                                                                                            (_lhsIvalGam `seq`
                                                                                                                                                                             (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                              ((case (Map.empty) of
                                                                                                                                                                                { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                (case (Map.empty) of
                                                                                                                                                                                 { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                 (case (emptyGam) of
                                                                                                                                                                                  { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                  (case (Set.empty) of
                                                                                                                                                                                   { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                   (case (__tup157) of
                                                                                                                                                                                    { (_,_lUniq) | _lUniq `seq` (True) ->
                                                                                                                                                                                    (case (tyEnsureNonAny _lUniq _lhsIknTy) of
                                                                                                                                                                                     { _ty | _ty `seq` (True) ->
                                                                                                                                                                                     (case (_ty) of
                                                                                                                                                                                      { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                      (case (_lhsItyVarMp) of
                                                                                                                                                                                       { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                       (case ((let sem_Expr_Undefined_7 :: T_Expr_7
                                                                                                                                                                                                   sem_Expr_Undefined_7 =
                                                                                                                                                                                                       (\ _lhsIcSubst
                                                                                                                                                                                                          _lhsIchrEvidBindMp
                                                                                                                                                                                                          _lhsIchrScopeBindMp
                                                                                                                                                                                                          _lhsIexprCtxt
                                                                                                                                                                                                          _lhsIfinTyVarMp
                                                                                                                                                                                                          _lhsIfinValGam
                                                                                                                                                                                                          _lhsImoduleNm
                                                                                                                                                                                                          _lhsIrangeMp
                                                                                                                                                                                                          _lhsIsysfEnv
                                                                                                                                                                                                          _lhsItr ->
                                                                                                                                                                                                            _lhsIcSubst `seq`
                                                                                                                                                                                                            (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                             (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                              (_lhsIexprCtxt `seq`
                                                                                                                                                                                                               (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                (_lhsIfinValGam `seq`
                                                                                                                                                                                                                 (_lhsImoduleNm `seq`
                                                                                                                                                                                                                  (_lhsIrangeMp `seq`
                                                                                                                                                                                                                   (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                    (_lhsItr `seq`
                                                                                                                                                                                                                     ((case (Seq.empty) of
                                                                                                                                                                                                                       { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                       (case ([]) of
                                                                                                                                                                                                                        { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                        (case ([]) of
                                                                                                                                                                                                                         { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                         (case (acoreBuiltinUndefined _lhsIopts) of
                                                                                                                                                                                                                          { _cexpr | _cexpr `seq` (True) ->
                                                                                                                                                                                                                          (case (_cexpr) of
                                                                                                                                                                                                                           { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                           (case (hsnUnknown) of
                                                                                                                                                                                                                            { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                            (case (pp "...") of
                                                                                                                                                                                                                             { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                             (case (_pp) of
                                                                                                                                                                                                                              { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                              (case ([]) of
                                                                                                                                                                                                                               { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                               (case (_lhsIcSubst) of
                                                                                                                                                                                                                                { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                (case (Set.empty) of
                                                                                                                                                                                                                                 { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                 (case (_cexpr) of
                                                                                                                                                                                                                                  { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                  (case (Seq.empty) of
                                                                                                                                                                                                                                   { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                   (case ([]) of
                                                                                                                                                                                                                                    { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                    (case ([]) of
                                                                                                                                                                                                                                     { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                     (case (emptyGam) of
                                                                                                                                                                                                                                      { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                      (case (Seq.empty) of
                                                                                                                                                                                                                                       { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                       (case (emptyGam) of
                                                                                                                                                                                                                                        { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                        (case (Map.empty) of
                                                                                                                                                                                                                                         { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                         (case (Map.empty) of
                                                                                                                                                                                                                                          { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                          (case (emptyGam) of
                                                                                                                                                                                                                                           { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                           (case (emptyVarMp) of
                                                                                                                                                                                                                                            { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                            (case (emptyGam) of
                                                                                                                                                                                                                                             { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                             (case (emptyGam) of
                                                                                                                                                                                                                                              { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                              (case (False) of
                                                                                                                                                                                                                                               { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                               (case ([]) of
                                                                                                                                                                                                                                                { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                (case (_lamArgPPL) of
                                                                                                                                                                                                                                                 { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                 (case (_pp) of
                                                                                                                                                                                                                                                  { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                  (case (_lamBodyPP) of
                                                                                                                                                                                                                                                   { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                   (case (_cexpr) of
                                                                                                                                                                                                                                                    { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                    (case ([]) of
                                                                                                                                                                                                                                                     { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                     (case ([]) of
                                                                                                                                                                                                                                                      { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                      (case ([]) of
                                                                                                                                                                                                                                                       { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                       (case (Set.empty) of
                                                                                                                                                                                                                                                        { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                        (case (_pp) of
                                                                                                                                                                                                                                                         { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                         (case (empty) of
                                                                                                                                                                                                                                                          { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                          (case (trppEmpty) of
                                                                                                                                                                                                                                                           { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                           ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                               in  sem_Expr_Undefined_7)) of
                                                                                                                                                                                        { ( sem_Expr_7) | True ->
                                                                                                                                                                                        ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                         in  sem_Expr_Undefined_6)) of
                                                                                                                                                  { ( sem_Expr_6) | True ->
                                                                                                                                                  ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) })))
                                                                                                                             in  sem_Expr_Undefined_5)) of
                                                                                                                      { ( sem_Expr_5) | True ->
                                                                                                                      ( _lhsOgathDataGam,sem_Expr_5) }) })))))))
                                                                                                  in  sem_Expr_Undefined_4)) of
                                                                                           { ( sem_Expr_4) | True ->
                                                                                           ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) })))))))))))
                                                                 in  sem_Expr_Undefined_3)) of
                                                          { ( sem_Expr_3) | True ->
                                                          ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }))))))
                                       in  sem_Expr_Undefined_2)) of
                                { ( sem_Expr_2) | True ->
                                ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) })))
              in  sem_Expr_Undefined_1)) of
       { ( sem_Expr_1) | True ->
       ( _lhsOrange,sem_Expr_1) }) }) })

sem_Expr_CaseAltFail :: Range ->
                        UID ->
                        T_Expr

sem_Expr_CaseAltFail hsrange_ caseId_ | hsrange_ `seq` (caseId_ `seq` (True)) =
    (case (hsrange_) of
     { _range | _range `seq` (True) ->
     (case (_range) of
      { _lhsOrange | _lhsOrange `seq` (True) ->
      (case ((let sem_Expr_CaseAltFail_1 :: T_Expr_1
                  sem_Expr_CaseAltFail_1 =
                      (\ _lhsIgUniq ->
                           _lhsIgUniq `seq`
                           ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )) of
                             { __tup158 | __tup158 `seq` (True) ->
                             (case (__tup158) of
                              { (_lhsOgUniq,_) | _lhsOgUniq `seq` (True) ->
                              (case (False) of
                               { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                               (case ((let sem_Expr_CaseAltFail_2 :: T_Expr_2
                                           sem_Expr_CaseAltFail_2 =
                                               (\ _lhsIisFirstLet
                                                  _lhsIkiGam
                                                  _lhsIlexLev
                                                  _lhsIpredSameScopeCounter ->
                                                    _lhsIisFirstLet `seq`
                                                    (_lhsIkiGam `seq`
                                                     (_lhsIlexLev `seq`
                                                      (_lhsIpredSameScopeCounter `seq`
                                                       ((case (_lhsIpredSameScopeCounter) of
                                                         { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                         (case ((let sem_Expr_CaseAltFail_3 :: T_Expr_3
                                                                     sem_Expr_CaseAltFail_3 =
                                                                         (\ _lhsIgenerDataInfoMp
                                                                            _lhsIkiVarMp
                                                                            _lhsIopts
                                                                            _lhsIpolGam
                                                                            _lhsIpolVarMp
                                                                            _lhsIpredScope
                                                                            _lhsItyGam
                                                                            _lhsItyKiGam
                                                                            _lhsItyKiGlobFreeTvarS ->
                                                                              _lhsIgenerDataInfoMp `seq`
                                                                              (_lhsIkiVarMp `seq`
                                                                               (_lhsIopts `seq`
                                                                                (_lhsIpolGam `seq`
                                                                                 (_lhsIpolVarMp `seq`
                                                                                  (_lhsIpredScope `seq`
                                                                                   (_lhsItyGam `seq`
                                                                                    (_lhsItyKiGam `seq`
                                                                                     (_lhsItyKiGlobFreeTvarS `seq`
                                                                                      ((case (_lhsIgenerDataInfoMp) of
                                                                                        { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                        (case (_lhsIkiVarMp) of
                                                                                         { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                         (case (_lhsIpolVarMp) of
                                                                                          { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                          (case ((let sem_Expr_CaseAltFail_4 :: T_Expr_4
                                                                                                      sem_Expr_CaseAltFail_4 =
                                                                                                          (\ _lhsIclGam
                                                                                                             _lhsIfinKiVarMp
                                                                                                             _lhsIfinTyKiGam
                                                                                                             _lhsIgathDataGam
                                                                                                             _lhsItyTyTySigFreeTvarS ->
                                                                                                               _lhsIclGam `seq`
                                                                                                               (_lhsIfinKiVarMp `seq`
                                                                                                                (_lhsIfinTyKiGam `seq`
                                                                                                                 (_lhsIgathDataGam `seq`
                                                                                                                  (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                   ((case (_lhsIgathDataGam) of
                                                                                                                     { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                     (case ((let sem_Expr_CaseAltFail_5 :: T_Expr_5
                                                                                                                                 sem_Expr_CaseAltFail_5 =
                                                                                                                                     (\ _lhsIdataGam ->
                                                                                                                                          _lhsIdataGam `seq`
                                                                                                                                          ((case (Seq.empty) of
                                                                                                                                            { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                            (case (defaultFIEnv
                                                                                                                                                       { feEHCOpts = _lhsIopts
                                                                                                                                                       , fePredScope = _lhsIpredScope
                                                                                                                                                       , feTyGam = _lhsItyGam
                                                                                                                                                       , fePolGam = _lhsIpolGam
                                                                                                                                                       , feRange = _range
                                                                                                                                                       }) of
                                                                                                                                             { _fe | _fe `seq` (True) ->
                                                                                                                                             (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                              { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                              (case (_chrFIIn) of
                                                                                                                                               { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                               (case (Seq.empty) of
                                                                                                                                                { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                (case (emptyGam) of
                                                                                                                                                 { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                 (case ((let sem_Expr_CaseAltFail_6 :: T_Expr_6
                                                                                                                                                             sem_Expr_CaseAltFail_6 =
                                                                                                                                                                 (\ _lhsIchrStore
                                                                                                                                                                    _lhsIclDfGam
                                                                                                                                                                    _lhsIfiOpts
                                                                                                                                                                    _lhsIknTy
                                                                                                                                                                    _lhsItvKiVarMp
                                                                                                                                                                    _lhsItyTyGlobFreeTvarS
                                                                                                                                                                    _lhsItyVarMp
                                                                                                                                                                    _lhsIvalGam
                                                                                                                                                                    _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                      _lhsIchrStore `seq`
                                                                                                                                                                      (_lhsIclDfGam `seq`
                                                                                                                                                                       (_lhsIfiOpts `seq`
                                                                                                                                                                        (_lhsIknTy `seq`
                                                                                                                                                                         (_lhsItvKiVarMp `seq`
                                                                                                                                                                          (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                           (_lhsItyVarMp `seq`
                                                                                                                                                                            (_lhsIvalGam `seq`
                                                                                                                                                                             (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                              ((case (Map.empty) of
                                                                                                                                                                                { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                (case (Map.empty) of
                                                                                                                                                                                 { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                 (case (emptyGam) of
                                                                                                                                                                                  { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                  (case (Set.empty) of
                                                                                                                                                                                   { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                   (case (__tup158) of
                                                                                                                                                                                    { (_,_lUniq) | _lUniq `seq` (True) ->
                                                                                                                                                                                    (case (tyEnsureNonAny _lUniq _lhsIknTy) of
                                                                                                                                                                                     { _ty | _ty `seq` (True) ->
                                                                                                                                                                                     (case (_ty) of
                                                                                                                                                                                      { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                      (case (_lhsItyVarMp) of
                                                                                                                                                                                       { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                       (case ((let sem_Expr_CaseAltFail_7 :: T_Expr_7
                                                                                                                                                                                                   sem_Expr_CaseAltFail_7 =
                                                                                                                                                                                                       (\ _lhsIcSubst
                                                                                                                                                                                                          _lhsIchrEvidBindMp
                                                                                                                                                                                                          _lhsIchrScopeBindMp
                                                                                                                                                                                                          _lhsIexprCtxt
                                                                                                                                                                                                          _lhsIfinTyVarMp
                                                                                                                                                                                                          _lhsIfinValGam
                                                                                                                                                                                                          _lhsImoduleNm
                                                                                                                                                                                                          _lhsIrangeMp
                                                                                                                                                                                                          _lhsIsysfEnv
                                                                                                                                                                                                          _lhsItr ->
                                                                                                                                                                                                            _lhsIcSubst `seq`
                                                                                                                                                                                                            (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                             (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                              (_lhsIexprCtxt `seq`
                                                                                                                                                                                                               (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                (_lhsIfinValGam `seq`
                                                                                                                                                                                                                 (_lhsImoduleNm `seq`
                                                                                                                                                                                                                  (_lhsIrangeMp `seq`
                                                                                                                                                                                                                   (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                    (_lhsItr `seq`
                                                                                                                                                                                                                     ((case (Seq.empty) of
                                                                                                                                                                                                                       { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                       (case ([]) of
                                                                                                                                                                                                                        { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                        (case ([]) of
                                                                                                                                                                                                                         { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                         (case (CExpr_CaseAltFail (CaseAltFailReason_Continue caseId_) (acoreBuiltinError _lhsIopts ("FAIL " ++ show caseId_))) of
                                                                                                                                                                                                                          { _cexpr | _cexpr `seq` (True) ->
                                                                                                                                                                                                                          (case (_cexpr) of
                                                                                                                                                                                                                           { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                           (case (hsnUnknown) of
                                                                                                                                                                                                                            { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                            (case (pp "FAIL" >#< caseId_) of
                                                                                                                                                                                                                             { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                             (case (_pp) of
                                                                                                                                                                                                                              { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                              (case ([]) of
                                                                                                                                                                                                                               { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                               (case (_lhsIcSubst) of
                                                                                                                                                                                                                                { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                (case (Set.empty) of
                                                                                                                                                                                                                                 { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                 (case (_cexpr) of
                                                                                                                                                                                                                                  { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                  (case (Seq.empty) of
                                                                                                                                                                                                                                   { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                   (case ([]) of
                                                                                                                                                                                                                                    { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                    (case ([]) of
                                                                                                                                                                                                                                     { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                     (case (emptyGam) of
                                                                                                                                                                                                                                      { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                      (case (Seq.empty) of
                                                                                                                                                                                                                                       { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                       (case (emptyGam) of
                                                                                                                                                                                                                                        { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                        (case (Map.empty) of
                                                                                                                                                                                                                                         { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                         (case (Map.empty) of
                                                                                                                                                                                                                                          { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                          (case (emptyGam) of
                                                                                                                                                                                                                                           { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                           (case (emptyVarMp) of
                                                                                                                                                                                                                                            { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                            (case (emptyGam) of
                                                                                                                                                                                                                                             { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                             (case (emptyGam) of
                                                                                                                                                                                                                                              { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                              (case (False) of
                                                                                                                                                                                                                                               { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                               (case ([]) of
                                                                                                                                                                                                                                                { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                (case (_lamArgPPL) of
                                                                                                                                                                                                                                                 { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                 (case (_pp) of
                                                                                                                                                                                                                                                  { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                  (case (_lamBodyPP) of
                                                                                                                                                                                                                                                   { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                   (case (_cexpr) of
                                                                                                                                                                                                                                                    { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                    (case ([]) of
                                                                                                                                                                                                                                                     { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                     (case ([]) of
                                                                                                                                                                                                                                                      { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                      (case ([]) of
                                                                                                                                                                                                                                                       { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                       (case (Set.empty) of
                                                                                                                                                                                                                                                        { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                        (case (_pp) of
                                                                                                                                                                                                                                                         { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                         (case (empty) of
                                                                                                                                                                                                                                                          { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                          (case (trppEmpty) of
                                                                                                                                                                                                                                                           { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                           ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                               in  sem_Expr_CaseAltFail_7)) of
                                                                                                                                                                                        { ( sem_Expr_7) | True ->
                                                                                                                                                                                        ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                         in  sem_Expr_CaseAltFail_6)) of
                                                                                                                                                  { ( sem_Expr_6) | True ->
                                                                                                                                                  ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) })))
                                                                                                                             in  sem_Expr_CaseAltFail_5)) of
                                                                                                                      { ( sem_Expr_5) | True ->
                                                                                                                      ( _lhsOgathDataGam,sem_Expr_5) }) })))))))
                                                                                                  in  sem_Expr_CaseAltFail_4)) of
                                                                                           { ( sem_Expr_4) | True ->
                                                                                           ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) })))))))))))
                                                                 in  sem_Expr_CaseAltFail_3)) of
                                                          { ( sem_Expr_3) | True ->
                                                          ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }))))))
                                       in  sem_Expr_CaseAltFail_2)) of
                                { ( sem_Expr_2) | True ->
                                ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) })))
              in  sem_Expr_CaseAltFail_1)) of
       { ( sem_Expr_1) | True ->
       ( _lhsOrange,sem_Expr_1) }) }) })

sem_Expr_AppImpl :: Range ->
                    T_Expr ->
                    T_PrExpr ->
                    T_Expr ->
                    T_Expr

sem_Expr_AppImpl hsrange_ func_ argPr_ arg_ | hsrange_ `seq` (func_ `seq` (argPr_ `seq` (arg_ `seq` (True)))) =
    (case (arg_) of
     { ( _argIrange,arg_1) | True ->
         (case (func_) of
          { ( _funcIrange,func_1) | True ->
              (case (rangeUnions [hsrange_, _funcIrange   , _argIrange   ]) of
               { _range | _range `seq` (True) ->
               (case (_range) of
                { _lhsOrange | _lhsOrange `seq` (True) ->
                (case ((let sem_Expr_AppImpl_1 :: T_Expr_1
                            sem_Expr_AppImpl_1 =
                                (\ _lhsIgUniq ->
                                     _lhsIgUniq `seq`
                                     ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq_cexpr) -> (__cont,lUniq,lUniq_cexpr)}} )) of
                                       { __tup163 | __tup163 `seq` (True) ->
                                       (case (__tup163) of
                                        { (_funcOgUniq,_,_) | _funcOgUniq `seq` (True) ->
                                        (case (func_1 _funcOgUniq) of
                                         { ( _funcIgUniq,_funcIhasInstDecl,func_2) | True ->
                                             (case (_funcIgUniq) of
                                              { _argPrOgUniq | _argPrOgUniq `seq` (True) ->
                                              (case (argPr_) of
                                               { ( _argPrIrange,argPr_1) | True ->
                                                   (case (argPr_1 _argPrOgUniq) of
                                                    { ( _argPrIgUniq,argPr_2) | True ->
                                                        (case (_argPrIgUniq) of
                                                         { _argOgUniq | _argOgUniq `seq` (True) ->
                                                         (case (arg_1 _argOgUniq) of
                                                          { ( _argIgUniq,_argIhasInstDecl,arg_2) | True ->
                                                              (case (_argIgUniq) of
                                                               { _lhsOgUniq | _lhsOgUniq `seq` (True) ->
                                                               (case (False) of
                                                                { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                                                                (case ((let sem_Expr_AppImpl_2 :: T_Expr_2
                                                                            sem_Expr_AppImpl_2 =
                                                                                (\ _lhsIisFirstLet
                                                                                   _lhsIkiGam
                                                                                   _lhsIlexLev
                                                                                   _lhsIpredSameScopeCounter ->
                                                                                     _lhsIisFirstLet `seq`
                                                                                     (_lhsIkiGam `seq`
                                                                                      (_lhsIlexLev `seq`
                                                                                       (_lhsIpredSameScopeCounter `seq`
                                                                                        ((case (_lhsIpredSameScopeCounter) of
                                                                                          { _funcOpredSameScopeCounter | _funcOpredSameScopeCounter `seq` (True) ->
                                                                                          (case (_lhsIlexLev) of
                                                                                           { _funcOlexLev | _funcOlexLev `seq` (True) ->
                                                                                           (case (_lhsIkiGam) of
                                                                                            { _funcOkiGam | _funcOkiGam `seq` (True) ->
                                                                                            (case (True) of
                                                                                             { _isFirstLet | _isFirstLet `seq` (True) ->
                                                                                             (case (_isFirstLet) of
                                                                                              { _funcOisFirstLet | _funcOisFirstLet `seq` (True) ->
                                                                                              (case (func_2 _funcOisFirstLet _funcOkiGam _funcOlexLev _funcOpredSameScopeCounter) of
                                                                                               { ( _funcIpredSameScopeCounter,func_3) | True ->
                                                                                                   (case (_funcIpredSameScopeCounter) of
                                                                                                    { _argOpredSameScopeCounter | _argOpredSameScopeCounter `seq` (True) ->
                                                                                                    (case (_lhsIlexLev) of
                                                                                                     { _argOlexLev | _argOlexLev `seq` (True) ->
                                                                                                     (case (_lhsIkiGam) of
                                                                                                      { _argOkiGam | _argOkiGam `seq` (True) ->
                                                                                                      (case (_isFirstLet) of
                                                                                                       { _argOisFirstLet | _argOisFirstLet `seq` (True) ->
                                                                                                       (case (arg_2 _argOisFirstLet _argOkiGam _argOlexLev _argOpredSameScopeCounter) of
                                                                                                        { ( _argIpredSameScopeCounter,arg_3) | True ->
                                                                                                            (case (_argIpredSameScopeCounter) of
                                                                                                             { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                                                                             (case ((let sem_Expr_AppImpl_3 :: T_Expr_3
                                                                                                                         sem_Expr_AppImpl_3 =
                                                                                                                             (\ _lhsIgenerDataInfoMp
                                                                                                                                _lhsIkiVarMp
                                                                                                                                _lhsIopts
                                                                                                                                _lhsIpolGam
                                                                                                                                _lhsIpolVarMp
                                                                                                                                _lhsIpredScope
                                                                                                                                _lhsItyGam
                                                                                                                                _lhsItyKiGam
                                                                                                                                _lhsItyKiGlobFreeTvarS ->
                                                                                                                                  _lhsIgenerDataInfoMp `seq`
                                                                                                                                  (_lhsIkiVarMp `seq`
                                                                                                                                   (_lhsIopts `seq`
                                                                                                                                    (_lhsIpolGam `seq`
                                                                                                                                     (_lhsIpolVarMp `seq`
                                                                                                                                      (_lhsIpredScope `seq`
                                                                                                                                       (_lhsItyGam `seq`
                                                                                                                                        (_lhsItyKiGam `seq`
                                                                                                                                         (_lhsItyKiGlobFreeTvarS `seq`
                                                                                                                                          ((case (_lhsItyKiGlobFreeTvarS) of
                                                                                                                                            { _argOtyKiGlobFreeTvarS | _argOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                                            (case (_lhsItyKiGam) of
                                                                                                                                             { _argPrOtyKiGam | _argPrOtyKiGam `seq` (True) ->
                                                                                                                                             (case (_lhsItyGam) of
                                                                                                                                              { _argPrOtyGam | _argPrOtyGam `seq` (True) ->
                                                                                                                                              (case (_lhsItyKiGlobFreeTvarS) of
                                                                                                                                               { _funcOtyKiGlobFreeTvarS | _funcOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                                               (case (_lhsItyKiGam) of
                                                                                                                                                { _funcOtyKiGam | _funcOtyKiGam `seq` (True) ->
                                                                                                                                                (case (_lhsItyGam) of
                                                                                                                                                 { _funcOtyGam | _funcOtyGam `seq` (True) ->
                                                                                                                                                 (case (_lhsIpredScope) of
                                                                                                                                                  { _predScope | _predScope `seq` (True) ->
                                                                                                                                                  (case (_predScope) of
                                                                                                                                                   { _funcOpredScope | _funcOpredScope `seq` (True) ->
                                                                                                                                                   (case (_lhsIpolVarMp) of
                                                                                                                                                    { _funcOpolVarMp | _funcOpolVarMp `seq` (True) ->
                                                                                                                                                    (case (_lhsIpolGam) of
                                                                                                                                                     { _funcOpolGam | _funcOpolGam `seq` (True) ->
                                                                                                                                                     (case (_lhsIopts) of
                                                                                                                                                      { _funcOopts | _funcOopts `seq` (True) ->
                                                                                                                                                      (case (_lhsIkiVarMp) of
                                                                                                                                                       { _funcOkiVarMp | _funcOkiVarMp `seq` (True) ->
                                                                                                                                                       (case (_lhsIgenerDataInfoMp) of
                                                                                                                                                        { _funcOgenerDataInfoMp | _funcOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                        (case (func_3 _funcOgenerDataInfoMp _funcOkiVarMp _funcOopts _funcOpolGam _funcOpolVarMp _funcOpredScope _funcOtyGam _funcOtyKiGam _funcOtyKiGlobFreeTvarS) of
                                                                                                                                                         { ( _funcIgenerDataInfoMp,_funcIkiVarMp,_funcIpolVarMp,func_4) | True ->
                                                                                                                                                             (case (_funcIpolVarMp) of
                                                                                                                                                              { _argPrOpolVarMp | _argPrOpolVarMp `seq` (True) ->
                                                                                                                                                              (case (_lhsIpolGam) of
                                                                                                                                                               { _argPrOpolGam | _argPrOpolGam `seq` (True) ->
                                                                                                                                                               (case (polContravariant) of
                                                                                                                                                                { _argPrOknPolCtx | _argPrOknPolCtx `seq` (True) ->
                                                                                                                                                                (case (argPr_2 _argPrOtyGam) of
                                                                                                                                                                 { ( _argPrIprTy,_argPrIty,_argPrItyGam,argPr_3) | True ->
                                                                                                                                                                     (case (argPr_3 _argPrOknPolCtx) of
                                                                                                                                                                      { ( _argPrIpolVarL,argPr_4) | True ->
                                                                                                                                                                          (case (argPr_4 _argPrOpolGam _argPrOpolVarMp) of
                                                                                                                                                                           { ( _argPrIpolVarMp,argPr_5) | True ->
                                                                                                                                                                               (case (argPr_5 _argPrOtyKiGam) of
                                                                                                                                                                                { ( _argPrIintlTyKiGam,_argPrItyKiGam,argPr_6) | True ->
                                                                                                                                                                                    (case (_argPrItyKiGam) of
                                                                                                                                                                                     { _argOtyKiGam | _argOtyKiGam `seq` (True) ->
                                                                                                                                                                                     (case (_argPrItyGam) of
                                                                                                                                                                                      { _argOtyGam | _argOtyGam `seq` (True) ->
                                                                                                                                                                                      (case (_predScope) of
                                                                                                                                                                                       { _argOpredScope | _argOpredScope `seq` (True) ->
                                                                                                                                                                                       (case (_argPrIpolVarMp) of
                                                                                                                                                                                        { _argOpolVarMp | _argOpolVarMp `seq` (True) ->
                                                                                                                                                                                        (case (_lhsIpolGam) of
                                                                                                                                                                                         { _argOpolGam | _argOpolGam `seq` (True) ->
                                                                                                                                                                                         (case (_lhsIopts) of
                                                                                                                                                                                          { _argOopts | _argOopts `seq` (True) ->
                                                                                                                                                                                          (case (_funcIkiVarMp) of
                                                                                                                                                                                           { _argPrOkiVarMp | _argPrOkiVarMp `seq` (True) ->
                                                                                                                                                                                           (case (argPr_6 _argPrOkiVarMp) of
                                                                                                                                                                                            { ( _argPrIgathTyVarPolGam,_argPrIki,_argPrIkiVarMp,_argPrItyVarWildMp,argPr_7) | True ->
                                                                                                                                                                                                (case (_argPrIkiVarMp) of
                                                                                                                                                                                                 { _argOkiVarMp | _argOkiVarMp `seq` (True) ->
                                                                                                                                                                                                 (case (_funcIgenerDataInfoMp) of
                                                                                                                                                                                                  { _argOgenerDataInfoMp | _argOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                                                                  (case (arg_3 _argOgenerDataInfoMp _argOkiVarMp _argOopts _argOpolGam _argOpolVarMp _argOpredScope _argOtyGam _argOtyKiGam _argOtyKiGlobFreeTvarS) of
                                                                                                                                                                                                   { ( _argIgenerDataInfoMp,_argIkiVarMp,_argIpolVarMp,arg_4) | True ->
                                                                                                                                                                                                       (case (_argIgenerDataInfoMp) of
                                                                                                                                                                                                        { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                                                                        (case (_argIkiVarMp) of
                                                                                                                                                                                                         { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                                                                                                                                         (case (_argIpolVarMp) of
                                                                                                                                                                                                          { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                                                                                                                                          (case ((let sem_Expr_AppImpl_4 :: T_Expr_4
                                                                                                                                                                                                                      sem_Expr_AppImpl_4 =
                                                                                                                                                                                                                          (\ _lhsIclGam
                                                                                                                                                                                                                             _lhsIfinKiVarMp
                                                                                                                                                                                                                             _lhsIfinTyKiGam
                                                                                                                                                                                                                             _lhsIgathDataGam
                                                                                                                                                                                                                             _lhsItyTyTySigFreeTvarS ->
                                                                                                                                                                                                                               _lhsIclGam `seq`
                                                                                                                                                                                                                               (_lhsIfinKiVarMp `seq`
                                                                                                                                                                                                                                (_lhsIfinTyKiGam `seq`
                                                                                                                                                                                                                                 (_lhsIgathDataGam `seq`
                                                                                                                                                                                                                                  (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                                                                                                                                   ((case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                     { _argOtyTyTySigFreeTvarS | _argOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                     (case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                      { _funcOtyTyTySigFreeTvarS | _funcOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                      (case (_lhsIgathDataGam) of
                                                                                                                                                                                                                                       { _funcOgathDataGam | _funcOgathDataGam `seq` (True) ->
                                                                                                                                                                                                                                       (case (_lhsIfinTyKiGam) of
                                                                                                                                                                                                                                        { _funcOfinTyKiGam | _funcOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                        (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                                                                         { _funcOfinKiVarMp | _funcOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                         (case (_lhsIclGam) of
                                                                                                                                                                                                                                          { _funcOclGam | _funcOclGam `seq` (True) ->
                                                                                                                                                                                                                                          (case (func_4 _funcOclGam _funcOfinKiVarMp _funcOfinTyKiGam _funcOgathDataGam _funcOtyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                           { ( _funcIgathDataGam,func_5) | True ->
                                                                                                                                                                                                                                               (case (_funcIgathDataGam) of
                                                                                                                                                                                                                                                { _argOgathDataGam | _argOgathDataGam `seq` (True) ->
                                                                                                                                                                                                                                                (case (_lhsIfinTyKiGam) of
                                                                                                                                                                                                                                                 { _argOfinTyKiGam | _argOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                 (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                                                                                  { _argOfinKiVarMp | _argOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                  (case (_lhsIclGam) of
                                                                                                                                                                                                                                                   { _argOclGam | _argOclGam `seq` (True) ->
                                                                                                                                                                                                                                                   (case (arg_4 _argOclGam _argOfinKiVarMp _argOfinTyKiGam _argOgathDataGam _argOtyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                                    { ( _argIgathDataGam,arg_5) | True ->
                                                                                                                                                                                                                                                        (case (_argIgathDataGam) of
                                                                                                                                                                                                                                                         { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                                                                                                                                                         (case ((let sem_Expr_AppImpl_5 :: T_Expr_5
                                                                                                                                                                                                                                                                     sem_Expr_AppImpl_5 =
                                                                                                                                                                                                                                                                         (\ _lhsIdataGam ->
                                                                                                                                                                                                                                                                              _lhsIdataGam `seq`
                                                                                                                                                                                                                                                                              ((case (Seq.empty) of
                                                                                                                                                                                                                                                                                { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                                                                                                                                                                (case (defaultFIEnv
                                                                                                                                                                                                                                                                                           { feEHCOpts = _lhsIopts
                                                                                                                                                                                                                                                                                           , fePredScope = _lhsIpredScope
                                                                                                                                                                                                                                                                                           , feTyGam = _lhsItyGam
                                                                                                                                                                                                                                                                                           , fePolGam = _lhsIpolGam
                                                                                                                                                                                                                                                                                           , feRange = _range
                                                                                                                                                                                                                                                                                           }) of
                                                                                                                                                                                                                                                                                 { _fe | _fe `seq` (True) ->
                                                                                                                                                                                                                                                                                 (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                                                                                                                                                                  { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                                                                                                                                                                  (case (_chrFIIn) of
                                                                                                                                                                                                                                                                                   { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                                                                                                                                                                   (case (_lhsIdataGam) of
                                                                                                                                                                                                                                                                                    { _argOdataGam | _argOdataGam `seq` (True) ->
                                                                                                                                                                                                                                                                                    (case (_lhsIdataGam) of
                                                                                                                                                                                                                                                                                     { _funcOdataGam | _funcOdataGam `seq` (True) ->
                                                                                                                                                                                                                                                                                     (case (arg_5 _argOdataGam) of
                                                                                                                                                                                                                                                                                      { ( _argIchrClassDeclSq,_argIchrFIIn,_argIchrInstDeclSq,_argIgathClDfGam,arg_6) | True ->
                                                                                                                                                                                                                                                                                          (case (func_5 _funcOdataGam) of
                                                                                                                                                                                                                                                                                           { ( _funcIchrClassDeclSq,_funcIchrFIIn,_funcIchrInstDeclSq,_funcIgathClDfGam,func_6) | True ->
                                                                                                                                                                                                                                                                                               (case (_funcIchrInstDeclSq `Seq.union` _argIchrInstDeclSq) of
                                                                                                                                                                                                                                                                                                { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                (case (emptyGam) of
                                                                                                                                                                                                                                                                                                 { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                 (case ((let sem_Expr_AppImpl_6 :: T_Expr_6
                                                                                                                                                                                                                                                                                                             sem_Expr_AppImpl_6 =
                                                                                                                                                                                                                                                                                                                 (\ _lhsIchrStore
                                                                                                                                                                                                                                                                                                                    _lhsIclDfGam
                                                                                                                                                                                                                                                                                                                    _lhsIfiOpts
                                                                                                                                                                                                                                                                                                                    _lhsIknTy
                                                                                                                                                                                                                                                                                                                    _lhsItvKiVarMp
                                                                                                                                                                                                                                                                                                                    _lhsItyTyGlobFreeTvarS
                                                                                                                                                                                                                                                                                                                    _lhsItyVarMp
                                                                                                                                                                                                                                                                                                                    _lhsIvalGam
                                                                                                                                                                                                                                                                                                                    _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                                                                                                                                                                      _lhsIchrStore `seq`
                                                                                                                                                                                                                                                                                                                      (_lhsIclDfGam `seq`
                                                                                                                                                                                                                                                                                                                       (_lhsIfiOpts `seq`
                                                                                                                                                                                                                                                                                                                        (_lhsIknTy `seq`
                                                                                                                                                                                                                                                                                                                         (_lhsItvKiVarMp `seq`
                                                                                                                                                                                                                                                                                                                          (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                                                                                                           (_lhsItyVarMp `seq`
                                                                                                                                                                                                                                                                                                                            (_lhsIvalGam `seq`
                                                                                                                                                                                                                                                                                                                             (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                                                                                                              ((case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                { _argOvalTyGlobFreeTvarS | _argOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                (case (_lhsIvalGam) of
                                                                                                                                                                                                                                                                                                                                 { _argOvalGam | _argOvalGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                 (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                  { _argOtyTyGlobFreeTvarS | _argOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                  (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                   { _argOtvKiVarMp | _argOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                   (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                                                                                                                    { _argOclDfGam | _argOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                    (case (_lhsIchrStore) of
                                                                                                                                                                                                                                                                                                                                     { _argOchrStore | _argOchrStore `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                     (case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                      { _funcOvalTyGlobFreeTvarS | _funcOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                      (case (_lhsIvalGam) of
                                                                                                                                                                                                                                                                                                                                       { _funcOvalGam | _funcOvalGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                       (case (_lhsItyVarMp) of
                                                                                                                                                                                                                                                                                                                                        { _funcOtyVarMp | _funcOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                        (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                         { _funcOtyTyGlobFreeTvarS | _funcOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                         (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                          { _funcOtvKiVarMp | _funcOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                          (case (_lhsIfiOpts) of
                                                                                                                                                                                                                                                                                                                                           { _funcOfiOpts | _funcOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                           (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                                                                                                                            { _funcOclDfGam | _funcOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                            (case (_lhsIchrStore) of
                                                                                                                                                                                                                                                                                                                                             { _funcOchrStore | _funcOchrStore `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                             (case (__tup163) of
                                                                                                                                                                                                                                                                                                                                              { (_,_lUniq,_) | _lUniq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                              (case ([_argPrIty] `appArr` _lhsIknTy) of
                                                                                                                                                                                                                                                                                                                                               { _knFunTy | _knFunTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                               (case (_knFunTy) of
                                                                                                                                                                                                                                                                                                                                                { _funcOknTy | _funcOknTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                (case (func_6 _funcOchrStore _funcOclDfGam _funcOfiOpts _funcOknTy _funcOtvKiVarMp _funcOtyTyGlobFreeTvarS _funcOtyVarMp _funcOvalGam _funcOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                 { ( _funcIgathCnstrMp,_funcIgathRangeMp,_funcIgathValGam,_funcInoLetQuantTyVarIdS,_funcIty,_funcItyVarMp,func_7) | True ->
                                                                                                                                                                                                                                                                                                                                                     (case (tyArrowImplsResWithLkup (varmpTyLookupCyc2 _funcItyVarMp) _funcIty) of
                                                                                                                                                                                                                                                                                                                                                      { __tup161 | __tup161 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                      (case (__tup161) of
                                                                                                                                                                                                                                                                                                                                                       { (_knImpls,_) | _knImpls `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                       (case (case _knImpls of
                                                                                                                                                                                                                                                                                                                                                                  (a:r)  -> (a,r)
                                                                                                                                                                                                                                                                                                                                                                  []     -> (Ty_Any,[])) of
                                                                                                                                                                                                                                                                                                                                                        { __tup162 | __tup162 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                        (case (__tup162) of
                                                                                                                                                                                                                                                                                                                                                         { (_knArgImpl,_) | _knArgImpl `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                         (case (fitPredToEvid'' clgiPrToEvidDataTy _lUniq _funcItyVarMp _knArgImpl (Right _lhsIclGam)) of
                                                                                                                                                                                                                                                                                                                                                          { _foPr | _foPr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                          (case (foVarMp _foPr `varUpd` _funcItyVarMp) of
                                                                                                                                                                                                                                                                                                                                                           { _argOtyVarMp | _argOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                           (case (foTy _foPr) of
                                                                                                                                                                                                                                                                                                                                                            { _argOknTy | _argOknTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                            (case (strongFIOpts) of
                                                                                                                                                                                                                                                                                                                                                             { _argOfiOpts | _argOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                             (case (arg_6 _argOchrStore _argOclDfGam _argOfiOpts _argOknTy _argOtvKiVarMp _argOtyTyGlobFreeTvarS _argOtyVarMp _argOvalGam _argOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                              { ( _argIgathCnstrMp,_argIgathRangeMp,_argIgathValGam,_argInoLetQuantTyVarIdS,_argIty,_argItyVarMp,arg_7) | True ->
                                                                                                                                                                                                                                                                                                                                                                  (case (_funcIgathCnstrMp `cnstrMpUnion` _argIgathCnstrMp) of
                                                                                                                                                                                                                                                                                                                                                                   { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                   (case (_funcIgathRangeMp `Map.union` _argIgathRangeMp) of
                                                                                                                                                                                                                                                                                                                                                                    { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                    (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                     { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                     (case (_funcInoLetQuantTyVarIdS `Set.union` _argInoLetQuantTyVarIdS) of
                                                                                                                                                                                                                                                                                                                                                                      { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                      (case (__tup162) of
                                                                                                                                                                                                                                                                                                                                                                       { (_,_knResImpls) | _knResImpls `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                       (case (__tup161) of
                                                                                                                                                                                                                                                                                                                                                                        { (_,_ty_) | _ty_ `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                        (case (_knResImpls `appArr` _ty_) of
                                                                                                                                                                                                                                                                                                                                                                         { _ty | _ty `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                         (case (_ty) of
                                                                                                                                                                                                                                                                                                                                                                          { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                          (case (_argItyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                           { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                           (case ((let sem_Expr_AppImpl_7 :: T_Expr_7
                                                                                                                                                                                                                                                                                                                                                                                       sem_Expr_AppImpl_7 =
                                                                                                                                                                                                                                                                                                                                                                                           (\ _lhsIcSubst
                                                                                                                                                                                                                                                                                                                                                                                              _lhsIchrEvidBindMp
                                                                                                                                                                                                                                                                                                                                                                                              _lhsIchrScopeBindMp
                                                                                                                                                                                                                                                                                                                                                                                              _lhsIexprCtxt
                                                                                                                                                                                                                                                                                                                                                                                              _lhsIfinTyVarMp
                                                                                                                                                                                                                                                                                                                                                                                              _lhsIfinValGam
                                                                                                                                                                                                                                                                                                                                                                                              _lhsImoduleNm
                                                                                                                                                                                                                                                                                                                                                                                              _lhsIrangeMp
                                                                                                                                                                                                                                                                                                                                                                                              _lhsIsysfEnv
                                                                                                                                                                                                                                                                                                                                                                                              _lhsItr ->
                                                                                                                                                                                                                                                                                                                                                                                                _lhsIcSubst `seq`
                                                                                                                                                                                                                                                                                                                                                                                                (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                                                                                                                                                                                                 (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                                                                                                                                                                                                  (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                                                                                                                                                                                                   (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                                                                                                                                                                                                    (_lhsIfinValGam `seq`
                                                                                                                                                                                                                                                                                                                                                                                                     (_lhsImoduleNm `seq`
                                                                                                                                                                                                                                                                                                                                                                                                      (_lhsIrangeMp `seq`
                                                                                                                                                                                                                                                                                                                                                                                                       (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                                                                                                                                                                                                        (_lhsItr `seq`
                                                                                                                                                                                                                                                                                                                                                                                                         ((case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                                                                                                                           { _argOsysfEnv | _argOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                           (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                                                                                                                            { _argOrangeMp | _argOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                            (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                                                                                                                             { _argOfinValGam | _argOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                             (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                              { _argOfinTyVarMp | _argOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                              (case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                                                                                                                               { _funcOsysfEnv | _funcOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                               (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                { _funcOrangeMp | _funcOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                 { _funcOfinValGam | _funcOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                 (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                  { _funcOfinTyVarMp | _funcOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                  (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                                                                                   { _argOtr | _argOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                                                                                    { _argOmoduleNm | _argOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                    (case (ExprCtxt_Internal) of
                                                                                                                                                                                                                                                                                                                                                                                                                     { _exprCtxt | _exprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                     (case (_exprCtxt) of
                                                                                                                                                                                                                                                                                                                                                                                                                      { _argOexprCtxt | _argOexprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                      (case (_lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                       { _argOchrScopeBindMp | _argOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                       (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                        { _argOchrEvidBindMp | _argOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                         { _funcOchrScopeBindMp | _funcOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                         (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                          { _funcOchrEvidBindMp | _funcOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_lhsIcSubst) of
                                                                                                                                                                                                                                                                                                                                                                                                                           { _funcOcSubst | _funcOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                           (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                                                                                            { _funcOtr | _funcOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                            (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                                                                                             { _funcOmoduleNm | _funcOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                             (case (_exprCtxt) of
                                                                                                                                                                                                                                                                                                                                                                                                                              { _funcOexprCtxt | _funcOexprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                              (case (func_7 _funcOcSubst _funcOchrEvidBindMp _funcOchrScopeBindMp _funcOexprCtxt _funcOfinTyVarMp _funcOfinValGam _funcOmoduleNm _funcOrangeMp _funcOsysfEnv _funcOtr) of
                                                                                                                                                                                                                                                                                                                                                                                                                               { ( _funcIallErrSq,_funcIappArgCoeL,_funcIappArgPPL,_funcIappFunCExpr,_funcIappFunNm,_funcIappFunPP,_funcIbackCBindL,_funcIcSubst,_funcIcaseFailS,_funcIcexpr,_funcIerrSq,_funcIfrontCBindL,_funcIfuCExprL,_funcIgathClGam,_funcIgathHiddenExports,_funcIgathKiGam,_funcIgathLamMp,_funcIgathMentrelFilterMp,_funcIgathPolGam,_funcIgathTvKiVarMp,_funcIgathTyGam,_funcIgathTyKiGam,_funcIisNewtype,_funcIlamArgPPL,_funcIlamBodyPP,_funcIletCBody,_funcIletTyCBindL,_funcIletValCBindL,_funcIletValMainCBindL,_funcIorphanS,_funcIpp,_funcIppAST,_funcItrpp) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_funcIcSubst) of
                                                                                                                                                                                                                                                                                                                                                                                                                                    { _argOcSubst | _argOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (arg_7 _argOcSubst _argOchrEvidBindMp _argOchrScopeBindMp _argOexprCtxt _argOfinTyVarMp _argOfinValGam _argOmoduleNm _argOrangeMp _argOsysfEnv _argOtr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                     { ( _argIallErrSq,_argIappArgCoeL,_argIappArgPPL,_argIappFunCExpr,_argIappFunNm,_argIappFunPP,_argIbackCBindL,_argIcSubst,_argIcaseFailS,_argIcexpr,_argIerrSq,_argIfrontCBindL,_argIfuCExprL,_argIgathClGam,_argIgathHiddenExports,_argIgathKiGam,_argIgathLamMp,_argIgathMentrelFilterMp,_argIgathPolGam,_argIgathTvKiVarMp,_argIgathTyGam,_argIgathTyKiGam,_argIisNewtype,_argIlamArgPPL,_argIlamBodyPP,_argIletCBody,_argIletTyCBindL,_argIletValCBindL,_argIletValMainCBindL,_argIorphanS,_argIpp,_argIppAST,_argItrpp) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (_lhsIclGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                          { _argPrOclGam | _argPrOclGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (argPr_7 _argPrOclGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                           { ( _argPrIevTy,argPr_8) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                { _argPrOvalTyGlobFreeTvarS | _argPrOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _argPrOtyTyTySigFreeTvarS | _argPrOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _argPrOtyTyGlobFreeTvarS | _argPrOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (_lhsItyKiGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _argPrOtyKiGlobFreeTvarS | _argPrOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                    { _argPrOtr | _argPrOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _argPrOsysfEnv | _argPrOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (_lhsIopts) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                      { _argPrOopts | _argPrOopts `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _argPrOmoduleNm | _argPrOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (_lhsIkiGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _argPrOkiGam | _argPrOkiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _argPrOfinTyVarMp | _argPrOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (_lhsIfinTyKiGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _argPrOfinTyKiGam | _argPrOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _argPrOfinKiVarMp | _argPrOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (argPr_8 _argPrOfinKiVarMp _argPrOfinTyKiGam _argPrOfinTyVarMp _argPrOkiGam _argPrOmoduleNm _argPrOopts _argPrOsysfEnv _argPrOtr _argPrOtyKiGlobFreeTvarS _argPrOtyTyGlobFreeTvarS _argPrOtyTyTySigFreeTvarS _argPrOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                            { ( _argPrIallErrSq,_argPrIclMissNmS,_argPrIclNmS,_argPrIerrSq,_argPrIgathMentrelFilterMp,_argPrIpp,_argPrIppAST,_argPrIpr,_argPrItrpp) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (_funcIallErrSq `Seq.union` _argPrIallErrSq `Seq.union` _argIallErrSq) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _appImplsCoeL | _appImplsCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (if _funcIisNewtype
                                                                                                                                                                                                                                                                                                                                                                                                                                                                         then ([],_argIcexpr)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                         else (_funcIappArgCoeL ++ _appImplsCoeL ++ [acoreCoeApp1 _argIcexpr],_funcIappFunCExpr)) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { __tup160 | __tup160 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (__tup160) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { (_lhsOappArgCoeL,_) | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (_argIpp >#< "<:" >#< _argPrIpp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _argPP | _argPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (_funcIappArgPPL ++ [_argPP]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (__tup160) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { (_,_lhsOappFunCExpr) | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (_funcIappFunNm) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_funcIappFunPP) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (__tup163) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { (_,_,_lUniq_cexpr) | _lUniq_cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (let mkapp f = wr $ acore1App f _argIcexpr
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      wr      = id
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      impl app= mkWeaveExpr _lhsIopts _lUniq_cexpr _lhsIfinTyVarMp _argIcSubst app _funcIcexpr _appImplsCoeL []
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  in  impl mkapp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { __tup159 | __tup159 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (__tup159) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { (_,_cexprappCSubst) | _cexprappCSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (cSubstApp _argIcSubst _cexprappCSubst) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (_funcIcaseFailS `Set.union` _argIcaseFailS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                               { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (__tup159) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                { (_cexprapp,_) | _cexprapp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (if _funcIisNewtype then _argIcexpr else _cexprapp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _cexpr | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _nmErrs | _nmErrs `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_funcIpp >#< hsnOImpl >#< _argPP >#< hsnCImpl) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (rngLift _range mkNestErr' _pp [ _funcIerrSq, _argIerrSq, _argPrIerrSq
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         , Seq.fromList _nmErrs, foErrSq _foPr
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_funcIgathHiddenExports `Seq.union` _argIgathHiddenExports) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_funcIgathLamMp `lamMpUnionBindAspMp` _argIgathLamMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (_funcIgathMentrelFilterMp `mentrelFilterMpUnion` _argPrIgathMentrelFilterMp `mentrelFilterMpUnion` _argIgathMentrelFilterMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (_funcIgathTvKiVarMp `varmpUnion` _argIgathTvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (False) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (_lamArgPPL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (_lamBodyPP) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (Set.empty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (ppNestTrPP ["Expr","AppImpl"] [] [_funcIppAST,_argIppAST,_argPrIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (_funcItrpp >< _argPrItrpp >< _argItrpp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                                                                                                                                                                                                   in  sem_Expr_AppImpl_7)) of
                                                                                                                                                                                                                                                                                                                                                                            { ( sem_Expr_7) | True ->
                                                                                                                                                                                                                                                                                                                                                                            ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                                                                                                                                                                         in  sem_Expr_AppImpl_6)) of
                                                                                                                                                                                                                                                                                                  { ( sem_Expr_6) | True ->
                                                                                                                                                                                                                                                                                                  ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) }) }) }) }) })))
                                                                                                                                                                                                                                                                 in  sem_Expr_AppImpl_5)) of
                                                                                                                                                                                                                                                          { ( sem_Expr_5) | True ->
                                                                                                                                                                                                                                                          ( _lhsOgathDataGam,sem_Expr_5) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))
                                                                                                                                                                                                                  in  sem_Expr_AppImpl_4)) of
                                                                                                                                                                                                           { ( sem_Expr_4) | True ->
                                                                                                                                                                                                           ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                     in  sem_Expr_AppImpl_3)) of
                                                                                                              { ( sem_Expr_3) | True ->
                                                                                                              ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }) }) }) }) }) }) }) }) }) }) }) }))))))
                                                                        in  sem_Expr_AppImpl_2)) of
                                                                 { ( sem_Expr_2) | True ->
                                                                 ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) }) }) }) }) }) }) }) })))
                        in  sem_Expr_AppImpl_1)) of
                 { ( sem_Expr_1) | True ->
                 ( _lhsOrange,sem_Expr_1) }) }) }) }) })

sem_Expr_LamImpl :: Range ->
                    T_PrExpr ->
                    T_PatExpr ->
                    T_Expr ->
                    T_Expr

sem_Expr_LamImpl hsrange_ argPr_ arg_ body_ | hsrange_ `seq` (argPr_ `seq` (arg_ `seq` (body_ `seq` (True)))) =
    (case (body_) of
     { ( _bodyIrange,body_1) | True ->
         (case (argPr_) of
          { ( _argPrIrange,argPr_1) | True ->
              (case (rangeUnions [hsrange_, _argPrIrange  , _bodyIrange  ]) of
               { _range | _range `seq` (True) ->
               (case (_range) of
                { _lhsOrange | _lhsOrange `seq` (True) ->
                (case ((let sem_Expr_LamImpl_1 :: T_Expr_1
                            sem_Expr_LamImpl_1 =
                                (\ _lhsIgUniq ->
                                     _lhsIgUniq `seq`
                                     ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq2) -> case nextUnique __cont of { (__cont, lUniq4) -> case nextUnique __cont of { (__cont, lUniq_cexpr) -> (__cont,lUniq,lUniq2,lUniq4,lUniq_cexpr)}}}} )) of
                                       { __tup169 | __tup169 `seq` (True) ->
                                       (case (__tup169) of
                                        { (_argPrOgUniq,_,_,_,_) | _argPrOgUniq `seq` (True) ->
                                        (case (argPr_1 _argPrOgUniq) of
                                         { ( _argPrIgUniq,argPr_2) | True ->
                                             (case (_argPrIgUniq) of
                                              { _argOgUniq | _argOgUniq `seq` (True) ->
                                              (case (arg_) of
                                               { ( _argIrange,arg_1) | True ->
                                                   (case (arg_1 _argOgUniq) of
                                                    { ( _argIgUniq,arg_2) | True ->
                                                        (case (_argIgUniq) of
                                                         { _bodyOgUniq | _bodyOgUniq `seq` (True) ->
                                                         (case (body_1 _bodyOgUniq) of
                                                          { ( _bodyIgUniq,_bodyIhasInstDecl,body_2) | True ->
                                                              (case (_bodyIgUniq) of
                                                               { _lhsOgUniq | _lhsOgUniq `seq` (True) ->
                                                               (case (False) of
                                                                { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                                                                (case ((let sem_Expr_LamImpl_2 :: T_Expr_2
                                                                            sem_Expr_LamImpl_2 =
                                                                                (\ _lhsIisFirstLet
                                                                                   _lhsIkiGam
                                                                                   _lhsIlexLev
                                                                                   _lhsIpredSameScopeCounter ->
                                                                                     _lhsIisFirstLet `seq`
                                                                                     (_lhsIkiGam `seq`
                                                                                      (_lhsIlexLev `seq`
                                                                                       (_lhsIpredSameScopeCounter `seq`
                                                                                        ((case (_lhsIlexLev + 1) of
                                                                                          { _lexLev | _lexLev `seq` (True) ->
                                                                                          (case (_lexLev) of
                                                                                           { _bodyOlexLev | _bodyOlexLev `seq` (True) ->
                                                                                           (case (_lhsIkiGam) of
                                                                                            { _bodyOkiGam | _bodyOkiGam `seq` (True) ->
                                                                                            (case (True) of
                                                                                             { _isFirstLet | _isFirstLet `seq` (True) ->
                                                                                             (case (_isFirstLet) of
                                                                                              { _bodyOisFirstLet | _bodyOisFirstLet `seq` (True) ->
                                                                                              (case (True) of
                                                                                               { _mustEnterNewPredScope | _mustEnterNewPredScope `seq` (True) ->
                                                                                               (case (pscpEnter' _mustEnterNewPredScope _lhsIpredSameScopeCounter) of
                                                                                                { __tup165 | __tup165 `seq` (True) ->
                                                                                                (case (__tup165) of
                                                                                                 { (_,_bodyOpredSameScopeCounter) | _bodyOpredSameScopeCounter `seq` (True) ->
                                                                                                 (case (__tup165) of
                                                                                                  { (_predSameScopeCounterLam,_) | _predSameScopeCounterLam `seq` (True) ->
                                                                                                  (case (body_2 _bodyOisFirstLet _bodyOkiGam _bodyOlexLev _bodyOpredSameScopeCounter) of
                                                                                                   { ( _bodyIpredSameScopeCounter,body_3) | True ->
                                                                                                       (case (pscpLeave' _mustEnterNewPredScope _predSameScopeCounterLam _bodyIpredSameScopeCounter) of
                                                                                                        { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                                                                        (case ((let sem_Expr_LamImpl_3 :: T_Expr_3
                                                                                                                    sem_Expr_LamImpl_3 =
                                                                                                                        (\ _lhsIgenerDataInfoMp
                                                                                                                           _lhsIkiVarMp
                                                                                                                           _lhsIopts
                                                                                                                           _lhsIpolGam
                                                                                                                           _lhsIpolVarMp
                                                                                                                           _lhsIpredScope
                                                                                                                           _lhsItyGam
                                                                                                                           _lhsItyKiGam
                                                                                                                           _lhsItyKiGlobFreeTvarS ->
                                                                                                                             _lhsIgenerDataInfoMp `seq`
                                                                                                                             (_lhsIkiVarMp `seq`
                                                                                                                              (_lhsIopts `seq`
                                                                                                                               (_lhsIpolGam `seq`
                                                                                                                                (_lhsIpolVarMp `seq`
                                                                                                                                 (_lhsIpredScope `seq`
                                                                                                                                  (_lhsItyGam `seq`
                                                                                                                                   (_lhsItyKiGam `seq`
                                                                                                                                    (_lhsItyKiGlobFreeTvarS `seq`
                                                                                                                                     ((case (_lhsItyKiGlobFreeTvarS) of
                                                                                                                                       { _bodyOtyKiGlobFreeTvarS | _bodyOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                                       (case (_lhsItyKiGlobFreeTvarS) of
                                                                                                                                        { _argOtyKiGlobFreeTvarS | _argOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                                        (case (_lhsItyKiGam) of
                                                                                                                                         { _argPrOtyKiGam | _argPrOtyKiGam `seq` (True) ->
                                                                                                                                         (case (_lhsItyGam) of
                                                                                                                                          { _argPrOtyGam | _argPrOtyGam `seq` (True) ->
                                                                                                                                          (case (_lhsIpolVarMp) of
                                                                                                                                           { _argPrOpolVarMp | _argPrOpolVarMp `seq` (True) ->
                                                                                                                                           (case (_lhsIpolGam) of
                                                                                                                                            { _argPrOpolGam | _argPrOpolGam `seq` (True) ->
                                                                                                                                            (case (polContravariant) of
                                                                                                                                             { _argPrOknPolCtx | _argPrOknPolCtx `seq` (True) ->
                                                                                                                                             (case (argPr_2 _argPrOtyGam) of
                                                                                                                                              { ( _argPrIprTy,_argPrIty,_argPrItyGam,argPr_3) | True ->
                                                                                                                                                  (case (argPr_3 _argPrOknPolCtx) of
                                                                                                                                                   { ( _argPrIpolVarL,argPr_4) | True ->
                                                                                                                                                       (case (argPr_4 _argPrOpolGam _argPrOpolVarMp) of
                                                                                                                                                        { ( _argPrIpolVarMp,argPr_5) | True ->
                                                                                                                                                            (case (argPr_5 _argPrOtyKiGam) of
                                                                                                                                                             { ( _argPrIintlTyKiGam,_argPrItyKiGam,argPr_6) | True ->
                                                                                                                                                                 (case (_argPrItyKiGam) of
                                                                                                                                                                  { _argOtyKiGam | _argOtyKiGam `seq` (True) ->
                                                                                                                                                                  (case (_argPrItyGam) of
                                                                                                                                                                   { _argOtyGam | _argOtyGam `seq` (True) ->
                                                                                                                                                                   (case (pscpMk' _mustEnterNewPredScope _lhsIpredSameScopeCounter _lhsIpredScope) of
                                                                                                                                                                    { _predScope | _predScope `seq` (True) ->
                                                                                                                                                                    (case (_predScope) of
                                                                                                                                                                     { _argOpredScope | _argOpredScope `seq` (True) ->
                                                                                                                                                                     (case (_lhsIpredSameScopeCounter) of
                                                                                                                                                                      { _argOpredSameScopeCounter | _argOpredSameScopeCounter `seq` (True) ->
                                                                                                                                                                      (case (_argPrIpolVarMp) of
                                                                                                                                                                       { _argOpolVarMp | _argOpolVarMp `seq` (True) ->
                                                                                                                                                                       (case (_lhsIpolGam) of
                                                                                                                                                                        { _argOpolGam | _argOpolGam `seq` (True) ->
                                                                                                                                                                        (case (_lhsIopts) of
                                                                                                                                                                         { _argOopts | _argOopts `seq` (True) ->
                                                                                                                                                                         (case (_lexLev) of
                                                                                                                                                                          { _argOlexLev | _argOlexLev `seq` (True) ->
                                                                                                                                                                          (case (_lhsIkiVarMp) of
                                                                                                                                                                           { _argPrOkiVarMp | _argPrOkiVarMp `seq` (True) ->
                                                                                                                                                                           (case (argPr_6 _argPrOkiVarMp) of
                                                                                                                                                                            { ( _argPrIgathTyVarPolGam,_argPrIki,_argPrIkiVarMp,_argPrItyVarWildMp,argPr_7) | True ->
                                                                                                                                                                                (case (_argPrIkiVarMp) of
                                                                                                                                                                                 { _argOkiVarMp | _argOkiVarMp `seq` (True) ->
                                                                                                                                                                                 (case (_lhsIkiGam) of
                                                                                                                                                                                  { _argOkiGam | _argOkiGam `seq` (True) ->
                                                                                                                                                                                  (case (_lhsIgenerDataInfoMp) of
                                                                                                                                                                                   { _argOgenerDataInfoMp | _argOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                                                   (case (arg_2 _argOkiGam _argOlexLev _argOpredSameScopeCounter) of
                                                                                                                                                                                    { ( _argIpredSameScopeCounter,arg_3) | True ->
                                                                                                                                                                                        (case (arg_3 _argOgenerDataInfoMp _argOkiVarMp _argOopts _argOpolGam _argOpolVarMp _argOpredScope _argOtyGam _argOtyKiGam _argOtyKiGlobFreeTvarS) of
                                                                                                                                                                                         { ( _argIgenerDataInfoMp,_argIkiVarMp,_argIpolVarMp,_argItyGam,_argItyKiGam,arg_4) | True ->
                                                                                                                                                                                             (case (_argItyKiGam) of
                                                                                                                                                                                              { _bodyOtyKiGam | _bodyOtyKiGam `seq` (True) ->
                                                                                                                                                                                              (case (_argItyGam) of
                                                                                                                                                                                               { _bodyOtyGam | _bodyOtyGam `seq` (True) ->
                                                                                                                                                                                               (case (_predScope) of
                                                                                                                                                                                                { _bodyOpredScope | _bodyOpredScope `seq` (True) ->
                                                                                                                                                                                                (case (_argIpolVarMp) of
                                                                                                                                                                                                 { _bodyOpolVarMp | _bodyOpolVarMp `seq` (True) ->
                                                                                                                                                                                                 (case (_lhsIpolGam) of
                                                                                                                                                                                                  { _bodyOpolGam | _bodyOpolGam `seq` (True) ->
                                                                                                                                                                                                  (case (_lhsIopts) of
                                                                                                                                                                                                   { _bodyOopts | _bodyOopts `seq` (True) ->
                                                                                                                                                                                                   (case (_argIkiVarMp) of
                                                                                                                                                                                                    { _bodyOkiVarMp | _bodyOkiVarMp `seq` (True) ->
                                                                                                                                                                                                    (case (_argIgenerDataInfoMp) of
                                                                                                                                                                                                     { _bodyOgenerDataInfoMp | _bodyOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                                                                     (case (body_3 _bodyOgenerDataInfoMp _bodyOkiVarMp _bodyOopts _bodyOpolGam _bodyOpolVarMp _bodyOpredScope _bodyOtyGam _bodyOtyKiGam _bodyOtyKiGlobFreeTvarS) of
                                                                                                                                                                                                      { ( _bodyIgenerDataInfoMp,_bodyIkiVarMp,_bodyIpolVarMp,body_4) | True ->
                                                                                                                                                                                                          (case (_bodyIgenerDataInfoMp) of
                                                                                                                                                                                                           { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                                                                                                                                           (case (_bodyIkiVarMp) of
                                                                                                                                                                                                            { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                                                                                                                                            (case (_bodyIpolVarMp) of
                                                                                                                                                                                                             { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                                                                                                                                             (case ((let sem_Expr_LamImpl_4 :: T_Expr_4
                                                                                                                                                                                                                         sem_Expr_LamImpl_4 =
                                                                                                                                                                                                                             (\ _lhsIclGam
                                                                                                                                                                                                                                _lhsIfinKiVarMp
                                                                                                                                                                                                                                _lhsIfinTyKiGam
                                                                                                                                                                                                                                _lhsIgathDataGam
                                                                                                                                                                                                                                _lhsItyTyTySigFreeTvarS ->
                                                                                                                                                                                                                                  _lhsIclGam `seq`
                                                                                                                                                                                                                                  (_lhsIfinKiVarMp `seq`
                                                                                                                                                                                                                                   (_lhsIfinTyKiGam `seq`
                                                                                                                                                                                                                                    (_lhsIgathDataGam `seq`
                                                                                                                                                                                                                                     (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                                                                                                                                      ((case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                        { _bodyOtyTyTySigFreeTvarS | _bodyOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                        (case (_lhsIgathDataGam) of
                                                                                                                                                                                                                                         { _bodyOgathDataGam | _bodyOgathDataGam `seq` (True) ->
                                                                                                                                                                                                                                         (case (_lhsIfinTyKiGam) of
                                                                                                                                                                                                                                          { _bodyOfinTyKiGam | _bodyOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                          (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                                                                           { _bodyOfinKiVarMp | _bodyOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                           (case (_lhsIclGam) of
                                                                                                                                                                                                                                            { _bodyOclGam | _bodyOclGam `seq` (True) ->
                                                                                                                                                                                                                                            (case (body_4 _bodyOclGam _bodyOfinKiVarMp _bodyOfinTyKiGam _bodyOgathDataGam _bodyOtyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                             { ( _bodyIgathDataGam,body_5) | True ->
                                                                                                                                                                                                                                                 (case (_bodyIgathDataGam) of
                                                                                                                                                                                                                                                  { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                                                                                                                                                  (case ((let sem_Expr_LamImpl_5 :: T_Expr_5
                                                                                                                                                                                                                                                              sem_Expr_LamImpl_5 =
                                                                                                                                                                                                                                                                  (\ _lhsIdataGam ->
                                                                                                                                                                                                                                                                       _lhsIdataGam `seq`
                                                                                                                                                                                                                                                                       ((case (Seq.empty) of
                                                                                                                                                                                                                                                                         { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                                                                                                                                                         (case (defaultFIEnv
                                                                                                                                                                                                                                                                                    { feEHCOpts = _lhsIopts
                                                                                                                                                                                                                                                                                    , fePredScope = _predScope
                                                                                                                                                                                                                                                                                    , feTyGam = _lhsItyGam
                                                                                                                                                                                                                                                                                    , fePolGam = _lhsIpolGam
                                                                                                                                                                                                                                                                                    , feRange = _range
                                                                                                                                                                                                                                                                                    }) of
                                                                                                                                                                                                                                                                          { _fe | _fe `seq` (True) ->
                                                                                                                                                                                                                                                                          (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                                                                                                                                                           { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                                                                                                                                                           (case (_chrFIIn) of
                                                                                                                                                                                                                                                                            { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                                                                                                                                                            (case (_lhsIdataGam) of
                                                                                                                                                                                                                                                                             { _bodyOdataGam | _bodyOdataGam `seq` (True) ->
                                                                                                                                                                                                                                                                             (case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                                                              { _argOtyTyTySigFreeTvarS | _argOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                              (case (_lhsIfinTyKiGam) of
                                                                                                                                                                                                                                                                               { _argOfinTyKiGam | _argOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                               (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                                                                                                                { _argOfinKiVarMp | _argOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                (case (_lhsIdataGam) of
                                                                                                                                                                                                                                                                                 { _argOdataGam | _argOdataGam `seq` (True) ->
                                                                                                                                                                                                                                                                                 (case (_lhsIclGam) of
                                                                                                                                                                                                                                                                                  { _argOclGam | _argOclGam `seq` (True) ->
                                                                                                                                                                                                                                                                                  (case (body_5 _bodyOdataGam) of
                                                                                                                                                                                                                                                                                   { ( _bodyIchrClassDeclSq,_bodyIchrFIIn,_bodyIchrInstDeclSq,_bodyIgathClDfGam,body_6) | True ->
                                                                                                                                                                                                                                                                                       (case (arg_4 _argOclGam _argOdataGam _argOfinKiVarMp _argOfinTyKiGam _argOtyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                                                                        { ( _argIchrInstDeclSq,_argItopNm,arg_5) | True ->
                                                                                                                                                                                                                                                                                            (case (_argIchrInstDeclSq `Seq.union` _bodyIchrInstDeclSq) of
                                                                                                                                                                                                                                                                                             { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                                                                                                                                                             (case (emptyGam) of
                                                                                                                                                                                                                                                                                              { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                              (case ((let sem_Expr_LamImpl_6 :: T_Expr_6
                                                                                                                                                                                                                                                                                                          sem_Expr_LamImpl_6 =
                                                                                                                                                                                                                                                                                                              (\ _lhsIchrStore
                                                                                                                                                                                                                                                                                                                 _lhsIclDfGam
                                                                                                                                                                                                                                                                                                                 _lhsIfiOpts
                                                                                                                                                                                                                                                                                                                 _lhsIknTy
                                                                                                                                                                                                                                                                                                                 _lhsItvKiVarMp
                                                                                                                                                                                                                                                                                                                 _lhsItyTyGlobFreeTvarS
                                                                                                                                                                                                                                                                                                                 _lhsItyVarMp
                                                                                                                                                                                                                                                                                                                 _lhsIvalGam
                                                                                                                                                                                                                                                                                                                 _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                                                                                                                                                                   _lhsIchrStore `seq`
                                                                                                                                                                                                                                                                                                                   (_lhsIclDfGam `seq`
                                                                                                                                                                                                                                                                                                                    (_lhsIfiOpts `seq`
                                                                                                                                                                                                                                                                                                                     (_lhsIknTy `seq`
                                                                                                                                                                                                                                                                                                                      (_lhsItvKiVarMp `seq`
                                                                                                                                                                                                                                                                                                                       (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                                                                                                        (_lhsItyVarMp `seq`
                                                                                                                                                                                                                                                                                                                         (_lhsIvalGam `seq`
                                                                                                                                                                                                                                                                                                                          (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                                                                                                                                                                           ((case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                             { _bodyOvalTyGlobFreeTvarS | _bodyOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                             (case (_lhsIvalGam) of
                                                                                                                                                                                                                                                                                                                              { _argOvalGam | _argOvalGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                              (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                               { _tySigGam | _tySigGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                               (case (_tySigGam) of
                                                                                                                                                                                                                                                                                                                                { _argOtySigGam | _argOtySigGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                (case (_lhsIfiOpts) of
                                                                                                                                                                                                                                                                                                                                 { _argOfiOpts | _argOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                 (case (__tup169) of
                                                                                                                                                                                                                                                                                                                                  { (_,_,_,_lUniq4,_) | _lUniq4 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                  (case (__tup169) of
                                                                                                                                                                                                                                                                                                                                   { (_,_,_lUniq2,_,_) | _lUniq2 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                   (case (__tup169) of
                                                                                                                                                                                                                                                                                                                                    { (_,_lUniq,_,_,_) | _lUniq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                    (case (True) of
                                                                                                                                                                                                                                                                                                                                     { _argOinclVarBind | _argOinclVarBind `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                     (case (let  r = mkNewTyVar _lUniq
                                                                                                                                                                                                                                                                                                                                            in   [_argPrIty] `appArr` r) of
                                                                                                                                                                                                                                                                                                                                      { _funTy | _funTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                      (case (\o m -> fitsIn o _fe _lUniq2 m _funTy _lhsIknTy) of
                                                                                                                                                                                                                                                                                                                                       { _doFit | _doFit `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                       (case (_doFit (implFIOpts {fioBindRFirst=True}) _lhsItyVarMp) of
                                                                                                                                                                                                                                                                                                                                        { _fo_fitF_ | _fo_fitF_ `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                        (case (foVarMp _fo_fitF_ `varUpd` _lhsItyVarMp) of
                                                                                                                                                                                                                                                                                                                                         { _knImplsVarMp | _knImplsVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                         (case (tyArrowImplsResWithLkup (varmpTyLookupCyc2 _knImplsVarMp) _funTy) of
                                                                                                                                                                                                                                                                                                                                          { __tup167 | __tup167 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                          (case (__tup167) of
                                                                                                                                                                                                                                                                                                                                           { (_knImpls,_) | _knImpls `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                           (case (hdAndTl _knImpls) of
                                                                                                                                                                                                                                                                                                                                            { __tup168 | __tup168 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                            (case (__tup168) of
                                                                                                                                                                                                                                                                                                                                             { (_knArgImpl,_) | _knArgImpl `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                             (case (fitPredToEvid'' clgiPrToEvidDataTy _lUniq4 _knImplsVarMp _knArgImpl (Right _lhsIclGam)) of
                                                                                                                                                                                                                                                                                                                                              { _foPr | _foPr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                              (case (foVarMp _foPr `varUpd` _knImplsVarMp) of
                                                                                                                                                                                                                                                                                                                                               { _forArgTyVarMp | _forArgTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                               (case (_forArgTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                { _argOpatTyVarMp | _argOpatTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                (case (foTy _foPr) of
                                                                                                                                                                                                                                                                                                                                                 { _argOknTy | _argOknTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                 (case ([]) of
                                                                                                                                                                                                                                                                                                                                                  { _argOknTyL | _argOknTyL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                  (case (arg_5 _argOvalGam) of
                                                                                                                                                                                                                                                                                                                                                   { ( _argIarity,_argImbTopNm,_argIpatFunTy,arg_6) | True ->
                                                                                                                                                                                                                                                                                                                                                       (case (arg_6 _argOfiOpts _argOinclVarBind _argOknTy _argOknTyL _argOpatTyVarMp _argOtySigGam) of
                                                                                                                                                                                                                                                                                                                                                        { ( _argIpatTyVarMp,_argIvalGam,arg_7) | True ->
                                                                                                                                                                                                                                                                                                                                                            (case (_argIvalGam) of
                                                                                                                                                                                                                                                                                                                                                             { _bodyOvalGam | _bodyOvalGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                             (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                              { _bodyOtyTyGlobFreeTvarS | _bodyOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                              (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                               { _bodyOtvKiVarMp | _bodyOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                               (case (_lhsIfiOpts) of
                                                                                                                                                                                                                                                                                                                                                                { _bodyOfiOpts | _bodyOfiOpts `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                                                                                                                                                 { _bodyOclDfGam | _bodyOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                 (case (_lhsIchrStore) of
                                                                                                                                                                                                                                                                                                                                                                  { _bodyOchrStore | _bodyOchrStore `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                  (case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                   { _argOvalTyGlobFreeTvarS | _argOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                   (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                    { _argOtyTyGlobFreeTvarS | _argOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                    (case (_lhsItvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                                     { _argOtvKiVarMp | _argOtvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                     (case (_lhsIclDfGam) of
                                                                                                                                                                                                                                                                                                                                                                      { _argOclDfGam | _argOclDfGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                      (case (_lhsIchrStore) of
                                                                                                                                                                                                                                                                                                                                                                       { _argOchrStore | _argOchrStore `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                       (case (_argIpatTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                        { _argOtyVarMp | _argOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                        (case (arg_7 _argOchrStore _argOclDfGam _argOtvKiVarMp _argOtyTyGlobFreeTvarS _argOtyVarMp _argOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                         { ( _argIcpNm,_argIgathCnstrMp,_argIgathRangeMp,_argIscopeGam,_argIty,_argItyVarMp,arg_8) | True ->
                                                                                                                                                                                                                                                                                                                                                                             (case (_argItyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                              { _bodyOtyVarMp | _bodyOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                              (case (__tup168) of
                                                                                                                                                                                                                                                                                                                                                                               { (_,_knResImpls) | _knResImpls `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                               (case (__tup167) of
                                                                                                                                                                                                                                                                                                                                                                                { (_,_ty_) | _ty_ `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                (case (_knResImpls `appArr` _ty_) of
                                                                                                                                                                                                                                                                                                                                                                                 { _bodyOknTy | _bodyOknTy `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                 (case (mkPrIdCHR _lUniq) of
                                                                                                                                                                                                                                                                                                                                                                                  { _knPrUid | _knPrUid `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                  (case (body_6 _bodyOchrStore _bodyOclDfGam _bodyOfiOpts _bodyOknTy _bodyOtvKiVarMp _bodyOtyTyGlobFreeTvarS _bodyOtyVarMp _bodyOvalGam _bodyOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                   { ( _bodyIgathCnstrMp,_bodyIgathRangeMp,_bodyIgathValGam,_bodyInoLetQuantTyVarIdS,_bodyIty,_bodyItyVarMp,body_7) | True ->
                                                                                                                                                                                                                                                                                                                                                                                       (case (tyPred $ (_bodyItyVarMp `varUpd`) $ _knArgImpl) of
                                                                                                                                                                                                                                                                                                                                                                                        { _knPr | _knPr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                        (case ([mkPredOcc _knPr _knPrUid _predScope]) of
                                                                                                                                                                                                                                                                                                                                                                                         { _knPrL | _knPrL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                         (case (gathPredLToAssumeCnstrMp _knPrL) of
                                                                                                                                                                                                                                                                                                                                                                                          { _hereCnstrMp | _hereCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                          (case (cnstrMpUnions [_hereCnstrMp,_argIgathCnstrMp,_bodyIgathCnstrMp]) of
                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                           (case (_argIgathRangeMp `Map.union` _bodyIgathRangeMp) of
                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                            (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                             (case (_bodyInoLetQuantTyVarIdS) of
                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                              (case ([_knArgImpl] `appArr` _bodyIty) of
                                                                                                                                                                                                                                                                                                                                                                                               { _ty | _ty `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                               (case (_ty) of
                                                                                                                                                                                                                                                                                                                                                                                                { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                (case (_bodyItyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                 (case ((let sem_Expr_LamImpl_7 :: T_Expr_7
                                                                                                                                                                                                                                                                                                                                                                                                             sem_Expr_LamImpl_7 =
                                                                                                                                                                                                                                                                                                                                                                                                                 (\ _lhsIcSubst
                                                                                                                                                                                                                                                                                                                                                                                                                    _lhsIchrEvidBindMp
                                                                                                                                                                                                                                                                                                                                                                                                                    _lhsIchrScopeBindMp
                                                                                                                                                                                                                                                                                                                                                                                                                    _lhsIexprCtxt
                                                                                                                                                                                                                                                                                                                                                                                                                    _lhsIfinTyVarMp
                                                                                                                                                                                                                                                                                                                                                                                                                    _lhsIfinValGam
                                                                                                                                                                                                                                                                                                                                                                                                                    _lhsImoduleNm
                                                                                                                                                                                                                                                                                                                                                                                                                    _lhsIrangeMp
                                                                                                                                                                                                                                                                                                                                                                                                                    _lhsIsysfEnv
                                                                                                                                                                                                                                                                                                                                                                                                                    _lhsItr ->
                                                                                                                                                                                                                                                                                                                                                                                                                      _lhsIcSubst `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                      (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                       (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                        (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                         (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                          (_lhsIfinValGam `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                           (_lhsImoduleNm `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                            (_lhsIrangeMp `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                             (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                              (_lhsItr `seq`
                                                                                                                                                                                                                                                                                                                                                                                                                               ((case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                                                                                                                                                 { _bodyOsysfEnv | _bodyOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                  { _bodyOrangeMp | _bodyOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                   { _bodyOfinValGam | _bodyOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                    { _bodyOfinTyVarMp | _bodyOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                                                                                                                                                     { _argOsysfEnv | _argOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (_lhsIrangeMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                      { _argOrangeMp | _argOrangeMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (_lhsIfinValGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                       { _argOfinValGam | _argOfinValGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                        { _argOfinTyVarMp | _argOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                         { _bodyOtr | _bodyOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                                                                                                          { _bodyOmoduleNm | _bodyOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (mkScopeBindings False _predScope _lhsIchrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                           { __tup164 | __tup164 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (__tup164) of
                                                                                                                                                                                                                                                                                                                                                                                                                                            { (_,_chrScopeBindMp) | _chrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (_chrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                             { _bodyOchrScopeBindMp | _bodyOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                              { _bodyOchrEvidBindMp | _bodyOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (_chrScopeBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                               { _argOchrScopeBindMp | _argOchrScopeBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (_lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                { _argOchrEvidBindMp | _argOchrEvidBindMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (_lhsIcSubst) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _argOcSubst | _argOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (emptyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _tySigVarMp | _tySigVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (_tySigVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _argOtySigVarMp | _argOtySigVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                    { _argOtr | _argOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _argOmoduleNm | _argOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (_argItopNm) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                      { _argOceParentNm | _argOceParentNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (arg_8 _argOcSubst _argOceParentNm _argOchrEvidBindMp _argOchrScopeBindMp _argOfinTyVarMp _argOfinValGam _argOmoduleNm _argOrangeMp _argOsysfEnv _argOtr _argOtySigVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                       { ( _argIallErrSq,_argIappArgPPL,_argIappFunNm,_argIappFunPP,_argIcSubst,_argIerrSq,_argIfsRPatL,_argIgathMentrelFilterMp,_argIgathTvKiVarMp,_argIisBang,_argIpatCRest,_argIpp,_argIppAST,_argIrpat,_argItrpp,_argIvalCBindL) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (_argIcSubst) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _bodyOcSubst | _bodyOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (ExprCtxt_Lam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                             { _bodyOexprCtxt | _bodyOexprCtxt `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (body_7 _bodyOcSubst _bodyOchrEvidBindMp _bodyOchrScopeBindMp _bodyOexprCtxt _bodyOfinTyVarMp _bodyOfinValGam _bodyOmoduleNm _bodyOrangeMp _bodyOsysfEnv _bodyOtr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                              { ( _bodyIallErrSq,_bodyIappArgCoeL,_bodyIappArgPPL,_bodyIappFunCExpr,_bodyIappFunNm,_bodyIappFunPP,_bodyIbackCBindL,_bodyIcSubst,_bodyIcaseFailS,_bodyIcexpr,_bodyIerrSq,_bodyIfrontCBindL,_bodyIfuCExprL,_bodyIgathClGam,_bodyIgathHiddenExports,_bodyIgathKiGam,_bodyIgathLamMp,_bodyIgathMentrelFilterMp,_bodyIgathPolGam,_bodyIgathTvKiVarMp,_bodyIgathTyGam,_bodyIgathTyKiGam,_bodyIisNewtype,_bodyIlamArgPPL,_bodyIlamBodyPP,_bodyIletCBody,_bodyIletTyCBindL,_bodyIletValCBindL,_bodyIletValMainCBindL,_bodyIorphanS,_bodyIpp,_bodyIppAST,_bodyItrpp) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (_lhsIclGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _argPrOclGam | _argPrOclGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (argPr_7 _argPrOclGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { ( _argPrIevTy,argPr_8) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (_lhsIvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _argPrOvalTyGlobFreeTvarS | _argPrOvalTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (_lhsItyTyTySigFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _argPrOtyTyTySigFreeTvarS | _argPrOtyTyTySigFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_lhsItyTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _argPrOtyTyGlobFreeTvarS | _argPrOtyTyGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (_lhsItyKiGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _argPrOtyKiGlobFreeTvarS | _argPrOtyKiGlobFreeTvarS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (_lhsItr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { _argPrOtr | _argPrOtr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (_lhsIsysfEnv) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { _argPrOsysfEnv | _argPrOsysfEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (_lhsIopts) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                               { _argPrOopts | _argPrOopts `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (_lhsImoduleNm) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                { _argPrOmoduleNm | _argPrOmoduleNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (_lhsIkiGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _argPrOkiGam | _argPrOkiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (_lhsIfinTyVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _argPrOfinTyVarMp | _argPrOfinTyVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (_lhsIfinTyKiGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _argPrOfinTyKiGam | _argPrOfinTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_lhsIfinKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { _argPrOfinKiVarMp | _argPrOfinKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (argPr_8 _argPrOfinKiVarMp _argPrOfinTyKiGam _argPrOfinTyVarMp _argPrOkiGam _argPrOmoduleNm _argPrOopts _argPrOsysfEnv _argPrOtr _argPrOtyKiGlobFreeTvarS _argPrOtyTyGlobFreeTvarS _argPrOtyTyTySigFreeTvarS _argPrOvalTyGlobFreeTvarS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { ( _argPrIallErrSq,_argPrIclMissNmS,_argPrIclNmS,_argPrIerrSq,_argPrIgathMentrelFilterMp,_argPrIpp,_argPrIppAST,_argPrIpr,_argPrItrpp) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (_argPrIallErrSq `Seq.union` _argIallErrSq `Seq.union` _bodyIallErrSq) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (__tup169) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { (_,_,_,_,_lUniq_cexpr) | _lUniq_cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case ((emptyRCEEnv _lhsIopts) { rceValGam = _lhsIvalGam, rceDataGam = _lhsIdataGam, rceTyVarMp = _lhsIfinTyVarMp }) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { _rceEnv | _rceEnv `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (_lhsIfinTyVarMp `varUpd` _argIty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               { _finalTyArg | _finalTyArg `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (tyCanonicFFI (emptyTyBetaRedEnv' _fe) _finalTyArg) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                { _finalTyArgExpanded | _finalTyArgExpanded `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case ((appDbg "Expr.{Lam LamImpl}.sysftyArg not implemented" :: SysfTy)) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _sysftyLamArg | _sysftyLamArg `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (mkCTy _lhsIopts _finalTyArgExpanded _sysftyLamArg) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _acoretyArg | _acoretyArg `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case ([_knPrUid]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _poiL | _poiL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (mkAssumeBindings (map poiId _poiL) _lhsIchrEvidBindMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { _chrAssumeBindL | _chrAssumeBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (__tup164) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { (_chrScopeBindL,_) | _chrScopeBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (_chrAssumeBindL ++ _chrScopeBindL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { _poiBindL | _poiBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case ([acoreCoeLam1Ty _argItopNm _acoretyArg `acoreCoeCompose` acoreCoeLetRec _poiBindL]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _lamArgCoeL | _lamArgCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case (mkLamBodyCoe
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (acoreCoeMap (\e -> rceMatchTy _rceEnv [(_argItopNm,_acoretyArg)] [RAlt_Alt [_argIrpat] e Set.empty]))
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _bodyIappArgCoeL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _lamBodyCoeL | _lamBodyCoeL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case (let
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   wr      = id
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   lam     = mkWeaveExpr _lhsIopts _lUniq_cexpr _lhsIfinTyVarMp _bodyIcSubst wr _bodyIappFunCExpr _lamBodyCoeL _lamArgCoeL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               in  lam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { __tup166 | __tup166 `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (__tup166) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { (_cexpr,_) | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (hsnUnknown) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (hsnOImpl >#< _argIpp >#< "<:" >#< _argPrIpp >#< hsnCImpl) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { _argPP | _argPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (_argPP : _bodyIlamArgPPL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (if _lhsIexprCtxt /= ExprCtxt_Lam
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     then let sep = case _lamArgPPL of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      [_] -> (>#<)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _   -> (>###<)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          in  ("\\" >|< ppSpaces _lamArgPPL) `sep` ("->" >#< _bodyIlamBodyPP)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     else "\\" >|< _argPP >#< "->" >#< _bodyIpp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (__tup166) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { (_,_cexprlamCSubst) | _cexprlamCSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (cSubstApp _bodyIcSubst _cexprlamCSubst) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_bodyIcaseFailS) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { _nmErrs | _nmErrs `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case (rngLift _range mkNestErr' _pp [ _argIerrSq, _argPrIerrSq, _bodyIerrSq
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           , Seq.fromList _nmErrs, foErrSq _fo_fitF_, foErrSq _foPr
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_bodyIgathHiddenExports) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (_bodyIgathLamMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (_argPrIgathMentrelFilterMp `mentrelFilterMpUnion` _argIgathMentrelFilterMp `mentrelFilterMpUnion` _bodyIgathMentrelFilterMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (case (_argIgathTvKiVarMp `varmpUnion` _bodyIgathTvKiVarMp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (case (emptyGam) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (case (False) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (case (_lamArgPPL) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (case (_bodyIlamBodyPP) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (case (_cexpr) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (case ([]) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (case (Set.empty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (case (_pp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (case (trppEmpty) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (case (ppNestTrPP ["Expr","LamImpl"] [] [_argIppAST,_argPrIppAST,_bodyIppAST] _trppHere) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (case (_argPrItrpp >< _argItrpp >< _bodyItrpp) of
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                                                                                                                                                                                                                         in  sem_Expr_LamImpl_7)) of
                                                                                                                                                                                                                                                                                                                                                                                                  { ( sem_Expr_7) | True ->
                                                                                                                                                                                                                                                                                                                                                                                                  ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                                                                                                                                                                      in  sem_Expr_LamImpl_6)) of
                                                                                                                                                                                                                                                                                               { ( sem_Expr_6) | True ->
                                                                                                                                                                                                                                                                                               ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))
                                                                                                                                                                                                                                                          in  sem_Expr_LamImpl_5)) of
                                                                                                                                                                                                                                                   { ( sem_Expr_5) | True ->
                                                                                                                                                                                                                                                   ( _lhsOgathDataGam,sem_Expr_5) }) }) }) }) }) }) }) })))))))
                                                                                                                                                                                                                     in  sem_Expr_LamImpl_4)) of
                                                                                                                                                                                                              { ( sem_Expr_4) | True ->
                                                                                                                                                                                                              ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                in  sem_Expr_LamImpl_3)) of
                                                                                                         { ( sem_Expr_3) | True ->
                                                                                                         ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }) }) }) }) }) }) }) }) }) }) }))))))
                                                                        in  sem_Expr_LamImpl_2)) of
                                                                 { ( sem_Expr_2) | True ->
                                                                 ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) }) }) }) }) }) }) }) })))
                        in  sem_Expr_LamImpl_1)) of
                 { ( sem_Expr_1) | True ->
                 ( _lhsOrange,sem_Expr_1) }) }) }) }) })

sem_Expr_DynVar :: Range ->
                   HsName ->
                   T_Expr

sem_Expr_DynVar hsrange_ nm_ | hsrange_ `seq` (nm_ `seq` (True)) =
    (case (hsrange_) of
     { _range | _range `seq` (True) ->
     (case (_range) of
      { _lhsOrange | _lhsOrange `seq` (True) ->
      (case ((let sem_Expr_DynVar_1 :: T_Expr_1
                  sem_Expr_DynVar_1 =
                      (\ _lhsIgUniq ->
                           _lhsIgUniq `seq`
                           ((case (_lhsIgUniq) of
                             { _lhsOgUniq | _lhsOgUniq `seq` (True) ->
                             (case (False) of
                              { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                              (case ((let sem_Expr_DynVar_2 :: T_Expr_2
                                          sem_Expr_DynVar_2 =
                                              (\ _lhsIisFirstLet
                                                 _lhsIkiGam
                                                 _lhsIlexLev
                                                 _lhsIpredSameScopeCounter ->
                                                   _lhsIisFirstLet `seq`
                                                   (_lhsIkiGam `seq`
                                                    (_lhsIlexLev `seq`
                                                     (_lhsIpredSameScopeCounter `seq`
                                                      ((case (_lhsIpredSameScopeCounter) of
                                                        { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                        (case ((let sem_Expr_DynVar_3 :: T_Expr_3
                                                                    sem_Expr_DynVar_3 =
                                                                        (\ _lhsIgenerDataInfoMp
                                                                           _lhsIkiVarMp
                                                                           _lhsIopts
                                                                           _lhsIpolGam
                                                                           _lhsIpolVarMp
                                                                           _lhsIpredScope
                                                                           _lhsItyGam
                                                                           _lhsItyKiGam
                                                                           _lhsItyKiGlobFreeTvarS ->
                                                                             _lhsIgenerDataInfoMp `seq`
                                                                             (_lhsIkiVarMp `seq`
                                                                              (_lhsIopts `seq`
                                                                               (_lhsIpolGam `seq`
                                                                                (_lhsIpolVarMp `seq`
                                                                                 (_lhsIpredScope `seq`
                                                                                  (_lhsItyGam `seq`
                                                                                   (_lhsItyKiGam `seq`
                                                                                    (_lhsItyKiGlobFreeTvarS `seq`
                                                                                     ((case (_lhsIgenerDataInfoMp) of
                                                                                       { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                       (case (_lhsIkiVarMp) of
                                                                                        { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                        (case (_lhsIpolVarMp) of
                                                                                         { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                         (case ((let sem_Expr_DynVar_4 :: T_Expr_4
                                                                                                     sem_Expr_DynVar_4 =
                                                                                                         (\ _lhsIclGam
                                                                                                            _lhsIfinKiVarMp
                                                                                                            _lhsIfinTyKiGam
                                                                                                            _lhsIgathDataGam
                                                                                                            _lhsItyTyTySigFreeTvarS ->
                                                                                                              _lhsIclGam `seq`
                                                                                                              (_lhsIfinKiVarMp `seq`
                                                                                                               (_lhsIfinTyKiGam `seq`
                                                                                                                (_lhsIgathDataGam `seq`
                                                                                                                 (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                  ((case (_lhsIgathDataGam) of
                                                                                                                    { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                    (case ((let sem_Expr_DynVar_5 :: T_Expr_5
                                                                                                                                sem_Expr_DynVar_5 =
                                                                                                                                    (\ _lhsIdataGam ->
                                                                                                                                         _lhsIdataGam `seq`
                                                                                                                                         ((case (Seq.empty) of
                                                                                                                                           { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                           (case (defaultFIEnv
                                                                                                                                                      { feEHCOpts = _lhsIopts
                                                                                                                                                      , fePredScope = _lhsIpredScope
                                                                                                                                                      , feTyGam = _lhsItyGam
                                                                                                                                                      , fePolGam = _lhsIpolGam
                                                                                                                                                      , feRange = _range
                                                                                                                                                      }) of
                                                                                                                                            { _fe | _fe `seq` (True) ->
                                                                                                                                            (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                             { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                             (case (_chrFIIn) of
                                                                                                                                              { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                              (case (Seq.empty) of
                                                                                                                                               { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                               (case (emptyGam) of
                                                                                                                                                { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                (case ((let sem_Expr_DynVar_6 :: T_Expr_6
                                                                                                                                                            sem_Expr_DynVar_6 =
                                                                                                                                                                (\ _lhsIchrStore
                                                                                                                                                                   _lhsIclDfGam
                                                                                                                                                                   _lhsIfiOpts
                                                                                                                                                                   _lhsIknTy
                                                                                                                                                                   _lhsItvKiVarMp
                                                                                                                                                                   _lhsItyTyGlobFreeTvarS
                                                                                                                                                                   _lhsItyVarMp
                                                                                                                                                                   _lhsIvalGam
                                                                                                                                                                   _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                     _lhsIchrStore `seq`
                                                                                                                                                                     (_lhsIclDfGam `seq`
                                                                                                                                                                      (_lhsIfiOpts `seq`
                                                                                                                                                                       (_lhsIknTy `seq`
                                                                                                                                                                        (_lhsItvKiVarMp `seq`
                                                                                                                                                                         (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                          (_lhsItyVarMp `seq`
                                                                                                                                                                           (_lhsIvalGam `seq`
                                                                                                                                                                            (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                             ((case (Map.empty) of
                                                                                                                                                                               { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                               (case (Map.empty) of
                                                                                                                                                                                { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                (case (emptyGam) of
                                                                                                                                                                                 { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                 (case (Set.empty) of
                                                                                                                                                                                  { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                  (case (Ty_Any) of
                                                                                                                                                                                   { _ty | _ty `seq` (True) ->
                                                                                                                                                                                   (case (_ty) of
                                                                                                                                                                                    { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                    (case (_lhsItyVarMp) of
                                                                                                                                                                                     { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                     (case ((let sem_Expr_DynVar_7 :: T_Expr_7
                                                                                                                                                                                                 sem_Expr_DynVar_7 =
                                                                                                                                                                                                     (\ _lhsIcSubst
                                                                                                                                                                                                        _lhsIchrEvidBindMp
                                                                                                                                                                                                        _lhsIchrScopeBindMp
                                                                                                                                                                                                        _lhsIexprCtxt
                                                                                                                                                                                                        _lhsIfinTyVarMp
                                                                                                                                                                                                        _lhsIfinValGam
                                                                                                                                                                                                        _lhsImoduleNm
                                                                                                                                                                                                        _lhsIrangeMp
                                                                                                                                                                                                        _lhsIsysfEnv
                                                                                                                                                                                                        _lhsItr ->
                                                                                                                                                                                                          _lhsIcSubst `seq`
                                                                                                                                                                                                          (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                           (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                            (_lhsIexprCtxt `seq`
                                                                                                                                                                                                             (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                              (_lhsIfinValGam `seq`
                                                                                                                                                                                                               (_lhsImoduleNm `seq`
                                                                                                                                                                                                                (_lhsIrangeMp `seq`
                                                                                                                                                                                                                 (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                  (_lhsItr `seq`
                                                                                                                                                                                                                   ((case (Seq.empty) of
                                                                                                                                                                                                                     { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                     (case ([]) of
                                                                                                                                                                                                                      { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                      (case ([]) of
                                                                                                                                                                                                                       { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                       (case (acoreBuiltinUndefined _lhsIopts) of
                                                                                                                                                                                                                        { _cexpr | _cexpr `seq` (True) ->
                                                                                                                                                                                                                        (case (_cexpr) of
                                                                                                                                                                                                                         { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                         (case (hsnUnknown) of
                                                                                                                                                                                                                          { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                          (case (hsnDynVar >|< pp nm_) of
                                                                                                                                                                                                                           { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                           (case (_pp) of
                                                                                                                                                                                                                            { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                            (case ([]) of
                                                                                                                                                                                                                             { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                             (case (_lhsIcSubst) of
                                                                                                                                                                                                                              { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                              (case (Set.empty) of
                                                                                                                                                                                                                               { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                               (case (_cexpr) of
                                                                                                                                                                                                                                { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                (case (Seq.empty) of
                                                                                                                                                                                                                                 { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                 (case ([]) of
                                                                                                                                                                                                                                  { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                  (case ([]) of
                                                                                                                                                                                                                                   { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                   (case (emptyGam) of
                                                                                                                                                                                                                                    { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                    (case (Seq.empty) of
                                                                                                                                                                                                                                     { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                     (case (emptyGam) of
                                                                                                                                                                                                                                      { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                      (case (Map.empty) of
                                                                                                                                                                                                                                       { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                       (case (Map.empty) of
                                                                                                                                                                                                                                        { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                        (case (emptyGam) of
                                                                                                                                                                                                                                         { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                         (case (emptyVarMp) of
                                                                                                                                                                                                                                          { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                          (case (emptyGam) of
                                                                                                                                                                                                                                           { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                           (case (emptyGam) of
                                                                                                                                                                                                                                            { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                            (case (False) of
                                                                                                                                                                                                                                             { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                             (case ([]) of
                                                                                                                                                                                                                                              { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                              (case (_lamArgPPL) of
                                                                                                                                                                                                                                               { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                               (case (_pp) of
                                                                                                                                                                                                                                                { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                (case (_lamBodyPP) of
                                                                                                                                                                                                                                                 { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                 (case (_cexpr) of
                                                                                                                                                                                                                                                  { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                  (case ([]) of
                                                                                                                                                                                                                                                   { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                   (case ([]) of
                                                                                                                                                                                                                                                    { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                    (case ([]) of
                                                                                                                                                                                                                                                     { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                     (case (Set.empty) of
                                                                                                                                                                                                                                                      { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                      (case (_pp) of
                                                                                                                                                                                                                                                       { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                       (case (trppEmpty) of
                                                                                                                                                                                                                                                        { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                        (case (ppNestTrPP ["Expr","DynVar"] [ppTrNm nm_] [] _trppHere) of
                                                                                                                                                                                                                                                         { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                         (case (trppEmpty) of
                                                                                                                                                                                                                                                          { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                          ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                             in  sem_Expr_DynVar_7)) of
                                                                                                                                                                                      { ( sem_Expr_7) | True ->
                                                                                                                                                                                      ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                        in  sem_Expr_DynVar_6)) of
                                                                                                                                                 { ( sem_Expr_6) | True ->
                                                                                                                                                 ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) })))
                                                                                                                            in  sem_Expr_DynVar_5)) of
                                                                                                                     { ( sem_Expr_5) | True ->
                                                                                                                     ( _lhsOgathDataGam,sem_Expr_5) }) })))))))
                                                                                                 in  sem_Expr_DynVar_4)) of
                                                                                          { ( sem_Expr_4) | True ->
                                                                                          ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) })))))))))))
                                                                in  sem_Expr_DynVar_3)) of
                                                         { ( sem_Expr_3) | True ->
                                                         ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }))))))
                                      in  sem_Expr_DynVar_2)) of
                               { ( sem_Expr_2) | True ->
                               ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) })))
              in  sem_Expr_DynVar_1)) of
       { ( sem_Expr_1) | True ->
       ( _lhsOrange,sem_Expr_1) }) }) })

sem_Expr_IIConst :: Range ->
                    Integer ->
                    T_Expr

sem_Expr_IIConst hsrange_ integer_ | hsrange_ `seq` (integer_ `seq` (True)) =
    (case (hsrange_) of
     { _range | _range `seq` (True) ->
     (case (_range) of
      { _lhsOrange | _lhsOrange `seq` (True) ->
      (case ((let sem_Expr_IIConst_1 :: T_Expr_1
                  sem_Expr_IIConst_1 =
                      (\ _lhsIgUniq ->
                           _lhsIgUniq `seq`
                           ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq_cexpr) -> (__cont,lUniq,lUniq_cexpr)}} )) of
                             { __tup171 | __tup171 `seq` (True) ->
                             (case (__tup171) of
                              { (_lhsOgUniq,_,_) | _lhsOgUniq `seq` (True) ->
                              (case (False) of
                               { _lhsOhasInstDecl | _lhsOhasInstDecl `seq` (True) ->
                               (case ((let sem_Expr_IIConst_2 :: T_Expr_2
                                           sem_Expr_IIConst_2 =
                                               (\ _lhsIisFirstLet
                                                  _lhsIkiGam
                                                  _lhsIlexLev
                                                  _lhsIpredSameScopeCounter ->
                                                    _lhsIisFirstLet `seq`
                                                    (_lhsIkiGam `seq`
                                                     (_lhsIlexLev `seq`
                                                      (_lhsIpredSameScopeCounter `seq`
                                                       ((case (_lhsIpredSameScopeCounter) of
                                                         { _lhsOpredSameScopeCounter | _lhsOpredSameScopeCounter `seq` (True) ->
                                                         (case ((let sem_Expr_IIConst_3 :: T_Expr_3
                                                                     sem_Expr_IIConst_3 =
                                                                         (\ _lhsIgenerDataInfoMp
                                                                            _lhsIkiVarMp
                                                                            _lhsIopts
                                                                            _lhsIpolGam
                                                                            _lhsIpolVarMp
                                                                            _lhsIpredScope
                                                                            _lhsItyGam
                                                                            _lhsItyKiGam
                                                                            _lhsItyKiGlobFreeTvarS ->
                                                                              _lhsIgenerDataInfoMp `seq`
                                                                              (_lhsIkiVarMp `seq`
                                                                               (_lhsIopts `seq`
                                                                                (_lhsIpolGam `seq`
                                                                                 (_lhsIpolVarMp `seq`
                                                                                  (_lhsIpredScope `seq`
                                                                                   (_lhsItyGam `seq`
                                                                                    (_lhsItyKiGam `seq`
                                                                                     (_lhsItyKiGlobFreeTvarS `seq`
                                                                                      ((case (_lhsIgenerDataInfoMp) of
                                                                                        { _lhsOgenerDataInfoMp | _lhsOgenerDataInfoMp `seq` (True) ->
                                                                                        (case (_lhsIkiVarMp) of
                                                                                         { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) ->
                                                                                         (case (_lhsIpolVarMp) of
                                                                                          { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) ->
                                                                                          (case ((let sem_Expr_IIConst_4 :: T_Expr_4
                                                                                                      sem_Expr_IIConst_4 =
                                                                                                          (\ _lhsIclGam
                                                                                                             _lhsIfinKiVarMp
                                                                                                             _lhsIfinTyKiGam
                                                                                                             _lhsIgathDataGam
                                                                                                             _lhsItyTyTySigFreeTvarS ->
                                                                                                               _lhsIclGam `seq`
                                                                                                               (_lhsIfinKiVarMp `seq`
                                                                                                                (_lhsIfinTyKiGam `seq`
                                                                                                                 (_lhsIgathDataGam `seq`
                                                                                                                  (_lhsItyTyTySigFreeTvarS `seq`
                                                                                                                   ((case (_lhsIgathDataGam) of
                                                                                                                     { _lhsOgathDataGam | _lhsOgathDataGam `seq` (True) ->
                                                                                                                     (case ((let sem_Expr_IIConst_5 :: T_Expr_5
                                                                                                                                 sem_Expr_IIConst_5 =
                                                                                                                                     (\ _lhsIdataGam ->
                                                                                                                                          _lhsIdataGam `seq`
                                                                                                                                          ((case (Seq.empty) of
                                                                                                                                            { _lhsOchrClassDeclSq | _lhsOchrClassDeclSq `seq` (True) ->
                                                                                                                                            (case (defaultFIEnv
                                                                                                                                                       { feEHCOpts = _lhsIopts
                                                                                                                                                       , fePredScope = _lhsIpredScope
                                                                                                                                                       , feTyGam = _lhsItyGam
                                                                                                                                                       , fePolGam = _lhsIpolGam
                                                                                                                                                       , feRange = _range
                                                                                                                                                       }) of
                                                                                                                                             { _fe | _fe `seq` (True) ->
                                                                                                                                             (case (emptyFI {fiEnv = _fe} :: FIIn) of
                                                                                                                                              { _chrFIIn | _chrFIIn `seq` (True) ->
                                                                                                                                              (case (_chrFIIn) of
                                                                                                                                               { _lhsOchrFIIn | _lhsOchrFIIn `seq` (True) ->
                                                                                                                                               (case (Seq.empty) of
                                                                                                                                                { _lhsOchrInstDeclSq | _lhsOchrInstDeclSq `seq` (True) ->
                                                                                                                                                (case (emptyGam) of
                                                                                                                                                 { _lhsOgathClDfGam | _lhsOgathClDfGam `seq` (True) ->
                                                                                                                                                 (case ((let sem_Expr_IIConst_6 :: T_Expr_6
                                                                                                                                                             sem_Expr_IIConst_6 =
                                                                                                                                                                 (\ _lhsIchrStore
                                                                                                                                                                    _lhsIclDfGam
                                                                                                                                                                    _lhsIfiOpts
                                                                                                                                                                    _lhsIknTy
                                                                                                                                                                    _lhsItvKiVarMp
                                                                                                                                                                    _lhsItyTyGlobFreeTvarS
                                                                                                                                                                    _lhsItyVarMp
                                                                                                                                                                    _lhsIvalGam
                                                                                                                                                                    _lhsIvalTyGlobFreeTvarS ->
                                                                                                                                                                      _lhsIchrStore `seq`
                                                                                                                                                                      (_lhsIclDfGam `seq`
                                                                                                                                                                       (_lhsIfiOpts `seq`
                                                                                                                                                                        (_lhsIknTy `seq`
                                                                                                                                                                         (_lhsItvKiVarMp `seq`
                                                                                                                                                                          (_lhsItyTyGlobFreeTvarS `seq`
                                                                                                                                                                           (_lhsItyVarMp `seq`
                                                                                                                                                                            (_lhsIvalGam `seq`
                                                                                                                                                                             (_lhsIvalTyGlobFreeTvarS `seq`
                                                                                                                                                                              ((case (Map.empty) of
                                                                                                                                                                                { _lhsOgathCnstrMp | _lhsOgathCnstrMp `seq` (True) ->
                                                                                                                                                                                (case (Map.empty) of
                                                                                                                                                                                 { _lhsOgathRangeMp | _lhsOgathRangeMp `seq` (True) ->
                                                                                                                                                                                 (case (emptyGam) of
                                                                                                                                                                                  { _lhsOgathValGam | _lhsOgathValGam `seq` (True) ->
                                                                                                                                                                                  (case (Set.empty) of
                                                                                                                                                                                   { _lhsOnoLetQuantTyVarIdS | _lhsOnoLetQuantTyVarIdS `seq` (True) ->
                                                                                                                                                                                   (case (__tup171) of
                                                                                                                                                                                    { (_,_lUniq,_) | _lUniq `seq` (True) ->
                                                                                                                                                                                    (case (tyInteger) of
                                                                                                                                                                                     { _constTy | _constTy `seq` (True) ->
                                                                                                                                                                                     (case (ehcOptTrace _lhsIopts "Expr.?Const.loc.fo_" $
                                                                                                                                                                                            fitsIn _lhsIfiOpts _fe _lUniq _lhsItyVarMp _constTy _lhsIknTy) of
                                                                                                                                                                                      { _fo_ | _fo_ `seq` (True) ->
                                                                                                                                                                                      (case (foTy _fo_) of
                                                                                                                                                                                       { _ty | _ty `seq` (True) ->
                                                                                                                                                                                       (case (_ty) of
                                                                                                                                                                                        { _lhsOty | _lhsOty `seq` (True) ->
                                                                                                                                                                                        (case (foVarMp _fo_ `varUpd` _lhsItyVarMp) of
                                                                                                                                                                                         { _tyVarMp | _tyVarMp `seq` (True) ->
                                                                                                                                                                                         (case (_tyVarMp) of
                                                                                                                                                                                          { _lhsOtyVarMp | _lhsOtyVarMp `seq` (True) ->
                                                                                                                                                                                          (case ((let sem_Expr_IIConst_7 :: T_Expr_7
                                                                                                                                                                                                      sem_Expr_IIConst_7 =
                                                                                                                                                                                                          (\ _lhsIcSubst
                                                                                                                                                                                                             _lhsIchrEvidBindMp
                                                                                                                                                                                                             _lhsIchrScopeBindMp
                                                                                                                                                                                                             _lhsIexprCtxt
                                                                                                                                                                                                             _lhsIfinTyVarMp
                                                                                                                                                                                                             _lhsIfinValGam
                                                                                                                                                                                                             _lhsImoduleNm
                                                                                                                                                                                                             _lhsIrangeMp
                                                                                                                                                                                                             _lhsIsysfEnv
                                                                                                                                                                                                             _lhsItr ->
                                                                                                                                                                                                               _lhsIcSubst `seq`
                                                                                                                                                                                                               (_lhsIchrEvidBindMp `seq`
                                                                                                                                                                                                                (_lhsIchrScopeBindMp `seq`
                                                                                                                                                                                                                 (_lhsIexprCtxt `seq`
                                                                                                                                                                                                                  (_lhsIfinTyVarMp `seq`
                                                                                                                                                                                                                   (_lhsIfinValGam `seq`
                                                                                                                                                                                                                    (_lhsImoduleNm `seq`
                                                                                                                                                                                                                     (_lhsIrangeMp `seq`
                                                                                                                                                                                                                      (_lhsIsysfEnv `seq`
                                                                                                                                                                                                                       (_lhsItr `seq`
                                                                                                                                                                                                                        ((case (Seq.empty) of
                                                                                                                                                                                                                          { _lhsOallErrSq | _lhsOallErrSq `seq` (True) ->
                                                                                                                                                                                                                          (case ([]) of
                                                                                                                                                                                                                           { _lhsOappArgCoeL | _lhsOappArgCoeL `seq` (True) ->
                                                                                                                                                                                                                           (case ([]) of
                                                                                                                                                                                                                            { _lhsOappArgPPL | _lhsOappArgPPL `seq` (True) ->
                                                                                                                                                                                                                            (case (__tup171) of
                                                                                                                                                                                                                             { (_,_,_lUniq_cexpr) | _lUniq_cexpr `seq` (True) ->
                                                                                                                                                                                                                             (case (acoreBuiltinInteger _lhsIopts integer_) of
                                                                                                                                                                                                                              { _cexprBase | _cexprBase `seq` (True) ->
                                                                                                                                                                                                                              (case (foAppLRCoeAsSubst _lhsIopts _lUniq_cexpr _fo_ _lhsIfinTyVarMp _lhsIcSubst $
                                                                                                                                                                                                                                     _cexprBase) of
                                                                                                                                                                                                                               { __tup170 | __tup170 `seq` (True) ->
                                                                                                                                                                                                                               (case (__tup170) of
                                                                                                                                                                                                                                { (_cexpr,_) | _cexpr `seq` (True) ->
                                                                                                                                                                                                                                (case (_cexpr) of
                                                                                                                                                                                                                                 { _lhsOappFunCExpr | _lhsOappFunCExpr `seq` (True) ->
                                                                                                                                                                                                                                 (case (hsnUnknown) of
                                                                                                                                                                                                                                  { _lhsOappFunNm | _lhsOappFunNm `seq` (True) ->
                                                                                                                                                                                                                                  (case (pp (show integer_)) of
                                                                                                                                                                                                                                   { _pp | _pp `seq` (True) ->
                                                                                                                                                                                                                                   (case (_pp) of
                                                                                                                                                                                                                                    { _lhsOappFunPP | _lhsOappFunPP `seq` (True) ->
                                                                                                                                                                                                                                    (case ([]) of
                                                                                                                                                                                                                                     { _lhsObackCBindL | _lhsObackCBindL `seq` (True) ->
                                                                                                                                                                                                                                     (case (__tup170) of
                                                                                                                                                                                                                                      { (_,_cexprCSubst) | _cexprCSubst `seq` (True) ->
                                                                                                                                                                                                                                      (case (cSubstApp _lhsIcSubst _cexprCSubst) of
                                                                                                                                                                                                                                       { _lhsOcSubst | _lhsOcSubst `seq` (True) ->
                                                                                                                                                                                                                                       (case (Set.empty) of
                                                                                                                                                                                                                                        { _lhsOcaseFailS | _lhsOcaseFailS `seq` (True) ->
                                                                                                                                                                                                                                        (case (_cexpr) of
                                                                                                                                                                                                                                         { _lhsOcexpr | _lhsOcexpr `seq` (True) ->
                                                                                                                                                                                                                                         (case (Seq.empty) of
                                                                                                                                                                                                                                          { _lhsOerrSq | _lhsOerrSq `seq` (True) ->
                                                                                                                                                                                                                                          (case ([]) of
                                                                                                                                                                                                                                           { _lhsOfrontCBindL | _lhsOfrontCBindL `seq` (True) ->
                                                                                                                                                                                                                                           (case ([]) of
                                                                                                                                                                                                                                            { _lhsOfuCExprL | _lhsOfuCExprL `seq` (True) ->
                                                                                                                                                                                                                                            (case (emptyGam) of
                                                                                                                                                                                                                                             { _lhsOgathClGam | _lhsOgathClGam `seq` (True) ->
                                                                                                                                                                                                                                             (case (Seq.empty) of
                                                                                                                                                                                                                                              { _lhsOgathHiddenExports | _lhsOgathHiddenExports `seq` (True) ->
                                                                                                                                                                                                                                              (case (emptyGam) of
                                                                                                                                                                                                                                               { _lhsOgathKiGam | _lhsOgathKiGam `seq` (True) ->
                                                                                                                                                                                                                                               (case (Map.empty) of
                                                                                                                                                                                                                                                { _lhsOgathLamMp | _lhsOgathLamMp `seq` (True) ->
                                                                                                                                                                                                                                                (case (Map.empty) of
                                                                                                                                                                                                                                                 { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) ->
                                                                                                                                                                                                                                                 (case (emptyGam) of
                                                                                                                                                                                                                                                  { _lhsOgathPolGam | _lhsOgathPolGam `seq` (True) ->
                                                                                                                                                                                                                                                  (case (emptyVarMp) of
                                                                                                                                                                                                                                                   { _lhsOgathTvKiVarMp | _lhsOgathTvKiVarMp `seq` (True) ->
                                                                                                                                                                                                                                                   (case (emptyGam) of
                                                                                                                                                                                                                                                    { _lhsOgathTyGam | _lhsOgathTyGam `seq` (True) ->
                                                                                                                                                                                                                                                    (case (emptyGam) of
                                                                                                                                                                                                                                                     { _lhsOgathTyKiGam | _lhsOgathTyKiGam `seq` (True) ->
                                                                                                                                                                                                                                                     (case (False) of
                                                                                                                                                                                                                                                      { _lhsOisNewtype | _lhsOisNewtype `seq` (True) ->
                                                                                                                                                                                                                                                      (case ([]) of
                                                                                                                                                                                                                                                       { _lamArgPPL | _lamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                       (case (_lamArgPPL) of
                                                                                                                                                                                                                                                        { _lhsOlamArgPPL | _lhsOlamArgPPL `seq` (True) ->
                                                                                                                                                                                                                                                        (case (_pp) of
                                                                                                                                                                                                                                                         { _lamBodyPP | _lamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                         (case (_lamBodyPP) of
                                                                                                                                                                                                                                                          { _lhsOlamBodyPP | _lhsOlamBodyPP `seq` (True) ->
                                                                                                                                                                                                                                                          (case (_cexpr) of
                                                                                                                                                                                                                                                           { _lhsOletCBody | _lhsOletCBody `seq` (True) ->
                                                                                                                                                                                                                                                           (case ([]) of
                                                                                                                                                                                                                                                            { _lhsOletTyCBindL | _lhsOletTyCBindL `seq` (True) ->
                                                                                                                                                                                                                                                            (case ([]) of
                                                                                                                                                                                                                                                             { _lhsOletValCBindL | _lhsOletValCBindL `seq` (True) ->
                                                                                                                                                                                                                                                             (case ([]) of
                                                                                                                                                                                                                                                              { _lhsOletValMainCBindL | _lhsOletValMainCBindL `seq` (True) ->
                                                                                                                                                                                                                                                              (case (Set.empty) of
                                                                                                                                                                                                                                                               { _lhsOorphanS | _lhsOorphanS `seq` (True) ->
                                                                                                                                                                                                                                                               (case (_pp) of
                                                                                                                                                                                                                                                                { _lhsOpp | _lhsOpp `seq` (True) ->
                                                                                                                                                                                                                                                                (case (trppEmpty) of
                                                                                                                                                                                                                                                                 { _trppHere | _trppHere `seq` (True) ->
                                                                                                                                                                                                                                                                 (case (ppNestTrPP ["Expr","IIConst"] [_pp] [] _trppHere) of
                                                                                                                                                                                                                                                                  { _lhsOppAST | _lhsOppAST `seq` (True) ->
                                                                                                                                                                                                                                                                  (case (trppEmpty) of
                                                                                                                                                                                                                                                                   { _lhsOtrpp | _lhsOtrpp `seq` (True) ->
                                                                                                                                                                                                                                                                   ( _lhsOallErrSq,_lhsOappArgCoeL,_lhsOappArgPPL,_lhsOappFunCExpr,_lhsOappFunNm,_lhsOappFunPP,_lhsObackCBindL,_lhsOcSubst,_lhsOcaseFailS,_lhsOcexpr,_lhsOerrSq,_lhsOfrontCBindL,_lhsOfuCExprL,_lhsOgathClGam,_lhsOgathHiddenExports,_lhsOgathKiGam,_lhsOgathLamMp,_lhsOgathMentrelFilterMp,_lhsOgathPolGam,_lhsOgathTvKiVarMp,_lhsOgathTyGam,_lhsOgathTyKiGam,_lhsOisNewtype,_lhsOlamArgPPL,_lhsOlamBodyPP,_lhsOletCBody,_lhsOletTyCBindL,_lhsOletValCBindL,_lhsOletValMainCBindL,_lhsOorphanS,_lhsOpp,_lhsOppAST,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }))))))))))))
                                                                                                                                                                                                  in  sem_Expr_IIConst_7)) of
                                                                                                                                                                                           { ( sem_Expr_7) | True ->
                                                                                                                                                                                           ( _lhsOgathCnstrMp,_lhsOgathRangeMp,_lhsOgathValGam,_lhsOnoLetQuantTyVarIdS,_lhsOty,_lhsOtyVarMp,sem_Expr_7) }) }) }) }) }) }) }) }) }) }) }) })))))))))))
                                                                                                                                                         in  sem_Expr_IIConst_6)) of
                                                                                                                                                  { ( sem_Expr_6) | True ->
                                                                                                                                                  ( _lhsOchrClassDeclSq,_lhsOchrFIIn,_lhsOchrInstDeclSq,_lhsOgathClDfGam,sem_Expr_6) }) }) }) }) }) }) })))
                                                                                                                             in  sem_Expr_IIConst_5)) of
                                                                                                                      { ( sem_Expr_5) | True ->
                                                                                                                      ( _lhsOgathDataGam,sem_Expr_5) }) })))))))
                                                                                                  in  sem_Expr_IIConst_4)) of
                                                                                           { ( sem_Expr_4) | True ->
                                                                                           ( _lhsOgenerDataInfoMp,_lhsOkiVarMp,_lhsOpolVarMp,sem_Expr_4) }) }) }) })))))))))))
                                                                 in  sem_Expr_IIConst_3)) of
                                                          { ( sem_Expr_3) | True ->
                                                          ( _lhsOpredSameScopeCounter,sem_Expr_3) }) }))))))
                                       in  sem_Expr_IIConst_2)) of
                                { ( sem_Expr_2) | True ->
                                ( _lhsOgUniq,_lhsOhasInstDecl,sem_Expr_2) }) }) }) })))
              in  sem_Expr_IIConst_1)) of
       { ( sem_Expr_1) | True ->
       ( _lhsOrange,sem_Expr_1) }) }) })