| 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 |