summaryrefslogtreecommitdiff
path: root/libraries/base/GHC/Base.lhs
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2009-04-24 12:53:20 +0000
committerIan Lynagh <igloo@earth.li>2009-04-24 12:53:20 +0000
commit3a8892cf1086da01b9aabaf6e87c192f75b0e5d0 (patch)
tree3482b7114758f1dc19e566e6c572c5942f69a6ff /libraries/base/GHC/Base.lhs
parent534875dbe753d567b2c8cc2c1260fd99d19aaa05 (diff)
downloadhaskell-3a8892cf1086da01b9aabaf6e87c192f75b0e5d0.tar.gz
Use a bang pattern when we where/let-bind values with unlifted types
Diffstat (limited to 'libraries/base/GHC/Base.lhs')
-rw-r--r--libraries/base/GHC/Base.lhs14
1 files changed, 7 insertions, 7 deletions
diff --git a/libraries/base/GHC/Base.lhs b/libraries/base/GHC/Base.lhs
index 3d6140f6fe..4c47992cdd 100644
--- a/libraries/base/GHC/Base.lhs
+++ b/libraries/base/GHC/Base.lhs
@@ -753,7 +753,7 @@ x# `modInt#` y#
(x# <# 0#) && (y# ># 0#) = if r# /=# 0# then r# +# y# else 0#
| otherwise = r#
where
- r# = x# `remInt#` y#
+ !r# = x# `remInt#` y#
\end{code}
Definitions of the boxed PrimOps; these will be
@@ -801,8 +801,8 @@ gcdInt (I# a) (I# b) = g a b
absInt x = if x <# 0# then negateInt# x else x
- absA = absInt a
- absB = absInt b
+ !absA = absInt a
+ !absB = absInt b
negateInt :: Int -> Int
negateInt (I# x) = I# (negateInt# x)
@@ -935,7 +935,7 @@ unpackCString# addr
| ch `eqChar#` '\0'# = []
| otherwise = C# ch : unpack (nh +# 1#)
where
- ch = indexCharOffAddr# addr nh
+ !ch = indexCharOffAddr# addr nh
unpackAppendCString# :: Addr# -> [Char] -> [Char]
{-# NOINLINE unpackAppendCString# #-}
@@ -947,7 +947,7 @@ unpackAppendCString# addr rest
| ch `eqChar#` '\0'# = rest
| otherwise = C# ch : unpack (nh +# 1#)
where
- ch = indexCharOffAddr# addr nh
+ !ch = indexCharOffAddr# addr nh
unpackFoldrCString# :: Addr# -> (Char -> a -> a) -> a -> a
{-# NOINLINE [0] unpackFoldrCString# #-}
@@ -965,7 +965,7 @@ unpackFoldrCString# addr f z
| ch `eqChar#` '\0'# = z
| otherwise = C# ch `f` unpack (nh +# 1#)
where
- ch = indexCharOffAddr# addr nh
+ !ch = indexCharOffAddr# addr nh
unpackCStringUtf8# :: Addr# -> [Char]
unpackCStringUtf8# addr
@@ -990,7 +990,7 @@ unpackCStringUtf8# addr
(ord# (indexCharOffAddr# addr (nh +# 3#)) -# 0x80#))) :
unpack (nh +# 4#)
where
- ch = indexCharOffAddr# addr nh
+ !ch = indexCharOffAddr# addr nh
unpackNBytes# :: Addr# -> Int# -> [Char]
unpackNBytes# _addr 0# = []