diff --git a/ghc/lib/std/Directory.lhs b/ghc/lib/std/Directory.lhs index 6ca00295fd4fd19f3314e95a96182a5fb4aed1ac..ab9010e2682de848cc9b0d6a7e533f84b827e171 100644 --- a/ghc/lib/std/Directory.lhs +++ b/ghc/lib/std/Directory.lhs @@ -56,7 +56,7 @@ module Directory import Prelude -- Just to get it in the dependencies -import PrelGHC ( RealWorld, int2Word#, or#, and# ) +import PrelGHC ( RealWorld, or#, and# ) import PrelByteArr ( ByteArray, MutableByteArray, newWordArray, readWordArray, newCharArray, unsafeFreezeByteArray @@ -66,7 +66,7 @@ import PrelIOBase ( stToIO, constructErrorAndFail, constructErrorAndFailWithInfo, IOError(IOError), IOErrorType(SystemError) ) import Time ( ClockTime(..) ) -import PrelAddr ( Addr, nullAddr, Word(..), wordToInt ) +import PrelAddr ( Addr, nullAddr, Word(..), wordToInt, intToWord ) #endif \end{code} @@ -545,8 +545,7 @@ emptyFileMode = primIntToWord 0 unionFileMode = primOrWord intersectFileMode = primAndWord #else ---ToDo: tidy up. -emptyFileMode = W# (int2Word# 0#) +emptyFileMode = intToWord 0 unionFileMode = orWord intersectFileMode = andWord #endif diff --git a/ghc/lib/std/PrelAddr.lhs b/ghc/lib/std/PrelAddr.lhs index 1f61cec4ad0e1001523c4c67a854937ede8234ec..3b9f77d95d5bdce741cd496c069c48ec257fbcee 100644 --- a/ghc/lib/std/PrelAddr.lhs +++ b/ghc/lib/std/PrelAddr.lhs @@ -15,6 +15,7 @@ module PrelAddr ( , Word(..) , wordToInt + , intToWord , Word64(..) , Int64(..) @@ -43,6 +44,9 @@ instance CReturnable Word wordToInt :: Word -> Int wordToInt (W# w#) = I# (word2Int# w#) +intToWord :: Int -> Word +intToWord (I# i#) = W# (int2Word# i#) + #if WORD_SIZE_IN_BYTES == 8 data Word64 = W64# Word# data Int64 = I64# Int#