Îõ³h'AÁ4>í      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëì Safe-Inferred$%&(),0>?ÀÂËÐÖÙÛ÷*”ghc-tcplugin-apiUse this type like í¦ to write an error message. This error message can then be thrown at the type-level by the plugin, by emitting a wanted constraint whose predicate is obtained from ¹.A – will still need to be provided in order to inform GHC of the origin of the error (e.g.: which part of the source code should be highlighted?). See .•ghc-tcplugin-apiShow the text as is.–ghc-tcplugin-apiPretty print the given type.—ghc-tcplugin-apiPut two messages side by side.˜ghc-tcplugin-apiStack two messages vertically.™ghc-tcplugin-apiÚMonads for type-checking plugins which are able to emit new constraints and throw errors.2These operations are supported by the monads that ¢ and £? use; it is not possible to emit work or throw type errors in ¡ or ¤.See ¹ and - for functions which require this typeclass.šghc-tcplugin-apiA š* is essentially a reader monad over GHC's  monad.This means we have both a lift and an unlift operation, similar to  MonadUnliftIO or MonadBaseControl.See for instance ·Ô, which is an example of function that one would not be able to write using only a lift operation.“Note that you must import the internal module in order to access the methods. Please report a bug if you find yourself needing this functionality.›ghc-tcplugin-apiLift a computation from GHC's î monad.œghc-tcplugin-apiLift a computation from the  monad.ghc-tcplugin-apiUnlift a computation from the  monad.âIf this type signature seems confusing, I recommend reading Alexis King's excellent blog post on MonadBaseControl: Ìhttps://lexi-lambda.github.io/blog/2019/09/07/demystifying-monadbasecontrol/Demystifying MonadBaseControlžghc-tcplugin-api?The monad used for a type-checker plugin, parametrised by the § of the plugin.Ÿghc-tcplugin-apiòA record containing all the stages necessary for the operation of a type-checking plugin, as defined in this API.Note1: this is not the same record as GHC's built-in    record. Use ¸ for the conversion.ÏTo create a type-checking plugin, define something of this type and then call ¸ on the result. This will return something that can be passed to   : ƒplugin :: GHC.Plugins.Plugin plugin = GHC.Plugins.defaultPlugin { GHC.Plugins.tcPlugin = \ args -> Just $ GHC.TcPlugin.API.mkTcPlugin ( myTcPlugin args ) } myTcPlugin :: [String] -> GHC.TcPlugin.API.TcPlugin myTcPlugin args = ...¡ghc-tcplugin-api.Initialise plugin, when entering type-checker.¢ghc-tcplugin-apiSolve some constraints.This function will be invoked at two points in the constraint solving process: once to manipulate given constraints, and once to solve wanted constraints. In the first case (and only in the first case), no wanted constraints will be passed to the plugin. The plugin can either return a contradiction, or specify that it has solved some constraints (with evidence), and possibly emit additional wanted constraints.Use $ \ _ _ _ -> pure $ TcPluginOK [] [] 5 if your plugin does not provide this functionality.£ghc-tcplugin-api+Rewrite saturated type family applications.ðThe plugin is expected to supply a mapping from type family names to rewriting functions. For each type family  «, the plugin should provide a function which takes in the given constraints and arguments of a saturated type family application, and return a possible rewriting. See ¥+ for the expected shape of such a function.Use  const emptyUFM 4 if your plugin does not provide this functionality.¤ghc-tcplugin-api9Clean up after the plugin, when exiting the type-checker.¥ghc-tcplugin-apiöFor rewriting type family applications, a type-checking plugin provides a function of this type for each type family  .±The function is provided with the current set of Given constraints, together with the arguments to the type family. The type family application will always be fully saturated.¦ghc-tcplugin-apiThe solveà function of a type-checking plugin takes in Given and Wanted constraints, and should return a ŽÔ indicating which Wanted constraints it could solve, or whether any are insoluble.§ghc-tcplugin-api5Stage of a type-checking plugin, used as a data kind.´ghc-tcplugin-apiOnly available in the solver part of the type-checking plugin.µghc-tcplugin-apiÂAsk for the Derived constraints that the solver was provided with.2Always returns the empty list on GHC 9.4 or above.¶ghc-tcplugin-api*Ask for the current rewriting environment.ÀOnly available in the rewriter part of the type-checking plugin.·ghc-tcplugin-apiÄTake a function whose argument and result types are both within the Î monad, and return a function that works within a type-checking plugin monad.ÆPlease report a bug if you find yourself needing to use this function.¸ghc-tcplugin-apiÁUse this function to create a type-checker plugin to pass to GHC.¹ghc-tcplugin-api4Create an error type with the desired error message. The result can be paired with a 8 in order to throw a type error, for instance by using .¥ghc-tcplugin-apiGivensghc-tcplugin-api!Type family arguments (saturated)¦ghc-tcplugin-apiGivensghc-tcplugin-apiWanteds¸ghc-tcplugin-api.type-checking plugin written with this libraryghc-tcplugin-apitype-checking plugin for GHC&”•–—˜™š›œž²°®¬³±¯­Ÿ ¡£¢¤¥¦§«¨©ª´µ¶·¸¹&š›œ™·Ÿ ¡£¢¤§«¨©ª¦ž²°®¬³±¯­”•–—˜¥¶µ´¸¹—5˜6 Safe-Inferred0ÀÁÂê÷/¾Îghc-tcplugin-apiRun an ï computation within the plugin.Ïghc-tcplugin-api4Output some debugging information within the plugin.Ðghc-tcplugin-api/Lookup a Haskell module from the given package.Ñghc-tcplugin-apiObtain the full internal  , (with its unique identifier, etc) from its .Example usage: +lookupOrig preludeModule ( mkTcOcc "Bool" )This will obtain the   associated with the type ð.You can then call Ò to obtain the associated .Òghc-tcplugin-apiÐLookup a type constructor from its name (datatype, type synonym or type family).Óghc-tcplugin-api#Lookup a data constructor (such as ñ, ò, ...) from its name.Ôghc-tcplugin-api!Lookup a typeclass from its name.Õghc-tcplugin-api2Lookup a global typecheckable-thing from its name.Öghc-tcplugin-apiÚLookup a typecheckable-thing available in a local context, such as a local type variable.×ghc-tcplugin-api.Lookup an identifier, such as a type variable.Øghc-tcplugin-api?Obtain the current global and local type-checking environments.Ùghc-tcplugin-api3Obtain all currently-reachable typeclass instances.Úghc-tcplugin-api:Obtain all currently-reachable data/type family instances.ØFirst result: external instances. Second result: instances in the current home package.Ûghc-tcplugin-api2Ask GHC what a type family application reduces to.Warning$: can cause a loop when used within £.Üghc-tcplugin-apiÇCreate a new unique. Useful for generating new variables in the plugin.Ýghc-tcplugin-apiÄCreate a new meta-variable (unification variable) of the given kind.Þghc-tcplugin-api›Query whether a type variable is touchable: - is it a unification variable (and not a skolem variable)? - is it actually unifiable given the current m?ßghc-tcplugin-apiãZonk the given type, which takes the metavariables in the type and substitutes their actual value.àghc-tcplugin-apiZonk a given constraint.ághc-tcplugin-api Create a new derived constraint.¹Requires a location (so that error messages can say where the constraint came from, what things were in scope at that point, etc), as well as the actual constraint (encoded as a type).âghc-tcplugin-api*Create a new derived constraint. See also á.ãghc-tcplugin-apiCreate a new given constraint.Unlike á and â2, we need to supply evidence for this constraint.Use å6 to pass along the location information, as only the w gets taken into account here.äghc-tcplugin-api Obtain the … from a ‡.§This can be useful to obtain the location of the constraint currently being rewritten, so that newly emitted constraints can be given the same location information.åghc-tcplugin-apiöSet the location information for a computation, so that the constraint solver reports an error at the given location.æghc-tcplugin-apiUse the ‡ to set the … for a computation.çghc-tcplugin-api!Create a fresh evidence variable.èghc-tcplugin-apiCreate a fresh coercion hole.éghc-tcplugin-apiBind an evidence variable.êghc-tcplugin-apiÍConjure up a coercion witnessing an equality between two types at the given . (/ or 1).ÁThis amounts to telling GHC "believe me, these things are equal".ÞThe plugin is responsible for not emitting any unsound coercions, such as a coercion between ó and ô.ëghc-tcplugin-apiÌConjure up an evidence term for an equality between two types at the given . (/ or 1).;This can be used to supply a proof of a wanted equality in .àThe plugin is responsible for not emitting any unsound equalities, such as an equality between ó and ô.ìghc-tcplugin-apiÉProvide a rewriting of a saturated type family application at the given . (/ or 1).The result can be passed to ‹À to specify the outcome of rewriting a type family application.Ïghc-tcplugin-api%Text at the top of the debug message.ghc-tcplugin-api%Formatted document to print (use the ' pretty-printing function to obtain an  from any )Ðghc-tcplugin-apiModule name, e.g.  Data.List.ghc-tcplugin-apiPackage name, e.g.  Just "base". Use Nothing for the current home packageêghc-tcplugin-apiÂName of equality (for the plugin's internal use, or for debugging)ghc-tcplugin-apiLHSghc-tcplugin-apiRHSëghc-tcplugin-apiÂName of equality (for the plugin's internal use, or for debugging)ghc-tcplugin-apiLHSghc-tcplugin-apiRHSìghc-tcplugin-api!Name of reduction (for debugging)ghc-tcplugin-apiRole of reduction (/ or 1)ghc-tcplugin-api Type family ghc-tcplugin-apiType family argumentsghc-tcplugin-api4The type that the type family application reduces toñ %& !"#$õö÷øùúûüýþÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄ'()*+,-./012345ÅÆ678Ç9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖbcdefghijklmnopqrstuvרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™wxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™šžŸ ¡£¢¤¥¦§«¨©ªµ¶¸¹ÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìÌŸ ¡£¢¤¸§«¨©ªšžÎ™”•–—˜¹Ðbcdefghijkl-*,+)ÑÒÓÔÕÖ×#¦Ž‘’Ï€PI}{|y~êè2345NK`ëçérqza_ÙáãQOµâåæx¥‰Š‹ŒÛÚ^¶ä‡ìZ[\]ÜÝÞBCLJn(! "M%&:Dßà Ø “67$UVWXYRST8„‚…ƒw†om./01Hsv'utˆpš !"#"$"%&'&(&)&*+ ,-,./01213141516171819:;:<:=:>:?@A@B,C,D,E,FGHIJKLMLNLOLPQRQSQTQUVWVXVY1Z1[1\1]1^1_1`1a1b1c1d1e1f1g1h1i:j:k:l:m:n:oQpqrqsqtquqvqwqxqyqzq{|}|}|~|€@‚ƒ4ƒ8„…„†„‡„ˆ„‰„Š„‹„Œ„„Ž„‘’“” •–—–˜–™–š–›–œžŸ ¡¢£¤¥¦§¨©ª«¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹º»¼½¾¿ÀÁÂÃÄ  ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘ Ä’“”’“•’“–—˜’“™’“š›œ››ž›Ÿ› ›¡›¢›£›¤›¥›¦›§›¨›©›ª›«›¬›­›®›¯›°›±›²›³›´›µ›¶›·›¸›¹›º›»›¼›½›¾›¿›À›Á›Â›Ã›Ä›Å›Æ›Ç›È›É›Ê›Ë›Ì›Í›Î›Ï›Ð›Ñ›Ò›Ó›Ô›Õ›Ö›×›Ø›Ù›Ú›Û›Ü›Ý›Þ›ß›à›á›â›ã›ä›å›æ›ç›è›é›ê›ëìíìî ï›ð›ñ›ò›ó›ô›õ›ö›÷›ø›ù›ú›û›ü›ý›þ›ÿ›€››‚›ƒ›„›…›†›‡›ˆ›‰›Š›‹›Œ››Ž›››‘›’›“›”›•›–›—›˜›™›š›››œ››ž›Ÿ› ›¡›¢›£›¤›¥›¦›§›¨›©›ª›«›¬›­›®›¯›°›±›²›³›´›µ›¶›·›¸›¹›º›»›¼›½›¾›¿›À›Á›Â›Ã›Ä›Å›Æ›Ç›È›É›Ê›Ë›Ì›Í›Î›Ï›Ð›Ñ›Ò›Ó›Ô›Õ›Ö›×›Ø›Ù›Ú›Û›Ü›Ý›Þ›ß›à›á›â›ã›ä›å›æ›ç›è›é›ê›ë›ì›í›î›ï›ð›ñ›ò›ó›ô›õ›ö›÷›ø›ù›ú›û›ü›ýþÿ€€‚€ƒ€„€…€†€‡€ˆ€‰€Š€‹€Œ€€Ž€€€‘€’€“€”€•€–€—€˜€™€š€›€œ€€ž€Ÿ€ €¡€¢€£€¤€¥€¦€§€¨€©€ª€«€¬€­€®€¯€°€±€²€³€´€µ€¶€·€¸€¹€º€»€¼€½€¾€¿€À€Á€Â€ÃÄ ghc-tcplugin-api-0.3.1.0-inplaceGHC.TcPlugin.APIGHC.TcPlugin.API.InternalGHC.Tc.Types.ConstraintCtLoc setCtLocMemitWorkGHC.TcTcM GHC.Tc.TypesTcPlugin GHC.PluginsPluginGHC.Core.TyConTyCon newWantedghcGHC.Utils.OutputableSDocGHC.Unit.Module.Name ModuleNameGHC.Unit.TypesModuleGHC.Data.FastStringfsLit FastStringGHC.Types.Name.OccurrenceOccName OutputablepprGHC.Types.UniqueUniqueGHC.Types.NameNameGHC.Types.Unique.FMemptyUFM listToUFMUniqFMGHC.Types.Unique.DFMelemUDFM lookupUDFMlookupUDFM_DirectlyUniqDFM mkModuleName GHC.Types.Var AnonArgFlagIdGHC.Types.TyThingTyThingGHC.Core.TyCo.Rep mkForAllTy mkFunTyManyCoercionKindMultPredTypeTypeUnivCoProvenance GHC.Core.Type isCoercionTymkAppTy mkTyConApp mkTyConTysplitTyConApp_maybeGHC.Core.DataConpromoteDataConDataConInvisArgVisArgEvVarTcTyVarmkClsOcc mkDataOccmkTcOcc mkTyVarOccmkVarOccGHC.Core.Coercion.AxiomRoleNominalPhantomRepresentationalGHC.Core.CoercionmkReflComkSymCo mkTransComkUnivCoGHC.Core.ClassClass classTyConFunDep mkForAllTysmkFunTymkInvisForAllTys mkInvisFunTymkInvisFunTyManymkInvisFunTysManymkPiTymkPiTys mkScaledFunTy mkTyVarTy mkTyVarTys mkVisFunTymkVisFunTyMany mkVisFunTysmkVisFunTysMany CoercionHoleeqTypegetTyVar_maybeisCoercionTy_maybe isTyVarTymkAppTys mkCoercionTymkPrimEqPredRoleGHC.Core.PredicateclassifyPredType mkClassPredEqRelNomEqReprEqPred ClassPredEqPred ForAllPred IrredPredGHC.Core.Reduction ReductionreductionCoercionreductionReducedTypeGHC.Core.FamInstEnv FamInstEnv classDataConGHC.CoreGHC.Unit.Finder.Types FindResultFound FoundMultiple NoPackageNotFoundfr_mods_hiddenfr_pathsfr_pkgfr_pkgs_hiddenfr_suggestions fr_unusablesGHC.Tc.Utils.TcTypeTcLevelTcTypeGHC.Core.InstEnvInstEnvsTcLclEnvGHC.Tc.Types.EvidenceevCast evCoercionEvBind EvBindsVarEvExprEvTermGHC.Tc.Types.OriginCtOriginbumpCtLocDepthctEqRelctEvExpr ctEvidence ctFlavourctLocctOriginctPredmkNonCanonicalCanEqLHSCt CtEvidence CtFlavourQCInst RewriteEnvTcGblEnvTcPluginRewriteResultTcPluginNoRewriteTcPluginRewriteTotcPluginReductiontcRewriterNewWantedsTcPluginSolveResultTcPluginContradiction TcPluginOktcPluginNewCtstcPluginSolvedCts TcTyThingTcPluginErrorMessageTxt PrintType:|::-:MonadTcPluginWork MonadTcPlugin liftTcPluginM unsafeLiftTcMunsafeWithRunInTcM TcPluginM tcPluginInit tcPluginSolvetcPluginRewrite tcPluginStopTcPluginRewriterTcPluginSolver TcPluginStageInitSolveRewriteStop TcPluginStopM tcPluginStopMTcPluginRewriteMtcPluginRewriteMTcPluginSolveMtcPluginSolveM TcPluginInitM tcPluginInitM askEvBinds askDeriveds askRewriteEnvunsafeLiftThroughTcM mkTcPluginmkTcPluginErrorTy$fMonadTcPluginTcPluginM$fMonadTcPluginTcPluginM0$fMonadTcPluginTcPluginM1$fMonadTcPluginTcPluginM2$fMonadTcPluginWorkTcPluginM$fMonadTcPluginWorkTcPluginM0$fMonadTcPluginWorkTcPluginM1$fMonadTcPluginWorkTcPluginM2$fFunctorTcPluginM$fApplicativeTcPluginM$fMonadTcPluginM$fFunctorTcPluginM0$fApplicativeTcPluginM0$fMonadTcPluginM0$fFunctorTcPluginM1$fApplicativeTcPluginM1$fMonadTcPluginM1$fFunctorTcPluginM2$fApplicativeTcPluginM2$fMonadTcPluginM2 tcPluginIO tcPluginTracefindImportedModule lookupOrig tcLookupTyContcLookupDataCon tcLookupClasstcLookupGlobaltcLookup tcLookupIdgetEnvs getInstEnvsgetFamInstEnvsmatchFam newUnique newFlexiTyVarisTouchableTcPluginM zonkTcTypezonkCt newDerivednewGivenrewriteEnvCtLocsetCtLocRewriteMnewEvVarnewCoercionHole setEvBindmkPluginUnivComkPluginUnivEvTermmkTyFamAppReductionbase GHC.TypeLits ErrorMessageghc-prim GHC.TypesIOBoolTrue GHC.MaybeJustIntFloatGHC.Builtin.TypesaddrRepDataConTy anyTypeOfKindboxedRepDataConTyCon cTupleDataConcTupleDataConNamecTupleSelIdNamecTupleTyConNamecharTycoercibleTyConconstraintKinddoubleElemRepDataConTydoubleRepDataConTyfloatElemRepDataConTyfloatRepDataConTyheqTyConint16ElemRepDataConTyint16RepDataConTyint32ElemRepDataConTyint32RepDataConTyint64ElemRepDataConTyint64RepDataConTyint8ElemRepDataConTyint8RepDataConTyintRepDataConTy integerTylevityTy levityTyConliftedDataConTyliftedDataConTyCon liftedRepTyliftedRepTyConliftedTypeKindliftedTypeKindTyCon listTyCon manyDataConTymanyDataConTyConmkBoxedTupleTymkPromotedListTy multMulTyConmultiplicityTymultiplicityTyCon naturalTy oneDataConTyoneDataConTyConpromotedTupleDataCon runtimeRepTyruntimeRepTyCon sumDataConsumTyCon tupleDataContupleRepDataConTyCon tupleTyContupleTyConNametypeSymbolKindunboxedTupleKindunitTyunliftedDataConTy unliftedRepTyunliftedRepTyConunliftedTypeKindunliftedTypeKindTyConunrestrictedFunTyConvec16DataConTy vec2DataConTyvec32DataConTy vec4DataConTyvec64DataConTy vec8DataConTy vecCountTyCon vecElemTyConvecRepDataConTyConword16ElemRepDataConTyword16RepDataConTyword32ElemRepDataConTyword32RepDataConTyword64ElemRepDataConTyword64RepDataConTyword8ElemRepDataConTyword8RepDataConTywordRepDataConTyGHC.Builtin.Names listTyConKey nilDataConKeyisLiftedTypeKindTyConNameanyTyanyTyConboolTy boolTyCon boolTyConName boolTyCon_RDRboxingDataCon_maybecTupleDataConNames cTupleSelId cTupleTyConcTupleTyConNameArity_maybecTupleTyConNames charDataCon charTyCon charTyConName charTyCon_RDRcoercibleClasscoercibleDataConcoercibleTyConName consDataConconsDataConNameconsDataCon_RDRconstraintKindTyConconstraintKindTyConName doubleDataCondoubleTy doubleTyCondoubleTyConNameeqClass eqDataConeqTyCon eqTyConName eqTyCon_RDR falseDataConfalseDataConId false_RDR filterCTuple floatDataConfloatTy floatTyConfloatTyConNameheqClass heqDataCon heqTyConName intDataConintDataCon_RDRintTyintTyCon intTyConName intTyCon_RDRintegerINDataConintegerINDataConNameintegerIPDataConintegerIPDataConNameintegerISDataConintegerISDataConName integerTyConintegerTyConNameisBuiltInOcc_maybeisCTupleTyConNameisPromotedMaybeTyisPromotedPairType justDataConjustDataConNameliftedRepTyConNameliftedTypeKindTyConName listTyConName listTyCon_RDRmakeRecoveryTyCon manyDataConmanyDataConName maybeTyConmaybeTyConNamemkListTy mkMaybeTymkPromotedMaybeTymkPromotedPairTymkSumTy mkTupleStr mkTupleTy mkTupleTy1mkWiredInIdNamemkWiredInTyConNamemultiplicityTyConNamenaturalNBDataConnaturalNBDataConNamenaturalNSDataConnaturalNSDataConName naturalTyConnaturalTyConName nilDataConnilDataConNamenothingDataConnothingDataConName oneDataCononeDataConName ordEQDataConordEQDataConId ordGTDataConordGTDataConId ordLTDataConordLTDataConId orderingTyCon pairTyConpromotedConsDataConpromotedEQDataConpromotedFalseDataConpromotedGTDataConpromotedJustDataConpromotedLTDataConpromotedNilDataConpromotedNothingDataConpromotedTrueDataConstringTystringTyCon_RDRsumRepDataConTyCon trueDataCon trueDataConIdtrue_RDRtupleDataConNametypeSymbolKindContypeToTypeKindunboxedSumKindunboxedUnitDataCon unboxedUnitTyunboxedUnitTyCon unitDataCon unitDataConId unitTyCon unitTyConKeyunliftedDataConTyConunliftedRepTyConNameunliftedTypeKindTyConNameunrestrictedFunTyConName wiredInTyCons word8DataConword8Ty word8TyCon wordDataConwordTy wordTyCon wordTyConNameGHC.Core.UtilsmkSingleAltCase GHC.Core.MakeaBSENT_ERROR_IDaBSENT_SUM_FIELD_ERROR_IDcastBottomExprerrorIds floatBindingsmkAbsentErrorApp mkBigCoreTupmkBigCoreTupTymkBigCoreVarTupmkBigCoreVarTup1mkBigCoreVarTupTy mkBuildExpr mkCharExpr mkConsExpr mkCoreApp mkCoreApps mkCoreConApps mkCoreLams mkCoreLet mkCoreLets mkCoreTupmkCoreTupBoxity mkCoreUbxSum mkCoreUbxTupmkCoreVarTupTy mkDoubleExpr mkFloatExpr mkFoldrExpr mkIfThenElsemkImpossibleExpr mkIntExpr mkIntExprInt mkIntegerExpr mkJustExpr mkListExpr mkLitRubbish mkNaturalExpr mkNilExpr mkNothingExprmkRuntimeErrorAppmkSmallTupleCasemkSmallTupleSelector mkStringExprmkStringExprFSmkStringExprFSWith mkTupleCasemkTupleSelectormkTupleSelector1mkUncheckedIntExpr mkWildCasemkWildEvBindermkWildValBinder mkWordExprnON_EXHAUSTIVE_GUARDS_ERROR_IDnO_METHOD_BINDING_ERROR_ID pAT_ERROR_IDrEC_CON_ERROR_IDrEC_SEL_ERROR_IDrUNTIME_ERROR_ID sortQuantVars tYPE_ERROR_IDunitExpr wrapFloat wrapFloats FloatBind FloatCaseFloatLet