summaryrefslogtreecommitdiff
blob: a48815ecda0eedb2fe6fa929b07d889382c25ca8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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