projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 1997-05-26 02:15:54 by sof]
[ghc-hetmet.git]
/
ghc
/
compiler
/
prelude
/
TysPrim.lhs
diff --git
a/ghc/compiler/prelude/TysPrim.lhs
b/ghc/compiler/prelude/TysPrim.lhs
index
08d49a8
..
069f54f
100644
(file)
--- a/
ghc/compiler/prelude/TysPrim.lhs
+++ b/
ghc/compiler/prelude/TysPrim.lhs
@@
-14,16
+14,15
@@
module TysPrim where
IMP_Ubiq(){-uitous-}
import Kind ( mkUnboxedTypeKind, mkBoxedTypeKind, mkTypeKind, mkArrowKind )
IMP_Ubiq(){-uitous-}
import Kind ( mkUnboxedTypeKind, mkBoxedTypeKind, mkTypeKind, mkArrowKind )
-import Name ( mkPrimitiveName )
-import PrelMods ( gHC_BUILTINS )
+import Name ( mkWiredInTyConName )
import PrimRep ( PrimRep(..) ) -- getPrimRepInfo uses PrimRep repn
import PrimRep ( PrimRep(..) ) -- getPrimRepInfo uses PrimRep repn
-import TyCon ( mkPrimTyCon, mkDataTyCon, NewOrData(..) )
-import Type ( mkTyConTy )
+import TyCon ( mkPrimTyCon, mkDataTyCon, SYN_IE(TyCon) )
+import BasicTypes ( NewOrData(..) )
+import Type ( applyTyCon, mkTyVarTys, mkTyConTy, SYN_IE(Type) )
import TyVar ( GenTyVar(..), alphaTyVars )
import TyVar ( GenTyVar(..), alphaTyVars )
-import Type ( applyTyCon, mkTyVarTys )
import Usage ( usageOmega )
import Usage ( usageOmega )
+import PrelMods ( gHC__ )
import Unique
import Unique
-
\end{code}
\begin{code}
\end{code}
\begin{code}
@@
-42,10
+41,10
@@
alphaTys = mkTyVarTys alphaTyVars
pcPrimTyCon :: Unique{-TyConKey-} -> FAST_STRING -> Int -> PrimRep -> TyCon
pcPrimTyCon key str arity primrep
pcPrimTyCon :: Unique{-TyConKey-} -> FAST_STRING -> Int -> PrimRep -> TyCon
pcPrimTyCon key str arity primrep
- = mkPrimTyCon name (mk_kind arity) primrep
+ = the_tycon
where
where
- name = mkPrimitiveName key (OrigName gHC_BUILTINS str)
-
+ name = mkWiredInTyConName key gHC__ str the_tycon
+ the_tycon = mkPrimTyCon name (mk_kind arity) primrep
mk_kind 0 = mkUnboxedTypeKind
mk_kind n = mkTypeKind `mkArrowKind` mk_kind (n-1)
mk_kind 0 = mkUnboxedTypeKind
mk_kind n = mkTypeKind `mkArrowKind` mk_kind (n-1)
@@
-113,17
+112,8
@@
We never manipulate values of type RealWorld; it's only used in the type
system, to parameterise State#.
\begin{code}
system, to parameterise State#.
\begin{code}
-realWorldTy = applyTyCon realWorldTyCon []
-realWorldTyCon
- = mkDataTyCon name mkBoxedTypeKind
- [{-no tyvars-}]
- [{-no context-}]
- [{-no data cons!-}] -- we tell you *nothing* about this guy
- [{-no derivings-}]
- DataType
- where
- name = mkPrimitiveName realWorldTyConKey (OrigName gHC_BUILTINS SLIT("RealWorld"))
-
+realWorldTy = applyTyCon realWorldTyCon []
+realWorldTyCon = mk_no_constr_tycon realWorldTyConKey SLIT("RealWorld")
realWorldStatePrimTy = mkStatePrimTy realWorldTy
\end{code}
realWorldStatePrimTy = mkStatePrimTy realWorldTy
\end{code}
@@
-139,17
+129,21
@@
defined in \tr{TysWiredIn.lhs}, not here.
--
-- ) It's boxed; there is only one value of this
-- type, namely "void", whose semantics is just bottom.
--
-- ) It's boxed; there is only one value of this
-- type, namely "void", whose semantics is just bottom.
-voidTy = mkTyConTy voidTyCon
-
-voidTyCon
- = mkDataTyCon name mkBoxedTypeKind
- [{-no tyvars-}]
- [{-no context-}]
- [{-no data cons!-}]
- [{-no derivings-}]
- DataType
+voidTy = mkTyConTy voidTyCon
+voidTyCon = mk_no_constr_tycon voidTyConKey SLIT("Void")
+\end{code}
+
+\begin{code}
+mk_no_constr_tycon key str
+ = the_tycon
where
where
- name = mkPrimitiveName voidTyConKey (OrigName gHC_BUILTINS SLIT("Void"))
+ name = mkWiredInTyConName key gHC__ str the_tycon
+ the_tycon = mkDataTyCon name mkBoxedTypeKind
+ [{-no tyvars-}]
+ [{-no context-}]
+ [{-no data cons!-}] -- we tell you *nothing* about this guy
+ [{-no derivings-}]
+ DataType
\end{code}
%************************************************************************
\end{code}
%************************************************************************