diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,9 @@
+## 1.0.8.0
+
+* Switch to gauge
+* Relax constraint on `singleton` to `MonoPointed`
+  [#156](https://github.com/snoyberg/mono-traversable/issues/156)
+
 ## 1.0.7.0
 
 * Add `dropPrefix` and `dropSuffix` to `Data.Sequences` [#139](https://github.com/snoyberg/mono-traversable/issues/139)
diff --git a/bench/sorting.hs b/bench/sorting.hs
--- a/bench/sorting.hs
+++ b/bench/sorting.hs
@@ -1,4 +1,4 @@
-import Criterion.Main
+import Gauge.Main
 import Data.Sequences
 import Data.MonoTraversable
 import qualified Data.List
diff --git a/mono-traversable.cabal b/mono-traversable.cabal
--- a/mono-traversable.cabal
+++ b/mono-traversable.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: f22319daf40fc1cd315fbeb748296c892ee860915c82dc6ec2407bc44ace929e
+-- hash: 8d2ffaa5e0c0f8ffb0bfd37a0d3c6982d81376c1b963a04968c8626b0d8be8a4
 
 name:           mono-traversable
-version:        1.0.7.0
+version:        1.0.8.0
 synopsis:       Type classes for mapping, folding, and traversing monomorphic containers
 description:    Please see the README at <https://www.stackage.org/package/mono-traversable>
 category:       Data
@@ -87,7 +87,7 @@
   ghc-options: -Wall -O2
   build-depends:
       base
-    , criterion
+    , gauge
     , mono-traversable
     , mwc-random
     , vector
diff --git a/src/Data/Sequences.hs b/src/Data/Sequences.hs
--- a/src/Data/Sequences.hs
+++ b/src/Data/Sequences.hs
@@ -122,7 +122,7 @@
 -- > 'singleton' 'a' :: 'Vector' 'Char'
 -- 'Data.Vector.fromList' "a"
 -- @
-singleton :: IsSequence seq => Element seq -> seq
+singleton :: MonoPointed seq => Element seq -> seq
 singleton = opoint
 {-# INLINE singleton #-}
 
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -398,7 +398,7 @@
                     -- replace random element or any random value with random new value
                     \x list new -> forAll (elements (x:list)) $ \old ->
                     let seq' = fromListAs list dummy
-                    in replaceElem old new seq' @?= omap (\x -> if x == old then new else x) seq'
+                    in replaceElem old new seq' @?= omap (\x' -> if x' == old then new else x') seq'
 #if MIN_VERSION_QuickCheck(2,8,0)
                 prop "replaceSeq old new === ointercalate new . splitSeq old" $
                     -- replace random subsequence with random new sequence
