{-# GHC_PRAGMA INTERFACE VERSION 5 #-} interface UniType where import Class(Class) import Maybes(Labda) import NameTypes(ShortName) import Outputable(Outputable) import TyCon(TyCon) import TyVar(TyVar, TyVarTemplate) import Unique(Unique) data Class type InstTyEnv = [(TyVarTemplate, UniType)] data Labda a type RhoType = UniType type SigmaType = UniType type TauType = UniType type ThetaType = [(Class, UniType)] data TyCon data TyVar data TyVarTemplate data UniType = UniTyVar TyVar | UniFun UniType UniType | UniData TyCon [UniType] | UniSyn TyCon [UniType] UniType | UniDict Class UniType | UniTyVarTemplate TyVarTemplate | UniForall TyVarTemplate UniType alpha :: UniType alpha_ty :: UniType beta :: UniType beta_ty :: UniType cmpUniType :: Bool -> UniType -> UniType -> Int# delta :: UniType delta_ty :: UniType epsilon :: UniType epsilon_ty :: UniType gamma :: UniType gamma_ty :: UniType instantiateTauTy :: [(TyVarTemplate, UniType)] -> UniType -> UniType instantiateThetaTy :: [(TyVarTemplate, UniType)] -> [(Class, UniType)] -> [(Class, UniType)] instantiateTy :: [(TyVarTemplate, UniType)] -> UniType -> UniType mkDictTy :: Class -> UniType -> UniType mkForallTy :: [TyVarTemplate] -> UniType -> UniType mkRhoTy :: [(Class, UniType)] -> UniType -> UniType mkSigmaTy :: [TyVarTemplate] -> [(Class, UniType)] -> UniType -> UniType mkTyVarTemplateTy :: TyVarTemplate -> UniType mkTyVarTy :: TyVar -> UniType quantifyTy :: [TyVar] -> UniType -> ([TyVarTemplate], UniType) instance Eq UniType instance Outputable UniType