interface HelpMicroPrel where alpha :: UniType alpha_tyvar :: TyVar alpha_tyvarU :: Int alpha_tyvars :: [TyVar] applySubstToId :: Subst -> Id -> Id applySubstToTauTy :: Subst -> UniType -> UniType applySubstToThetaTy :: Subst -> [(Class, UniType)] -> [(Class, UniType)] applySubstToTy :: Subst -> UniType -> UniType applyTy :: UniType -> UniType -> UniType applyTyCon :: TyCon -> [UniType] -> UniType applyTyConLazily :: TyCon -> TyCon -> [UniType] -> UniType assocMaybe :: (Eq a) => a -> [(a, b)] -> Labda b bOTTOM_ID :: Id beta_tyvar :: TyVar beta_tyvarU :: Int binTyCon :: TyCon binTyConU :: Int catMaybes :: [Labda a] -> [a] catQuickStrings :: [QuickString] -> QuickString charPrimRelOpTy :: UniType charPrimTy :: UniType charPrimTyCon :: TyCon charPrimTyConU :: Int checkInstanceShape :: UniType -> Labda (TyCon, [TyVar]) chrPrimId :: Id data PprStyle = PprForUser | PprDebug | PprShowAll | PprInterface deriving () data Env a b data GVE data TCE data PrettyRep data PrimitiveOp class AbsSynParam a where hasType :: a -> Bool getType :: a -> UniType isConop :: a -> Bool isAconid :: a -> Bool isAconop :: a -> Bool isAvarid :: a -> Bool isAvarop :: a -> Bool class Outputable a where frc :: a -> Int ppr :: PprStyle -> a -> Int -> Bool -> PrettyRep data Annotations data CLabelInfo data Class data ConFamilySize = SmallConFamily Int | LargeConFamily deriving () data CoreExpr a b data Id = Local Name Unique UniType | Imported Name UniType (Labda (CoreExpr Id Id)) | DataCon Name Int [TyVar] [(Class, UniType)] [UniType] TyCon deriving () data Labda a = Just a | Nothing deriving () data MaybeErr a b = Succeeded a | Failed b deriving () data Name data PrimitiveKind data QuickString data Subst data TyCon = TyConSynonym Name Unique Int [TyVar] UniType | TyConData Name Unique Int [TyVar] ConFamilySize [Id] | TyConBuiltIn Name Unique Int deriving () data TyVar data TyVarOrTyCon = IsTyVar TyVar | IsTyCon TyCon [UniType] deriving () data UniType = UniTyVar TyVar | UniFun UniType UniType | UniData TyCon [UniType] | UniSyn TyCon [UniType] UniType | UniDict Class UniType | UniForall TyVar UniType deriving () data TypecheckedPat data Expr a b data Matches a b data MonoBinds a b data Binds a b data GRHSs a b data UnifyErrContext = PredCtxt (Expr Id TypecheckedPat) | AppCtxt (Expr Id TypecheckedPat) (Expr Id TypecheckedPat) | OpAppCtxt (Expr Id TypecheckedPat) (Expr Id TypecheckedPat) (Expr Id TypecheckedPat) | SectionLAppCtxt (Expr Id TypecheckedPat) (Expr Id TypecheckedPat) | SectionRAppCtxt (Expr Id TypecheckedPat) (Expr Id TypecheckedPat) | CaseCtxt (Expr Id TypecheckedPat) (Matches Id TypecheckedPat) | BranchCtxt (Expr Id TypecheckedPat) (Expr Id TypecheckedPat) | ListCtxt [Expr Id TypecheckedPat] | ConPatCtxt QuickString [TypecheckedPat] | ConOpPatCtxt TypecheckedPat QuickString TypecheckedPat | ListPatCtxt [TypecheckedPat] | MatchPairCtxt (Matches Id TypecheckedPat) (Matches Id TypecheckedPat) | FilterCtxt (Expr Id TypecheckedPat) | GeneratorCtxt TypecheckedPat (Expr Id TypecheckedPat) | GRHSsBranchCtxt (GRHSs Id TypecheckedPat) (GRHSs Id TypecheckedPat) | GRHSsGuardCtxt (Expr Id TypecheckedPat) | RecCtxt [QuickString] (MonoBinds Id TypecheckedPat) | PatMonoBindsCtxt TypecheckedPat (GRHSs Id TypecheckedPat) (Binds Id TypecheckedPat) | MatchCtxt UniType UniType | ArithSeqCtxt [Expr Id TypecheckedPat] | CCallCtxt QuickString [Expr Id TypecheckedPat] deriving () data UnifyErrInfo = DataConMisMatch UniType UniType | UniConMisMatch UniType UniType | TypeRec TyVar UniType | UnifyListMisMatch [UniType] [UniType] deriving () data Unique data UniqueSupply divideDoublePrimId :: Id divideFloatPrimId :: Id divideIntPrimId :: Id divideIntegerPrimId :: Id doublePrim2FloatPrimId :: Id doublePrim2IntPrimId :: Id doublePrimArithOpTy :: UniType doublePrimRelOpTy :: UniType doublePrimTy :: UniType doublePrimTyCon :: TyCon doublePrimTyConU :: Int doublePrimUnaryOpTy :: UniType duplicateLocal :: Id -> Unique -> Id duplicateTyVar :: TyVar -> Unique -> TyVar eRROR_ID :: Id eqCharPrimId :: Id eqDoublePrimId :: Id eqFloatPrimId :: Id eqIntPrimBoolId :: Id eqIntPrimId :: Id eqIntegerPrimId :: Id errorTy :: UniType expandTySyn :: UniType -> UniType extractTyVarsFromTy :: UniType -> [TyVar] extractTyVarsFromTys :: [UniType] -> [TyVar] firstTupleUniqueInt :: Int floatPrim2DoublePrimId :: Id floatPrim2IntPrimId :: Id floatPrimArithOpTy :: UniType floatPrimRelOpTy :: UniType floatPrimTy :: UniType floatPrimTyCon :: TyCon floatPrimTyConU :: Int floatPrimUnaryOpTy :: UniType frcId :: Bool -> Id -> Int frcUniType :: UniType -> Int funResultTy :: UniType -> UniType geCharPrimId :: Id geDoublePrimId :: Id geFloatPrimId :: Id geIntPrimId :: Id geIntegerPrimId :: Id genInstantiateTy :: UniqueSupply -> [(TyVar, UniType)] -> UniType -> (UniqueSupply, UniType) genInstantiateTyUS :: (Env TyVar UniType) -> UniType -> UniqueSupply -> (UniqueSupply, UniType) getClassName :: Class -> Name getClassOps :: Class -> [(QuickString, UniType)] getClassSig :: Class -> (TyVar, [(Class, UniType)], [(QuickString, UniType)]) getClassThetaType :: Class -> [(Class, UniType)] getConstructedTyTycon :: UniType -> TyCon getDataConDeps :: Id -> [TyCon] getDataConFamily :: Id -> [Id] getDataConSig :: Id -> ([TyVar], [(Class, UniType)], [UniType], TyCon) getDataConTag :: Id -> Int getDataConTyCon :: Id -> TyCon getDictClass :: Id -> Class getDictClassType :: Id -> (Class, UniType) getDictTyVar :: Id -> TyVar getDictType :: Id -> UniType getIdAnns :: Id -> Annotations getIdBoundTyVars :: Id -> [TyVar] getIdCLabelInfo :: Id -> CLabelInfo getIdKind :: Id -> PrimitiveKind getIdName :: Id -> Name getIdQuickString :: Id -> QuickString getIdSourceTypes :: Id -> [UniType] getIdTargetType :: Id -> UniType getIdTauType :: Id -> UniType getIdUnfolding :: Id -> Labda (CoreExpr Id Id) getIdUniType :: Id -> UniType getLocalUnique :: Id -> Unique getMentionedTyCons :: TyCon -> [TyCon] getQuickStringStr :: QuickString -> [Char] getReferredToTyCons :: UniType -> [TyCon] getTauType :: UniType -> UniType getTyConArity :: TyCon -> Int getTyConDataCons :: TyCon -> [Id] getTyConName :: TyCon -> Name getTyConTyVars :: TyCon -> [TyVar] getTyVar :: UniType -> TyVar getTyVarMaybe :: UniType -> Labda TyVar getUniDataTyCon :: UniType -> TyCon getUnique :: UniqueSupply -> (UniqueSupply, Unique) getUniques :: Int -> UniqueSupply -> (UniqueSupply, [Unique]) glueTyArgs :: [UniType] -> UniType -> UniType gtCharPrimId :: Id gtDoublePrimId :: Id gtFloatPrimId :: Id gtIntPrimId :: Id gtIntegerPrimId :: Id iMPOSSIBLE_UNIQUE :: Unique idxStringPrimId :: Id initUS :: a -> (a -> (b, c)) -> (b, c) instance AbsSynParam Id instance AbsSynParam Name instance AbsSynParam QuickString instance Eq CLabelInfo instance Eq Class instance Eq Id instance Eq Name instance Eq PrimitiveKind instance Eq QuickString instance Eq TyCon instance Eq TyVar instance Eq UniType instance Eq Unique instance Ord Id instance Ord Name instance Ord QuickString instance Ord TyCon instance Ord TyVar instance Ord Unique instance Outputable Annotations instance Outputable CLabelInfo instance Outputable Class instance Outputable ConFamilySize instance Outputable Id instance Outputable Name instance Outputable PrimitiveKind instance Outputable QuickString instance Outputable TyCon instance Outputable TyVar instance Outputable UniType instance Outputable Unique instance Text Id instance Text Unique instantiateTauTy :: [(TyVar, UniType)] -> UniType -> UniType instantiateThetaTy :: [(TyVar, UniType)] -> [(Class, UniType)] -> [(Class, UniType)] instantiateTy :: [(TyVar, UniType)] -> UniType -> UniType intPrim2DoublePrimId :: Id intPrim2FloatPrimId :: Id intPrim2IntegerPrimId :: Id intPrimArithOpTy :: UniType intPrimRelOpTy :: UniType intPrimTy :: UniType intPrimTyCon :: TyCon intPrimTyConU :: Int intPrimUnaryOpTy :: UniType integerPrim2IntPrimId :: Id integerPrimArithOpTy :: UniType integerPrimRelOpTy :: UniType integerPrimTy :: UniType integerPrimTyCon :: TyCon integerPrimTyConU :: Int integerPrimUnaryOpTy :: UniType ioPrimTy :: UniType ioPrimTyCon :: TyCon ioPrimTyConU :: Int isAbstractTyConData :: TyCon -> Bool isFunType :: UniType -> Bool isGlobalId :: Id -> Bool isTyConBuiltIn :: TyCon -> Bool isTyConData :: TyCon -> Bool isUnboxedType :: UniType -> Bool kindFromType :: UniType -> PrimitiveKind leCharPrimId :: Id leDoublePrimId :: Id leFloatPrimId :: Id leIntPrimId :: Id leIntegerPrimId :: Id listMaybeErrs :: [MaybeErr a b] -> MaybeErr [a] [b] ltCharPrimId :: Id ltDoublePrimId :: Id ltFloatPrimId :: Id ltIntPrimId :: Id ltIntegerPrimId :: Id matchList :: Subst -> [UniType] -> [UniType] -> MaybeErr Subst UnifyErrInfo matchTys :: Subst -> UniType -> UniType -> MaybeErr Subst UnifyErrInfo minusDoublePrimId :: Id minusFloatPrimId :: Id minusIntPrimId :: Id minusIntegerPrimId :: Id mkClass :: Unique -> Name -> TyVar -> [(Class, UniType)] -> [(QuickString, UniType)] -> Class mkClassBottom :: QuickString -> QuickString -> Annotations -> Class mkDataCon :: Name -> UniType -> Id mkDataTy :: TyCon -> [UniType] -> UniType mkDataTyConBottom :: QuickString -> QuickString -> Annotations -> Int -> TyCon mkDictFunId :: Class -> TyCon -> UniType -> Id mkDictFunType :: [TyVar] -> [(Class, UniType)] -> Class -> UniType -> UniType mkDictTy :: Class -> UniType -> UniType mkForallTy :: [TyVar] -> UniType -> UniType mkImported :: Name -> UniType -> (Labda (CoreExpr Id Id)) -> Id mkInternalDataCon :: Name -> Int -> [TyVar] -> [(Class, UniType)] -> [UniType] -> TyCon -> Id mkLocal :: Name -> Unique -> UniType -> Id mkNamedLocal :: QuickString -> Unique -> UniType -> Annotations -> Id mkQuickString :: [Char] -> QuickString mkRenamedLocal :: Name -> Unique -> UniType -> Id mkSigmaTy :: [TyVar] -> [(Class, UniType)] -> UniType -> UniType mkSynTy :: TyCon -> [UniType] -> UniType -> UniType mkSynTyConBottom :: QuickString -> QuickString -> Annotations -> Int -> TyCon mkSysLocal :: [Char] -> Unique -> UniType -> Annotations -> Id mkSysTyVar :: Unique -> TyVar mkTUPLE_ID :: Int -> Id mkTemplateLocals :: [UniType] -> [Id] mkTupleTy :: [UniType] -> UniType mkTupleTyCon :: Int -> TyCon mkTupleTyConAndId :: Int -> (TyCon, Id) mkTyConBuiltIn :: Name -> Unique -> Int -> TyCon mkTyConData :: Name -> Unique -> Int -> [TyVar] -> Int -> [Id] -> TyCon mkTyConSynonym :: Name -> Unique -> Int -> [TyVar] -> UniType -> TyCon mkTyVarTy :: TyVar -> UniType mkUnique :: Int -> Unique mkUniqueSupply :: Int -> UniqueSupply mkUserTyVar :: Unique -> QuickString -> TyVar nanoCoreGVE :: GVE nanoCoreTCE :: TCE neCharPrimId :: Id neDoublePrimId :: Id neFloatPrimId :: Id neIntPrimId :: Id neIntegerPrimId :: Id negateDoublePrimId :: Id negateFloatPrimId :: Id negateIntPrimId :: Id negateIntegerPrimId :: Id noFail :: (Labda a) -> [Char] -> a ordPrimId :: Id pRELUDE :: [Char] pRELUDE_BUILTIN :: [Char] pRELUDE_BUILTIN_Char :: ([Char], [Char]) pRELUDE_BUILTIN_Double :: ([Char], [Char]) pRELUDE_BUILTIN_Float :: ([Char], [Char]) pRELUDE_BUILTIN_Int :: ([Char], [Char]) pRELUDE_BUILTIN_Integer :: ([Char], [Char]) pRELUDE_BUILTIN_List :: ([Char], [Char]) pRELUDE_BUILTIN_Tuple0 :: ([Char], [Char]) pRELUDE_BUILTIN_Tuple2 :: ([Char], [Char]) pRELUDE_CORE :: [Char] pRELUDE_CORE_Bool :: ([Char], [Char]) pRELUDE_CORE_Enum :: ([Char], [Char]) pRELUDE_CORE_Eq :: ([Char], [Char]) pRELUDE_CORE_Fractional :: ([Char], [Char]) pRELUDE_CORE_Integral :: ([Char], [Char]) pRELUDE_CORE_Num :: ([Char], [Char]) pRELUDE_CORE_Ord :: ([Char], [Char]) pRELUDE_CORE_Real :: ([Char], [Char]) pRELUDE_RATIO :: [Char] pRELUDE_RATIO_Ratio :: ([Char], [Char]) pRELUDE_TEXT :: [Char] pRELUDE_TEXT_Text :: ([Char], [Char]) packStringPrimId :: Id pcAnns :: Annotations pcBasicArithBinOp :: [Char] -> UniType -> Id -> Id -> Id pcBasicArithUnaryOp :: [Char] -> UniType -> Id -> Id -> Id pcBasicRelBinOp :: [Char] -> UniType -> Id -> Id -> Id pcBasicRelBinOpInnerCase :: Id -> Id -> Id -> CoreExpr Id Id pcBuiltinTyCon :: Int -> [Char] -> [Char] -> Int -> TyCon pcDataCon :: [Char] -> [Char] -> UniType -> Id pcDataTyCon :: Int -> [Char] -> [Char] -> Int -> [TyVar] -> [Id] -> TyCon pcDictFunName :: ([Char], [Char]) -> ([Char], [Char]) -> Name pcDictSelectorName :: [Char] -> [Char] -> Name pcExternalName :: [Char] -> [Char] -> Name pcGlobal :: [Char] -> [Char] -> UniType -> Id pcInstance :: ([Char], [Char]) -> ([Char], [Char]) -> UniType -> Id pcMethod :: Name -> [Char] -> UniType -> Id pcPrim :: [Char] -> UniType -> PrimitiveOp -> Id pcPrimPredicate :: [Char] -> UniType -> Id -> Id plusDoublePrimId :: Id plusFloatPrimId :: Id plusIntPrimId :: Id plusIntegerPrimId :: Id pprParendUniType :: PprStyle -> UniType -> Int -> Bool -> PrettyRep pprUniType :: PprStyle -> UniType -> Int -> Bool -> PrettyRep remIntPrimId :: Id remIntegerPrimId :: Id removeTyConDataCons :: TyCon -> TyCon returnUS :: a -> UniqueSupply -> (UniqueSupply, a) sourceTypes :: UniType -> [UniType] splitMultiType :: UniType -> ([[TyVar]], [[(Class, UniType)]], UniType) splitThetaType :: UniType -> (Class, UniType) splitTyArgs :: UniType -> ([UniType], UniType) splitType :: UniType -> ([TyVar], [(Class, UniType)], UniType) stringPrimTy :: UniType stringPrimTyCon :: TyCon stringPrimTyConU :: Int targetType :: UniType -> UniType thenUS :: (UniqueSupply -> (UniqueSupply, a)) -> (a -> UniqueSupply -> (UniqueSupply, b)) -> UniqueSupply -> (UniqueSupply, b) thenUSs :: [UniqueSupply -> (UniqueSupply, a)] -> UniqueSupply -> (UniqueSupply, [a]) timesDoublePrimId :: Id timesFloatPrimId :: Id timesIntPrimId :: Id timesIntegerPrimId :: Id tuple0TyCon :: TyCon tuple2TyCon :: TyCon tyVarOrTyCon :: UniType -> TyVarOrTyCon type Arity = Int type ClassName = QuickString type ClassOp = (QuickString, UniType) type ClassOps = [(QuickString, UniType)] type ConName = QuickString type ConTag = Int type DictFun = Id type DictVar = Id type ModuleName = QuickString type RhoType = UniType type SigmaType = UniType type TauType = UniType type ThetaType = [(Class, UniType)] type TyConName = QuickString type TyVarName = QuickString type USap a = UniqueSupply -> (UniqueSupply, a) type VarName = QuickString typeWithOneDataCon :: UniType -> Bool uniformSCCs :: [[TyCon]] -> [Bool] unifyList :: Subst -> [UniType] -> [UniType] -> MaybeErr Subst UnifyErrInfo unifyTys :: Subst -> UniType -> UniType -> MaybeErr Subst UnifyErrInfo verifyTauTy :: UniType -> UniType zeroTy :: UniType zeroTyCon :: TyCon zeroTyConU :: Int