[project @ 1996-07-25 20:43:49 by partain]
[ghc-hetmet.git] / ghc / compiler / types / TyLoop.lhi
index a97c27d..31e348c 100644 (file)
@@ -7,15 +7,17 @@ import PreludePS(_PackedString)
 import PreludeStdIO ( Maybe )
 import Unique ( Unique )
 
+import FieldLabel ( FieldLabel )
 import Id      ( Id, GenId, StrictnessMark, mkTupleCon, mkDataCon,
-                dataConSig, getInstantiatedDataConSig )
+                isNullaryDataCon, dataConArgTys, idType )
 import PprType ( specMaybeTysSuffix )
-import NameTypes ( FullName )
+import Name    ( Name )
 import TyCon   ( TyCon )
 import TyVar   ( GenTyVar, TyVar )
-import Type    ( GenType, Type )
+import Type    ( splitSigmaTy, splitFunTy, GenType, Type )
 import Usage   ( GenUsage )
 import Class   ( Class, GenClass )
+import TysPrim ( voidTy )
 
 data GenId    ty
 data GenType  tyvar uvar
@@ -30,16 +32,20 @@ type Id        = GenId (GenType (GenTyVar (GenUsage Unique)) Unique)
 
 -- Needed in TyCon
 mkTupleCon :: Int -> Id
-dataConSig :: Id -> ([TyVar], [(Class, Type)], [Type], TyCon)
+isNullaryDataCon :: Id -> Bool
 specMaybeTysSuffix :: [Maybe Type] -> _PackedString
+idType :: Id -> Type
+splitSigmaTy :: GenType t u -> ([t], [(Class,GenType t u)], GenType t u)
+splitFunTy   :: GenType t u -> ([GenType t u], GenType t u)
 instance Eq (GenClass a b)
 
 -- Needed in Type
-getInstantiatedDataConSig :: Id -> [Type] -> ([Type],[Type],Type)
+dataConArgTys :: Id -> [Type] -> [Type]
+voidTy :: Type
 
 -- Needed in TysWiredIn
 data StrictnessMark = MarkedStrict | NotMarkedStrict
-mkDataCon :: Unique -> FullName -> [StrictnessMark]
+mkDataCon :: Name -> [StrictnessMark] -> [FieldLabel]
          -> [TyVar] -> [(Class,Type)] -> [Type] -> TyCon
          -> Id
 \end{code}