diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,9 @@
+0.3.6
+
+Author: Joao Cristovao <jcristovao@gmail.com>
+
+* Added unordered-containers.
+
 0.3.5
 
 Author: Antoine Latter <aslatter@gmail.com>
diff --git a/quickcheck-instances.cabal b/quickcheck-instances.cabal
--- a/quickcheck-instances.cabal
+++ b/quickcheck-instances.cabal
@@ -1,5 +1,5 @@
 Name:                quickcheck-instances
-Version:             0.3.5
+Version:             0.3.6
 Synopsis:            Common quickcheck instances
 Description:         QuickCheck instances.
                      .
@@ -21,7 +21,7 @@
 Maintainer:          aslatter@gmail.com
 Homepage:            https://github.com/aslatter/qc-instances
 Bug-reports:         https://github.com/aslatter/qc-instances/issues
-Copyright:           Copyright Antoine Latter, 2012
+Copyright:           Copyright Antoine Latter, 2012-2014
 Category:            Testing
 Build-type:          Simple
 Extra-source-files:  CHANGES
@@ -40,6 +40,8 @@
                        array >= 0.3 && < 0.6,
                        bytestring >= 0.9 && < 0.11,
                        containers >= 0.3 && < 0.6,
+                       hashable >= 1.1.2.3 && < 1.3,
+                       unordered-containers >= 0.2.1 && < 0.3,
                        old-time >= 1.0 && < 1.2,
                        QuickCheck >= 2.1 && < 2.7,
                        text >= 0.7 && < 1.1,
diff --git a/src/Test/QuickCheck/Instances.hs b/src/Test/QuickCheck/Instances.hs
--- a/src/Test/QuickCheck/Instances.hs
+++ b/src/Test/QuickCheck/Instances.hs
@@ -28,6 +28,7 @@
 import Control.Applicative
 import Data.Foldable (toList)
 import Data.Int (Int32)
+import Data.Hashable
 import Test.QuickCheck
 
 import qualified Data.Array.IArray as Array
@@ -40,6 +41,8 @@
 import qualified Data.Map as Map
 import qualified Data.Sequence as Seq
 import qualified Data.Set as Set
+import qualified Data.HashSet as HS
+import qualified Data.HashMap.Lazy as HML
 import qualified Data.Text as TS
 import qualified Data.Text.Lazy as TL
 import qualified Data.Time as Time
@@ -153,6 +156,20 @@
 instance CoArbitrary a => CoArbitrary (Set.Set a) where
     coarbitrary = coarbitrary . Set.toList
 
+instance (Hashable a, Eq a, Arbitrary a) => Arbitrary (HS.HashSet a) where
+    arbitrary = HS.fromList <$> arbitrary
+    shrink hashset = HS.fromList <$> shrink (HS.toList hashset)
+
+instance CoArbitrary a => CoArbitrary (HS.HashSet a) where
+    coarbitrary = coarbitrary . HS.toList
+
+instance (Hashable k, Eq k, Arbitrary k, Arbitrary v) => Arbitrary (HML.HashMap k v) where
+    arbitrary = HML.fromList <$> arbitrary
+    shrink m = HML.fromList <$> shrink (HML.toList m)
+
+instance (CoArbitrary k, CoArbitrary v) => CoArbitrary (HML.HashMap k v) where
+    coarbitrary = coarbitrary . HML.toList
+
 instance Arbitrary a => Arbitrary (Tree.Tree a) where
     arbitrary = sized $ \n ->
       do val <- arbitrary
@@ -363,9 +380,9 @@
     shrink EQ = []
 
 instance CoArbitrary Ordering where
-    coarbitrary GT = variant 1
-    coarbitrary EQ = variant 0
-    coarbitrary LT = variant (-1)
+    coarbitrary GT = variant (1 :: Integer)
+    coarbitrary EQ = variant (0 :: Integer)
+    coarbitrary LT = variant (-1 :: Integer)
 
 instance Fixed.HasResolution a => Arbitrary (Fixed.Fixed a) where
     arbitrary = arbitrarySizedFractional
