diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,16 @@
 # Revision history for hnix-store-core
 
+## [next](https://github.com/haskell-nix/hnix-store/compare/0.4.0.0...master) 2021-MM-DD
+
+* No changes yet
+
+## [0.4.0.0](https://github.com/haskell-nix/hnix-store/compare/0.3.0.0...0.4.0.0) 2020-12-30
+
+* `System.Nix.Hash` no longer exports `encodeBase16, decodeBase16` and their `Base32` counterparts.
+    These were replaced by `encodeInBase` and `decodeBase` functions
+    accepting `BaseEncoding` data type [#87](https://github.com/haskell-nix/hnix-store/pull/87)
+* Support `base16-bytestring >= 1` [#86](https://github.com/haskell-nix/hnix-store/pull/86) [#100](https://github.com/haskell-nix/hnix-store/pull/100)
+
 ## 0.3.0.0 -- 2020-11-29
 
 * `System.Nix.Nar` changes API to support NAR format streaming:
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,15 +1,14 @@
-hnix-store-core
-=================
+# hnix-store-core
 
 Core effects for interacting with the Nix store.
 
-See `StoreEffects` in [System.Nix.Store] for the available operations
+See `NarEffects` in [System.Nix.Internal.Nar.Effects] and the [System.Nix.StorePath] for the available operations
 on the store.
 
-[System.Nix.Store]: ./src/System/Nix/Store.hs
+[System.Nix.Internal.Nar.Effects]: ./src/System/Nix/Internal/Nar/Effects.hs
+[System.Nix.StorePath]: ./src/System/Nix/StorePath.hs
 
 
-Tests
-======
+# Tests
 
  - `ghcid --command "cabal repl test-suite:format-tests" --test="Main.main"`
diff --git a/hnix-store-core.cabal b/hnix-store-core.cabal
--- a/hnix-store-core.cabal
+++ b/hnix-store-core.cabal
@@ -1,5 +1,5 @@
 name:                hnix-store-core
-version:             0.3.0.1
+version:             0.4.0.0
 synopsis:            Core effects for interacting with the Nix store.
 description:
         This package contains types and functions needed to describe
@@ -13,7 +13,10 @@
 copyright:           2018 Shea Levy
 category:            Nix
 build-type:          Simple
-extra-source-files:  ChangeLog.md, README.md
+extra-source-files:  ChangeLog.md
+                   , README.md
+                   , tests/samples/example0.drv
+                   , tests/samples/example1.drv
 cabal-version:       >=1.10
 
 library
diff --git a/src/System/Nix/Hash.hs b/src/System/Nix/Hash.hs
--- a/src/System/Nix/Hash.hs
+++ b/src/System/Nix/Hash.hs
@@ -12,10 +12,9 @@
   , HNix.hashLazy
   , HNix.mkNamedDigest
 
-  , HNix.encodeBase32
-  , HNix.decodeBase32
-  , HNix.encodeBase16
-  , HNix.decodeBase16
+  , HNix.BaseEncoding(..)
+  , HNix.encodeInBase
+  , HNix.decodeBase
   ) where
 
 import qualified System.Nix.Internal.Hash as HNix
diff --git a/src/System/Nix/Internal/Base32.hs b/src/System/Nix/Internal/Base32.hs
--- a/src/System/Nix/Internal/Base32.hs
+++ b/src/System/Nix/Internal/Base32.hs
@@ -1,16 +1,15 @@
 
 module System.Nix.Internal.Base32 where
 
-import Data.Bits (shiftR)
-import Data.Char (chr, ord)
-import Data.Word (Word8)
-import Data.List (unfoldr)
-import Data.Maybe (isJust, catMaybes)
+import           Data.Maybe             (fromMaybe)
+import           Data.Bits              (shiftR)
+import           Data.Word              (Word8)
+import           Data.List              (unfoldr)
 import qualified Data.ByteString        as BS
 import qualified Data.ByteString.Char8  as BSC
 import qualified Data.Text              as T
 import qualified Data.Vector            as V
-import Numeric (readInt)
+import           Numeric                (readInt)
 
 -- omitted: E O U T
 digits32 = V.fromList "0123456789abcdfghijklmnpqrsvwxyz"
@@ -47,26 +46,29 @@
 
 -- | Decode Nix's base32 encoded text
 decode :: T.Text -> Either String BS.ByteString
-decode what = case T.all (flip elem digits32) what of
-  True  -> unsafeDecode what
-  False -> Left "Invalid base32 string"
+decode what =
+  if T.all (`elem` digits32) what
+    then unsafeDecode what
+    else Left "Invalid base32 string"
 
 -- | Decode Nix's base32 encoded text
 -- Doesn't check if all elements match `digits32`
 unsafeDecode :: T.Text -> Either String BS.ByteString
 unsafeDecode what =
   case readInt 32
-         (flip elem digits32)
-         (\c -> maybe (error "character not in digits32") id $
+         (`elem` digits32)
+         (\c -> fromMaybe (error "character not in digits32") $
                   V.findIndex (==c) digits32)
          (T.unpack what)
     of
       [(i, _)] -> Right $ padded $ integerToBS i
       x        -> Left $ "Can't decode: readInt returned " ++ show x
   where
-    padded x | BS.length x < decLen = x `BS.append`
-      (BSC.pack $ take (decLen - BS.length x) (cycle "\NUL"))
-    padded x | otherwise = x
+    padded x
+      | BS.length x < decLen = x `BS.append` bstr
+      | otherwise = x
+     where
+      bstr = BSC.pack $ take (decLen - BS.length x) (cycle "\NUL")
 
     decLen = T.length what * 5 `div` 8
 
diff --git a/src/System/Nix/Internal/Hash.hs b/src/System/Nix/Internal/Hash.hs
--- a/src/System/Nix/Internal/Hash.hs
+++ b/src/System/Nix/Internal/Hash.hs
@@ -10,6 +10,7 @@
 {-# LANGUAGE DataKinds           #-}
 {-# LANGUAGE OverloadedStrings   #-}
 {-# LANGUAGE ExistentialQuantification #-}
+{-# LANGUAGE CPP #-}
 
 module System.Nix.Internal.Hash where
 
@@ -19,6 +20,7 @@
 import qualified Crypto.Hash.SHA512     as SHA512
 import qualified Data.ByteString        as BS
 import qualified Data.ByteString.Base16 as Base16
+import qualified System.Nix.Base32      as Base32  -- Nix has own Base32 encoding
 import qualified Data.ByteString.Base64 as Base64
 import           Data.Bits              (xor)
 import qualified Data.ByteString.Lazy   as BSL
@@ -30,8 +32,15 @@
 import qualified Data.Text.Encoding     as T
 import           Data.Word              (Word8)
 import           GHC.TypeLits           (Nat, KnownNat, natVal)
-import qualified System.Nix.Base32      as Base32
+import           Data.Coerce            (coerce)
 
+-- | Constructors to indicate the base encodings
+data BaseEncoding
+  = Base16
+  | Base32
+  -- | ^ Nix has a special map of Base32 encoding
+  | Base64
+
 -- | The universe of supported hash algorithms.
 --
 -- Currently only intended for use at the type level.
@@ -50,7 +59,7 @@
   Digest BS.ByteString deriving (Eq, Ord, DataHashable.Hashable)
 
 instance Show (Digest a) where
-  show = ("Digest " ++) . show . encodeBase32
+  show = ("Digest " <>) . show . encodeInBase Base32
 
 -- | The primitive interface for incremental hashing for a given
 -- 'HashAlgorithm'. Every 'HashAlgorithm' should have an instance.
@@ -92,7 +101,7 @@
 
 instance Show SomeNamedDigest where
   show sd = case sd of
-    SomeDigest (digest :: Digest hashType) -> T.unpack $ "SomeDigest " <> algoName @hashType <> ":" <> encodeBase32 digest
+    SomeDigest (digest :: Digest hashType) -> T.unpack $ "SomeDigest " <> algoName @hashType <> ":" <> encodeInBase Base32 digest
 
 mkNamedDigest :: Text -> Text -> Either String SomeNamedDigest
 mkNamedDigest name sriHash =
@@ -102,16 +111,16 @@
     else Left $ T.unpack $ "Sri hash method " <> sriName <> " does not match the required hash type " <> name
  where
   mkDigest name hash = case name of
-    "md5"    -> SomeDigest <$> decode @'MD5    hash
-    "sha1"   -> SomeDigest <$> decode @'SHA1   hash
-    "sha256" -> SomeDigest <$> decode @'SHA256 hash
-    "sha512" -> SomeDigest <$> decode @'SHA512 hash
+    "md5"    -> SomeDigest <$> decodeGo @'MD5    hash
+    "sha1"   -> SomeDigest <$> decodeGo @'SHA1   hash
+    "sha256" -> SomeDigest <$> decodeGo @'SHA256 hash
+    "sha512" -> SomeDigest <$> decodeGo @'SHA512 hash
     _        -> Left $ "Unknown hash name: " ++ T.unpack name
-  decode :: forall a . (NamedAlgo a, ValidAlgo a) => Text -> Either String (Digest a)
-  decode hash
-    | size == base16Len = decodeBase16 hash
-    | size == base32Len = decodeBase32 hash
-    | size == base64Len = decodeBase64 hash
+  decodeGo :: forall a . (NamedAlgo a, ValidAlgo a) => Text -> Either String (Digest a)
+  decodeGo hash
+    | size == base16Len = decodeBase Base16 hash
+    | size == base32Len = decodeBase Base32 hash
+    | size == base64Len = decodeBase Base64 hash
     | otherwise = Left $ T.unpack sriHash ++ " is not a valid " ++ T.unpack name ++ " hash. Its length (" ++ show size ++ ") does not match any of " ++ show [base16Len, base32Len, base64Len]
    where
     size = T.length hash
@@ -140,33 +149,28 @@
 hashLazy bsl =
   finalize $ foldl' (update @a) (initialize @a) (BSL.toChunks bsl)
 
--- | Encode a 'Digest' in the special Nix base-32 encoding.
-encodeBase32 :: Digest a -> T.Text
-encodeBase32 (Digest bs) = Base32.encode bs
 
--- | Decode a 'Digest' in the special Nix base-32 encoding.
-decodeBase32 :: T.Text -> Either String (Digest a)
-decodeBase32 t = Digest <$> Base32.decode t
+-- | Take BaseEncoding type of the output -> take the Digeest as input -> encode Digest
+encodeInBase :: BaseEncoding -> Digest a -> T.Text
+encodeInBase Base16 = T.decodeUtf8 . Base16.encode . coerce
+encodeInBase Base32 = Base32.encode . coerce
+encodeInBase Base64 = T.decodeUtf8 . Base64.encode . coerce
 
--- | Encode a 'Digest' in hex.
-encodeBase16 :: Digest a -> T.Text
-encodeBase16 (Digest bs) = T.decodeUtf8 (Base16.encode bs)
 
--- | Decode a 'Digest' in hex
-decodeBase16 :: T.Text -> Either String (Digest a)
-decodeBase16 t = case Base16.decode (T.encodeUtf8 t) of
-  (x, "") -> Right $ Digest x
-  _       -> Left $ "Unable to decode base16 string " ++ T.unpack t
-
--- | Encode a 'Digest' in hex.
-encodeBase64 :: Digest a -> T.Text
-encodeBase64 (Digest bs) = T.decodeUtf8 (Base64.encode bs)
+-- | Take BaseEncoding type of the input -> take the input itself -> decodeBase into Digest
+decodeBase :: BaseEncoding -> T.Text -> Either String (Digest a)
+#if MIN_VERSION_base16_bytestring(1,0,0)
+decodeBase Base16 = fmap Digest . Base16.decode . T.encodeUtf8
+#else
+decodeBase Base16 = lDecode  -- this tacit sugar simply makes GHC pleased with number of args
+ where
+  lDecode t = case Base16.decode (T.encodeUtf8 t) of
+    (x, "") -> Right $ Digest x
+    _       -> Left $ "Unable to decode base16 string" <> T.unpack t
+#endif
+decodeBase Base32 = fmap Digest . Base32.decode
+decodeBase Base64 = fmap Digest . Base64.decode . T.encodeUtf8
 
--- | Decode a 'Digest' in hex
-decodeBase64 :: T.Text -> Either String (Digest a)
-decodeBase64 t = case Base64.decode (T.encodeUtf8 t) of
-  Right x -> Right $ Digest x
-  Left  e -> Left $ "Unable to decode base64 string " ++ T.unpack t ++ ": " ++ e
 
 -- | Uses "Crypto.Hash.MD5" from cryptohash-md5.
 instance ValidAlgo 'MD5 where
diff --git a/src/System/Nix/Internal/Nar/Effects.hs b/src/System/Nix/Internal/Nar/Effects.hs
--- a/src/System/Nix/Internal/Nar/Effects.hs
+++ b/src/System/Nix/Internal/Nar/Effects.hs
@@ -16,7 +16,6 @@
 import qualified Data.ByteString.Lazy        as BSL
 import           Data.Int                    (Int64)
 import qualified System.Directory            as Directory
-import qualified System.Directory            as Directory
 import qualified System.IO                   as IO
 import           System.Posix.Files          (createSymbolicLink, fileSize,
                                               getFileStatus, isDirectory,
diff --git a/src/System/Nix/Internal/StorePath.hs b/src/System/Nix/Internal/StorePath.hs
--- a/src/System/Nix/Internal/StorePath.hs
+++ b/src/System/Nix/Internal/StorePath.hs
@@ -1,13 +1,10 @@
 {-|
 Description : Representation of Nix store paths.
 -}
-{-# LANGUAGE DataKinds #-}
 {-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE KindSignatures #-}
 {-# LANGUAGE ConstraintKinds #-}
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE TypeApplications #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE AllowAmbiguousTypes #-}
 {-# LANGUAGE TypeInType #-} -- Needed for GHC 8.4.4 for some reason
@@ -15,8 +12,9 @@
 import System.Nix.Hash
   ( HashAlgorithm(Truncated, SHA256)
   , Digest
-  , encodeBase32
-  , decodeBase32
+  , BaseEncoding(..)
+  , encodeInBase
+  , decodeBase
   , SomeNamedDigest
   )
 import System.Nix.Internal.Base32 (digits32)
@@ -24,14 +22,12 @@
 import Data.Text (Text)
 import Data.Text.Encoding (encodeUtf8)
 import qualified Data.Text as T
-import GHC.TypeLits (Symbol, KnownSymbol, symbolVal)
 import Data.ByteString (ByteString)
 import qualified Data.ByteString as BS
 import qualified Data.ByteString.Char8 as BC
 import qualified Data.Char
 import Data.Hashable (Hashable(..))
 import Data.HashSet (HashSet)
-import Data.Proxy (Proxy(..))
 
 import Data.Attoparsec.Text.Lazy (Parser, (<?>))
 
@@ -154,7 +150,7 @@
     ]
   where
     root = BC.pack storePathRoot
-    hashPart = encodeUtf8 $ encodeBase32 storePathHash
+    hashPart = encodeUtf8 $ encodeInBase Base32 storePathHash
     name = encodeUtf8 $ unStorePathName storePathName
 
 -- | Render a 'StorePath' as a 'FilePath'.
@@ -175,7 +171,7 @@
   :: StorePath
   -> BC.ByteString
 storePathToNarInfo StorePath {..} = BS.concat
-    [ encodeUtf8 $ encodeBase32 storePathHash
+    [ encodeUtf8 $ encodeInBase Base32 storePathHash
     , ".narinfo"
     ]
 
@@ -189,14 +185,14 @@
   let
     (rootDir, fname) = System.FilePath.splitFileName . BC.unpack $ x
     (digestPart, namePart) = T.breakOn "-" $ T.pack fname
-    digest = decodeBase32 digestPart
+    digest = decodeBase Base32 digestPart
     name = makeStorePathName . T.drop 1 $ namePart
     --rootDir' = dropTrailingPathSeparator rootDir
     -- cannot use ^^ as it drops multiple slashes /a/b/// -> /a/b
     rootDir' = init rootDir
     storeDir = if expectedRoot == rootDir'
       then Right rootDir'
-      else Left $ unwords $ [ "Root store dir mismatch, expected", expectedRoot, "got", rootDir']
+      else Left $ "Root store dir mismatch, expected" <> expectedRoot <> "got" <> rootDir'
   in
     StorePath <$> digest <*> name <*> storeDir
 
@@ -208,8 +204,8 @@
   Data.Attoparsec.Text.Lazy.char '/'
     <?> "Expecting path separator"
 
-  digest <- decodeBase32
-    <$> Data.Attoparsec.Text.Lazy.takeWhile1 (\c -> c `elem` digits32)
+  digest <- decodeBase Base32
+    <$> Data.Attoparsec.Text.Lazy.takeWhile1 (`elem` digits32)
     <?> "Invalid Base32 part"
 
   Data.Attoparsec.Text.Lazy.char '-'
diff --git a/src/System/Nix/Nar.hs b/src/System/Nix/Nar.hs
--- a/src/System/Nix/Nar.hs
+++ b/src/System/Nix/Nar.hs
@@ -4,12 +4,8 @@
 -}
 
 {-# LANGUAGE FlexibleContexts    #-}
-{-# LANGUAGE KindSignatures      #-}
-{-# LANGUAGE LambdaCase          #-}
 {-# LANGUAGE OverloadedStrings   #-}
 {-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE TupleSections       #-}
-{-# LANGUAGE TypeApplications    #-}
 {-# LANGUAGE TypeFamilies        #-}
 
 
@@ -34,19 +30,7 @@
   ) where
 
 import qualified Control.Concurrent     as Concurrent
-import           Control.Monad          (when)
-import qualified Control.Monad.IO.Class as IO
-import           Data.Bool              (bool)
 import qualified Data.ByteString        as BS
-import qualified Data.ByteString.Char8  as BSC
-import qualified Data.ByteString.Lazy   as BSL
-import           Data.Foldable          (forM_)
-import qualified Data.List              as List
-import           Data.Monoid            ((<>))
-import qualified Data.Serialize.Put     as Serial
-import           GHC.Int                (Int64)
-import qualified System.Directory       as Directory
-import           System.FilePath        as FilePath
 import qualified System.IO              as IO
 
 import qualified System.Nix.Internal.Nar.Effects  as Nar
diff --git a/src/System/Nix/ReadonlyStore.hs b/src/System/Nix/ReadonlyStore.hs
--- a/src/System/Nix/ReadonlyStore.hs
+++ b/src/System/Nix/ReadonlyStore.hs
@@ -23,7 +23,7 @@
     s = BS.intercalate ":"
       [ ty
       , encodeUtf8 $ algoName @hashAlgo
-      , encodeUtf8 $ encodeBase16 h
+      , encodeUtf8 $ encodeInBase Base16 h
       , encodeUtf8 $ T.pack fp
       , encodeUtf8 $ unStorePathName nm
       ]
@@ -45,7 +45,7 @@
   then makeStorePath fp "source"     h  nm
   else makeStorePath fp "output:out" h' nm
  where
-  h' = hash @'SHA256 $ "fixed:out:" <> encodeUtf8 (algoName @hashAlgo) <> (if recursive then ":r:" else ":") <> encodeUtf8 (encodeBase16 h) <> ":"
+  h' = hash @'SHA256 $ "fixed:out:" <> encodeUtf8 (algoName @hashAlgo) <> (if recursive then ":r:" else ":") <> encodeUtf8 (encodeInBase Base16 h) <> ":"
 
 computeStorePathForText :: FilePath -> StorePathName -> ByteString -> StorePathSet -> StorePath
 computeStorePathForText fp nm s refs = makeTextPath fp nm (hash s) refs
diff --git a/tests/Hash.hs b/tests/Hash.hs
--- a/tests/Hash.hs
+++ b/tests/Hash.hs
@@ -2,21 +2,22 @@
 {-# LANGUAGE OverloadedStrings   #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE TypeApplications    #-}
+{-# LANGUAGE CPP #-}
 
 module Hash where
 
 import           Control.Monad               (forM_)
 import qualified Data.ByteString.Char8       as BSC
 import qualified Data.ByteString.Base16      as B16
+import qualified System.Nix.Base32           as B32
 import qualified Data.ByteString.Base64.Lazy as B64
 import qualified Data.ByteString.Lazy        as BSL
+import           Data.Text                   (Text(..))
 
 import           Test.Tasty.Hspec
 import           Test.Tasty.QuickCheck
 
-import           System.Nix.Base32
 import           System.Nix.Hash
-import           System.Nix.Internal.Hash
 import           System.Nix.StorePath
 import           Arbitrary
 
@@ -26,13 +27,13 @@
   describe "hashing parity with nix-store" $ do
 
     it "produces (base32 . sha256) of \"nix-output:foo\" the same as Nix does at the moment for placeholder \"foo\"" $
-      shouldBe (encodeBase32 (hash @SHA256 "nix-output:foo"))
+      shouldBe (encodeInBase Base32 (hash @SHA256 "nix-output:foo"))
                "1x0ymrsy7yr7i9wdsqy9khmzc1yy7nvxw6rdp72yzn50285s67j5"
     it "produces (base16 . md5) of \"Hello World\" the same as the thesis" $
-      shouldBe (encodeBase16 (hash @MD5 "Hello World"))
+      shouldBe (encodeInBase Base16 (hash @MD5 "Hello World"))
                "b10a8db164e0754105b7a99be72e3fe5"
     it "produces (base32 . sha1) of \"Hello World\" the same as the thesis" $
-      shouldBe (encodeBase32 (hash @SHA1 "Hello World"))
+      shouldBe (encodeInBase Base32 (hash @SHA1 "Hello World"))
                "s23c9fs0v32pf6bhmcph5rbqsyl5ak8a"
 
     -- The example in question:
@@ -41,16 +42,19 @@
       let exampleStr =
             "source:sha256:2bfef67de873c54551d884fdab3055d84d573e654efa79db3"
             <> "c0d7b98883f9ee3:/nix/store:myfile"
-      shouldBe (encodeBase32 @StorePathHashAlgo (hash exampleStr))
+      shouldBe (encodeInBase32 @StorePathHashAlgo (hash exampleStr))
         "xv2iccirbrvklck36f1g7vldn5v58vck"
+   where
+    encodeInBase32 :: Digest a -> Text
+    encodeInBase32 = encodeInBase Base32
 
 -- | Test that Nix-like base32 encoding roundtrips
 prop_nixBase32Roundtrip = forAllShrink nonEmptyString genericShrink $
-  \x -> Right (BSC.pack x) === (decode . encode . BSC.pack $ x)
+  \x -> Right (BSC.pack x) === (B32.decode . B32.encode . BSC.pack $ x)
 
 -- | API variants
 prop_nixBase16Roundtrip =
-  \(x :: Digest StorePathHashAlgo) -> Right x === (decodeBase16 . encodeBase16 $ x)
+  \(x :: Digest StorePathHashAlgo) -> Right x === (decodeBase Base16 . encodeInBase Base16 $ x)
 
 -- | Hash encoding conversion ground-truth.
 -- Similiar to nix/tests/hash.sh
@@ -76,19 +80,31 @@
         ]
 
     it "b16 encoded . b32 decoded should equal original b16" $
-      forM_ samples $ \(b16, b32, b64) -> shouldBe (B16.encode <$> decode b32) (Right b16)
+      forM_ samples $ \(b16, b32, b64) -> shouldBe (B16.encode <$> B32.decode b32) (Right b16)
 
     it "b64 encoded . b32 decoded should equal original b64" $
-      forM_ samples $ \(b16, b32, b64) -> shouldBe (B64.encode . BSL.fromStrict <$> decode b32) (Right b64)
+      forM_ samples $ \(b16, b32, b64) -> shouldBe (B64.encode . BSL.fromStrict <$> B32.decode b32) (Right b64)
 
     it "b32 encoded . b64 decoded should equal original b32" $
-      forM_ samples $ \(b16, b32, b64) -> shouldBe (encode . BSL.toStrict <$> B64.decode b64 ) (Right b32)
+      forM_ samples $ \(b16, b32, b64) -> shouldBe (B32.encode . BSL.toStrict <$> B64.decode b64 ) (Right b32)
 
     it "b16 encoded . b64 decoded should equal original b16" $
       forM_ samples $ \(b16, b32, b64) -> shouldBe (B16.encode . BSL.toStrict <$> B64.decode b64 ) (Right b16)
 
     it "b32 encoded . b16 decoded should equal original b32" $
-      forM_ samples $ \(b16, b32, b64) -> shouldBe (encode $ fst $ B16.decode b16 ) b32
+      forM_ samples $ \(b16, b32, b64) -> shouldBe (B32.encode
+#if MIN_VERSION_base16_bytestring(1,0,0)
+        <$> B16.decode b16) (Right b32)
+#else
+        $ fst $ B16.decode b16) (b32)
 
+#endif
+
     it "b64 encoded . b16 decoded should equal original b64" $
-      forM_ samples $ \(b16, b32, b64) -> shouldBe (B64.encode $ BSL.fromStrict $ fst $ B16.decode b16 ) b64
+      forM_ samples $ \(b16, b32, b64) -> shouldBe (B64.encode . BSL.fromStrict
+#if MIN_VERSION_base16_bytestring(1,0,0)
+        <$> B16.decode b16) (Right b64)
+#else
+        $ fst $ B16.decode b16 ) (b64)
+#endif
+
diff --git a/tests/NarFormat.hs b/tests/NarFormat.hs
--- a/tests/NarFormat.hs
+++ b/tests/NarFormat.hs
@@ -1,5 +1,4 @@
 {-# LANGUAGE CPP                 #-}
-{-# LANGUAGE LambdaCase          #-}
 {-# LANGUAGE OverloadedStrings   #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE TupleSections       #-}
@@ -8,13 +7,10 @@
 module NarFormat where
 
 import           Control.Applicative              (many, optional, (<|>))
-import           Control.Concurrent               (threadDelay)
 import qualified Control.Concurrent               as Concurrent
-import           Control.Exception                (SomeException, finally, try)
-import           Control.Monad                    (replicateM, replicateM_,
+import           Control.Exception                (SomeException, try)
+import           Control.Monad                    (replicateM,
                                                    when)
-import           Control.Monad.IO.Class           (liftIO)
-import           Data.Binary                      (put)
 import           Data.Binary.Get                  (Get (..), getByteString,
                                                    getInt64le,
                                                    getLazyByteString, runGet)
@@ -27,25 +23,19 @@
 import qualified Data.ByteString.Lazy.Char8       as BSLC
 import           Data.Int
 import qualified Data.Map                         as Map
-import           Data.Maybe                       (fromMaybe, isJust)
+import           Data.Maybe                       (fromMaybe)
 import qualified Data.Text                        as T
 import qualified Data.Text.Encoding               as E
-import           GHC.Stats                        (getRTSStats, max_live_bytes)
-import           System.Directory                 (doesDirectoryExist,
-                                                   doesFileExist, doesPathExist,
-                                                   listDirectory,
+import           System.Directory                 (doesDirectoryExist, doesPathExist,
                                                    removeDirectoryRecursive,
                                                    removeFile)
 import qualified System.Directory                 as Directory
 import           System.Environment               (getEnv)
 import           System.FilePath                  ((<.>), (</>))
 import qualified System.IO                        as IO
-import qualified System.IO.Streams.File           as IOStreamsFile
-import qualified System.IO.Streams.Process        as IOStreamsProcess
 import qualified System.IO.Temp                   as Temp
 import qualified System.Posix.Process             as Unix
 import qualified System.Process                   as P
-import qualified System.Process.ByteString.Lazy   as ProcessByteString
 import           Test.Tasty                       as T
 import           Test.Tasty.Hspec
 import qualified Test.Tasty.HUnit                 as HU
diff --git a/tests/samples/example0.drv b/tests/samples/example0.drv
new file mode 100644
--- /dev/null
+++ b/tests/samples/example0.drv
@@ -0,0 +1,1 @@
+Derive([("devdoc","/nix/store/15x9ii8c3n5wb5lg80cm8x0yk6zy7rha-perl-MIME-Types-2.13-devdoc","",""),("out","/nix/store/93d75ghjyibmbxgfzwhh4b5zwsxzs44w-perl-MIME-Types-2.13","","")],[("/nix/store/cvdbbvnvg131bz9bwyyk97jpq1crclqr-MIME-Types-2.13.tar.gz.drv",["out"]),("/nix/store/p5g31bc5x92awghx9dlm065d7j773l0r-stdenv.drv",["out"]),("/nix/store/x50y5qihwsn0lfjhrf1s81b5hgb9w632-bash-4.4-p5.drv",["out"]),("/nix/store/57h2hjsdkdiwbzilcjqkn46138n1xb4a-perl-5.22.3.drv",["out"])],["/nix/store/cdips4lakfk1qbf1x68fq18wnn3r5r14-builder.sh"],"x86_64-linux","/nix/store/fi3mbd2ml4pbgzyasrlnp0wyy6qi48fh-bash-4.4-p5/bin/bash",["-e","/nix/store/cdips4lakfk1qbf1x68fq18wnn3r5r14-builder.sh"],[("AUTOMATED_TESTING","1"),("PERL_AUTOINSTALL","--skipdeps"),("buildInputs",""),("builder","/nix/store/fi3mbd2ml4pbgzyasrlnp0wyy6qi48fh-bash-4.4-p5/bin/bash"),("checkTarget","test"),("devdoc","/nix/store/15x9ii8c3n5wb5lg80cm8x0yk6zy7rha-perl-MIME-Types-2.13-devdoc"),("doCheck","1"),("installTargets","pure_install"),("name","perl-MIME-Types-2.13"),("nativeBuildInputs","/nix/store/nsa311yg8h93wfaacjk16c96a98bs09f-perl-5.22.3"),("out","/nix/store/93d75ghjyibmbxgfzwhh4b5zwsxzs44w-perl-MIME-Types-2.13"),("outputs","out devdoc"),("propagatedBuildInputs",""),("propagatedNativeBuildInputs",""),("src","/nix/store/5smhymz7viq8p47mc3jgyvqd003ab732-MIME-Types-2.13.tar.gz"),("stdenv","/nix/store/s3rlr45jzlzx0d6k2azlpxa5zwzr7xyy-stdenv"),("system","x86_64-linux")])
diff --git a/tests/samples/example1.drv b/tests/samples/example1.drv
new file mode 100644
--- /dev/null
+++ b/tests/samples/example1.drv
@@ -0,0 +1,1 @@
+Derive([("out","/nix/store/w3zbr9zj9mn08hnirn34wsxhry40qi3c-ghc-8.0.2-with-packages","","")],[("/nix/store/r44a3jm3q5rhi75rl1m6jr1vgwpiyw02-hnix-0.3.4.drv",["out"]),("/nix/store/clxg57lhlflbjrk6w3fv51fxjnqkk7q4-transformers-compat-0.5.1.4.drv",["out"]),("/nix/store/z036z61lsrk2gqbwljix0akzhz2bgl8j-semigroups-0.18.2.drv",["out"]),("/nix/store/fyi4gg70v1lgjz03v07flnmjr8x55mqk-async-2.1.1.1.drv",["out"]),("/nix/store/qi0668xlc3q03n74k1wrqri7ss7bvphk-stm-2.4.4.1.drv",["out"]),("/nix/store/nwapw7zf014frf49c0b7y5694jyc38hm-streaming-commons-0.1.17.drv",["out"]),("/nix/store/rqcq6jigs1sj53f8wrbff3s06wzazfqw-comonad-5.0.1.drv",["out"]),("/nix/store/dg6n7519y227s9c867wqi2v40cj41zqy-attoparsec-0.13.1.0.drv",["out"]),("/nix/store/y4ll9c29g76jzycl7zhdmqzxgciyrfr1-case-insensitive-1.2.0.9.drv",["out"]),("/nix/store/a2ar311g8chbi4ila55qzi3dfp9g5zr6-blaze-html-0.8.1.3.drv",["out"]),("/nix/store/2bmxgjskcw4vdmcqrw9pc9yjffsqn3i9-byteable-0.1.1.drv",["out"]),("/nix/store/xbygsq84395vhj7bnh7786i9864jf9i9-ghc-8.0.2.drv",["out"]),("/nix/store/wx9vx1z55bzkzym0lzbgpzd7rrsx9w9b-scientific-0.3.4.12.drv",["out"]),("/nix/store/zvxd18a65gwcg3bz7v1rb0h59w9wwi9d-network-2.6.3.1.drv",["out"]),("/nix/store/y8l0lv08hfi6qnrzd25dxgi4712yjf9f-base-orphans-0.5.4.drv",["out"]),("/nix/store/0w9vy2hmz50j0yhlbj519hnpjbvqhjrj-cookie-0.4.2.1.drv",["out"]),("/nix/store/xp7jayhmiphx0zqxx9dxrk673shhj89l-optparse-applicative-0.13.2.0.drv",["out"]),("/nix/store/xzda3rxckhf0h3lp1hr6wanyig9s9y1p-utf8-string-1.0.1.1.drv",["out"]),("/nix/store/zg5as9jrs5vfa5iw7539vihmwm436g1q-network-uri-2.6.1.0.drv",["out"]),("/nix/store/5x6d3f9krpqlmzhmk71qf7m97g38hba1-base-prelude-1.0.1.1.drv",["out"]),("/nix/store/d1n1p6mdabwkgkc7y6151j37c4kqh1a2-exceptions-0.8.3.drv",["out"]),("/nix/store/m7l8bg4k82snsl759k2mlkjlb8g0352a-foundation-0.0.7.drv",["out"]),("/nix/store/l3wmibr3b1b3a8ql8ypy860209iqbasg-connection-0.2.8.drv",["out"]),("/nix/store/gq055a1910w9q6mbb5kf6p6igzg6b5ai-StateVar-1.1.0.4.drv",["out"]),("/nix/store/pra6ynwnksgks1xxv2l7h48swjq4vb2j-data-default-class-0.1.2.0.drv",["out"]),("/nix/store/as62r0pdaq0q76rxz719xy33vqa7xcal-double-conversion-2.0.2.0.drv",["out"]),("/nix/store/0cyv377kjnhjc9j1pb0m530lczqj4ksm-optparse-generic-1.1.5.drv",["out"]),("/nix/store/75iir4x52007r0fq41kwk5cdfvmi02jp-profunctors-5.2.drv",["out"]),("/nix/store/z8vpk1rwkikc8pg20vyg5kvsdv626ksw-dhall-1.3.0.drv",["out"]),("/nix/store/ckl2x2vkqj82k4b7c5l8p611g6jmfbsz-zlib-0.6.1.2.drv",["out"]),("/nix/store/x50y5qihwsn0lfjhrf1s81b5hgb9w632-bash-4.4-p5.drv",["out"]),("/nix/store/fdq2dn4gal13xl9jbyk8igvaw5f2x9b5-blaze-builder-0.4.0.2.drv",["out"]),("/nix/store/9w2n7jqc9ll78r7xj31ckrqcq6g8g8kf-integer-logarithms-1.0.1.drv",["out"]),("/nix/store/lvm3zp40qfdqr0v9i27z7dqpdwlxprbl-text-1.2.2.1.drv",["out"]),("/nix/store/bwf0a834k4jf5ss2ccribn9w7g2r3j3m-stdenv.drv",["out"]),("/nix/store/1b75igh40c9agy3sfyl5n7av4070swvn-old-locale-1.0.0.7.drv",["out"]),("/nix/store/lnxgjiywc89iaby3g0na1sc4hryvnikq-trifecta-1.6.2.1.drv",["out"]),("/nix/store/mq338r0an8lj00g88c6rpylbnmds7fbx-adjunctions-4.3.drv",["out"]),("/nix/store/qr8wf0b1lqwxwi6ban2k307jy91bj640-reducers-3.12.1.drv",["out"]),("/nix/store/56l353i7v6i7i5vkk2qx4wi4r6p4xll1-void-0.7.2.drv",["out"]),("/nix/store/8p1f0rs49czq74yxlfcimlag9wnbwsc5-http-client-tls-0.3.4.1.drv",["out"]),("/nix/store/nv7frilmipcpylijp492l3hc0s2cmgw6-tls-1.3.10.drv",["out"]),("/nix/store/7ah4kd8kbwsfr350wkr0y4i0h6gm7vc8-base64-bytestring-1.0.0.1.drv",["out"]),("/nix/store/ginljsxbpxli394mc06gvqkmvddhqwlc-x509-store-1.6.2.drv",["out"]),("/nix/store/w6a3c55nhmpcia6cvdg31nqsc7v910lc-ansi-terminal-0.6.2.3.drv",["out"]),("/nix/store/7545pmiaccgvkxjfvl9cm0qk7y1x96wi-reflection-2.1.2.drv",["out"]),("/nix/store/ahypsxsxcczsllax40jnccdg5ilps2lq-http-client-0.5.6.1.drv",["out"]),("/nix/store/6n2kl1fnn66a24ipjm1dxjhhvni1404r-mtl-2.2.1.drv",["out"]),("/nix/store/fr1acpclaljwizrvic520wdf36kmxjwr-blaze-markup-0.7.1.1.drv",["out"]),("/nix/store/vpqjk2wral953nnqnhvp8zbmkbhnyxls-x509-validation-1.6.5.drv",["out"]),("/nix/store/sdx411558r03fdvfi3p6wzfsi701sv4w-system-fileio-0.3.16.3.drv",["out"]),("/nix/store/pz3s86hbxvwr7m4x7cpz5h8z124wgk4x-x509-1.6.5.drv",["out"]),("/nix/store/v0srwl68sz6dirasq53bd3ddjipa1d5b-deriving-compat-0.3.6.drv",["out"]),("/nix/store/61fzrmaxsfc9q4qzsdcrsaqgg05hr6xi-bifunctors-5.4.2.drv",["out"]),("/nix/store/vr8scnq8lxgc0m6k7bqjwi4fg0k55lxn-data-fix-0.0.4.drv",["out"]),("/nix/store/zdx2r8q401h7xcyh7jg0cnp092iwlhmv-contravariant-1.4.drv",["out"]),("/nix/store/n4wyn46xw0nw8a3rhqw47xd4h6bgnn5w-lens-4.15.1.drv",["out"]),("/nix/store/j6zji0jn6cm8b4i0fmakksk1cp54bhn0-asn1-types-0.3.2.drv",["out"]),("/nix/store/pcg29qa8fm9niixbjy0r7bbp3s4jxk62-neat-interpolation-0.3.2.1.drv",["out"]),("/nix/store/5hx7hjjrwqa4zjd9ql224aif86ncj764-hook.drv",["out"]),("/nix/store/lg64zgciix9644hzkfc02rfbq4qgcrf8-memory-0.14.3.drv",["out"]),("/nix/store/f67vqhk71lrab7ncx8fz8bj7iggmm66f-cryptonite-0.21.drv",["out"]),("/nix/store/5rpa05i9i5p3i0a06lhyvgg1nvlwnlfi-unordered-containers-0.2.8.0.drv",["out"]),("/nix/store/20m5alpbwyvyhh43aq3prw07g48apdnj-parsers-0.12.4.drv",["out"]),("/nix/store/f3l740wl94r84fgsiindy88jppcjya6l-text-format-0.3.1.1.drv",["out"]),("/nix/store/7f6ddryzkw9jckayqs1gdz18njrqd0fq-random-1.1.drv",["out"]),("/nix/store/vwhic7ibwkzqk65mqicb29d5qz06gkns-socks-0.5.5.drv",["out"]),("/nix/store/wld7wjy6lws02rky68mpg0x591wv0j6v-pem-0.2.2.drv",["out"]),("/nix/store/43hyjsydndk7vsdjs94why36s8isn6fw-kan-extensions-5.0.1.drv",["out"]),("/nix/store/ql8bpbnl7x7ybn3rnsknpkpwvlz7s2nz-distributive-0.5.2.drv",["out"]),("/nix/store/s1ymda8d763cn5gq4cw107h19xs1ddz0-ansi-wl-pprint-0.6.7.3.drv",["out"]),("/nix/store/3fji5p4x9j0cb3q3lp8amrj0qak9d471-asn1-encoding-0.9.5.drv",["out"]),("/nix/store/mi1fdfdkc5qc7iq2ry6095ayp9cqn075-x509-system-1.6.4.drv",["out"]),("/nix/store/6qggipw2ra59q6333y25gywllbbcx3p5-hourglass-0.2.10.drv",["out"]),("/nix/store/b67b65arib97rsl4z5iqz03gf24ymvz5-http-types-0.9.1.drv",["out"]),("/nix/store/7d6yxihb828lgs4199f81k17jh8987z6-lndir-1.0.3.drv",["out"]),("/nix/store/pg609c09rfqzyfn8l4hsc1q2xy50w4p8-semigroupoids-5.1.drv",["out"]),("/nix/store/6l4s2nlxc9fq8c3y3j2k2c7af5llx278-hashable-1.2.6.0.drv",["out"]),("/nix/store/5d3v9g9jjqznbpxrlgvcyvmqqz2ffpgc-fingertree-0.1.1.0.drv",["out"]),("/nix/store/ip7nh1r7mj4qwgra27x8i6nyz6yd1ggd-prelude-extras-0.4.0.3.drv",["out"]),("/nix/store/bczn7hbvp39aplp70gvmyijdysvkyspg-primitive-0.6.1.0.drv",["out"]),("/nix/store/x8k0rsb1ig82vdls0dc6jdlny7r04izj-parallel-3.2.1.1.drv",["out"]),("/nix/store/iqd84gv7b8dq5kddxyjimaqqlxjpqdzk-vector-0.11.0.0.drv",["out"]),("/nix/store/1g2qxhbpk7qjyz8qbami29bn7qmnmgpk-tagged-0.8.5.drv",["out"]),("/nix/store/x2dkgpklc1adq1cgg1k8ykdqv7ghwhzm-system-filepath-0.4.13.4.drv",["out"]),("/nix/store/hhx5xjb6cm5rdkri763669bf6karrnpn-parsec-3.1.11.drv",["out"]),("/nix/store/j24c6d5zv7nim3rkmzzapk6x61lzgizq-charset-0.3.7.1.drv",["out"]),("/nix/store/5c748d8gmrmg2gy4792a0kzp5bjw8sgr-cereal-0.5.4.0.drv",["out"]),("/nix/store/mpql2q0b6a1m2vkb114f9l2s8dhy09zv-asn1-parse-0.9.4.drv",["out"]),("/nix/store/4hkya8j2isw660pj6b0q3by85q2wz1zw-free-4.12.4.drv",["out"]),("/nix/store/wdgbs33iwqadfmlaymw00k6iwnf3as7z-mime-types-0.1.0.7.drv",["out"])],["/nix/store/9krlzvny65gdc8s7kpb6lkx8cd02c25b-default-builder.sh"],"x86_64-linux","/nix/store/fi3mbd2ml4pbgzyasrlnp0wyy6qi48fh-bash-4.4-p5/bin/bash",["-e","/nix/store/9krlzvny65gdc8s7kpb6lkx8cd02c25b-default-builder.sh"],[("allowSubstitutes",""),("buildCommand","mkdir -p $out\nfor i in $paths; do\n  /nix/store/lnai0im3lcpb03arxfi0wx1dm7anf4f8-lndir-1.0.3/bin/lndir $i $out\ndone\n. /nix/store/plmya6mkfvq658ba7z6j6n36r5pdbxk5-hook/nix-support/setup-hook\n\n# wrap compiler executables with correct env variables\n\nfor prg in ghc ghci ghc-8.0.2 ghci-8.0.2; do\n  if [[ -x \"/nix/store/s0hpng652hsn40jy4kjdh1x0jm86dx9l-ghc-8.0.2/bin/$prg\" ]]; then\n    rm -f $out/bin/$prg\n    makeWrapper /nix/store/s0hpng652hsn40jy4kjdh1x0jm86dx9l-ghc-8.0.2/bin/$prg $out/bin/$prg                           \\\n      --add-flags '\"-B$NIX_GHC_LIBDIR\"'                   \\\n      --set \"NIX_GHC\"        \"$out/bin/ghc\"     \\\n      --set \"NIX_GHCPKG\"     \"$out/bin/ghc-pkg\" \\\n      --set \"NIX_GHC_DOCDIR\" \"$out/share/doc/ghc/html\"                  \\\n      --set \"NIX_GHC_LIBDIR\" \"$out/lib/ghc-8.0.2\"                  \\\n      \n  fi\ndone\n\nfor prg in runghc runhaskell; do\n  if [[ -x \"/nix/store/s0hpng652hsn40jy4kjdh1x0jm86dx9l-ghc-8.0.2/bin/$prg\" ]]; then\n    rm -f $out/bin/$prg\n    makeWrapper /nix/store/s0hpng652hsn40jy4kjdh1x0jm86dx9l-ghc-8.0.2/bin/$prg $out/bin/$prg                           \\\n      --add-flags \"-f $out/bin/ghc\"                           \\\n      --set \"NIX_GHC\"        \"$out/bin/ghc\"     \\\n      --set \"NIX_GHCPKG\"     \"$out/bin/ghc-pkg\" \\\n      --set \"NIX_GHC_DOCDIR\" \"$out/share/doc/ghc/html\"                  \\\n      --set \"NIX_GHC_LIBDIR\" \"$out/lib/ghc-8.0.2\"\n  fi\ndone\n\nfor prg in ghc-pkg ghc-pkg-8.0.2; do\n  if [[ -x \"/nix/store/s0hpng652hsn40jy4kjdh1x0jm86dx9l-ghc-8.0.2/bin/$prg\" ]]; then\n    rm -f $out/bin/$prg\n    makeWrapper /nix/store/s0hpng652hsn40jy4kjdh1x0jm86dx9l-ghc-8.0.2/bin/$prg $out/bin/$prg --add-flags \"--global-package-db=$out/lib/ghc-8.0.2/package.conf.d\"\n  fi\ndone\n$out/bin/ghc-pkg recache\n\n$out/bin/ghc-pkg check\n\n"),("buildInputs",""),("builder","/nix/store/fi3mbd2ml4pbgzyasrlnp0wyy6qi48fh-bash-4.4-p5/bin/bash"),("extraOutputsToInstall","out doc"),("ignoreCollisions",""),("name","ghc-8.0.2-with-packages"),("nativeBuildInputs",""),("out","/nix/store/w3zbr9zj9mn08hnirn34wsxhry40qi3c-ghc-8.0.2-with-packages"),("passAsFile","buildCommand"),("paths","/nix/store/rlsammwp1ib8d3d9qgbppmdhkbdfg3i9-deriving-compat-0.3.6 /nix/store/v2qsqznrik64f46msahvgg7dmaiag18k-hnix-0.3.4 /nix/store/vbkqj8zdckqqiyjh08ykx75fwc90gwg4-optparse-applicative-0.13.2.0 /nix/store/6m7qia8q0rkdkzvmiak38kdscf27malf-optparse-generic-1.1.5 /nix/store/r687llig7vn9x15hhkmfak01ff7082n6-utf8-string-1.0.1.1 /nix/store/j6gvad67dav8fl3vdbqmar84kgmh5gar-reducers-3.12.1 /nix/store/i8wf08764lknc0f9ja12miqvg509jn1k-fingertree-0.1.1.0 /nix/store/301hq4fabrpbi3l47n908gvakkzq1s88-blaze-markup-0.7.1.1 /nix/store/055mhi44s20x5xgxdjr82vmhnyv79pzl-blaze-html-0.8.1.3 /nix/store/vnc1yyig90skcwx3l1xrbp1jqwmmb9xv-trifecta-1.6.2.1 /nix/store/vraffi24marw5sks8b78xrim6c8i1ng6-double-conversion-2.0.2.0 /nix/store/kwdk03p0lyk5lyll1fp7a6z20j17b3sx-text-format-0.3.1.1 /nix/store/zn5hlw3y94sbli4ssygr2w04mpb396zs-system-filepath-0.4.13.4 /nix/store/jn7lbnk0gsirj8kb02an31v8idy7ym3c-system-fileio-0.3.16.3 /nix/store/9frfci9ywf9lc216ci9nwc1yy0qwrn1b-integer-logarithms-1.0.1 /nix/store/rps46jwa7yyab629p27lar094gk8dal2-scientific-0.3.4.12 /nix/store/c4a3ynvnv3kdxgd7ngmnjhka4mvfk8ll-attoparsec-0.13.1.0 /nix/store/kc34l1gpzh65y4gclmv4dgv6agpmagdi-parsers-0.12.4 /nix/store/1kf78yxf3lliagb5rc5din24iq40g96y-base-prelude-1.0.1.1 /nix/store/hi868d12pkzcbzyvp7a7cigc58mp2lmg-neat-interpolation-0.3.2.1 /nix/store/h00jrbdvzj4yfy796j8vq00lkd1gxr6w-primitive-0.6.1.0 /nix/store/vys8qsf317rn8qwy00p80zlywb47lqwz-vector-0.11.0.0 /nix/store/wchch11312m3lxkwl8rad04x02svcs3i-reflection-2.1.2 /nix/store/jj1kfv52mjxp54flz8v5ba64va3hvy22-parallel-3.2.1.1 /nix/store/jwj23y7vfvs14jdrkw1py9q7lm9fyhy4-adjunctions-4.3 /nix/store/px4979la9b98knwv36551zg3p5jb69lw-kan-extensions-5.0.1 /nix/store/2cp1ar0f73jrcn231ai07zpwayy735j2-semigroupoids-5.1 /nix/store/3nkxw5wdadckz28laijrvwdkkfqp07sb-profunctors-5.2 /nix/store/bd3njvy0ahcsqw47vaz5zayhx34hari7-prelude-extras-0.4.0.3 /nix/store/zdp7zqasz1l1wifpngbg6ngq189gbbqh-free-4.12.4 /nix/store/n7c5ynfqc6j570bbyaajqx34c3pvfvph-tagged-0.8.5 /nix/store/xdkhd7mkqj2mmcami8ycmf7j0valwp5h-distributive-0.5.2 /nix/store/9dxba4g9x0xjj21r3vchqnh4rdwbc31b-void-0.7.2 /nix/store/dahah2ivrn4hc5gjygnlvxlad2399zqh-StateVar-1.1.0.4 /nix/store/f2rdi1bx46fs165n1j316k5w90ab6lwy-contravariant-1.4 /nix/store/mgg9rsvhvn4dd4qzv559nn24iqvspjnb-comonad-5.0.1 /nix/store/18n8i570pf4gpszdyc0bki9qxm1p9xd7-bifunctors-5.4.2 /nix/store/d8ys5wq4wrvdjqw0bzv3y23zqprkhjs2-base-orphans-0.5.4 /nix/store/j4hbyhnj4a2z4z4vb1437vk7ha0b287a-lens-4.15.1 /nix/store/ra3jh12mbyz82n4gvj2bam77vl8aabbq-x509-system-1.6.4 /nix/store/ps8915q1047frp891jg1anp85ads0s9b-x509-validation-1.6.5 /nix/store/5vrgrls6l1cdsbbznis39chx8scq2r98-x509-store-1.6.2 /nix/store/7vvg8y8fp0s50qiciq11irfvh31f1q58-pem-0.2.2 /nix/store/myv75wk9s19f8vms2dcy6sl773288zy4-asn1-parse-0.9.4 /nix/store/kwyc1jdz09lazw21qpc96wyamxalcg11-x509-1.6.5 /nix/store/gadc7c6d1lqn0wqk29bhn56is67x0r45-cryptonite-0.21 /nix/store/ix26y5rpidwpgjzrsixz0ff59j1p1swr-foundation-0.0.7 /nix/store/n784p4qh18zx9v8ag3n3ypszq1kifjjr-memory-0.14.3 /nix/store/h3qq6m5ahdb4kw784gcvx2skil8ilks8-hourglass-0.2.10 /nix/store/dn65dl65spk4j0sky2zpdig75c42ycj1-asn1-types-0.3.2 /nix/store/s5jklkk0y6i7d8h3akgsciv1kv2js786-asn1-encoding-0.9.5 /nix/store/g5qjgns5cyz9c5xw4w5s2iji1kbhg47z-tls-1.3.10 /nix/store/iyllk46by75f428pwis9v74jpr1rmk4x-cereal-0.5.4.0 /nix/store/b22wyyl3wdl6kb7gkpk3yxnynk340lya-socks-0.5.5 /nix/store/05r3i8w2n7hbxqyb4w8rina9rldyacd3-byteable-0.1.1 /nix/store/xjbl6w60czyfqlfwwfs5q93by144yr1n-connection-0.2.8 /nix/store/j10yqzk323rvnwgsk3nj7rgmvqlv035a-http-client-tls-0.3.4.1 /nix/store/vf84v2398g55mai2gjh2d9gipwizhhzd-zlib-0.6.1.2 /nix/store/7h7vy3mi603y536dgvxwfglaacxw5ra8-async-2.1.1.1 /nix/store/y6hh2ifv35afw1j5phpzp1y72x532izn-streaming-commons-0.1.17 /nix/store/f5jdarp8djisa1wrv4bv1saimrabcb3f-random-1.1 /nix/store/18vpnmd28bnjib6andw8bx522wcb3zwa-parsec-3.1.11 /nix/store/i3ra66pcpj0v9wq3m00gh9i72br2bki3-network-uri-2.6.1.0 /nix/store/2ck9avbwacfpi16p2ib2shw951mx33pz-network-2.6.3.1 /nix/store/rz0227nv8n8kdrxjg3arya6r2ixxjh4h-mime-types-0.1.0.7 /nix/store/rx71j4kg0l02dginiswnmwswdq9i9msv-http-types-0.9.1 /nix/store/y2ca4scn0n2f9qsmvsiixcnx11793jlf-transformers-compat-0.5.1.4 /nix/store/bzicr83ibzzzbab6cjkb3i95sc8cvxy9-stm-2.4.4.1 /nix/store/qk5pl6r2h0vfkhhwjgrv8x1ldf8dyj5a-mtl-2.2.1 /nix/store/0d6k71ljl108dgq1l7l3pz12bfwv0z4h-exceptions-0.8.3 /nix/store/z5k23ymwjhhpd670a7mcsm1869hlpncf-old-locale-1.0.0.7 /nix/store/k4an783d4j3m48fqhx7gpnizqg2ns38j-data-default-class-0.1.2.0 /nix/store/p5867jsig02zi0ynww9w4916nm0k527s-cookie-0.4.2.1 /nix/store/wy7j42kqlw1sskagmyc1bzb0xv04s2na-case-insensitive-1.2.0.9 /nix/store/j35339b0nk7k3qaq3m75nl3i4x603rqf-blaze-builder-0.4.0.2 /nix/store/33mip0ql9x1jjbhi34kf8izh4ilyf2k0-base64-bytestring-1.0.0.1 /nix/store/29a73kd2jkwvfdcrhysmi5xjr7nysrxf-http-client-0.5.6.1 /nix/store/d2hy666g79qvhmbh520x5jclwvnr1gk2-text-1.2.2.1 /nix/store/2bdzia66lg08d5zngmllcjry2c08m96j-hashable-1.2.6.0 /nix/store/7kdgc6c0b21s9j5qgg0s0gxj7iid2wk5-unordered-containers-0.2.8.0 /nix/store/zsryzwadshszfnkm740b2412v88iqgi4-semigroups-0.18.2 /nix/store/h2c0kz3m83x6fkl2jzkmin8xvkmfgs7s-charset-0.3.7.1 /nix/store/gapj6j0ya5bi9q9dxspda15k50gx8f1v-ansi-terminal-0.6.2.3 /nix/store/l46769n2p6rlh936zrbwznq3zxxa6mjd-ansi-wl-pprint-0.6.7.3 /nix/store/p7zmpgz0sq5pamgrf1xvhvidc3m4cfmk-dhall-1.3.0 /nix/store/938ndd0mqfm148367lwhl6pk5smv5bm0-data-fix-0.0.4 /nix/store/s0hpng652hsn40jy4kjdh1x0jm86dx9l-ghc-8.0.2"),("preferLocalBuild","1"),("propagatedBuildInputs",""),("propagatedNativeBuildInputs",""),("stdenv","/nix/store/685n25b9yc8sds57vljk459ldly1xyhn-stdenv"),("system","x86_64-linux")])
