[project @ 1996-01-11 14:06:51 by partain]
[ghc-hetmet.git] / ghc / compiler / uniType / UniType.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface UniType where
3 import Class(Class)
4 import Maybes(Labda)
5 import NameTypes(ShortName)
6 import Outputable(Outputable)
7 import TyCon(TyCon)
8 import TyVar(TyVar, TyVarTemplate)
9 import Unique(Unique)
10 data Class 
11 type InstTyEnv = [(TyVarTemplate, UniType)]
12 data Labda a 
13 type RhoType = UniType
14 type SigmaType = UniType
15 type TauType = UniType
16 type ThetaType = [(Class, UniType)]
17 data TyCon 
18 data TyVar 
19 data TyVarTemplate 
20 data UniType   = UniTyVar TyVar | UniFun UniType UniType | UniData TyCon [UniType] | UniSyn TyCon [UniType] UniType | UniDict Class UniType | UniTyVarTemplate TyVarTemplate | UniForall TyVarTemplate UniType
21 alpha :: UniType
22 alpha_ty :: UniType
23 beta :: UniType
24 beta_ty :: UniType
25 cmpUniType :: Bool -> UniType -> UniType -> Int#
26 delta :: UniType
27 delta_ty :: UniType
28 epsilon :: UniType
29 epsilon_ty :: UniType
30 gamma :: UniType
31 gamma_ty :: UniType
32 instantiateTauTy :: [(TyVarTemplate, UniType)] -> UniType -> UniType
33 instantiateThetaTy :: [(TyVarTemplate, UniType)] -> [(Class, UniType)] -> [(Class, UniType)]
34 instantiateTy :: [(TyVarTemplate, UniType)] -> UniType -> UniType
35 mkDictTy :: Class -> UniType -> UniType
36 mkForallTy :: [TyVarTemplate] -> UniType -> UniType
37 mkRhoTy :: [(Class, UniType)] -> UniType -> UniType
38 mkSigmaTy :: [TyVarTemplate] -> [(Class, UniType)] -> UniType -> UniType
39 mkTyVarTemplateTy :: TyVarTemplate -> UniType
40 mkTyVarTy :: TyVar -> UniType
41 quantifyTy :: [TyVar] -> UniType -> ([TyVarTemplate], UniType)
42 instance Eq UniType
43 instance Outputable UniType
44