diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,8 @@
 # Changelog
 
+- 0.1.3 (2025-12-28)
+  * Adds an 'llvm' build flag and tests with GHC 9.10.3.
+
 - 0.1.2 (2025-02-06)
   * Minor bytestring optimizations for shaving off microseconds in
     certain cases.
diff --git a/ppad-hmac-drbg.cabal b/ppad-hmac-drbg.cabal
--- a/ppad-hmac-drbg.cabal
+++ b/ppad-hmac-drbg.cabal
@@ -1,6 +1,6 @@
 cabal-version:      3.0
 name:               ppad-hmac-drbg
-version:            0.1.2
+version:            0.1.3
 synopsis:           HMAC-based deterministic random bit generator
 license:            MIT
 license-file:       LICENSE
@@ -8,12 +8,17 @@
 maintainer:         jared@ppad.tech
 category:           Cryptography
 build-type:         Simple
-tested-with:        GHC == { 9.8.1 }
+tested-with:        GHC == 9.10.3
 extra-doc-files:    CHANGELOG
 description:
   A pure implementation of the HMAC-DRBG CSPRNG, as specified by NIST-SP
   800-90A.
 
+flag llvm
+  description: Use GHC's LLVM backend.
+  default:     False
+  manual:      True
+
 source-repository head
   type:     git
   location: git.ppad.tech/hmac-drbg.git
@@ -23,6 +28,8 @@
   hs-source-dirs:   lib
   ghc-options:
       -Wall
+  if flag(llvm)
+    ghc-options: -fllvm -O2
   exposed-modules:
       Crypto.DRBG.HMAC
   build-depends:
@@ -42,8 +49,8 @@
   build-depends:
       attoparsec
     , base
-    , base16-bytestring
     , bytestring
+    , ppad-base16
     , ppad-hmac-drbg
     , ppad-sha256
     , ppad-sha512
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -129,7 +129,10 @@
     || (c >= 'A' && c <= 'F')
 
 parse_hex :: A.Parser BS.ByteString
-parse_hex = (B16.decodeLenient . B8.pack) <$> A.many1 hex_digit
+parse_hex = (decodeLenient . B8.pack) <$> A.many1 hex_digit where
+  decodeLenient bs = case B16.decode bs of
+    Nothing -> error "bang"
+    Just v -> v
 
 parse_kv :: BS.ByteString -> A.Parser BS.ByteString
 parse_kv k =
