[project @ 1996-01-11 14:06:51 by partain]
[ghc-hetmet.git] / ghc / compiler / uniType / UniTyFuns.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface UniTyFuns where
3 import Bag(Bag)
4 import CharSeq(CSeq)
5 import Class(Class, ClassOp)
6 import CmdLineOpts(GlobalSwitch)
7 import Id(Id)
8 import IdEnv(IdEnv(..))
9 import InstEnv(InstTemplate)
10 import Maybes(Labda)
11 import NameTypes(FullName, ShortName)
12 import PreludePS(_PackedString)
13 import Pretty(Delay, PprStyle, PrettyRep)
14 import PrimKind(PrimKind)
15 import SimplEnv(UnfoldingDetails)
16 import TyCon(TyCon)
17 import TyVar(TyVar, TyVarTemplate)
18 import TyVarEnv(TyVarEnv(..), TypeEnv(..))
19 import UniType(UniType)
20 import UniqFM(UniqFM)
21 import Unique(Unique, UniqueSupply)
22 data Bag a 
23 data Class 
24 type IdEnv a = UniqFM a
25 data Labda a 
26 data PprStyle 
27 data PrettyRep 
28 data PrimKind 
29 data UnfoldingDetails 
30 data TyCon 
31 data TyVar 
32 data TyVarTemplate 
33 type TyVarEnv a = UniqFM a
34 type TypeEnv = UniqFM UniType
35 data UniType 
36 data UniqFM a 
37 data UniqueSupply 
38 applyNonSynTyCon :: TyCon -> [UniType] -> UniType
39 applySynTyCon :: TyCon -> [UniType] -> UniType
40 applyTy :: UniType -> UniType -> UniType
41 applyTyCon :: TyCon -> [UniType] -> UniType
42 applyTypeEnvToThetaTy :: UniqFM UniType -> [(a, UniType)] -> [(a, UniType)]
43 applyTypeEnvToTy :: UniqFM UniType -> UniType -> UniType
44 cmpUniTypeMaybeList :: [Labda UniType] -> [Labda UniType] -> Int#
45 expandVisibleTySyn :: UniType -> UniType
46 extractTyVarTemplatesFromTy :: UniType -> [TyVarTemplate]
47 extractTyVarsFromTy :: UniType -> [TyVar]
48 extractTyVarsFromTys :: [UniType] -> [TyVar]
49 funResultTy :: UniType -> Int -> UniType
50 getMentionedTyCons :: TyCon -> [TyCon]
51 getMentionedTyConsAndClassesFromClass :: Class -> (Bag TyCon, Bag Class)
52 getMentionedTyConsAndClassesFromTyCon :: TyCon -> (Bag TyCon, Bag Class)
53 getMentionedTyConsAndClassesFromUniType :: UniType -> (Bag TyCon, Bag Class)
54 getTauType :: UniType -> UniType
55 getTyVar :: [Char] -> UniType -> TyVar
56 getTyVarMaybe :: UniType -> Labda TyVar
57 getTyVarTemplateMaybe :: UniType -> Labda TyVarTemplate
58 getTypeString :: UniType -> [_PackedString]
59 getUniDataSpecTyCon :: UniType -> (TyCon, [UniType], [Id])
60 getUniDataSpecTyCon_maybe :: UniType -> Labda (TyCon, [UniType], [Id])
61 getUniDataTyCon :: UniType -> (TyCon, [UniType], [Id])
62 getUniDataTyCon_maybe :: UniType -> Labda (TyCon, [UniType], [Id])
63 getUniTyDescription :: UniType -> [Char]
64 glueTyArgs :: [UniType] -> UniType -> UniType
65 instanceIsExported :: Class -> UniType -> Bool -> Bool
66 isDictTy :: UniType -> Bool
67 isForAllTy :: UniType -> Bool
68 isFunType :: UniType -> Bool
69 isGroundOrTyVarTy :: UniType -> Bool
70 isGroundTy :: UniType -> Bool
71 isLeakFreeType :: [TyCon] -> UniType -> Bool
72 isPrimType :: UniType -> Bool
73 isTauTy :: UniType -> Bool
74 isTyVarTemplateTy :: UniType -> Bool
75 isTyVarTy :: UniType -> Bool
76 isUnboxedDataType :: UniType -> Bool
77 kindFromType :: UniType -> PrimKind
78 mapOverTyVars :: (TyVar -> UniType) -> UniType -> UniType
79 matchTy :: UniType -> UniType -> Labda [(TyVarTemplate, UniType)]
80 maybeBoxedPrimType :: UniType -> Labda (Id, UniType)
81 maybePurelyLocalClass :: Class -> Labda [Int -> Bool -> PrettyRep]
82 maybePurelyLocalTyCon :: TyCon -> Labda [Int -> Bool -> PrettyRep]
83 maybePurelyLocalType :: UniType -> Labda [Int -> Bool -> PrettyRep]
84 maybeUnpackFunTy :: UniType -> Labda (UniType, UniType)
85 mkSuperDictSelType :: Class -> Class -> UniType
86 pprClassOp :: PprStyle -> ClassOp -> Int -> Bool -> PrettyRep
87 pprIfaceClass :: (GlobalSwitch -> Bool) -> (Id -> Id) -> UniqFM UnfoldingDetails -> Class -> Int -> Bool -> PrettyRep
88 pprMaybeTy :: PprStyle -> Labda UniType -> Int -> Bool -> PrettyRep
89 pprParendUniType :: PprStyle -> UniType -> Int -> Bool -> PrettyRep
90 pprTyCon :: PprStyle -> TyCon -> [[Labda UniType]] -> Int -> Bool -> PrettyRep
91 pprUniType :: PprStyle -> UniType -> Int -> Bool -> PrettyRep
92 returnsRealWorld :: UniType -> Bool
93 showTyCon :: PprStyle -> TyCon -> [Char]
94 showTypeCategory :: UniType -> Char
95 specMaybeTysSuffix :: [Labda UniType] -> _PackedString
96 specialiseTy :: UniType -> [Labda UniType] -> Int -> UniType
97 splitDictType :: UniType -> (Class, UniType)
98 splitForalls :: UniType -> ([TyVarTemplate], UniType)
99 splitTyArgs :: UniType -> ([UniType], UniType)
100 splitType :: UniType -> ([TyVarTemplate], [(Class, UniType)], UniType)
101 splitTypeWithDictsAsArgs :: UniType -> ([TyVarTemplate], [UniType], UniType)
102 typeMaybeString :: Labda UniType -> [_PackedString]
103 unDictifyTy :: UniType -> UniType
104