import FastString
import Outputable
import StaticFlags
-import Util
#if defined(__GLASGOW_HASKELL__)
--just for implementing a fast [0,61) -> Char function
mkUnique c i
= MkUnique (tag `bitOrFastInt` bits)
where
- tag = fastOrd (cUnbox c) `shiftLFastInt` _ILIT(24)
- bits = iUnbox i `bitAndFastInt` _ILIT(16777215){-``0x00ffffff''-}
+ !tag = fastOrd (cUnbox c) `shiftLFastInt` _ILIT(24)
+ !bits = iUnbox i `bitAndFastInt` _ILIT(16777215){-``0x00ffffff''-}
unpkUnique (MkUnique u)
= let
\begin{code}
pprUnique :: Unique -> SDoc
pprUnique uniq
- | debugIsOn || opt_SuppressUniques
+ | opt_SuppressUniques
= empty -- Used exclusively to suppress uniques so you
| otherwise -- can compare output easily
= case unpkUnique uniq of
#if defined(__GLASGOW_HASKELL__)
--then FastInt == Int#
chooseChar62 n = C# (indexCharOffAddr# chars62 n)
- chars62 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"#
+ !chars62 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"#
#else
--Haskell98 arrays are portable
chooseChar62 n = (!) chars62 n