diff --git a/Data/RangeSet/List.hs b/Data/RangeSet/List.hs
--- a/Data/RangeSet/List.hs
+++ b/Data/RangeSet/List.hs
@@ -96,8 +96,9 @@
 
 -- | /O(n)/. Is the element in the set?
 member :: (Ord a, Enum a) => a -> RSet a -> Bool
-member x (RSet xs) = any f xs
+member x (RSet xs) = any f $ takeWhile g xs
   where f (a, b) = a <= x && x <= b
+        g (a,_) = a <= x
 
 -- | /O(n)/. Is the element not in the set?
 notMember :: (Ord a, Enum a) => a -> RSet a -> Bool
diff --git a/range-set-list.cabal b/range-set-list.cabal
--- a/range-set-list.cabal
+++ b/range-set-list.cabal
@@ -1,5 +1,5 @@
 name:                range-set-list
-version:             0.0.2
+version:             0.0.3
 synopsis:            Memory efficient sets with continuous ranges of elements.
 description:         Memory efficient sets with continuous ranges of elements. List based implementation. Interface mimics "Data.Set" interface where possible.
 homepage:            https://github.com/phadej/range-set-list
@@ -33,6 +33,6 @@
   ghc-options:         -Wall
   build-depends:       base >=4.6 && <5,
                        containers >= 0.5 && <0.6,
-                       tasty >= 0.7,
-                       tasty-quickcheck >= 0.3,
+                       tasty >= 0.8,
+                       tasty-quickcheck == 0.8.0.3,
                        range-set-list
diff --git a/tests/Tests.hs b/tests/Tests.hs
--- a/tests/Tests.hs
+++ b/tests/Tests.hs
@@ -10,6 +10,8 @@
 import Control.Applicative
 import Data.Int
 
+import Data.Monoid
+
 main :: IO ()
 main = defaultMain tests
 
@@ -136,7 +138,16 @@
 orderedProp setAction = ordered rs && pairOrdered rs
   where rs = RSet.toRangeList . rangeToRSet $ setAction
 
+-- Monoid laws
+monoidLaws :: TestTree
+monoidLaws = testGroup "MonoidLaws"
+  [ QC.testProperty "left identity"   (\a -> rs a == mempty <> rs a)
+  , QC.testProperty "right identity"  (\a -> rs a == rs a <> mempty)
+  , QC.testProperty "associativity"   (\a b c -> rs a <> (rs b <> rs c) == (rs a <> rs b) <> rs c)
+  ]
+  where rs = rangeToRSet :: RSetAction Int -> RSet Int
 
+-- All QuickCheck properties
 qcProps :: TestTree
 qcProps = testGroup "QuickCheck properties"
   [ QC.testProperty "element operations similar" elementsProp
@@ -145,4 +156,5 @@
   , QC.testProperty "notMember operation similar" notMemberProp
   , QC.testProperty "range operations similar" rangeProp
   , QC.testProperty "ranges remain ordered" orderedProp
+  , monoidLaws
   ]
