diff --git a/Data/Random/Show/Unsafe.hs b/Data/Random/Show/Unsafe.hs
--- a/Data/Random/Show/Unsafe.hs
+++ b/Data/Random/Show/Unsafe.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeSynonymInstances #-}
+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}
 
 {- |
 Module       : Data.Random.Show.Unsafe
diff --git a/Data/Random/Shuffle/Weighted.hs b/Data/Random/Shuffle/Weighted.hs
--- a/Data/Random/Shuffle/Weighted.hs
+++ b/Data/Random/Shuffle/Weighted.hs
@@ -92,7 +92,7 @@
                             Just ((k2, _), _) -> k2 - k
 
 -- | Generate a CDF map from a weighted list.
-cdfMapFromList :: Num w => [(w, a)] -> M.Map w a
+cdfMapFromList :: (Num w, Eq w) => [(w, a)] -> M.Map w a
 cdfMapFromList = M.fromAscListWith (const id) 
                  . scanl1 (\(w1, _) (w2, x) -> (w1 + w2, x)) 
                  . dropWhile ((==0) . fst)
diff --git a/random-extras.cabal b/random-extras.cabal
--- a/random-extras.cabal
+++ b/random-extras.cabal
@@ -1,7 +1,7 @@
 Name:                random-extras
 
 -- http://www.haskell.org/haskellwiki/Package_versioning_policy
-Version:             0.18.1
+Version:             0.19
 Synopsis:            Additional functions for random values.
 Description:         Additional functions for random values, based on random-fu. Inspired by random-shuffle.
 Homepage:            http://github.com/aristidb/random-extras
@@ -27,9 +27,10 @@
   
   Build-depends:
         base >=4 && <5,
-        containers ==0.3.*,
-        array ==0.3.*,
-        random-fu ==0.1.*
+        containers >=0.3,
+        array >=0.3,
+        random-fu ==0.2.*,
+        random-source ==0.3.*
   
   -- Other-modules:       
   
