projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 2001-10-25 02:13:10 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
7c16614
..
d01b25f
100644
(file)
--- a/
ghc/compiler/prelude/TysPrim.lhs
+++ b/
ghc/compiler/prelude/TysPrim.lhs
@@
-38,6
+38,9
@@
module TysPrim(
foreignObjPrimTyCon, foreignObjPrimTy,
threadIdPrimTyCon, threadIdPrimTy,
foreignObjPrimTyCon, foreignObjPrimTy,
threadIdPrimTyCon, threadIdPrimTy,
+ int32PrimTyCon, int32PrimTy,
+ word32PrimTyCon, word32PrimTy,
+
int64PrimTyCon, int64PrimTy,
word64PrimTyCon, word64PrimTy,
int64PrimTyCon, int64PrimTy,
word64PrimTyCon, word64PrimTy,
@@
-49,7
+52,7
@@
module TysPrim(
import Var ( TyVar, mkSysTyVar )
import Name ( Name )
import PrimRep ( PrimRep(..) )
import Var ( TyVar, mkSysTyVar )
import Name ( Name )
import PrimRep ( PrimRep(..) )
-import TyCon ( TyCon, ArgVrcs, mkPrimTyCon )
+import TyCon ( TyCon, ArgVrcs, mkPrimTyCon, mkLiftedPrimTyCon )
import Type ( mkTyConApp, mkTyConTy, mkTyVarTys, mkTyVarTy,
unliftedTypeKind, liftedTypeKind, openTypeKind, mkArrowKinds
)
import Type ( mkTyConApp, mkTyConTy, mkTyVarTys, mkTyVarTy,
unliftedTypeKind, liftedTypeKind, openTypeKind, mkArrowKinds
)
@@
-74,6
+77,7
@@
primTyCons
, doublePrimTyCon
, floatPrimTyCon
, intPrimTyCon
, doublePrimTyCon
, floatPrimTyCon
, intPrimTyCon
+ , int32PrimTyCon
, int64PrimTyCon
, foreignObjPrimTyCon
, bcoPrimTyCon
, int64PrimTyCon
, foreignObjPrimTyCon
, bcoPrimTyCon
@@
-88,6
+92,7
@@
primTyCons
, statePrimTyCon
, threadIdPrimTyCon
, wordPrimTyCon
, statePrimTyCon
, threadIdPrimTyCon
, wordPrimTyCon
+ , word32PrimTyCon
, word64PrimTyCon
]
\end{code}
, word64PrimTyCon
]
\end{code}
@@
-148,7
+153,7
@@
pcPrimTyCon name arg_vrcs rep
= mkPrimTyCon name kind arity arg_vrcs rep
where
arity = length arg_vrcs
= mkPrimTyCon name kind arity arg_vrcs rep
where
arity = length arg_vrcs
- kind = mkArrowKinds (take arity (repeat liftedTypeKind)) result_kind
+ kind = mkArrowKinds (replicate arity liftedTypeKind) result_kind
result_kind = unliftedTypeKind -- all primitive types are unlifted
pcPrimTyCon0 :: Name -> PrimRep -> TyCon
result_kind = unliftedTypeKind -- all primitive types are unlifted
pcPrimTyCon0 :: Name -> PrimRep -> TyCon
@@
-163,12
+168,18
@@
charPrimTyCon = pcPrimTyCon0 charPrimTyConName CharRep
intPrimTy = mkTyConTy intPrimTyCon
intPrimTyCon = pcPrimTyCon0 intPrimTyConName IntRep
intPrimTy = mkTyConTy intPrimTyCon
intPrimTyCon = pcPrimTyCon0 intPrimTyConName IntRep
+int32PrimTy = mkTyConTy int32PrimTyCon
+int32PrimTyCon = pcPrimTyCon0 int32PrimTyConName Int32Rep
+
int64PrimTy = mkTyConTy int64PrimTyCon
int64PrimTyCon = pcPrimTyCon0 int64PrimTyConName Int64Rep
wordPrimTy = mkTyConTy wordPrimTyCon
wordPrimTyCon = pcPrimTyCon0 wordPrimTyConName WordRep
int64PrimTy = mkTyConTy int64PrimTyCon
int64PrimTyCon = pcPrimTyCon0 int64PrimTyConName Int64Rep
wordPrimTy = mkTyConTy wordPrimTyCon
wordPrimTyCon = pcPrimTyCon0 wordPrimTyConName WordRep
+word32PrimTy = mkTyConTy word32PrimTyCon
+word32PrimTyCon = pcPrimTyCon0 word32PrimTyConName Word32Rep
+
word64PrimTy = mkTyConTy word64PrimTyCon
word64PrimTyCon = pcPrimTyCon0 word64PrimTyConName Word64Rep
word64PrimTy = mkTyConTy word64PrimTyCon
word64PrimTyCon = pcPrimTyCon0 word64PrimTyConName Word64Rep
@@
-208,7
+219,7
@@
RealWorld is deeply magical. It is *primitive*, but it is not
RealWorld; it's only used in the type system, to parameterise State#.
\begin{code}
RealWorld; it's only used in the type system, to parameterise State#.
\begin{code}
-realWorldTyCon = mkPrimTyCon realWorldTyConName liftedTypeKind 0 [] PrimPtrRep
+realWorldTyCon = mkLiftedPrimTyCon realWorldTyConName liftedTypeKind 0 [] PrimPtrRep
realWorldTy = mkTyConTy realWorldTyCon
realWorldStatePrimTy = mkStatePrimTy realWorldTy -- State# RealWorld
\end{code}
realWorldTy = mkTyConTy realWorldTyCon
realWorldStatePrimTy = mkStatePrimTy realWorldTy -- State# RealWorld
\end{code}
@@
-362,7
+373,9
@@
primRepTyCon CharRep = charPrimTyCon
primRepTyCon Int8Rep = charPrimTyCon
primRepTyCon IntRep = intPrimTyCon
primRepTyCon WordRep = wordPrimTyCon
primRepTyCon Int8Rep = charPrimTyCon
primRepTyCon IntRep = intPrimTyCon
primRepTyCon WordRep = wordPrimTyCon
+primRepTyCon Int32Rep = int32PrimTyCon
primRepTyCon Int64Rep = int64PrimTyCon
primRepTyCon Int64Rep = int64PrimTyCon
+primRepTyCon Word32Rep = word32PrimTyCon
primRepTyCon Word64Rep = word64PrimTyCon
primRepTyCon AddrRep = addrPrimTyCon
primRepTyCon FloatRep = floatPrimTyCon
primRepTyCon Word64Rep = word64PrimTyCon
primRepTyCon AddrRep = addrPrimTyCon
primRepTyCon FloatRep = floatPrimTyCon