diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 1.0.1.1
+
+* Fix typo in rewrite rule
+
 ## 1.0.1
 
 * Add `replaceElem` and `replaceSeq` [#107](https://github.com/snoyberg/mono-traversable/pull/107)
diff --git a/mono-traversable.cabal b/mono-traversable.cabal
--- a/mono-traversable.cabal
+++ b/mono-traversable.cabal
@@ -1,5 +1,5 @@
 name:                mono-traversable
-version:             1.0.1
+version:             1.0.1.1
 synopsis:            Type classes for mapping, folding, and traversing monomorphic containers
 description:         Monomorphic variants of the Functor, Foldable, and Traversable typeclasses. If you understand Haskell's basic typeclasses, you understand mono-traversable. In addition to what you are used to, it adds on an IsSequence typeclass and has code for marking data structures as non-empty.
 homepage:            https://github.com/snoyberg/mono-traversable
@@ -20,7 +20,7 @@
                        Data.Containers
                        Data.Sequences
                        Data.NonNull
-  build-depends:       base >= 4.5 && < 5
+  build-depends:       base >= 4.7 && < 5
                      , containers >= 0.4
                      , unordered-containers >=0.2
                      , hashable
diff --git a/src/Data/MonoTraversable.hs b/src/Data/MonoTraversable.hs
--- a/src/Data/MonoTraversable.hs
+++ b/src/Data/MonoTraversable.hs
@@ -836,7 +836,7 @@
 {-# INLINE [0] onotElem #-}
 
 {-# RULES "strict ByteString elem" oelem = S.elem #-}
-{-# RULES "strict ByteString notElem" oelem = S.notElem #-}
+{-# RULES "strict ByteString notElem" onotElem = S.notElem #-}
 
 {-# RULES "lazy ByteString elem" oelem = L.elem #-}
 {-# RULES "lazy ByteString notElem" oelem = L.notElem #-}
