module UHC.Light.Compiler.EH.MainAG_PrExpr 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.CtxtRedOnly.RedGraph (redPruneReductionsUntil) import UHC.Util.CHR import UHC.Light.Compiler.CHR.CtxtRedOnly.Constraint import UHC.Light.Compiler.CHR.CtxtRedOnly.Guard import UHC.Light.Compiler.Pred.CtxtRedOnly.ToCHR import UHC.Light.Compiler.Pred.CtxtRedOnly.Heuristics import UHC.Light.Compiler.Pred.CtxtRedOnly.Evidence import UHC.Light.Compiler.CHR.CtxtRedOnly.Solve import UHC.Light.Compiler.Pred.CtxtRedOnly.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 -- PrExpr ------------------------------------------------------ {- visit 0: synthesized attribute: range : Range visit 1: chained attribute: gUniq : UID visit 2: chained attribute: tyGam : TyGam synthesized attributes: prTy : Ty ty : Ty visit 3: inherited attribute: knPolCtx : Polarity synthesized attribute: polVarL : [Polarity] visit 4: inherited attribute: polGam : PolGam chained attribute: polVarMp : VarMp visit 5: chained attribute: tyKiGam : TyKiGam synthesized attribute: intlTyKiGam : TyKiGam visit 6: chained attribute: kiVarMp : VarMp synthesized attributes: gathTyVarPolGam : PolGam ki : Ty tyVarWildMp : TyVarWildMp visit 7: inherited attribute: clGam : ClGam synthesized attribute: evTy : Ty visit 8: inherited attributes: finKiVarMp : VarMp finTyKiGam : TyKiGam finTyVarMp : VarMp kiGam : KiGam moduleNm : HsName opts : EHCOpts sysfEnv : ToSysfEnv tr : TraceOn -> [PP_Doc] -> TrPP tyKiGlobFreeTvarS : TyVarIdS tyTyGlobFreeTvarS : TyVarIdS tyTyTySigFreeTvarS : TyVarIdS valTyGlobFreeTvarS : TyVarIdS synthesized attributes: allErrSq : ErrSq clMissNmS : HsNameS clNmS : HsNameS errSq : ErrSq gathMentrelFilterMp : ModEntRelFilterMp pp : PP_Doc ppAST : PP_Doc pr : Pred trpp : TrPP alternatives: alternative Class: child hsrange : {Range} child nm : {HsName} child tyExprs : TyExprs visit 0: local range : {Range} visit 1: local _tup207 : _ intra range : {Range} visit 2: local pr : {Pred} local ty : {Ty} local prTy : _ intra _tup207 : _ intra range : {Range} visit 3: intra _tup207 : _ intra ty : {Ty} intra range : {Range} intra pr : {Pred} visit 4: intra _tup207 : _ intra ty : {Ty} intra range : {Range} intra pr : {Pred} visit 5: intra _tup207 : _ intra ty : {Ty} intra range : {Range} intra pr : {Pred} visit 6: local lUniq : {UID} local _tup206 : _ local tkgi_ : {TyKiGamInfo} local fo_ : {FIOut} intra _tup207 : _ intra ty : {Ty} intra range : {Range} intra pr : {Pred} visit 7: local lUniq3 : {UID} local lUniq2 : {UID} local fe2 : _ local _tup205 : _ local clgi : {ClGamInfo} intra _tup207 : _ intra ty : {Ty} intra _tup206 : _ intra range : {Range} intra fo_ : {FIOut} intra pr : {Pred} visit 8: local clMissNmS : {Set HsName} local clNmS : {Set HsName} local clKiNmErrs : {ErrL} local nmErrs : {ErrL} local pp : _ local gathMentrelFilterMp : _ local trppHere : _ local ppAST : _ local trpp : _ intra _tup205 : _ intra _tup206 : _ intra range : {Range} intra fo_ : {FIOut} intra pr : {Pred} alternative Arrow: child hsrange : {Range} child arg : PrExpr child res : PrExpr visit 0: local range : {Range} visit 2: local prTy : _ local pr : {Pred} local ty : {Ty} visit 3: intra pr : {Pred} visit 4: intra pr : {Pred} visit 5: intra pr : {Pred} visit 6: intra pr : {Pred} visit 7: intra pr : {Pred} visit 8: local pp : _ local trppHere : _ local ppAST : _ intra pr : {Pred} alternative Forall: child hsrange : {Range} child tyVar : {HsName} child prExpr : PrExpr visit 0: local range : {Range} visit 1: local _tup209 : _ visit 2: local lUniq_ki : {UID} local lUniq : {UID} local _tup208 : _ local tgi_ : {TyGamInfo} local tv : {UID} local prTy : _ local pr : {Pred} local ty : {Ty} intra _tup209 : _ visit 3: intra _tup208 : _ intra tgi_ : {TyGamInfo} intra pr : {Pred} visit 4: intra _tup208 : _ intra tgi_ : {TyGamInfo} intra pr : {Pred} visit 5: local tkgi_ : {TyKiGamInfo} local tyKiGamNew : _ intra _tup208 : _ intra tgi_ : {TyGamInfo} intra pr : {Pred} visit 6: intra pr : {Pred} visit 7: intra pr : {Pred} visit 8: local pp : _ intra pr : {Pred} alternative Lacks: child hsrange : {Range} child rowTyExpr : RowTyExpr child nm : {HsName} visit 0: local range : {Range} visit 2: local pr : {Pred} local ty : {Ty} local prTy : _ visit 3: intra pr : {Pred} visit 4: intra pr : {Pred} visit 5: intra pr : {Pred} visit 6: intra pr : {Pred} visit 7: intra pr : {Pred} visit 8: local pp : _ local trppHere : _ local ppAST : _ intra pr : {Pred} alternative DynVar: child hsrange : {Range} child nm : {HsName} child tyExpr : TyExpr visit 0: local range : {Range} visit 2: local pr : {Pred} local ty : {Ty} local prTy : _ visit 3: intra pr : {Pred} visit 4: intra pr : {Pred} visit 5: intra pr : {Pred} visit 6: intra pr : {Pred} visit 7: intra pr : {Pred} visit 8: local pp : _ local trppHere : _ local ppAST : _ intra pr : {Pred} alternative Eq: child hsrange : {Range} child tyExpr1 : TyExpr child tyExpr2 : TyExpr visit 0: local range : {Range} visit 1: local _tup210 : _ visit 2: local pr : {Pred} local ty : {Ty} local prTy : _ intra _tup210 : _ visit 3: intra _tup210 : _ intra pr : {Pred} visit 4: intra _tup210 : _ intra pr : {Pred} visit 5: intra _tup210 : _ intra pr : {Pred} visit 6: local lUniq : {UID} local fo_ : {FIOut} intra _tup210 : _ intra pr : {Pred} visit 7: intra pr : {Pred} visit 8: local pp : _ local trppHere : _ local ppAST : _ intra pr : {Pred} -} sem_PrExpr_Class :: Range -> HsName -> T_TyExprs -> T_PrExpr sem_PrExpr_Class hsrange_ nm_ tyExprs_ | hsrange_ `seq` (nm_ `seq` (tyExprs_ `seq` (True))) = (case (tyExprs_) of { ( _tyExprsIrange,tyExprs_1) | True -> (case (rangeUnions [hsrange_, _tyExprsIrange, _tyExprsIrange ]) of { _range | _range `seq` (True) -> (case (_range) of { _lhsOrange | _lhsOrange `seq` (True) -> (case ((let sem_PrExpr_Class_1 :: T_PrExpr_1 sem_PrExpr_Class_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) -> (__cont,lUniq,lUniq2,lUniq3)}}} )) of { __tup207 | __tup207 `seq` (True) -> (case (__tup207) of { (_tyExprsOgUniq,_,_,_) | _tyExprsOgUniq `seq` (True) -> (case (tyExprs_1 _tyExprsOgUniq) of { ( _tyExprsIgUniq,tyExprs_2) | True -> (case (_tyExprsIgUniq) of { _lhsOgUniq | _lhsOgUniq `seq` (True) -> (case ((let sem_PrExpr_Class_2 :: T_PrExpr_2 sem_PrExpr_Class_2 = (\ _lhsItyGam -> _lhsItyGam `seq` ((case (_lhsItyGam) of { _tyExprsOtyGam | _tyExprsOtyGam `seq` (True) -> (case (tyExprs_2 _tyExprsOtyGam) of { ( _tyExprsIpolVarL,_tyExprsItyGam,_tyExprsItyL,tyExprs_3) | True -> (case (Pred_Class (nm_ `appConApp` _tyExprsItyL)) of { _pr | _pr `seq` (True) -> (case (mkTyPr _pr) of { _ty | _ty `seq` (True) -> (case (_ty) of { _prTy | _prTy `seq` (True) -> (case (_prTy) of { _lhsOprTy | _lhsOprTy `seq` (True) -> (case (_ty) of { _lhsOty | _lhsOty `seq` (True) -> (case (_tyExprsItyGam) of { _lhsOtyGam | _lhsOtyGam `seq` (True) -> (case ((let sem_PrExpr_Class_3 :: T_PrExpr_3 sem_PrExpr_Class_3 = (\ _lhsIknPolCtx -> _lhsIknPolCtx `seq` ((case (_tyExprsIpolVarL) of { _lhsOpolVarL | _lhsOpolVarL `seq` (True) -> (case ((let sem_PrExpr_Class_4 :: T_PrExpr_4 sem_PrExpr_Class_4 = (\ _lhsIpolGam _lhsIpolVarMp -> _lhsIpolGam `seq` (_lhsIpolVarMp `seq` ((case (_lhsIpolVarMp) of { _tyExprsOpolVarMp | _tyExprsOpolVarMp `seq` (True) -> (case (_lhsIpolGam) of { _tyExprsOpolGam | _tyExprsOpolGam `seq` (True) -> (case (tyExprs_3 _tyExprsOpolGam _tyExprsOpolVarMp) of { ( _tyExprsIpolVarMp,tyExprs_4) | True -> (case (_tyExprsIpolVarMp) of { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) -> (case ((let sem_PrExpr_Class_5 :: T_PrExpr_5 sem_PrExpr_Class_5 = (\ _lhsItyKiGam -> _lhsItyKiGam `seq` ((case (_lhsItyKiGam) of { _tyExprsOtyKiGam | _tyExprsOtyKiGam `seq` (True) -> (case (tyExprs_4 _tyExprsOtyKiGam) of { ( _tyExprsIintlTyKiGam,_tyExprsItyKiGam,tyExprs_5) | True -> (case (_tyExprsIintlTyKiGam) of { _lhsOintlTyKiGam | _lhsOintlTyKiGam `seq` (True) -> (case (_tyExprsItyKiGam) of { _lhsOtyKiGam | _lhsOtyKiGam `seq` (True) -> (case ((let sem_PrExpr_Class_6 :: T_PrExpr_6 sem_PrExpr_Class_6 = (\ _lhsIkiVarMp -> _lhsIkiVarMp `seq` ((case (_lhsIkiVarMp) of { _tyExprsOkiVarMp | _tyExprsOkiVarMp `seq` (True) -> (case (tyExprs_5 _tyExprsOkiVarMp) of { ( _tyExprsIgathTyVarPolGam,_tyExprsIkiL,_tyExprsIkiVarMp,_tyExprsItyVarWildMp,tyExprs_6) | True -> (case (_tyExprsIgathTyVarPolGam) of { _lhsOgathTyVarPolGam | _lhsOgathTyVarPolGam `seq` (True) -> (case (kiStar) of { _lhsOki | _lhsOki `seq` (True) -> (case (__tup207) of { (_,_lUniq,_,_) | _lUniq `seq` (True) -> (case (tyKiGamLookupByNameErr (hsnClass2Kind nm_) _lhsItyKiGam) of { __tup206 | __tup206 `seq` (True) -> (case (__tup206) of { (_tkgi_,_) | _tkgi_ `seq` (True) -> (case (fitsIn weakFIOpts defaultFIEnv _lUniq _tyExprsIkiVarMp (_tyExprsIkiL `appArr` kiStar) (tkgiKi _tkgi_)) of { _fo_ | _fo_ `seq` (True) -> (case (foVarMp _fo_ `varUpd` _tyExprsIkiVarMp) of { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) -> (case (_tyExprsItyVarWildMp) of { _lhsOtyVarWildMp | _lhsOtyVarWildMp `seq` (True) -> (case ((let sem_PrExpr_Class_7 :: T_PrExpr_7 sem_PrExpr_Class_7 = (\ _lhsIclGam -> _lhsIclGam `seq` ((case (__tup207) of { (_,_,_,_lUniq3) | _lUniq3 `seq` (True) -> (case (__tup207) of { (_,_,_lUniq2,_) | _lUniq2 `seq` (True) -> (case (defaultFIEnv { feTyGam = _lhsItyGam , fePolGam = _lhsIpolGam }) of { _fe2 | _fe2 `seq` (True) -> (case (case gamLookup nm_ _lhsIclGam of Just p -> (p ,Set.singleton nm_ ,Set.empty ) Nothing -> (emptyCLGI ,Set.empty ,Set.singleton nm_ )) of { __tup205 | __tup205 `seq` (True) -> (case (__tup205) of { (_clgi,_,_) | _clgi `seq` (True) -> (case (let fo = fitsIn (predFIOpts {fioDontBind = varFreeSet _ty}) _fe2 _lUniq3 (emptyVarMp :: VarMp) (clgiPrToEvidRecTy _clgi) ([_ty] `appArr` mkNewTyVar _lUniq2) in appUnArrRes $ foVarMp fo `varUpd` foTy fo) of { _lhsOevTy | _lhsOevTy `seq` (True) -> (case ((let sem_PrExpr_Class_8 :: T_PrExpr_8 sem_PrExpr_Class_8 = (\ _lhsIfinKiVarMp _lhsIfinTyKiGam _lhsIfinTyVarMp _lhsIkiGam _lhsImoduleNm _lhsIopts _lhsIsysfEnv _lhsItr _lhsItyKiGlobFreeTvarS _lhsItyTyGlobFreeTvarS _lhsItyTyTySigFreeTvarS _lhsIvalTyGlobFreeTvarS -> _lhsIfinKiVarMp `seq` (_lhsIfinTyKiGam `seq` (_lhsIfinTyVarMp `seq` (_lhsIkiGam `seq` (_lhsImoduleNm `seq` (_lhsIopts `seq` (_lhsIsysfEnv `seq` (_lhsItr `seq` (_lhsItyKiGlobFreeTvarS `seq` (_lhsItyTyGlobFreeTvarS `seq` (_lhsItyTyTySigFreeTvarS `seq` (_lhsIvalTyGlobFreeTvarS `seq` ((case (_lhsIvalTyGlobFreeTvarS) of { _tyExprsOvalTyGlobFreeTvarS | _tyExprsOvalTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyTyTySigFreeTvarS) of { _tyExprsOtyTyTySigFreeTvarS | _tyExprsOtyTyTySigFreeTvarS `seq` (True) -> (case (_lhsItyTyGlobFreeTvarS) of { _tyExprsOtyTyGlobFreeTvarS | _tyExprsOtyTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyKiGlobFreeTvarS) of { _tyExprsOtyKiGlobFreeTvarS | _tyExprsOtyKiGlobFreeTvarS `seq` (True) -> (case (_lhsItr) of { _tyExprsOtr | _tyExprsOtr `seq` (True) -> (case (_lhsIsysfEnv) of { _tyExprsOsysfEnv | _tyExprsOsysfEnv `seq` (True) -> (case (_lhsIopts) of { _tyExprsOopts | _tyExprsOopts `seq` (True) -> (case (_lhsImoduleNm) of { _tyExprsOmoduleNm | _tyExprsOmoduleNm `seq` (True) -> (case (_lhsIknPolCtx) of { _tyExprsOknPolCtx | _tyExprsOknPolCtx `seq` (True) -> (case (_lhsIkiGam) of { _tyExprsOkiGam | _tyExprsOkiGam `seq` (True) -> (case (_lhsIfinTyVarMp) of { _tyExprsOfinTyVarMp | _tyExprsOfinTyVarMp `seq` (True) -> (case (_lhsIfinTyKiGam) of { _tyExprsOfinTyKiGam | _tyExprsOfinTyKiGam `seq` (True) -> (case (_lhsIfinKiVarMp) of { _tyExprsOfinKiVarMp | _tyExprsOfinKiVarMp `seq` (True) -> (case (_lhsIclGam) of { _tyExprsOclGam | _tyExprsOclGam `seq` (True) -> (case (tyExprs_6 _tyExprsOclGam _tyExprsOfinKiVarMp _tyExprsOfinTyKiGam _tyExprsOfinTyVarMp _tyExprsOkiGam _tyExprsOknPolCtx _tyExprsOmoduleNm _tyExprsOopts _tyExprsOsysfEnv _tyExprsOtr _tyExprsOtyKiGlobFreeTvarS _tyExprsOtyTyGlobFreeTvarS _tyExprsOtyTyTySigFreeTvarS _tyExprsOvalTyGlobFreeTvarS) of { ( _tyExprsIallErrSq,_tyExprsIclMissNmS,_tyExprsIclNmS,_tyExprsIerrSq,_tyExprsIgathMentrelFilterMp,_tyExprsIpp,_tyExprsIppAST,_tyExprsIppL,_tyExprsItrpp) | True -> (case (_tyExprsIallErrSq) of { _lhsOallErrSq | _lhsOallErrSq `seq` (True) -> (case (__tup205) of { (_,_,_clMissNmS) | _clMissNmS `seq` (True) -> (case (_clMissNmS `Set.union` _tyExprsIclMissNmS) of { _lhsOclMissNmS | _lhsOclMissNmS `seq` (True) -> (case (__tup205) of { (_,_clNmS,_) | _clNmS `seq` (True) -> (case (_clNmS `Set.union` _tyExprsIclNmS) of { _lhsOclNmS | _lhsOclNmS `seq` (True) -> (case (__tup206) of { (_,_clKiNmErrs) | _clKiNmErrs `seq` (True) -> (case (if ehcOptHsChecksInEH _lhsIopts then rngLift _range checkClNms _clMissNmS else []) of { _nmErrs | _nmErrs `seq` (True) -> (case (ppSpaced (pp nm_ : _tyExprsIppL)) of { _pp | _pp `seq` (True) -> (case (rngLift _range mkNestErr' _pp [ _tyExprsIerrSq , Seq.fromList $ firstNotEmpty [_nmErrs,_clKiNmErrs], foErrSq _fo_ ]) of { _lhsOerrSq | _lhsOerrSq `seq` (True) -> (case (mentrelFilterMpSingleton [_lhsImoduleNm] IdOcc_Type nm_ `mentrelFilterMpUnion` _tyExprsIgathMentrelFilterMp) of { _gathMentrelFilterMp | _gathMentrelFilterMp `seq` (True) -> (case (_gathMentrelFilterMp) of { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) -> (case (_pp) of { _lhsOpp | _lhsOpp `seq` (True) -> (case ((_lhsItr TraceOn_EhClsGam $ ["Class" >#< nm_] ++ [ "clGam=" >#< ppGam _lhsIclGam ])) of { _trppHere | _trppHere `seq` (True) -> (case (ppNestTrPP ["PrExpr","Class"] [ppTrNm nm_] [_tyExprsIppAST] _trppHere) of { _ppAST | _ppAST `seq` (True) -> (case (_ppAST) of { _lhsOppAST | _lhsOppAST `seq` (True) -> (case (_pr) of { _lhsOpr | _lhsOpr `seq` (True) -> (case (_trppHere >< _tyExprsItrpp) of { _trpp | _trpp `seq` (True) -> (case (_trpp) of { _lhsOtrpp | _lhsOtrpp `seq` (True) -> ( _lhsOallErrSq,_lhsOclMissNmS,_lhsOclNmS,_lhsOerrSq,_lhsOgathMentrelFilterMp,_lhsOpp,_lhsOppAST,_lhsOpr,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))))) in sem_PrExpr_Class_8)) of { ( sem_PrExpr_8) | True -> ( _lhsOevTy,sem_PrExpr_8) }) }) }) }) }) }) }))) in sem_PrExpr_Class_7)) of { ( sem_PrExpr_7) | True -> ( _lhsOgathTyVarPolGam,_lhsOki,_lhsOkiVarMp,_lhsOtyVarWildMp,sem_PrExpr_7) }) }) }) }) }) }) }) }) }) }) }))) in sem_PrExpr_Class_6)) of { ( sem_PrExpr_6) | True -> ( _lhsOintlTyKiGam,_lhsOtyKiGam,sem_PrExpr_6) }) }) }) }) }))) in sem_PrExpr_Class_5)) of { ( sem_PrExpr_5) | True -> ( _lhsOpolVarMp,sem_PrExpr_5) }) }) }) }) })))) in sem_PrExpr_Class_4)) of { ( sem_PrExpr_4) | True -> ( _lhsOpolVarL,sem_PrExpr_4) }) }))) in sem_PrExpr_Class_3)) of { ( sem_PrExpr_3) | True -> ( _lhsOprTy,_lhsOty,_lhsOtyGam,sem_PrExpr_3) }) }) }) }) }) }) }) }) }))) in sem_PrExpr_Class_2)) of { ( sem_PrExpr_2) | True -> ( _lhsOgUniq,sem_PrExpr_2) }) }) }) }) }))) in sem_PrExpr_Class_1)) of { ( sem_PrExpr_1) | True -> ( _lhsOrange,sem_PrExpr_1) }) }) }) }) sem_PrExpr_Arrow :: Range -> T_PrExpr -> T_PrExpr -> T_PrExpr sem_PrExpr_Arrow hsrange_ arg_ res_ | hsrange_ `seq` (arg_ `seq` (res_ `seq` (True))) = (case (res_) of { ( _resIrange,res_1) | True -> (case (arg_) of { ( _argIrange,arg_1) | True -> (case (rangeUnions [hsrange_, _argIrange , _resIrange ]) of { _range | _range `seq` (True) -> (case (_range) of { _lhsOrange | _lhsOrange `seq` (True) -> (case ((let sem_PrExpr_Arrow_1 :: T_PrExpr_1 sem_PrExpr_Arrow_1 = (\ _lhsIgUniq -> _lhsIgUniq `seq` ((case (_lhsIgUniq) of { _argOgUniq | _argOgUniq `seq` (True) -> (case (arg_1 _argOgUniq) of { ( _argIgUniq,arg_2) | True -> (case (_argIgUniq) of { _resOgUniq | _resOgUniq `seq` (True) -> (case (res_1 _resOgUniq) of { ( _resIgUniq,res_2) | True -> (case (_resIgUniq) of { _lhsOgUniq | _lhsOgUniq `seq` (True) -> (case ((let sem_PrExpr_Arrow_2 :: T_PrExpr_2 sem_PrExpr_Arrow_2 = (\ _lhsItyGam -> _lhsItyGam `seq` ((case (_lhsItyGam) of { _argOtyGam | _argOtyGam `seq` (True) -> (case (arg_2 _argOtyGam) of { ( _argIprTy,_argIty,_argItyGam,arg_3) | True -> (case (_argItyGam) of { _resOtyGam | _resOtyGam `seq` (True) -> (case (res_2 _resOtyGam) of { ( _resIprTy,_resIty,_resItyGam,res_3) | True -> (case ([_argIprTy] `appArr` _resIprTy) of { _prTy | _prTy `seq` (True) -> (case (_prTy) of { _lhsOprTy | _lhsOprTy `seq` (True) -> (case (Pred_Pred _prTy) of { _pr | _pr `seq` (True) -> (case (mkTyPr _pr) of { _ty | _ty `seq` (True) -> (case (_ty) of { _lhsOty | _lhsOty `seq` (True) -> (case (_resItyGam) of { _lhsOtyGam | _lhsOtyGam `seq` (True) -> (case ((let sem_PrExpr_Arrow_3 :: T_PrExpr_3 sem_PrExpr_Arrow_3 = (\ _lhsIknPolCtx -> _lhsIknPolCtx `seq` ((case (_lhsIknPolCtx) of { _resOknPolCtx | _resOknPolCtx `seq` (True) -> (case (res_3 _resOknPolCtx) of { ( _resIpolVarL,res_4) | True -> (case (_resIpolVarL) of { _lhsOpolVarL | _lhsOpolVarL `seq` (True) -> (case ((let sem_PrExpr_Arrow_4 :: T_PrExpr_4 sem_PrExpr_Arrow_4 = (\ _lhsIpolGam _lhsIpolVarMp -> _lhsIpolGam `seq` (_lhsIpolVarMp `seq` ((case (_lhsIpolVarMp) of { _argOpolVarMp | _argOpolVarMp `seq` (True) -> (case (_lhsIpolGam) of { _argOpolGam | _argOpolGam `seq` (True) -> (case (mkPolNegate _lhsIknPolCtx) of { _argOknPolCtx | _argOknPolCtx `seq` (True) -> (case (arg_3 _argOknPolCtx) of { ( _argIpolVarL,arg_4) | True -> (case (arg_4 _argOpolGam _argOpolVarMp) of { ( _argIpolVarMp,arg_5) | True -> (case (_argIpolVarMp) of { _resOpolVarMp | _resOpolVarMp `seq` (True) -> (case (_lhsIpolGam) of { _resOpolGam | _resOpolGam `seq` (True) -> (case (res_4 _resOpolGam _resOpolVarMp) of { ( _resIpolVarMp,res_5) | True -> (case (_resIpolVarMp) of { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) -> (case ((let sem_PrExpr_Arrow_5 :: T_PrExpr_5 sem_PrExpr_Arrow_5 = (\ _lhsItyKiGam -> _lhsItyKiGam `seq` ((case (_lhsItyKiGam) of { _argOtyKiGam | _argOtyKiGam `seq` (True) -> (case (arg_5 _argOtyKiGam) of { ( _argIintlTyKiGam,_argItyKiGam,arg_6) | True -> (case (_argItyKiGam) of { _resOtyKiGam | _resOtyKiGam `seq` (True) -> (case (res_5 _resOtyKiGam) of { ( _resIintlTyKiGam,_resItyKiGam,res_6) | True -> (case (_argIintlTyKiGam `gamUnion` _resIintlTyKiGam) of { _lhsOintlTyKiGam | _lhsOintlTyKiGam `seq` (True) -> (case (_resItyKiGam) of { _lhsOtyKiGam | _lhsOtyKiGam `seq` (True) -> (case ((let sem_PrExpr_Arrow_6 :: T_PrExpr_6 sem_PrExpr_Arrow_6 = (\ _lhsIkiVarMp -> _lhsIkiVarMp `seq` ((case (_lhsIkiVarMp) of { _argOkiVarMp | _argOkiVarMp `seq` (True) -> (case (arg_6 _argOkiVarMp) of { ( _argIgathTyVarPolGam,_argIki,_argIkiVarMp,_argItyVarWildMp,arg_7) | True -> (case (_argIkiVarMp) of { _resOkiVarMp | _resOkiVarMp `seq` (True) -> (case (res_6 _resOkiVarMp) of { ( _resIgathTyVarPolGam,_resIki,_resIkiVarMp,_resItyVarWildMp,res_7) | True -> (case (_argIgathTyVarPolGam `gamUnion` _resIgathTyVarPolGam) of { _lhsOgathTyVarPolGam | _lhsOgathTyVarPolGam `seq` (True) -> (case (kiStar) of { _lhsOki | _lhsOki `seq` (True) -> (case (_resIkiVarMp) of { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) -> (case (_argItyVarWildMp `Map.union` _resItyVarWildMp) of { _lhsOtyVarWildMp | _lhsOtyVarWildMp `seq` (True) -> (case ((let sem_PrExpr_Arrow_7 :: T_PrExpr_7 sem_PrExpr_Arrow_7 = (\ _lhsIclGam -> _lhsIclGam `seq` ((case (_lhsIclGam) of { _resOclGam | _resOclGam `seq` (True) -> (case (_lhsIclGam) of { _argOclGam | _argOclGam `seq` (True) -> (case (res_7 _resOclGam) of { ( _resIevTy,res_8) | True -> (case (arg_7 _argOclGam) of { ( _argIevTy,arg_8) | True -> (case ([_argIevTy] `appArr` _resIevTy) of { _lhsOevTy | _lhsOevTy `seq` (True) -> (case ((let sem_PrExpr_Arrow_8 :: T_PrExpr_8 sem_PrExpr_Arrow_8 = (\ _lhsIfinKiVarMp _lhsIfinTyKiGam _lhsIfinTyVarMp _lhsIkiGam _lhsImoduleNm _lhsIopts _lhsIsysfEnv _lhsItr _lhsItyKiGlobFreeTvarS _lhsItyTyGlobFreeTvarS _lhsItyTyTySigFreeTvarS _lhsIvalTyGlobFreeTvarS -> _lhsIfinKiVarMp `seq` (_lhsIfinTyKiGam `seq` (_lhsIfinTyVarMp `seq` (_lhsIkiGam `seq` (_lhsImoduleNm `seq` (_lhsIopts `seq` (_lhsIsysfEnv `seq` (_lhsItr `seq` (_lhsItyKiGlobFreeTvarS `seq` (_lhsItyTyGlobFreeTvarS `seq` (_lhsItyTyTySigFreeTvarS `seq` (_lhsIvalTyGlobFreeTvarS `seq` ((case (_lhsIvalTyGlobFreeTvarS) of { _resOvalTyGlobFreeTvarS | _resOvalTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyTyTySigFreeTvarS) of { _resOtyTyTySigFreeTvarS | _resOtyTyTySigFreeTvarS `seq` (True) -> (case (_lhsItyTyGlobFreeTvarS) of { _resOtyTyGlobFreeTvarS | _resOtyTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyKiGlobFreeTvarS) of { _resOtyKiGlobFreeTvarS | _resOtyKiGlobFreeTvarS `seq` (True) -> (case (_lhsItr) of { _resOtr | _resOtr `seq` (True) -> (case (_lhsIsysfEnv) of { _resOsysfEnv | _resOsysfEnv `seq` (True) -> (case (_lhsIopts) of { _resOopts | _resOopts `seq` (True) -> (case (_lhsImoduleNm) of { _resOmoduleNm | _resOmoduleNm `seq` (True) -> (case (_lhsIkiGam) of { _resOkiGam | _resOkiGam `seq` (True) -> (case (_lhsIfinTyVarMp) of { _resOfinTyVarMp | _resOfinTyVarMp `seq` (True) -> (case (_lhsIfinTyKiGam) of { _resOfinTyKiGam | _resOfinTyKiGam `seq` (True) -> (case (_lhsIfinKiVarMp) of { _resOfinKiVarMp | _resOfinKiVarMp `seq` (True) -> (case (res_8 _resOfinKiVarMp _resOfinTyKiGam _resOfinTyVarMp _resOkiGam _resOmoduleNm _resOopts _resOsysfEnv _resOtr _resOtyKiGlobFreeTvarS _resOtyTyGlobFreeTvarS _resOtyTyTySigFreeTvarS _resOvalTyGlobFreeTvarS) of { ( _resIallErrSq,_resIclMissNmS,_resIclNmS,_resIerrSq,_resIgathMentrelFilterMp,_resIpp,_resIppAST,_resIpr,_resItrpp) | True -> (case (_lhsIvalTyGlobFreeTvarS) of { _argOvalTyGlobFreeTvarS | _argOvalTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyTyTySigFreeTvarS) of { _argOtyTyTySigFreeTvarS | _argOtyTyTySigFreeTvarS `seq` (True) -> (case (_lhsItyTyGlobFreeTvarS) of { _argOtyTyGlobFreeTvarS | _argOtyTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyKiGlobFreeTvarS) of { _argOtyKiGlobFreeTvarS | _argOtyKiGlobFreeTvarS `seq` (True) -> (case (_lhsItr) of { _argOtr | _argOtr `seq` (True) -> (case (_lhsIsysfEnv) of { _argOsysfEnv | _argOsysfEnv `seq` (True) -> (case (_lhsIopts) of { _argOopts | _argOopts `seq` (True) -> (case (_lhsImoduleNm) of { _argOmoduleNm | _argOmoduleNm `seq` (True) -> (case (_lhsIkiGam) of { _argOkiGam | _argOkiGam `seq` (True) -> (case (_lhsIfinTyVarMp) of { _argOfinTyVarMp | _argOfinTyVarMp `seq` (True) -> (case (_lhsIfinTyKiGam) of { _argOfinTyKiGam | _argOfinTyKiGam `seq` (True) -> (case (_lhsIfinKiVarMp) of { _argOfinKiVarMp | _argOfinKiVarMp `seq` (True) -> (case (arg_8 _argOfinKiVarMp _argOfinTyKiGam _argOfinTyVarMp _argOkiGam _argOmoduleNm _argOopts _argOsysfEnv _argOtr _argOtyKiGlobFreeTvarS _argOtyTyGlobFreeTvarS _argOtyTyTySigFreeTvarS _argOvalTyGlobFreeTvarS) of { ( _argIallErrSq,_argIclMissNmS,_argIclNmS,_argIerrSq,_argIgathMentrelFilterMp,_argIpp,_argIppAST,_argIpr,_argItrpp) | True -> (case (_argIallErrSq `Seq.union` _resIallErrSq) of { _lhsOallErrSq | _lhsOallErrSq `seq` (True) -> (case (_argIclMissNmS `Set.union` _resIclMissNmS) of { _lhsOclMissNmS | _lhsOclMissNmS `seq` (True) -> (case (_argIclNmS `Set.union` _resIclNmS) of { _lhsOclNmS | _lhsOclNmS `seq` (True) -> (case (_argIerrSq `Seq.union` _resIerrSq) of { _lhsOerrSq | _lhsOerrSq `seq` (True) -> (case (_argIgathMentrelFilterMp `mentrelFilterMpUnion` _resIgathMentrelFilterMp) of { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) -> (case (_argIpp >#< hsnPrArrow >#< _resIpp) of { _pp | _pp `seq` (True) -> (case (_pp) of { _lhsOpp | _lhsOpp `seq` (True) -> (case (trppEmpty) of { _trppHere | _trppHere `seq` (True) -> (case (ppNestTrPP ["PrExpr","Arrow"] [] [_argIppAST,_resIppAST] _trppHere) of { _ppAST | _ppAST `seq` (True) -> (case (_ppAST) of { _lhsOppAST | _lhsOppAST `seq` (True) -> (case (_pr) of { _lhsOpr | _lhsOpr `seq` (True) -> (case (_argItrpp >< _resItrpp) of { _lhsOtrpp | _lhsOtrpp `seq` (True) -> ( _lhsOallErrSq,_lhsOclMissNmS,_lhsOclNmS,_lhsOerrSq,_lhsOgathMentrelFilterMp,_lhsOpp,_lhsOppAST,_lhsOpr,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))))) in sem_PrExpr_Arrow_8)) of { ( sem_PrExpr_8) | True -> ( _lhsOevTy,sem_PrExpr_8) }) }) }) }) }) }))) in sem_PrExpr_Arrow_7)) of { ( sem_PrExpr_7) | True -> ( _lhsOgathTyVarPolGam,_lhsOki,_lhsOkiVarMp,_lhsOtyVarWildMp,sem_PrExpr_7) }) }) }) }) }) }) }) }) }))) in sem_PrExpr_Arrow_6)) of { ( sem_PrExpr_6) | True -> ( _lhsOintlTyKiGam,_lhsOtyKiGam,sem_PrExpr_6) }) }) }) }) }) }) }))) in sem_PrExpr_Arrow_5)) of { ( sem_PrExpr_5) | True -> ( _lhsOpolVarMp,sem_PrExpr_5) }) }) }) }) }) }) }) }) }) })))) in sem_PrExpr_Arrow_4)) of { ( sem_PrExpr_4) | True -> ( _lhsOpolVarL,sem_PrExpr_4) }) }) }) }))) in sem_PrExpr_Arrow_3)) of { ( sem_PrExpr_3) | True -> ( _lhsOprTy,_lhsOty,_lhsOtyGam,sem_PrExpr_3) }) }) }) }) }) }) }) }) }) }) }))) in sem_PrExpr_Arrow_2)) of { ( sem_PrExpr_2) | True -> ( _lhsOgUniq,sem_PrExpr_2) }) }) }) }) }) }))) in sem_PrExpr_Arrow_1)) of { ( sem_PrExpr_1) | True -> ( _lhsOrange,sem_PrExpr_1) }) }) }) }) }) sem_PrExpr_Forall :: Range -> HsName -> T_PrExpr -> T_PrExpr sem_PrExpr_Forall hsrange_ tyVar_ prExpr_ | hsrange_ `seq` (tyVar_ `seq` (prExpr_ `seq` (True))) = (case (prExpr_) of { ( _prExprIrange,prExpr_1) | True -> (case (rangeUnions [hsrange_, _prExprIrange , _prExprIrange]) of { _range | _range `seq` (True) -> (case (_range) of { _lhsOrange | _lhsOrange `seq` (True) -> (case ((let sem_PrExpr_Forall_1 :: T_PrExpr_1 sem_PrExpr_Forall_1 = (\ _lhsIgUniq -> _lhsIgUniq `seq` ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> case nextUnique __cont of { (__cont, lUniq_ki) -> (__cont,lUniq,lUniq_ki)}} )) of { __tup209 | __tup209 `seq` (True) -> (case (__tup209) of { (_prExprOgUniq,_,_) | _prExprOgUniq `seq` (True) -> (case (prExpr_1 _prExprOgUniq) of { ( _prExprIgUniq,prExpr_2) | True -> (case (_prExprIgUniq) of { _lhsOgUniq | _lhsOgUniq `seq` (True) -> (case ((let sem_PrExpr_Forall_2 :: T_PrExpr_2 sem_PrExpr_Forall_2 = (\ _lhsItyGam -> _lhsItyGam `seq` ((case (__tup209) of { (_,_,_lUniq_ki) | _lUniq_ki `seq` (True) -> (case (__tup209) of { (_,_lUniq,_) | _lUniq `seq` (True) -> (case (let t = mkTyVar _lUniq in (_lUniq,mkTGI t,TyKiGamInfo (mkNewTyVar _lUniq_ki))) of { __tup208 | __tup208 `seq` (True) -> (case (__tup208) of { (_,_tgi_,_) | _tgi_ `seq` (True) -> (case (tvGathFlowIn (tyVar_ `gamSingleton` _tgi_) _lhsItyGam) of { _prExprOtyGam | _prExprOtyGam `seq` (True) -> (case (__tup208) of { (_tv,_,_) | _tv `seq` (True) -> (case (prExpr_2 _prExprOtyGam) of { ( _prExprIprTy,_prExprIty,_prExprItyGam,prExpr_3) | True -> (case (mkTyQu tyQu_Forall [(_tv,kiStar)] _prExprIprTy) of { _prTy | _prTy `seq` (True) -> (case (_prTy) of { _lhsOprTy | _lhsOprTy `seq` (True) -> (case (Pred_Pred _prTy) of { _pr | _pr `seq` (True) -> (case (mkTyPr _pr) of { _ty | _ty `seq` (True) -> (case (_ty) of { _lhsOty | _lhsOty `seq` (True) -> (case (tvGathFlowOut _lhsItyGam _prExprItyGam) of { _lhsOtyGam | _lhsOtyGam `seq` (True) -> (case ((let sem_PrExpr_Forall_3 :: T_PrExpr_3 sem_PrExpr_Forall_3 = (\ _lhsIknPolCtx -> _lhsIknPolCtx `seq` ((case (_lhsIknPolCtx) of { _prExprOknPolCtx | _prExprOknPolCtx `seq` (True) -> (case (prExpr_3 _prExprOknPolCtx) of { ( _prExprIpolVarL,prExpr_4) | True -> (case (_prExprIpolVarL) of { _lhsOpolVarL | _lhsOpolVarL `seq` (True) -> (case ((let sem_PrExpr_Forall_4 :: T_PrExpr_4 sem_PrExpr_Forall_4 = (\ _lhsIpolGam _lhsIpolVarMp -> _lhsIpolGam `seq` (_lhsIpolVarMp `seq` ((case (_lhsIpolVarMp) of { _prExprOpolVarMp | _prExprOpolVarMp `seq` (True) -> (case (_lhsIpolGam) of { _prExprOpolGam | _prExprOpolGam `seq` (True) -> (case (prExpr_4 _prExprOpolGam _prExprOpolVarMp) of { ( _prExprIpolVarMp,prExpr_5) | True -> (case (_prExprIpolVarMp) of { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) -> (case ((let sem_PrExpr_Forall_5 :: T_PrExpr_5 sem_PrExpr_Forall_5 = (\ _lhsItyKiGam -> _lhsItyKiGam `seq` ((case (__tup208) of { (_,_,_tkgi_) | _tkgi_ `seq` (True) -> (case (tgiTy _tgi_ `tyKiGamSingleton` _tkgi_) of { _tyKiGamNew | _tyKiGamNew `seq` (True) -> (case (tvGathFlowIn _tyKiGamNew _lhsItyKiGam) of { _prExprOtyKiGam | _prExprOtyKiGam `seq` (True) -> (case (prExpr_5 _prExprOtyKiGam) of { ( _prExprIintlTyKiGam,_prExprItyKiGam,prExpr_6) | True -> (case (gamUnions [_tyKiGamNew,_prExprIintlTyKiGam]) of { _lhsOintlTyKiGam | _lhsOintlTyKiGam `seq` (True) -> (case (tvGathFlowOut _lhsItyKiGam _prExprItyKiGam) of { _lhsOtyKiGam | _lhsOtyKiGam `seq` (True) -> (case ((let sem_PrExpr_Forall_6 :: T_PrExpr_6 sem_PrExpr_Forall_6 = (\ _lhsIkiVarMp -> _lhsIkiVarMp `seq` ((case (_lhsIkiVarMp) of { _prExprOkiVarMp | _prExprOkiVarMp `seq` (True) -> (case (prExpr_6 _prExprOkiVarMp) of { ( _prExprIgathTyVarPolGam,_prExprIki,_prExprIkiVarMp,_prExprItyVarWildMp,prExpr_7) | True -> (case (_prExprIgathTyVarPolGam) of { _lhsOgathTyVarPolGam | _lhsOgathTyVarPolGam `seq` (True) -> (case (kiStar) of { _lhsOki | _lhsOki `seq` (True) -> (case (_prExprIkiVarMp) of { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) -> (case (_prExprItyVarWildMp) of { _lhsOtyVarWildMp | _lhsOtyVarWildMp `seq` (True) -> (case ((let sem_PrExpr_Forall_7 :: T_PrExpr_7 sem_PrExpr_Forall_7 = (\ _lhsIclGam -> _lhsIclGam `seq` ((case (_lhsIclGam) of { _prExprOclGam | _prExprOclGam `seq` (True) -> (case (prExpr_7 _prExprOclGam) of { ( _prExprIevTy,prExpr_8) | True -> (case (_prExprIevTy) of { _lhsOevTy | _lhsOevTy `seq` (True) -> (case ((let sem_PrExpr_Forall_8 :: T_PrExpr_8 sem_PrExpr_Forall_8 = (\ _lhsIfinKiVarMp _lhsIfinTyKiGam _lhsIfinTyVarMp _lhsIkiGam _lhsImoduleNm _lhsIopts _lhsIsysfEnv _lhsItr _lhsItyKiGlobFreeTvarS _lhsItyTyGlobFreeTvarS _lhsItyTyTySigFreeTvarS _lhsIvalTyGlobFreeTvarS -> _lhsIfinKiVarMp `seq` (_lhsIfinTyKiGam `seq` (_lhsIfinTyVarMp `seq` (_lhsIkiGam `seq` (_lhsImoduleNm `seq` (_lhsIopts `seq` (_lhsIsysfEnv `seq` (_lhsItr `seq` (_lhsItyKiGlobFreeTvarS `seq` (_lhsItyTyGlobFreeTvarS `seq` (_lhsItyTyTySigFreeTvarS `seq` (_lhsIvalTyGlobFreeTvarS `seq` ((case (_lhsIvalTyGlobFreeTvarS) of { _prExprOvalTyGlobFreeTvarS | _prExprOvalTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyTyTySigFreeTvarS) of { _prExprOtyTyTySigFreeTvarS | _prExprOtyTyTySigFreeTvarS `seq` (True) -> (case (_lhsItyTyGlobFreeTvarS) of { _prExprOtyTyGlobFreeTvarS | _prExprOtyTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyKiGlobFreeTvarS) of { _prExprOtyKiGlobFreeTvarS | _prExprOtyKiGlobFreeTvarS `seq` (True) -> (case (_lhsItr) of { _prExprOtr | _prExprOtr `seq` (True) -> (case (_lhsIsysfEnv) of { _prExprOsysfEnv | _prExprOsysfEnv `seq` (True) -> (case (_lhsIopts) of { _prExprOopts | _prExprOopts `seq` (True) -> (case (_lhsImoduleNm) of { _prExprOmoduleNm | _prExprOmoduleNm `seq` (True) -> (case (_lhsIkiGam) of { _prExprOkiGam | _prExprOkiGam `seq` (True) -> (case (_lhsIfinTyVarMp) of { _prExprOfinTyVarMp | _prExprOfinTyVarMp `seq` (True) -> (case (_lhsIfinTyKiGam) of { _prExprOfinTyKiGam | _prExprOfinTyKiGam `seq` (True) -> (case (_lhsIfinKiVarMp) of { _prExprOfinKiVarMp | _prExprOfinKiVarMp `seq` (True) -> (case (prExpr_8 _prExprOfinKiVarMp _prExprOfinTyKiGam _prExprOfinTyVarMp _prExprOkiGam _prExprOmoduleNm _prExprOopts _prExprOsysfEnv _prExprOtr _prExprOtyKiGlobFreeTvarS _prExprOtyTyGlobFreeTvarS _prExprOtyTyTySigFreeTvarS _prExprOvalTyGlobFreeTvarS) of { ( _prExprIallErrSq,_prExprIclMissNmS,_prExprIclNmS,_prExprIerrSq,_prExprIgathMentrelFilterMp,_prExprIpp,_prExprIppAST,_prExprIpr,_prExprItrpp) | True -> (case (_prExprIallErrSq) of { _lhsOallErrSq | _lhsOallErrSq `seq` (True) -> (case (_prExprIclMissNmS) of { _lhsOclMissNmS | _lhsOclMissNmS `seq` (True) -> (case (_prExprIclNmS) of { _lhsOclNmS | _lhsOclNmS `seq` (True) -> (case (_prExprIerrSq) of { _lhsOerrSq | _lhsOerrSq `seq` (True) -> (case (_prExprIgathMentrelFilterMp) of { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) -> (case ("forall" >#< tyVar_ >#< "." >#< _prExprIpp) of { _pp | _pp `seq` (True) -> (case (_pp) of { _lhsOpp | _lhsOpp `seq` (True) -> (case (_prExprIppAST) of { _lhsOppAST | _lhsOppAST `seq` (True) -> (case (_pr) of { _lhsOpr | _lhsOpr `seq` (True) -> (case (_prExprItrpp) of { _lhsOtrpp | _lhsOtrpp `seq` (True) -> ( _lhsOallErrSq,_lhsOclMissNmS,_lhsOclNmS,_lhsOerrSq,_lhsOgathMentrelFilterMp,_lhsOpp,_lhsOppAST,_lhsOpr,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))))) in sem_PrExpr_Forall_8)) of { ( sem_PrExpr_8) | True -> ( _lhsOevTy,sem_PrExpr_8) }) }) }) }))) in sem_PrExpr_Forall_7)) of { ( sem_PrExpr_7) | True -> ( _lhsOgathTyVarPolGam,_lhsOki,_lhsOkiVarMp,_lhsOtyVarWildMp,sem_PrExpr_7) }) }) }) }) }) }) }))) in sem_PrExpr_Forall_6)) of { ( sem_PrExpr_6) | True -> ( _lhsOintlTyKiGam,_lhsOtyKiGam,sem_PrExpr_6) }) }) }) }) }) }) }))) in sem_PrExpr_Forall_5)) of { ( sem_PrExpr_5) | True -> ( _lhsOpolVarMp,sem_PrExpr_5) }) }) }) }) })))) in sem_PrExpr_Forall_4)) of { ( sem_PrExpr_4) | True -> ( _lhsOpolVarL,sem_PrExpr_4) }) }) }) }))) in sem_PrExpr_Forall_3)) of { ( sem_PrExpr_3) | True -> ( _lhsOprTy,_lhsOty,_lhsOtyGam,sem_PrExpr_3) }) }) }) }) }) }) }) }) }) }) }) }) }) }))) in sem_PrExpr_Forall_2)) of { ( sem_PrExpr_2) | True -> ( _lhsOgUniq,sem_PrExpr_2) }) }) }) }) }))) in sem_PrExpr_Forall_1)) of { ( sem_PrExpr_1) | True -> ( _lhsOrange,sem_PrExpr_1) }) }) }) }) sem_PrExpr_Lacks :: Range -> T_RowTyExpr -> HsName -> T_PrExpr sem_PrExpr_Lacks hsrange_ rowTyExpr_ nm_ | hsrange_ `seq` (rowTyExpr_ `seq` (nm_ `seq` (True))) = (case (rowTyExpr_) of { ( _rowTyExprIrange,rowTyExpr_1) | True -> (case (rangeUnions [hsrange_, _rowTyExprIrange , _rowTyExprIrange ]) of { _range | _range `seq` (True) -> (case (_range) of { _lhsOrange | _lhsOrange `seq` (True) -> (case ((let sem_PrExpr_Lacks_1 :: T_PrExpr_1 sem_PrExpr_Lacks_1 = (\ _lhsIgUniq -> _lhsIgUniq `seq` ((case (_lhsIgUniq) of { _rowTyExprOgUniq | _rowTyExprOgUniq `seq` (True) -> (case (positionalFldNames) of { _rowTyExprOpositionalFldNmL | _rowTyExprOpositionalFldNmL `seq` (True) -> (case (rowTyExpr_1 _rowTyExprOgUniq _rowTyExprOpositionalFldNmL) of { ( _rowTyExprIgUniq,_rowTyExprIpositionalFldNmL,rowTyExpr_2) | True -> (case (_rowTyExprIgUniq) of { _lhsOgUniq | _lhsOgUniq `seq` (True) -> (case ((let sem_PrExpr_Lacks_2 :: T_PrExpr_2 sem_PrExpr_Lacks_2 = (\ _lhsItyGam -> _lhsItyGam `seq` ((case (_lhsItyGam) of { _rowTyExprOtyGam | _rowTyExprOtyGam `seq` (True) -> (case (rowTyExpr_2 _rowTyExprOtyGam) of { ( _rowTyExprItyGam,_rowTyExprItyRow,rowTyExpr_3) | True -> (case (Pred_Lacks _rowTyExprItyRow (Label_Lab nm_)) of { _pr | _pr `seq` (True) -> (case (mkTyPr _pr) of { _ty | _ty `seq` (True) -> (case (_ty) of { _prTy | _prTy `seq` (True) -> (case (_prTy) of { _lhsOprTy | _lhsOprTy `seq` (True) -> (case (_ty) of { _lhsOty | _lhsOty `seq` (True) -> (case (_rowTyExprItyGam) of { _lhsOtyGam | _lhsOtyGam `seq` (True) -> (case ((let sem_PrExpr_Lacks_3 :: T_PrExpr_3 sem_PrExpr_Lacks_3 = (\ _lhsIknPolCtx -> _lhsIknPolCtx `seq` ((case ([]) of { _lhsOpolVarL | _lhsOpolVarL `seq` (True) -> (case ((let sem_PrExpr_Lacks_4 :: T_PrExpr_4 sem_PrExpr_Lacks_4 = (\ _lhsIpolGam _lhsIpolVarMp -> _lhsIpolGam `seq` (_lhsIpolVarMp `seq` ((case (_lhsIpolVarMp) of { _rowTyExprOpolVarMp | _rowTyExprOpolVarMp `seq` (True) -> (case (_lhsIpolGam) of { _rowTyExprOpolGam | _rowTyExprOpolGam `seq` (True) -> (case (_lhsIknPolCtx) of { _rowTyExprOknPolCtx | _rowTyExprOknPolCtx `seq` (True) -> (case (rowTyExpr_3 _rowTyExprOknPolCtx _rowTyExprOpolGam _rowTyExprOpolVarMp) of { ( _rowTyExprIpolVarMp,rowTyExpr_4) | True -> (case (_rowTyExprIpolVarMp) of { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) -> (case ((let sem_PrExpr_Lacks_5 :: T_PrExpr_5 sem_PrExpr_Lacks_5 = (\ _lhsItyKiGam -> _lhsItyKiGam `seq` ((case (_lhsItyKiGam) of { _rowTyExprOtyKiGam | _rowTyExprOtyKiGam `seq` (True) -> (case (rowTyExpr_4 _rowTyExprOtyKiGam) of { ( _rowTyExprIintlTyKiGam,_rowTyExprItyKiGam,rowTyExpr_5) | True -> (case (_rowTyExprIintlTyKiGam) of { _lhsOintlTyKiGam | _lhsOintlTyKiGam `seq` (True) -> (case (_rowTyExprItyKiGam) of { _lhsOtyKiGam | _lhsOtyKiGam `seq` (True) -> (case ((let sem_PrExpr_Lacks_6 :: T_PrExpr_6 sem_PrExpr_Lacks_6 = (\ _lhsIkiVarMp -> _lhsIkiVarMp `seq` ((case (emptyGam) of { _lhsOgathTyVarPolGam | _lhsOgathTyVarPolGam `seq` (True) -> (case (kiStar) of { _lhsOki | _lhsOki `seq` (True) -> (case (_lhsIkiVarMp) of { _rowTyExprOkiVarMp | _rowTyExprOkiVarMp `seq` (True) -> (case (rowTyExpr_5 _rowTyExprOkiVarMp) of { ( _rowTyExprIkiVarMp,_rowTyExprItyVarWildMp,rowTyExpr_6) | True -> (case (_rowTyExprIkiVarMp) of { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) -> (case (_rowTyExprItyVarWildMp) of { _lhsOtyVarWildMp | _lhsOtyVarWildMp `seq` (True) -> (case ((let sem_PrExpr_Lacks_7 :: T_PrExpr_7 sem_PrExpr_Lacks_7 = (\ _lhsIclGam -> _lhsIclGam `seq` ((case (tyInt) of { _lhsOevTy | _lhsOevTy `seq` (True) -> (case ((let sem_PrExpr_Lacks_8 :: T_PrExpr_8 sem_PrExpr_Lacks_8 = (\ _lhsIfinKiVarMp _lhsIfinTyKiGam _lhsIfinTyVarMp _lhsIkiGam _lhsImoduleNm _lhsIopts _lhsIsysfEnv _lhsItr _lhsItyKiGlobFreeTvarS _lhsItyTyGlobFreeTvarS _lhsItyTyTySigFreeTvarS _lhsIvalTyGlobFreeTvarS -> _lhsIfinKiVarMp `seq` (_lhsIfinTyKiGam `seq` (_lhsIfinTyVarMp `seq` (_lhsIkiGam `seq` (_lhsImoduleNm `seq` (_lhsIopts `seq` (_lhsIsysfEnv `seq` (_lhsItr `seq` (_lhsItyKiGlobFreeTvarS `seq` (_lhsItyTyGlobFreeTvarS `seq` (_lhsItyTyTySigFreeTvarS `seq` (_lhsIvalTyGlobFreeTvarS `seq` ((case (_lhsIvalTyGlobFreeTvarS) of { _rowTyExprOvalTyGlobFreeTvarS | _rowTyExprOvalTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyTyTySigFreeTvarS) of { _rowTyExprOtyTyTySigFreeTvarS | _rowTyExprOtyTyTySigFreeTvarS `seq` (True) -> (case (_lhsItyTyGlobFreeTvarS) of { _rowTyExprOtyTyGlobFreeTvarS | _rowTyExprOtyTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyKiGlobFreeTvarS) of { _rowTyExprOtyKiGlobFreeTvarS | _rowTyExprOtyKiGlobFreeTvarS `seq` (True) -> (case (_lhsItr) of { _rowTyExprOtr | _rowTyExprOtr `seq` (True) -> (case (_lhsIsysfEnv) of { _rowTyExprOsysfEnv | _rowTyExprOsysfEnv `seq` (True) -> (case (_lhsIopts) of { _rowTyExprOopts | _rowTyExprOopts `seq` (True) -> (case (_lhsImoduleNm) of { _rowTyExprOmoduleNm | _rowTyExprOmoduleNm `seq` (True) -> (case (_lhsIkiGam) of { _rowTyExprOkiGam | _rowTyExprOkiGam `seq` (True) -> (case (_lhsIfinTyVarMp) of { _rowTyExprOfinTyVarMp | _rowTyExprOfinTyVarMp `seq` (True) -> (case (_lhsIfinTyKiGam) of { _rowTyExprOfinTyKiGam | _rowTyExprOfinTyKiGam `seq` (True) -> (case (_lhsIfinKiVarMp) of { _rowTyExprOfinKiVarMp | _rowTyExprOfinKiVarMp `seq` (True) -> (case (_lhsIclGam) of { _rowTyExprOclGam | _rowTyExprOclGam `seq` (True) -> (case (rowTyExpr_6 _rowTyExprOclGam _rowTyExprOfinKiVarMp _rowTyExprOfinTyKiGam _rowTyExprOfinTyVarMp _rowTyExprOkiGam _rowTyExprOmoduleNm _rowTyExprOopts _rowTyExprOsysfEnv _rowTyExprOtr _rowTyExprOtyKiGlobFreeTvarS _rowTyExprOtyTyGlobFreeTvarS _rowTyExprOtyTyTySigFreeTvarS _rowTyExprOvalTyGlobFreeTvarS) of { ( _rowTyExprIallErrSq,_rowTyExprIclMissNmS,_rowTyExprIclNmS,_rowTyExprIerrSq,_rowTyExprIextNm,_rowTyExprIgathMentrelFilterMp,_rowTyExprIpp,_rowTyExprIppAST,_rowTyExprIppL,_rowTyExprItrpp) | True -> (case (_rowTyExprIallErrSq) of { _lhsOallErrSq | _lhsOallErrSq `seq` (True) -> (case (_rowTyExprIclMissNmS) of { _lhsOclMissNmS | _lhsOclMissNmS `seq` (True) -> (case (_rowTyExprIclNmS) of { _lhsOclNmS | _lhsOclNmS `seq` (True) -> (case (_rowTyExprIerrSq) of { _lhsOerrSq | _lhsOerrSq `seq` (True) -> (case (_rowTyExprIgathMentrelFilterMp) of { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) -> (case (_rowTyExprIpp >|< "\\" >|< pp nm_) of { _pp | _pp `seq` (True) -> (case (_pp) of { _lhsOpp | _lhsOpp `seq` (True) -> (case (trppEmpty) of { _trppHere | _trppHere `seq` (True) -> (case (ppNestTrPP ["PrExpr","Lacks"] [ppTrNm nm_] [_rowTyExprIppAST] _trppHere) of { _ppAST | _ppAST `seq` (True) -> (case (_ppAST) of { _lhsOppAST | _lhsOppAST `seq` (True) -> (case (_pr) of { _lhsOpr | _lhsOpr `seq` (True) -> (case (_rowTyExprItrpp) of { _lhsOtrpp | _lhsOtrpp `seq` (True) -> ( _lhsOallErrSq,_lhsOclMissNmS,_lhsOclNmS,_lhsOerrSq,_lhsOgathMentrelFilterMp,_lhsOpp,_lhsOppAST,_lhsOpr,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))))) in sem_PrExpr_Lacks_8)) of { ( sem_PrExpr_8) | True -> ( _lhsOevTy,sem_PrExpr_8) }) }))) in sem_PrExpr_Lacks_7)) of { ( sem_PrExpr_7) | True -> ( _lhsOgathTyVarPolGam,_lhsOki,_lhsOkiVarMp,_lhsOtyVarWildMp,sem_PrExpr_7) }) }) }) }) }) }) }))) in sem_PrExpr_Lacks_6)) of { ( sem_PrExpr_6) | True -> ( _lhsOintlTyKiGam,_lhsOtyKiGam,sem_PrExpr_6) }) }) }) }) }))) in sem_PrExpr_Lacks_5)) of { ( sem_PrExpr_5) | True -> ( _lhsOpolVarMp,sem_PrExpr_5) }) }) }) }) }) })))) in sem_PrExpr_Lacks_4)) of { ( sem_PrExpr_4) | True -> ( _lhsOpolVarL,sem_PrExpr_4) }) }))) in sem_PrExpr_Lacks_3)) of { ( sem_PrExpr_3) | True -> ( _lhsOprTy,_lhsOty,_lhsOtyGam,sem_PrExpr_3) }) }) }) }) }) }) }) }) }))) in sem_PrExpr_Lacks_2)) of { ( sem_PrExpr_2) | True -> ( _lhsOgUniq,sem_PrExpr_2) }) }) }) }) }))) in sem_PrExpr_Lacks_1)) of { ( sem_PrExpr_1) | True -> ( _lhsOrange,sem_PrExpr_1) }) }) }) }) sem_PrExpr_DynVar :: Range -> HsName -> T_TyExpr -> T_PrExpr sem_PrExpr_DynVar hsrange_ nm_ tyExpr_ | hsrange_ `seq` (nm_ `seq` (tyExpr_ `seq` (True))) = (case (tyExpr_) of { ( _tyExprIrange,tyExpr_1) | True -> (case (rangeUnions [hsrange_, _tyExprIrange , _tyExprIrange]) of { _range | _range `seq` (True) -> (case (_range) of { _lhsOrange | _lhsOrange `seq` (True) -> (case ((let sem_PrExpr_DynVar_1 :: T_PrExpr_1 sem_PrExpr_DynVar_1 = (\ _lhsIgUniq -> _lhsIgUniq `seq` ((case (_lhsIgUniq) of { _tyExprOgUniq | _tyExprOgUniq `seq` (True) -> (case (tyExpr_1 _tyExprOgUniq) of { ( _tyExprIgUniq,tyExpr_2) | True -> (case (_tyExprIgUniq) of { _lhsOgUniq | _lhsOgUniq `seq` (True) -> (case ((let sem_PrExpr_DynVar_2 :: T_PrExpr_2 sem_PrExpr_DynVar_2 = (\ _lhsItyGam -> _lhsItyGam `seq` ((case (_lhsItyGam) of { _tyExprOtyGam | _tyExprOtyGam `seq` (True) -> (case (tyExpr_2 _tyExprOtyGam) of { ( _tyExprIty,_tyExprItyGam,tyExpr_3) | True -> (case (Pred_Class ((hsnDynVar `hsnConcat` nm_) `appConApp` [_tyExprIty])) of { _pr | _pr `seq` (True) -> (case (mkTyPr _pr) of { _ty | _ty `seq` (True) -> (case (_ty) of { _prTy | _prTy `seq` (True) -> (case (_prTy) of { _lhsOprTy | _lhsOprTy `seq` (True) -> (case (_ty) of { _lhsOty | _lhsOty `seq` (True) -> (case (_tyExprItyGam) of { _lhsOtyGam | _lhsOtyGam `seq` (True) -> (case ((let sem_PrExpr_DynVar_3 :: T_PrExpr_3 sem_PrExpr_DynVar_3 = (\ _lhsIknPolCtx -> _lhsIknPolCtx `seq` ((case (_lhsIknPolCtx) of { _tyExprOknPolCtx | _tyExprOknPolCtx `seq` (True) -> (case (tyExpr_3 _tyExprOknPolCtx) of { ( _tyExprIpolVarL,tyExpr_4) | True -> (case (_tyExprIpolVarL) of { _lhsOpolVarL | _lhsOpolVarL `seq` (True) -> (case ((let sem_PrExpr_DynVar_4 :: T_PrExpr_4 sem_PrExpr_DynVar_4 = (\ _lhsIpolGam _lhsIpolVarMp -> _lhsIpolGam `seq` (_lhsIpolVarMp `seq` ((case (_lhsIpolVarMp) of { _tyExprOpolVarMp | _tyExprOpolVarMp `seq` (True) -> (case (_lhsIpolGam) of { _tyExprOpolGam | _tyExprOpolGam `seq` (True) -> (case (tyExpr_4 _tyExprOpolGam _tyExprOpolVarMp) of { ( _tyExprImbStrictness,_tyExprIpolVarMp,tyExpr_5) | True -> (case (_tyExprIpolVarMp) of { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) -> (case ((let sem_PrExpr_DynVar_5 :: T_PrExpr_5 sem_PrExpr_DynVar_5 = (\ _lhsItyKiGam -> _lhsItyKiGam `seq` ((case (_lhsItyKiGam) of { _tyExprOtyKiGam | _tyExprOtyKiGam `seq` (True) -> (case (tyExpr_5 _tyExprOtyKiGam) of { ( _tyExprIintlTyKiGam,_tyExprItyKiGam,tyExpr_6) | True -> (case (_tyExprIintlTyKiGam) of { _lhsOintlTyKiGam | _lhsOintlTyKiGam `seq` (True) -> (case (_tyExprItyKiGam) of { _lhsOtyKiGam | _lhsOtyKiGam `seq` (True) -> (case ((let sem_PrExpr_DynVar_6 :: T_PrExpr_6 sem_PrExpr_DynVar_6 = (\ _lhsIkiVarMp -> _lhsIkiVarMp `seq` ((case (_lhsIkiVarMp) of { _tyExprOkiVarMp | _tyExprOkiVarMp `seq` (True) -> (case (tyExpr_6 _tyExprOkiVarMp) of { ( _tyExprIgathTyVarPolGam,_tyExprIki,_tyExprIkiVarMp,_tyExprIpol,_tyExprItyVarWildMp,tyExpr_7) | True -> (case (_tyExprIgathTyVarPolGam) of { _lhsOgathTyVarPolGam | _lhsOgathTyVarPolGam `seq` (True) -> (case (kiStar) of { _lhsOki | _lhsOki `seq` (True) -> (case (_tyExprIkiVarMp) of { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) -> (case (_tyExprItyVarWildMp) of { _lhsOtyVarWildMp | _lhsOtyVarWildMp `seq` (True) -> (case ((let sem_PrExpr_DynVar_7 :: T_PrExpr_7 sem_PrExpr_DynVar_7 = (\ _lhsIclGam -> _lhsIclGam `seq` ((case (_lhsIclGam) of { _tyExprOclGam | _tyExprOclGam `seq` (True) -> (case (tyExpr_7 _tyExprOclGam) of { ( _tyExprIevTy,tyExpr_8) | True -> (case (_tyExprIevTy) of { _lhsOevTy | _lhsOevTy `seq` (True) -> (case ((let sem_PrExpr_DynVar_8 :: T_PrExpr_8 sem_PrExpr_DynVar_8 = (\ _lhsIfinKiVarMp _lhsIfinTyKiGam _lhsIfinTyVarMp _lhsIkiGam _lhsImoduleNm _lhsIopts _lhsIsysfEnv _lhsItr _lhsItyKiGlobFreeTvarS _lhsItyTyGlobFreeTvarS _lhsItyTyTySigFreeTvarS _lhsIvalTyGlobFreeTvarS -> _lhsIfinKiVarMp `seq` (_lhsIfinTyKiGam `seq` (_lhsIfinTyVarMp `seq` (_lhsIkiGam `seq` (_lhsImoduleNm `seq` (_lhsIopts `seq` (_lhsIsysfEnv `seq` (_lhsItr `seq` (_lhsItyKiGlobFreeTvarS `seq` (_lhsItyTyGlobFreeTvarS `seq` (_lhsItyTyTySigFreeTvarS `seq` (_lhsIvalTyGlobFreeTvarS `seq` ((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) of { _lhsOallErrSq | _lhsOallErrSq `seq` (True) -> (case (_tyExprIclMissNmS) of { _lhsOclMissNmS | _lhsOclMissNmS `seq` (True) -> (case (_tyExprIclNmS) of { _lhsOclNmS | _lhsOclNmS `seq` (True) -> (case (_tyExprIerrSq) of { _lhsOerrSq | _lhsOerrSq `seq` (True) -> (case (_tyExprIgathMentrelFilterMp) of { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) -> (case (hsnDynVar >|< nm_ >#< "::" >#< _tyExprIpp) of { _pp | _pp `seq` (True) -> (case (_pp) of { _lhsOpp | _lhsOpp `seq` (True) -> (case (trppEmpty) of { _trppHere | _trppHere `seq` (True) -> (case (ppNestTrPP ["PrExpr","DynVar"] [ppTrNm nm_] [_tyExprIppAST] _trppHere) of { _ppAST | _ppAST `seq` (True) -> (case (_ppAST) of { _lhsOppAST | _lhsOppAST `seq` (True) -> (case (_pr) of { _lhsOpr | _lhsOpr `seq` (True) -> (case (_tyExprItrpp) of { _lhsOtrpp | _lhsOtrpp `seq` (True) -> ( _lhsOallErrSq,_lhsOclMissNmS,_lhsOclNmS,_lhsOerrSq,_lhsOgathMentrelFilterMp,_lhsOpp,_lhsOppAST,_lhsOpr,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))))) in sem_PrExpr_DynVar_8)) of { ( sem_PrExpr_8) | True -> ( _lhsOevTy,sem_PrExpr_8) }) }) }) }))) in sem_PrExpr_DynVar_7)) of { ( sem_PrExpr_7) | True -> ( _lhsOgathTyVarPolGam,_lhsOki,_lhsOkiVarMp,_lhsOtyVarWildMp,sem_PrExpr_7) }) }) }) }) }) }) }))) in sem_PrExpr_DynVar_6)) of { ( sem_PrExpr_6) | True -> ( _lhsOintlTyKiGam,_lhsOtyKiGam,sem_PrExpr_6) }) }) }) }) }))) in sem_PrExpr_DynVar_5)) of { ( sem_PrExpr_5) | True -> ( _lhsOpolVarMp,sem_PrExpr_5) }) }) }) }) })))) in sem_PrExpr_DynVar_4)) of { ( sem_PrExpr_4) | True -> ( _lhsOpolVarL,sem_PrExpr_4) }) }) }) }))) in sem_PrExpr_DynVar_3)) of { ( sem_PrExpr_3) | True -> ( _lhsOprTy,_lhsOty,_lhsOtyGam,sem_PrExpr_3) }) }) }) }) }) }) }) }) }))) in sem_PrExpr_DynVar_2)) of { ( sem_PrExpr_2) | True -> ( _lhsOgUniq,sem_PrExpr_2) }) }) }) }))) in sem_PrExpr_DynVar_1)) of { ( sem_PrExpr_1) | True -> ( _lhsOrange,sem_PrExpr_1) }) }) }) }) sem_PrExpr_Eq :: Range -> T_TyExpr -> T_TyExpr -> T_PrExpr sem_PrExpr_Eq hsrange_ tyExpr1_ tyExpr2_ | hsrange_ `seq` (tyExpr1_ `seq` (tyExpr2_ `seq` (True))) = (case (tyExpr2_) of { ( _tyExpr2Irange,tyExpr2_1) | True -> (case (tyExpr1_) of { ( _tyExpr1Irange,tyExpr1_1) | True -> (case (rangeUnions [hsrange_, _tyExpr1Irange, _tyExpr2Irange ]) of { _range | _range `seq` (True) -> (case (_range) of { _lhsOrange | _lhsOrange `seq` (True) -> (case ((let sem_PrExpr_Eq_1 :: T_PrExpr_1 sem_PrExpr_Eq_1 = (\ _lhsIgUniq -> _lhsIgUniq `seq` ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq) -> (__cont,lUniq)} )) of { __tup210 | __tup210 `seq` (True) -> (case (__tup210) of { (_tyExpr1OgUniq,_) | _tyExpr1OgUniq `seq` (True) -> (case (tyExpr1_1 _tyExpr1OgUniq) of { ( _tyExpr1IgUniq,tyExpr1_2) | True -> (case (_tyExpr1IgUniq) of { _tyExpr2OgUniq | _tyExpr2OgUniq `seq` (True) -> (case (tyExpr2_1 _tyExpr2OgUniq) of { ( _tyExpr2IgUniq,tyExpr2_2) | True -> (case (_tyExpr2IgUniq) of { _lhsOgUniq | _lhsOgUniq `seq` (True) -> (case ((let sem_PrExpr_Eq_2 :: T_PrExpr_2 sem_PrExpr_Eq_2 = (\ _lhsItyGam -> _lhsItyGam `seq` ((case (_lhsItyGam) of { _tyExpr1OtyGam | _tyExpr1OtyGam `seq` (True) -> (case (tyExpr1_2 _tyExpr1OtyGam) of { ( _tyExpr1Ity,_tyExpr1ItyGam,tyExpr1_3) | True -> (case (_tyExpr1ItyGam) of { _tyExpr2OtyGam | _tyExpr2OtyGam `seq` (True) -> (case (tyExpr2_2 _tyExpr2OtyGam) of { ( _tyExpr2Ity,_tyExpr2ItyGam,tyExpr2_3) | True -> (case (Pred_Eq _tyExpr1Ity _tyExpr2Ity) of { _pr | _pr `seq` (True) -> (case (mkTyPr _pr) of { _ty | _ty `seq` (True) -> (case (_ty) of { _prTy | _prTy `seq` (True) -> (case (_prTy) of { _lhsOprTy | _lhsOprTy `seq` (True) -> (case (_ty) of { _lhsOty | _lhsOty `seq` (True) -> (case (_tyExpr2ItyGam) of { _lhsOtyGam | _lhsOtyGam `seq` (True) -> (case ((let sem_PrExpr_Eq_3 :: T_PrExpr_3 sem_PrExpr_Eq_3 = (\ _lhsIknPolCtx -> _lhsIknPolCtx `seq` ((case (_lhsIknPolCtx) of { _tyExpr2OknPolCtx | _tyExpr2OknPolCtx `seq` (True) -> (case (tyExpr2_3 _tyExpr2OknPolCtx) of { ( _tyExpr2IpolVarL,tyExpr2_4) | True -> (case (_tyExpr2IpolVarL) of { _lhsOpolVarL | _lhsOpolVarL `seq` (True) -> (case ((let sem_PrExpr_Eq_4 :: T_PrExpr_4 sem_PrExpr_Eq_4 = (\ _lhsIpolGam _lhsIpolVarMp -> _lhsIpolGam `seq` (_lhsIpolVarMp `seq` ((case (_lhsIpolVarMp) of { _tyExpr1OpolVarMp | _tyExpr1OpolVarMp `seq` (True) -> (case (_lhsIpolGam) of { _tyExpr1OpolGam | _tyExpr1OpolGam `seq` (True) -> (case (_lhsIknPolCtx) of { _tyExpr1OknPolCtx | _tyExpr1OknPolCtx `seq` (True) -> (case (tyExpr1_3 _tyExpr1OknPolCtx) of { ( _tyExpr1IpolVarL,tyExpr1_4) | True -> (case (tyExpr1_4 _tyExpr1OpolGam _tyExpr1OpolVarMp) of { ( _tyExpr1ImbStrictness,_tyExpr1IpolVarMp,tyExpr1_5) | True -> (case (_tyExpr1IpolVarMp) of { _tyExpr2OpolVarMp | _tyExpr2OpolVarMp `seq` (True) -> (case (_lhsIpolGam) of { _tyExpr2OpolGam | _tyExpr2OpolGam `seq` (True) -> (case (tyExpr2_4 _tyExpr2OpolGam _tyExpr2OpolVarMp) of { ( _tyExpr2ImbStrictness,_tyExpr2IpolVarMp,tyExpr2_5) | True -> (case (_tyExpr2IpolVarMp) of { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) -> (case ((let sem_PrExpr_Eq_5 :: T_PrExpr_5 sem_PrExpr_Eq_5 = (\ _lhsItyKiGam -> _lhsItyKiGam `seq` ((case (_lhsItyKiGam) of { _tyExpr1OtyKiGam | _tyExpr1OtyKiGam `seq` (True) -> (case (tyExpr1_5 _tyExpr1OtyKiGam) of { ( _tyExpr1IintlTyKiGam,_tyExpr1ItyKiGam,tyExpr1_6) | True -> (case (_tyExpr1ItyKiGam) of { _tyExpr2OtyKiGam | _tyExpr2OtyKiGam `seq` (True) -> (case (tyExpr2_5 _tyExpr2OtyKiGam) of { ( _tyExpr2IintlTyKiGam,_tyExpr2ItyKiGam,tyExpr2_6) | True -> (case (_tyExpr1IintlTyKiGam `gamUnion` _tyExpr2IintlTyKiGam) of { _lhsOintlTyKiGam | _lhsOintlTyKiGam `seq` (True) -> (case (_tyExpr2ItyKiGam) of { _lhsOtyKiGam | _lhsOtyKiGam `seq` (True) -> (case ((let sem_PrExpr_Eq_6 :: T_PrExpr_6 sem_PrExpr_Eq_6 = (\ _lhsIkiVarMp -> _lhsIkiVarMp `seq` ((case (_lhsIkiVarMp) of { _tyExpr1OkiVarMp | _tyExpr1OkiVarMp `seq` (True) -> (case (tyExpr1_6 _tyExpr1OkiVarMp) of { ( _tyExpr1IgathTyVarPolGam,_tyExpr1Iki,_tyExpr1IkiVarMp,_tyExpr1Ipol,_tyExpr1ItyVarWildMp,tyExpr1_7) | True -> (case (_tyExpr1IkiVarMp) of { _tyExpr2OkiVarMp | _tyExpr2OkiVarMp `seq` (True) -> (case (tyExpr2_6 _tyExpr2OkiVarMp) of { ( _tyExpr2IgathTyVarPolGam,_tyExpr2Iki,_tyExpr2IkiVarMp,_tyExpr2Ipol,_tyExpr2ItyVarWildMp,tyExpr2_7) | True -> (case (_tyExpr1IgathTyVarPolGam `gamUnion` _tyExpr2IgathTyVarPolGam) of { _lhsOgathTyVarPolGam | _lhsOgathTyVarPolGam `seq` (True) -> (case (_tyExpr2Iki) of { _lhsOki | _lhsOki `seq` (True) -> (case (__tup210) of { (_,_lUniq) | _lUniq `seq` (True) -> (case (fitsIn unifyFIOpts defaultFIEnv _lUniq _tyExpr2IkiVarMp _tyExpr1Iki _tyExpr2Iki) of { _fo_ | _fo_ `seq` (True) -> (case (foVarMp _fo_ `varUpd` _tyExpr2IkiVarMp) of { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) -> (case (_tyExpr1ItyVarWildMp `Map.union` _tyExpr2ItyVarWildMp) of { _lhsOtyVarWildMp | _lhsOtyVarWildMp `seq` (True) -> (case ((let sem_PrExpr_Eq_7 :: T_PrExpr_7 sem_PrExpr_Eq_7 = (\ _lhsIclGam -> _lhsIclGam `seq` ((case (_lhsIclGam) of { _tyExpr2OclGam | _tyExpr2OclGam `seq` (True) -> (case (tyExpr2_7 _tyExpr2OclGam) of { ( _tyExpr2IevTy,tyExpr2_8) | True -> (case (_tyExpr2IevTy) of { _lhsOevTy | _lhsOevTy `seq` (True) -> (case ((let sem_PrExpr_Eq_8 :: T_PrExpr_8 sem_PrExpr_Eq_8 = (\ _lhsIfinKiVarMp _lhsIfinTyKiGam _lhsIfinTyVarMp _lhsIkiGam _lhsImoduleNm _lhsIopts _lhsIsysfEnv _lhsItr _lhsItyKiGlobFreeTvarS _lhsItyTyGlobFreeTvarS _lhsItyTyTySigFreeTvarS _lhsIvalTyGlobFreeTvarS -> _lhsIfinKiVarMp `seq` (_lhsIfinTyKiGam `seq` (_lhsIfinTyVarMp `seq` (_lhsIkiGam `seq` (_lhsImoduleNm `seq` (_lhsIopts `seq` (_lhsIsysfEnv `seq` (_lhsItr `seq` (_lhsItyKiGlobFreeTvarS `seq` (_lhsItyTyGlobFreeTvarS `seq` (_lhsItyTyTySigFreeTvarS `seq` (_lhsIvalTyGlobFreeTvarS `seq` ((case (_lhsIvalTyGlobFreeTvarS) of { _tyExpr2OvalTyGlobFreeTvarS | _tyExpr2OvalTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyTyTySigFreeTvarS) of { _tyExpr2OtyTyTySigFreeTvarS | _tyExpr2OtyTyTySigFreeTvarS `seq` (True) -> (case (_lhsItyTyGlobFreeTvarS) of { _tyExpr2OtyTyGlobFreeTvarS | _tyExpr2OtyTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyKiGlobFreeTvarS) of { _tyExpr2OtyKiGlobFreeTvarS | _tyExpr2OtyKiGlobFreeTvarS `seq` (True) -> (case (_lhsItr) of { _tyExpr2Otr | _tyExpr2Otr `seq` (True) -> (case (_lhsIsysfEnv) of { _tyExpr2OsysfEnv | _tyExpr2OsysfEnv `seq` (True) -> (case (_lhsIopts) of { _tyExpr2Oopts | _tyExpr2Oopts `seq` (True) -> (case (_lhsImoduleNm) of { _tyExpr2OmoduleNm | _tyExpr2OmoduleNm `seq` (True) -> (case (_lhsIkiGam) of { _tyExpr2OkiGam | _tyExpr2OkiGam `seq` (True) -> (case (_lhsIfinTyVarMp) of { _tyExpr2OfinTyVarMp | _tyExpr2OfinTyVarMp `seq` (True) -> (case (_lhsIfinTyKiGam) of { _tyExpr2OfinTyKiGam | _tyExpr2OfinTyKiGam `seq` (True) -> (case (_lhsIfinKiVarMp) of { _tyExpr2OfinKiVarMp | _tyExpr2OfinKiVarMp `seq` (True) -> (case (tyExpr2_8 _tyExpr2OfinKiVarMp _tyExpr2OfinTyKiGam _tyExpr2OfinTyVarMp _tyExpr2OkiGam _tyExpr2OmoduleNm _tyExpr2Oopts _tyExpr2OsysfEnv _tyExpr2Otr _tyExpr2OtyKiGlobFreeTvarS _tyExpr2OtyTyGlobFreeTvarS _tyExpr2OtyTyTySigFreeTvarS _tyExpr2OvalTyGlobFreeTvarS) of { ( _tyExpr2IallErrSq,_tyExpr2IappArgPPL,_tyExpr2IappFunNm,_tyExpr2IappFunPP,_tyExpr2IclMissNmS,_tyExpr2IclNmS,_tyExpr2IerrSq,_tyExpr2IgathMentrelFilterMp,_tyExpr2Ipp,_tyExpr2IppAST,_tyExpr2Itrpp,_tyExpr2ItyWildL) | True -> (case (_lhsIclGam) of { _tyExpr1OclGam | _tyExpr1OclGam `seq` (True) -> (case (tyExpr1_7 _tyExpr1OclGam) of { ( _tyExpr1IevTy,tyExpr1_8) | True -> (case (_lhsIvalTyGlobFreeTvarS) of { _tyExpr1OvalTyGlobFreeTvarS | _tyExpr1OvalTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyTyTySigFreeTvarS) of { _tyExpr1OtyTyTySigFreeTvarS | _tyExpr1OtyTyTySigFreeTvarS `seq` (True) -> (case (_lhsItyTyGlobFreeTvarS) of { _tyExpr1OtyTyGlobFreeTvarS | _tyExpr1OtyTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyKiGlobFreeTvarS) of { _tyExpr1OtyKiGlobFreeTvarS | _tyExpr1OtyKiGlobFreeTvarS `seq` (True) -> (case (_lhsItr) of { _tyExpr1Otr | _tyExpr1Otr `seq` (True) -> (case (_lhsIsysfEnv) of { _tyExpr1OsysfEnv | _tyExpr1OsysfEnv `seq` (True) -> (case (_lhsIopts) of { _tyExpr1Oopts | _tyExpr1Oopts `seq` (True) -> (case (_lhsImoduleNm) of { _tyExpr1OmoduleNm | _tyExpr1OmoduleNm `seq` (True) -> (case (_lhsIkiGam) of { _tyExpr1OkiGam | _tyExpr1OkiGam `seq` (True) -> (case (_lhsIfinTyVarMp) of { _tyExpr1OfinTyVarMp | _tyExpr1OfinTyVarMp `seq` (True) -> (case (_lhsIfinTyKiGam) of { _tyExpr1OfinTyKiGam | _tyExpr1OfinTyKiGam `seq` (True) -> (case (_lhsIfinKiVarMp) of { _tyExpr1OfinKiVarMp | _tyExpr1OfinKiVarMp `seq` (True) -> (case (tyExpr1_8 _tyExpr1OfinKiVarMp _tyExpr1OfinTyKiGam _tyExpr1OfinTyVarMp _tyExpr1OkiGam _tyExpr1OmoduleNm _tyExpr1Oopts _tyExpr1OsysfEnv _tyExpr1Otr _tyExpr1OtyKiGlobFreeTvarS _tyExpr1OtyTyGlobFreeTvarS _tyExpr1OtyTyTySigFreeTvarS _tyExpr1OvalTyGlobFreeTvarS) of { ( _tyExpr1IallErrSq,_tyExpr1IappArgPPL,_tyExpr1IappFunNm,_tyExpr1IappFunPP,_tyExpr1IclMissNmS,_tyExpr1IclNmS,_tyExpr1IerrSq,_tyExpr1IgathMentrelFilterMp,_tyExpr1Ipp,_tyExpr1IppAST,_tyExpr1Itrpp,_tyExpr1ItyWildL) | True -> (case (_tyExpr1IallErrSq `Seq.union` _tyExpr2IallErrSq) of { _lhsOallErrSq | _lhsOallErrSq `seq` (True) -> (case (_tyExpr1IclMissNmS `Set.union` _tyExpr2IclMissNmS) of { _lhsOclMissNmS | _lhsOclMissNmS `seq` (True) -> (case (_tyExpr1IclNmS `Set.union` _tyExpr2IclNmS) of { _lhsOclNmS | _lhsOclNmS `seq` (True) -> (case (_tyExpr1IerrSq `Seq.union` _tyExpr2IerrSq) of { _lhsOerrSq | _lhsOerrSq `seq` (True) -> (case (_tyExpr1IgathMentrelFilterMp `mentrelFilterMpUnion` _tyExpr2IgathMentrelFilterMp) of { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) -> (case (_tyExpr1Ipp >#< hsnEqTilde >#< _tyExpr2Ipp) of { _pp | _pp `seq` (True) -> (case (_pp) of { _lhsOpp | _lhsOpp `seq` (True) -> (case (trppEmpty) of { _trppHere | _trppHere `seq` (True) -> (case (ppNestTrPP ["PrExpr","Eq"] [] [_tyExpr1IppAST,_tyExpr2IppAST] _trppHere) of { _ppAST | _ppAST `seq` (True) -> (case (_ppAST) of { _lhsOppAST | _lhsOppAST `seq` (True) -> (case (_pr) of { _lhsOpr | _lhsOpr `seq` (True) -> (case (_tyExpr1Itrpp >< _tyExpr2Itrpp) of { _lhsOtrpp | _lhsOtrpp `seq` (True) -> ( _lhsOallErrSq,_lhsOclMissNmS,_lhsOclNmS,_lhsOerrSq,_lhsOgathMentrelFilterMp,_lhsOpp,_lhsOppAST,_lhsOpr,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))))) in sem_PrExpr_Eq_8)) of { ( sem_PrExpr_8) | True -> ( _lhsOevTy,sem_PrExpr_8) }) }) }) }))) in sem_PrExpr_Eq_7)) of { ( sem_PrExpr_7) | True -> ( _lhsOgathTyVarPolGam,_lhsOki,_lhsOkiVarMp,_lhsOtyVarWildMp,sem_PrExpr_7) }) }) }) }) }) }) }) }) }) }) }))) in sem_PrExpr_Eq_6)) of { ( sem_PrExpr_6) | True -> ( _lhsOintlTyKiGam,_lhsOtyKiGam,sem_PrExpr_6) }) }) }) }) }) }) }))) in sem_PrExpr_Eq_5)) of { ( sem_PrExpr_5) | True -> ( _lhsOpolVarMp,sem_PrExpr_5) }) }) }) }) }) }) }) }) }) })))) in sem_PrExpr_Eq_4)) of { ( sem_PrExpr_4) | True -> ( _lhsOpolVarL,sem_PrExpr_4) }) }) }) }))) in sem_PrExpr_Eq_3)) of { ( sem_PrExpr_3) | True -> ( _lhsOprTy,_lhsOty,_lhsOtyGam,sem_PrExpr_3) }) }) }) }) }) }) }) }) }) }) }))) in sem_PrExpr_Eq_2)) of { ( sem_PrExpr_2) | True -> ( _lhsOgUniq,sem_PrExpr_2) }) }) }) }) }) }) }))) in sem_PrExpr_Eq_1)) of { ( sem_PrExpr_1) | True -> ( _lhsOrange,sem_PrExpr_1) }) }) }) }) })