blob: a48815ecda0eedb2fe6fa929b07d889382c25ca8 [file] [log] [blame]
diff --git a/Data/Unique/Id.hs b/Data/Unique/Id.hs
index f41127e..56853d9 100644
--- a/Data/Unique/Id.hs
+++ b/Data/Unique/Id.hs
@@ -14,7 +14,7 @@ module Data.Unique.Id (
) where
import GHC.Exts
-import GHC.IOBase ( unsafeDupableInterleaveIO )
+import GHC.IO ( unsafeDupableInterleaveIO )
import Data.IORef
import System.IO.Unsafe ( unsafePerformIO )
@@ -55,15 +55,15 @@ splitIdSupplyL ids = ids1 : splitIdSupplyL ids2
idFromSupply :: IdSupply -> Id
idFromSupply (IdSupply n _ _) = Id (I# n)
-instance Eq Id where Id (I# x) == Id (I# y) = x ==# y
+instance Eq Id where Id (I# x) == Id (I# y) = isTrue# (x ==# y)
instance Ord Id
where
- Id (I# x) < Id (I# y) = x <# y
- Id (I# x) <= Id (I# y) = x <=# y
+ Id (I# x) < Id (I# y) = isTrue# (x <# y)
+ Id (I# x) <= Id (I# y) = isTrue# (x <=# y)
compare (Id (I# x)) (Id (I# y)) =
- if x ==# y then EQ else if x <# y then LT else GT
+ if isTrue# (x ==# y) then EQ else if isTrue# (x <# y) then LT else GT
instance Show Id
where
diff --git a/uniqueid.cabal b/uniqueid.cabal
index 8099520..83aaa39 100644
--- a/uniqueid.cabal
+++ b/uniqueid.cabal
@@ -18,7 +18,7 @@ Build-Type: Simple
Stability: experimental
Library
- Build-Depends: base >= 3 && < 5
+ Build-Depends: base >= 3 && < 5, ghc-prim
Exposed-Modules: Data.Unique.Id
Extensions: MagicHash
Ghc-Options: -Wall