diff --git a/quiver-sort.cabal b/quiver-sort.cabal
--- a/quiver-sort.cabal
+++ b/quiver-sort.cabal
@@ -1,5 +1,5 @@
 name:                quiver-sort
-version:             0.2.0.0
+version:             0.2.0.1
 synopsis:            Sort the values in a quiver
 description:
   Allows sorting values within a Quiver, including using external
@@ -14,7 +14,7 @@
                    , stack.yaml
 cabal-version:       >=1.10
 
-tested-with:   GHC == 7.10.2, GHC == 7.11.*
+tested-with:   GHC == 7.10.2, GHC == 8.0.1, GHC == 8.1.*
 
 source-repository head
     type:         git
@@ -23,12 +23,12 @@
 library
   exposed-modules:     Control.Quiver.Sort
   -- other-modules:
-  build-depends:       base >=4.8 && <4.9
+  build-depends:       base >=4.8 && <4.10
                      , containers
                      , directory
                      , exceptions
                      , quiver >= 1.1.3 && < 1.2
-                     , quiver-binary >= 0.1.1.0 && < 0.1.2
+                     , quiver-binary >= 0.1.1.0 && < 0.2
                      , quiver-bytestring == 1.0.*
                      , quiver-groups == 0.1.*
                      , quiver-instances == 0.2.*
@@ -55,10 +55,9 @@
                      , temporary
                      , transformers
 
-                     , QuickCheck >= 2.5 && < 2.9
-                     , hspec >= 2.1 && < 2.3
+                     , QuickCheck >= 2.5 && < 2.10
+                     , hspec >= 2.1 && < 2.4
   hs-source-dirs:      test
   default-language:    Haskell2010
 
   ghc-options:         -Wall
-  ghc-prof-options:    -prof -auto
diff --git a/src/Control/Quiver/Sort.hs b/src/Control/Quiver/Sort.hs
--- a/src/Control/Quiver/Sort.hs
+++ b/src/Control/Quiver/Sort.hs
@@ -38,16 +38,16 @@
 import           Control.Applicative          (liftA2)
 import           Control.Exception            (IOException)
 import           Control.Monad                (join)
-import           Control.Monad.Catch          (MonadCatch (..), MonadMask,
+import           Control.Monad.Catch          (MonadCatch(..), MonadMask,
                                                finally)
-import           Control.Monad.IO.Class       (MonadIO (..))
+import           Control.Monad.IO.Class       (MonadIO(..))
 import           Control.Monad.Trans.Resource (MonadResource, allocate)
 import           Data.Bool                    (bool)
 import           Data.Coerce                  (coerce)
 import           Data.Foldable                (toList)
 import           Data.Function                (on)
 import           Data.List                    (sortBy)
-import           Data.Monoid                  (First (..), (<>))
+import           Data.Monoid                  (First(..), (<>))
 import           Data.Sequence                (Seq, (|>))
 import qualified Data.Sequence                as S
 import           System.Directory             (doesDirectoryExist,
@@ -218,6 +218,7 @@
     readSize = 4096
 
 -- Just to make it nicer to pattern-match
+pattern Empty :: Seq a
 pattern Empty <- (S.viewl -> S.EmptyL)
 
 spTraverseUntil :: (Monad m) => (a -> m (Either e b)) -> SP a b m e
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -54,7 +54,7 @@
 spToList = spfoldr (:) []
 
 spIdentity :: SQ a b Identity c -> c
-spIdentity = runIdentity . sprun
+spIdentity q = runIdentity (sprun q)
 
 spIdentityList :: SQ a b Identity e -> [a] -> [b]
 spIdentityList p as = spIdentity (spList p as)
