[project @ 1996-01-11 14:06:51 by partain]
[ghc-hetmet.git] / ghc / compiler / uniType / TyCon.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface TyCon where
3 import Class(Class, ClassOp)
4 import Id(DataCon(..), Id)
5 import InstEnv(InstTemplate)
6 import Maybes(Labda)
7 import NameTypes(FullName)
8 import Outputable(NamedThing, Outputable)
9 import PrimKind(PrimKind)
10 import TyVar(TyVar, TyVarTemplate)
11 import UniType(UniType)
12 import Unique(Unique)
13 type Arity = Int
14 data Class 
15 type DataCon = Id
16 data Id 
17 data Labda a 
18 data FullName 
19 data PrimKind 
20 data TyCon   = SynonymTyCon Unique FullName Int [TyVarTemplate] UniType Bool | DataTyCon Unique FullName Int [TyVarTemplate] [Id] [Class] Bool | TupleTyCon Int | PrimTyCon Unique FullName Int ([PrimKind] -> PrimKind) | SpecTyCon TyCon [Labda UniType]
21 data TyVarTemplate 
22 data UniType 
23 data Unique 
24 cmpTyCon :: TyCon -> TyCon -> Int#
25 derivedFor :: Class -> TyCon -> Bool
26 eqTyCon :: TyCon -> TyCon -> Bool
27 getTyConArity :: TyCon -> Int
28 getTyConDataCons :: TyCon -> [Id]
29 getTyConDerivings :: TyCon -> [Class]
30 getTyConFamilySize :: TyCon -> Labda Int
31 getTyConKind :: TyCon -> [PrimKind] -> PrimKind
32 getTyConTyVarTemplates :: TyCon -> [TyVarTemplate]
33 isBigTupleTyCon :: TyCon -> Bool
34 isBoxedTyCon :: TyCon -> Bool
35 isDataTyCon :: TyCon -> Bool
36 isEnumerationTyCon :: TyCon -> Bool
37 isLocalGenTyCon :: TyCon -> Bool
38 isLocalSpecTyCon :: Bool -> TyCon -> Bool
39 isPrimTyCon :: TyCon -> Bool
40 isSynTyCon :: TyCon -> Bool
41 isTupleTyCon :: TyCon -> Bool
42 isVisibleSynTyCon :: TyCon -> Bool
43 maybeCharLikeTyCon :: TyCon -> Labda Id
44 maybeDoubleLikeTyCon :: TyCon -> Labda Id
45 maybeFloatLikeTyCon :: TyCon -> Labda Id
46 maybeIntLikeTyCon :: TyCon -> Labda Id
47 maybeSingleConstructorTyCon :: TyCon -> Labda Id
48 mkDataTyCon :: Unique -> FullName -> Int -> [TyVarTemplate] -> [Id] -> [Class] -> Bool -> TyCon
49 mkPrimTyCon :: Unique -> FullName -> Int -> ([PrimKind] -> PrimKind) -> TyCon
50 mkSpecTyCon :: TyCon -> [Labda UniType] -> TyCon
51 mkSynonymTyCon :: Unique -> FullName -> Int -> [TyVarTemplate] -> UniType -> Bool -> TyCon
52 mkTupleTyCon :: Int -> TyCon
53 instance Eq TyCon
54 instance Ord TyCon
55 instance NamedThing TyCon
56 instance Outputable TyCon
57