diff --git a/Data/HashMap/Lazy.hs b/Data/HashMap/Lazy.hs
--- a/Data/HashMap/Lazy.hs
+++ b/Data/HashMap/Lazy.hs
@@ -127,7 +127,7 @@
 lookupDefault def k t = case lookup k t of
                           Just v -> v
                           _      -> def
-{-# INLINE lookupDefault #-}
+{-# INLINABLE lookupDefault #-}
 
 -- | /O(1)/ Construct a map with a single element.
 singleton :: Hashable k => k -> v -> HashMap k v
diff --git a/Data/HashSet.hs b/Data/HashSet.hs
--- a/Data/HashSet.hs
+++ b/Data/HashSet.hs
@@ -136,26 +136,30 @@
 member a s = case H.lookup a (asMap s) of
                Just _ -> True
                _      -> False
-{-# INLINE member #-}
+#if __GLASGOW_HASKELL__ >= 700
+{-# INLINABLE member #-}
+#endif
 
 -- | /O(min(n,W))/ Add the specified value to this set.
 insert :: (Eq a, Hashable a) => a -> HashSet a -> HashSet a
 insert a = HashSet . H.insert a () . asMap
-{-# INLINE insert #-}
+#if __GLASGOW_HASKELL__ >= 700
+{-# INLINABLE insert #-}
+#endif
 
 -- | /O(min(n,W))/ Remove the specified value from this set if
 -- present.
 delete :: (Eq a, Hashable a) => a -> HashSet a -> HashSet a
 delete a = HashSet . H.delete a . asMap
-{-# INLINE delete #-}
+#if __GLASGOW_HASKELL__ >= 700
+{-# INLINABLE delete #-}
+#endif
 
 -- | /O(n)/ Transform this set by applying a function to every value.
 -- The resulting set may be smaller than the source.
 map :: (Hashable b, Eq b) => (a -> b) -> HashSet a -> HashSet b
 map f = fromList . List.map f . toList
-#if __GLASGOW_HASKELL__ >= 700
-{-# INLINABLE map #-}
-#endif
+{-# INLINE map #-}
 
 -- | /O(n)/ Difference of two sets. Return elements of the first set
 -- not existing in the second.
diff --git a/benchmarks/Benchmarks.hs b/benchmarks/Benchmarks.hs
--- a/benchmarks/Benchmarks.hs
+++ b/benchmarks/Benchmarks.hs
@@ -128,6 +128,10 @@
           -- Transformations
         , bench "map" $ whnf (HM.map (\ v -> v + 1)) hmi
 
+          -- * Difference and intersection
+        , bench "difference" $ whnf (HM.difference hmi) hmi2
+        , bench "intersection" $ whnf (HM.intersection hmi) hmi2
+
           -- Folds
         , bench "foldl'" $ whnf (HM.foldl' (+) 0) hmi
         , bench "foldr" $ whnf (HM.foldr (:) []) hmi
diff --git a/benchmarks/Makefile b/benchmarks/Makefile
--- a/benchmarks/Makefile
+++ b/benchmarks/Makefile
@@ -6,11 +6,8 @@
 	lib-suffix :=
 endif
 
-ifdef GHC
-	ghc:= $(GHC)
-else
-	ghc := ghc
-endif
+ghc := ghc
+extra-ghc-flags :=
 
 package := unordered-containers
 version := $(shell awk '/^version:/{print $$2}' ../$(package).cabal)
@@ -19,7 +16,9 @@
 	-package-conf ../dist/package.conf.inplace -package base -package mtl \
 	-package unordered-containers -package containers -package criterion \
 	-package deepseq -package hashable -package random -package bytestring \
-	$(ghc-prof-flags)
+	$(ghc-prof-flags) -rtsopts
+ghc-flags += $(extra-ghc-flags)
+criterion-flags :=
 
 %.o: %.hs
 	$(ghc) $(ghc-flags) -c -o $@ $<
@@ -32,6 +31,10 @@
 bench: $(lib) Benchmarks.o Util/Int.o Util/ByteString.o Util/String.o
 	ranlib $(lib)
 	$(ghc) $(ghc-flags) -threaded -o $@ $(filter %.o,$^) $(lib)
+
+.PHONY: bench-all
+bench-all: bench
+	./bench $(criterion-flags) +RTS -H -RTS `./bench -l | sed 's/ *\(.*\)/\1/' | grep -v "Benchmarks:\|IntMap\|Map"`
 
 .PHONY: clean
 clean:
diff --git a/unordered-containers.cabal b/unordered-containers.cabal
--- a/unordered-containers.cabal
+++ b/unordered-containers.cabal
@@ -1,5 +1,5 @@
 name:           unordered-containers
-version:        0.1.4.3
+version:        0.1.4.4
 synopsis:       Efficient hashing-based container types
 description:
   Efficient hashing-based container types.  The containers have been
@@ -35,7 +35,7 @@
     Data.HashSet
 
   build-depends:
-    base >= 4 && < 4.5,
+    base >= 4 && < 4.6,
     deepseq >= 1.1 && < 1.3,
     hashable >= 1.0.1.1 && < 1.2
 
