1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface UniTyFuns where
5 import Class(Class, ClassOp)
6 import CmdLineOpts(GlobalSwitch)
8 import IdEnv(IdEnv(..))
9 import InstEnv(InstTemplate)
11 import NameTypes(FullName, ShortName)
12 import PreludePS(_PackedString)
13 import Pretty(Delay, PprStyle, PrettyRep)
14 import PrimKind(PrimKind)
15 import SimplEnv(UnfoldingDetails)
17 import TyVar(TyVar, TyVarTemplate)
18 import TyVarEnv(TyVarEnv(..), TypeEnv(..))
19 import UniType(UniType)
21 import Unique(Unique, UniqueSupply)
24 type IdEnv a = UniqFM a
33 type TyVarEnv a = UniqFM a
34 type TypeEnv = UniqFM UniType
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