module UHC.Light.Compiler.EH.MainAG_TyExprs 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 -- TyExprs ----------------------------------------------------- {- visit 0: synthesized attribute: range : Range visit 1: chained attribute: gUniq : UID visit 2: chained attribute: tyGam : TyGam synthesized attributes: polVarL : [Polarity] tyL : TyL visit 3: inherited attribute: polGam : PolGam chained attribute: polVarMp : VarMp visit 4: chained attribute: tyKiGam : TyKiGam synthesized attribute: intlTyKiGam : TyKiGam visit 5: chained attribute: kiVarMp : VarMp synthesized attributes: gathTyVarPolGam : PolGam kiL : TyL tyVarWildMp : TyVarWildMp visit 6: inherited attributes: clGam : ClGam finKiVarMp : VarMp finTyKiGam : TyKiGam finTyVarMp : VarMp kiGam : KiGam knPolCtx : Polarity 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 ppL : [PP_Doc] trpp : TrPP alternatives: alternative Cons: child hd : TyExpr child tl : TyExprs visit 1: local _tup252 : _ visit 2: local lUniq_17_polCtx : {UID} local polCtxVar : {Polarity} intra _tup252 : _ visit 6: local trppHere : _ alternative Nil: visit 6: local trppHere : _ -} sem_TyExprs_Cons :: T_TyExpr -> T_TyExprs -> T_TyExprs sem_TyExprs_Cons hd_ tl_ | hd_ `seq` (tl_ `seq` (True)) = (case (tl_) of { ( _tlIrange,tl_1) | True -> (case (hd_) of { ( _hdIrange,hd_1) | True -> (case (_hdIrange `rangeUnion` _tlIrange) of { _lhsOrange | _lhsOrange `seq` (True) -> (case ((let sem_TyExprs_Cons_1 :: T_TyExprs_1 sem_TyExprs_Cons_1 = (\ _lhsIgUniq -> _lhsIgUniq `seq` ((case (let __cont = _lhsIgUniq in seq __cont ( case nextUnique __cont of { (__cont, lUniq_17_polCtx) -> (__cont,lUniq_17_polCtx)} )) of { __tup252 | __tup252 `seq` (True) -> (case (__tup252) of { (_hdOgUniq,_) | _hdOgUniq `seq` (True) -> (case (hd_1 _hdOgUniq) of { ( _hdIgUniq,hd_2) | True -> (case (_hdIgUniq) of { _tlOgUniq | _tlOgUniq `seq` (True) -> (case (tl_1 _tlOgUniq) of { ( _tlIgUniq,tl_2) | True -> (case (_tlIgUniq) of { _lhsOgUniq | _lhsOgUniq `seq` (True) -> (case ((let sem_TyExprs_Cons_2 :: T_TyExprs_2 sem_TyExprs_Cons_2 = (\ _lhsItyGam -> _lhsItyGam `seq` ((case (_lhsItyGam) of { _hdOtyGam | _hdOtyGam `seq` (True) -> (case (hd_2 _hdOtyGam) of { ( _hdIty,_hdItyGam,hd_3) | True -> (case (_hdItyGam) of { _tlOtyGam | _tlOtyGam `seq` (True) -> (case (__tup252) of { (_,_lUniq_17_polCtx) | _lUniq_17_polCtx `seq` (True) -> (case (mkPolVar _lUniq_17_polCtx) of { _polCtxVar | _polCtxVar `seq` (True) -> (case (_polCtxVar) of { _hdOknPolCtx | _hdOknPolCtx `seq` (True) -> (case (tl_2 _tlOtyGam) of { ( _tlIpolVarL,_tlItyGam,_tlItyL,tl_3) | True -> (case (hd_3 _hdOknPolCtx) of { ( _hdIpolVarL,hd_4) | True -> (case (_hdIpolVarL ++ _tlIpolVarL) of { _lhsOpolVarL | _lhsOpolVarL `seq` (True) -> (case (_tlItyGam) of { _lhsOtyGam | _lhsOtyGam `seq` (True) -> (case (_hdIty : _tlItyL) of { _lhsOtyL | _lhsOtyL `seq` (True) -> (case ((let sem_TyExprs_Cons_3 :: T_TyExprs_3 sem_TyExprs_Cons_3 = (\ _lhsIpolGam _lhsIpolVarMp -> _lhsIpolGam `seq` (_lhsIpolVarMp `seq` ((case (_lhsIpolVarMp) of { _hdOpolVarMp | _hdOpolVarMp `seq` (True) -> (case (_lhsIpolGam) of { _hdOpolGam | _hdOpolGam `seq` (True) -> (case (hd_4 _hdOpolGam _hdOpolVarMp) of { ( _hdImbStrictness,_hdIpolVarMp,hd_5) | True -> (case (_hdIpolVarMp) of { _tlOpolVarMp | _tlOpolVarMp `seq` (True) -> (case (_lhsIpolGam) of { _tlOpolGam | _tlOpolGam `seq` (True) -> (case (tl_3 _tlOpolGam _tlOpolVarMp) of { ( _tlIpolVarMp,tl_4) | True -> (case (_tlIpolVarMp) of { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) -> (case ((let sem_TyExprs_Cons_4 :: T_TyExprs_4 sem_TyExprs_Cons_4 = (\ _lhsItyKiGam -> _lhsItyKiGam `seq` ((case (_lhsItyKiGam) of { _hdOtyKiGam | _hdOtyKiGam `seq` (True) -> (case (hd_5 _hdOtyKiGam) of { ( _hdIintlTyKiGam,_hdItyKiGam,hd_6) | True -> (case (_hdItyKiGam) of { _tlOtyKiGam | _tlOtyKiGam `seq` (True) -> (case (tl_4 _tlOtyKiGam) of { ( _tlIintlTyKiGam,_tlItyKiGam,tl_5) | True -> (case (_hdIintlTyKiGam `gamUnion` _tlIintlTyKiGam) of { _lhsOintlTyKiGam | _lhsOintlTyKiGam `seq` (True) -> (case (_tlItyKiGam) of { _lhsOtyKiGam | _lhsOtyKiGam `seq` (True) -> (case ((let sem_TyExprs_Cons_5 :: T_TyExprs_5 sem_TyExprs_Cons_5 = (\ _lhsIkiVarMp -> _lhsIkiVarMp `seq` ((case (_lhsIkiVarMp) of { _hdOkiVarMp | _hdOkiVarMp `seq` (True) -> (case (hd_6 _hdOkiVarMp) of { ( _hdIgathTyVarPolGam,_hdIki,_hdIkiVarMp,_hdIpol,_hdItyVarWildMp,hd_7) | True -> (case (_hdIkiVarMp) of { _tlOkiVarMp | _tlOkiVarMp `seq` (True) -> (case (tl_5 _tlOkiVarMp) of { ( _tlIgathTyVarPolGam,_tlIkiL,_tlIkiVarMp,_tlItyVarWildMp,tl_6) | True -> (case (_hdIgathTyVarPolGam `gamUnion` _tlIgathTyVarPolGam) of { _lhsOgathTyVarPolGam | _lhsOgathTyVarPolGam `seq` (True) -> (case (_hdIki : _tlIkiL) of { _lhsOkiL | _lhsOkiL `seq` (True) -> (case (_tlIkiVarMp) of { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) -> (case (_hdItyVarWildMp `Map.union` _tlItyVarWildMp) of { _lhsOtyVarWildMp | _lhsOtyVarWildMp `seq` (True) -> (case ((let sem_TyExprs_Cons_6 :: T_TyExprs_6 sem_TyExprs_Cons_6 = (\ _lhsIclGam _lhsIfinKiVarMp _lhsIfinTyKiGam _lhsIfinTyVarMp _lhsIkiGam _lhsIknPolCtx _lhsImoduleNm _lhsIopts _lhsIsysfEnv _lhsItr _lhsItyKiGlobFreeTvarS _lhsItyTyGlobFreeTvarS _lhsItyTyTySigFreeTvarS _lhsIvalTyGlobFreeTvarS -> _lhsIclGam `seq` (_lhsIfinKiVarMp `seq` (_lhsIfinTyKiGam `seq` (_lhsIfinTyVarMp `seq` (_lhsIkiGam `seq` (_lhsIknPolCtx `seq` (_lhsImoduleNm `seq` (_lhsIopts `seq` (_lhsIsysfEnv `seq` (_lhsItr `seq` (_lhsItyKiGlobFreeTvarS `seq` (_lhsItyTyGlobFreeTvarS `seq` (_lhsItyTyTySigFreeTvarS `seq` (_lhsIvalTyGlobFreeTvarS `seq` ((case (_lhsIvalTyGlobFreeTvarS) of { _tlOvalTyGlobFreeTvarS | _tlOvalTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyTyTySigFreeTvarS) of { _tlOtyTyTySigFreeTvarS | _tlOtyTyTySigFreeTvarS `seq` (True) -> (case (_lhsItyTyGlobFreeTvarS) of { _tlOtyTyGlobFreeTvarS | _tlOtyTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyKiGlobFreeTvarS) of { _tlOtyKiGlobFreeTvarS | _tlOtyKiGlobFreeTvarS `seq` (True) -> (case (_lhsItr) of { _tlOtr | _tlOtr `seq` (True) -> (case (_lhsIsysfEnv) of { _tlOsysfEnv | _tlOsysfEnv `seq` (True) -> (case (_lhsIopts) of { _tlOopts | _tlOopts `seq` (True) -> (case (_lhsImoduleNm) of { _tlOmoduleNm | _tlOmoduleNm `seq` (True) -> (case (_lhsIknPolCtx) of { _tlOknPolCtx | _tlOknPolCtx `seq` (True) -> (case (_lhsIkiGam) of { _tlOkiGam | _tlOkiGam `seq` (True) -> (case (_lhsIfinTyVarMp) of { _tlOfinTyVarMp | _tlOfinTyVarMp `seq` (True) -> (case (_lhsIfinTyKiGam) of { _tlOfinTyKiGam | _tlOfinTyKiGam `seq` (True) -> (case (_lhsIfinKiVarMp) of { _tlOfinKiVarMp | _tlOfinKiVarMp `seq` (True) -> (case (_lhsIclGam) of { _tlOclGam | _tlOclGam `seq` (True) -> (case (tl_6 _tlOclGam _tlOfinKiVarMp _tlOfinTyKiGam _tlOfinTyVarMp _tlOkiGam _tlOknPolCtx _tlOmoduleNm _tlOopts _tlOsysfEnv _tlOtr _tlOtyKiGlobFreeTvarS _tlOtyTyGlobFreeTvarS _tlOtyTyTySigFreeTvarS _tlOvalTyGlobFreeTvarS) of { ( _tlIallErrSq,_tlIclMissNmS,_tlIclNmS,_tlIerrSq,_tlIgathMentrelFilterMp,_tlIpp,_tlIppAST,_tlIppL,_tlItrpp) | True -> (case (_lhsIclGam) of { _hdOclGam | _hdOclGam `seq` (True) -> (case (hd_7 _hdOclGam) of { ( _hdIevTy,hd_8) | True -> (case (_lhsIvalTyGlobFreeTvarS) of { _hdOvalTyGlobFreeTvarS | _hdOvalTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyTyTySigFreeTvarS) of { _hdOtyTyTySigFreeTvarS | _hdOtyTyTySigFreeTvarS `seq` (True) -> (case (_lhsItyTyGlobFreeTvarS) of { _hdOtyTyGlobFreeTvarS | _hdOtyTyGlobFreeTvarS `seq` (True) -> (case (_lhsItyKiGlobFreeTvarS) of { _hdOtyKiGlobFreeTvarS | _hdOtyKiGlobFreeTvarS `seq` (True) -> (case (_lhsItr) of { _hdOtr | _hdOtr `seq` (True) -> (case (_lhsIsysfEnv) of { _hdOsysfEnv | _hdOsysfEnv `seq` (True) -> (case (_lhsIopts) of { _hdOopts | _hdOopts `seq` (True) -> (case (_lhsImoduleNm) of { _hdOmoduleNm | _hdOmoduleNm `seq` (True) -> (case (_lhsIkiGam) of { _hdOkiGam | _hdOkiGam `seq` (True) -> (case (_lhsIfinTyVarMp) of { _hdOfinTyVarMp | _hdOfinTyVarMp `seq` (True) -> (case (_lhsIfinTyKiGam) of { _hdOfinTyKiGam | _hdOfinTyKiGam `seq` (True) -> (case (_lhsIfinKiVarMp) of { _hdOfinKiVarMp | _hdOfinKiVarMp `seq` (True) -> (case (hd_8 _hdOfinKiVarMp _hdOfinTyKiGam _hdOfinTyVarMp _hdOkiGam _hdOmoduleNm _hdOopts _hdOsysfEnv _hdOtr _hdOtyKiGlobFreeTvarS _hdOtyTyGlobFreeTvarS _hdOtyTyTySigFreeTvarS _hdOvalTyGlobFreeTvarS) of { ( _hdIallErrSq,_hdIappArgPPL,_hdIappFunNm,_hdIappFunPP,_hdIclMissNmS,_hdIclNmS,_hdIerrSq,_hdIgathMentrelFilterMp,_hdIpp,_hdIppAST,_hdItrpp,_hdItyWildL) | True -> (case (_hdIallErrSq `Seq.union` _tlIallErrSq) of { _lhsOallErrSq | _lhsOallErrSq `seq` (True) -> (case (_hdIclMissNmS `Set.union` _tlIclMissNmS) of { _lhsOclMissNmS | _lhsOclMissNmS `seq` (True) -> (case (_hdIclNmS `Set.union` _tlIclNmS) of { _lhsOclNmS | _lhsOclNmS `seq` (True) -> (case (_hdIerrSq `Seq.union` _tlIerrSq) of { _lhsOerrSq | _lhsOerrSq `seq` (True) -> (case (_hdIgathMentrelFilterMp `mentrelFilterMpUnion` _tlIgathMentrelFilterMp) of { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) -> (case (_hdIpp >-< _tlIpp) of { _lhsOpp | _lhsOpp `seq` (True) -> (case (trppEmpty) of { _trppHere | _trppHere `seq` (True) -> (case (ppNestTrPP ["TyExprs","Cons"] [] [_hdIppAST,_tlIppAST] _trppHere) of { _lhsOppAST | _lhsOppAST `seq` (True) -> (case (_hdIpp : _tlIppL) of { _lhsOppL | _lhsOppL `seq` (True) -> (case (_hdItrpp >< _tlItrpp) of { _lhsOtrpp | _lhsOtrpp `seq` (True) -> ( _lhsOallErrSq,_lhsOclMissNmS,_lhsOclNmS,_lhsOerrSq,_lhsOgathMentrelFilterMp,_lhsOpp,_lhsOppAST,_lhsOppL,_lhsOtrpp) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) })))))))))))))))) in sem_TyExprs_Cons_6)) of { ( sem_TyExprs_6) | True -> ( _lhsOgathTyVarPolGam,_lhsOkiL,_lhsOkiVarMp,_lhsOtyVarWildMp,sem_TyExprs_6) }) }) }) }) }) }) }) }) }))) in sem_TyExprs_Cons_5)) of { ( sem_TyExprs_5) | True -> ( _lhsOintlTyKiGam,_lhsOtyKiGam,sem_TyExprs_5) }) }) }) }) }) }) }))) in sem_TyExprs_Cons_4)) of { ( sem_TyExprs_4) | True -> ( _lhsOpolVarMp,sem_TyExprs_4) }) }) }) }) }) }) }) })))) in sem_TyExprs_Cons_3)) of { ( sem_TyExprs_3) | True -> ( _lhsOpolVarL,_lhsOtyGam,_lhsOtyL,sem_TyExprs_3) }) }) }) }) }) }) }) }) }) }) }) }))) in sem_TyExprs_Cons_2)) of { ( sem_TyExprs_2) | True -> ( _lhsOgUniq,sem_TyExprs_2) }) }) }) }) }) }) }))) in sem_TyExprs_Cons_1)) of { ( sem_TyExprs_1) | True -> ( _lhsOrange,sem_TyExprs_1) }) }) }) }) sem_TyExprs_Nil :: T_TyExprs sem_TyExprs_Nil = (case (emptyRange) of { _lhsOrange | _lhsOrange `seq` (True) -> (case ((let sem_TyExprs_Nil_1 :: T_TyExprs_1 sem_TyExprs_Nil_1 = (\ _lhsIgUniq -> _lhsIgUniq `seq` ((case (_lhsIgUniq) of { _lhsOgUniq | _lhsOgUniq `seq` (True) -> (case ((let sem_TyExprs_Nil_2 :: T_TyExprs_2 sem_TyExprs_Nil_2 = (\ _lhsItyGam -> _lhsItyGam `seq` ((case ([]) of { _lhsOpolVarL | _lhsOpolVarL `seq` (True) -> (case (_lhsItyGam) of { _lhsOtyGam | _lhsOtyGam `seq` (True) -> (case ([]) of { _lhsOtyL | _lhsOtyL `seq` (True) -> (case ((let sem_TyExprs_Nil_3 :: T_TyExprs_3 sem_TyExprs_Nil_3 = (\ _lhsIpolGam _lhsIpolVarMp -> _lhsIpolGam `seq` (_lhsIpolVarMp `seq` ((case (_lhsIpolVarMp) of { _lhsOpolVarMp | _lhsOpolVarMp `seq` (True) -> (case ((let sem_TyExprs_Nil_4 :: T_TyExprs_4 sem_TyExprs_Nil_4 = (\ _lhsItyKiGam -> _lhsItyKiGam `seq` ((case (emptyGam) of { _lhsOintlTyKiGam | _lhsOintlTyKiGam `seq` (True) -> (case (_lhsItyKiGam) of { _lhsOtyKiGam | _lhsOtyKiGam `seq` (True) -> (case ((let sem_TyExprs_Nil_5 :: T_TyExprs_5 sem_TyExprs_Nil_5 = (\ _lhsIkiVarMp -> _lhsIkiVarMp `seq` ((case (emptyGam) of { _lhsOgathTyVarPolGam | _lhsOgathTyVarPolGam `seq` (True) -> (case ([]) of { _lhsOkiL | _lhsOkiL `seq` (True) -> (case (_lhsIkiVarMp) of { _lhsOkiVarMp | _lhsOkiVarMp `seq` (True) -> (case (Map.empty) of { _lhsOtyVarWildMp | _lhsOtyVarWildMp `seq` (True) -> (case ((let sem_TyExprs_Nil_6 :: T_TyExprs_6 sem_TyExprs_Nil_6 = (\ _lhsIclGam _lhsIfinKiVarMp _lhsIfinTyKiGam _lhsIfinTyVarMp _lhsIkiGam _lhsIknPolCtx _lhsImoduleNm _lhsIopts _lhsIsysfEnv _lhsItr _lhsItyKiGlobFreeTvarS _lhsItyTyGlobFreeTvarS _lhsItyTyTySigFreeTvarS _lhsIvalTyGlobFreeTvarS -> _lhsIclGam `seq` (_lhsIfinKiVarMp `seq` (_lhsIfinTyKiGam `seq` (_lhsIfinTyVarMp `seq` (_lhsIkiGam `seq` (_lhsIknPolCtx `seq` (_lhsImoduleNm `seq` (_lhsIopts `seq` (_lhsIsysfEnv `seq` (_lhsItr `seq` (_lhsItyKiGlobFreeTvarS `seq` (_lhsItyTyGlobFreeTvarS `seq` (_lhsItyTyTySigFreeTvarS `seq` (_lhsIvalTyGlobFreeTvarS `seq` ((case (Seq.empty) of { _lhsOallErrSq | _lhsOallErrSq `seq` (True) -> (case (Set.empty) of { _lhsOclMissNmS | _lhsOclMissNmS `seq` (True) -> (case (Set.empty) of { _lhsOclNmS | _lhsOclNmS `seq` (True) -> (case (Seq.empty) of { _lhsOerrSq | _lhsOerrSq `seq` (True) -> (case (Map.empty) of { _lhsOgathMentrelFilterMp | _lhsOgathMentrelFilterMp `seq` (True) -> (case (empty) of { _lhsOpp | _lhsOpp `seq` (True) -> (case (trppEmpty) of { _trppHere | _trppHere `seq` (True) -> (case (ppNestTrPP ["TyExprs","Nil"] [] [] _trppHere) of { _lhsOppAST | _lhsOppAST `seq` (True) -> (case ([]) of { _lhsOppL | _lhsOppL `seq` (True) -> (case (trppEmpty) of { _lhsOtrpp | _lhsOtrpp `seq` (True) -> ( _lhsOallErrSq,_lhsOclMissNmS,_lhsOclNmS,_lhsOerrSq,_lhsOgathMentrelFilterMp,_lhsOpp,_lhsOppAST,_lhsOppL,_lhsOtrpp) }) }) }) }) }) }) }) }) }) })))))))))))))))) in sem_TyExprs_Nil_6)) of { ( sem_TyExprs_6) | True -> ( _lhsOgathTyVarPolGam,_lhsOkiL,_lhsOkiVarMp,_lhsOtyVarWildMp,sem_TyExprs_6) }) }) }) }) }))) in sem_TyExprs_Nil_5)) of { ( sem_TyExprs_5) | True -> ( _lhsOintlTyKiGam,_lhsOtyKiGam,sem_TyExprs_5) }) }) }))) in sem_TyExprs_Nil_4)) of { ( sem_TyExprs_4) | True -> ( _lhsOpolVarMp,sem_TyExprs_4) }) })))) in sem_TyExprs_Nil_3)) of { ( sem_TyExprs_3) | True -> ( _lhsOpolVarL,_lhsOtyGam,_lhsOtyL,sem_TyExprs_3) }) }) }) }))) in sem_TyExprs_Nil_2)) of { ( sem_TyExprs_2) | True -> ( _lhsOgUniq,sem_TyExprs_2) }) }))) in sem_TyExprs_Nil_1)) of { ( sem_TyExprs_1) | True -> ( _lhsOrange,sem_TyExprs_1) }) })