diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # lzo
 
+## 0.1.1.4
+
+  * Add `pure` flag to depend on digest-pure if desired
+
 ## 0.1.1.3
 
   * Add `cross` flag for cross-compilation
diff --git a/bench/Bench.hs b/bench/Bench.hs
--- a/bench/Bench.hs
+++ b/bench/Bench.hs
@@ -16,4 +16,3 @@
                   bgroup "decompress/file"
                     [ bench "lzo" $ nfIO (decompressBench "../llvm-9.0.0.src.tar.lzo") ]
                 ]
-
diff --git a/lzo.cabal b/lzo.cabal
--- a/lzo.cabal
+++ b/lzo.cabal
@@ -1,9 +1,9 @@
 cabal-version:      2.0
 name:               lzo
-version:            0.1.1.3
+version:            0.1.1.4
 license:            BSD3
 license-file:       LICENSE
-copyright:          Copyright: (c) 2020 Vanessa McHale
+copyright:          Copyright: (c) 2020, 2022 Vanessa McHale
 maintainer:         vamchale@gmail.com
 author:             Vanessa McHale
 bug-reports:        https://hub.darcs.net/vmchale/sak/issues
@@ -31,6 +31,10 @@
     description: Enable this flag if cross-compiling
     default:     False
 
+flag pure
+    description: Use Haskell digest rather than relying on zlib
+    default:     False
+
 library
     exposed-modules:  Codec.Compression.Lzo
     cc-options:       -O3
@@ -44,13 +48,22 @@
     include-dirs:     cbits
     ghc-options:      -Wall -O2
     build-depends:
-        base >=4.9 && <5,
-        bytestring -any,
-        digest -any,
+        base >=4.10 && <5,
+        bytestring,
+        digest-sig,
         binary >=0.8.3.0
 
+    if flag(pure)
+        build-depends: digest-pure
+        mixins:
+            digest-pure (Data.Digest.Pure.CRC32 as Data.Digest.CRC32, Data.Digest.Pure.Adler32 as Data.Digest.Adler32)
+
+    else
+        build-depends: digest
+        mixins:        digest (Data.Digest.CRC32, Data.Digest.Adler32)
+
     if !flag(cross)
-        build-tool-depends: hsc2hs:hsc2hs -any
+        build-tool-depends: hsc2hs:hsc2hs
 
     if impl(ghc >=8.0)
         ghc-options:
@@ -71,13 +84,13 @@
     main-is:          Spec.hs
     hs-source-dirs:   test
     default-language: Haskell2010
-    ghc-options:      -threaded -rtsopts -with-rtsopts=-N -Wall
+    ghc-options:      -threaded -rtsopts "-with-rtsopts=-N -K1K" -Wall
     build-depends:
-        base -any,
-        lzo -any,
-        tasty -any,
-        tasty-hunit -any,
-        bytestring -any
+        base,
+        lzo,
+        tasty,
+        tasty-hunit,
+        bytestring
 
     if impl(ghc >=8.0)
         ghc-options:
@@ -100,10 +113,10 @@
     default-language: Haskell2010
     ghc-options:      -Wall
     build-depends:
-        base -any,
-        lzo -any,
-        criterion -any,
-        bytestring -any
+        base,
+        lzo,
+        criterion,
+        bytestring
 
     if impl(ghc >=8.0)
         ghc-options:
