diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
 # Revision history for exiftool
 
+## 0.2.0.4 -- 2023-03-13
+
+* Bugfix re version number in cabal file.
+
+## 0.2.0.3 -- 2023-03-13
+
+* Maintenance release.
+
 ## 0.2.0.2 -- 2022-11-14
 
 * Maintenance release.
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
 MIT License
 
-Copyright (c) 2020-2022 Martin Hoppenheit
+Copyright (c) 2020-2023 Martin Hoppenheit
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/exiftool.cabal b/exiftool.cabal
--- a/exiftool.cabal
+++ b/exiftool.cabal
@@ -1,6 +1,6 @@
 cabal-version:      3.0
 name:               exiftool
-version:            0.2.0.2
+version:            0.2.0.4
 synopsis:           Haskell bindings to ExifTool
 description:        Haskell bindings to the [ExifTool](https://exiftool.org)
                     command-line application that enable reading, writing and
@@ -10,7 +10,7 @@
 license-file:       LICENSE
 author:             Martin Hoppenheit
 maintainer:         martin@hoppenheit.info
-copyright:          2020-2022 Martin Hoppenheit
+copyright:          2020-2023 Martin Hoppenheit
 category:           Foreign
 extra-source-files: README.md CHANGELOG.md
 
@@ -29,8 +29,7 @@
                     temporary            >= 1.3 && < 1.4,
                     text                 >= 1.2.3 && < 2.1,
                     unordered-containers >= 0.2.12 && < 0.3,
-                    vector               >= 0.12.1 && < 0.14,
-                    witch                >= 1.0.0 && < 1.2
+                    vector               >= 0.12.1 && < 0.14
 
 source-repository head
   type:               git
diff --git a/lib/ExifTool.hs b/lib/ExifTool.hs
--- a/lib/ExifTool.hs
+++ b/lib/ExifTool.hs
@@ -1,10 +1,9 @@
 {-# LANGUAGE DerivingVia #-}
 {-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE TypeApplications #-}
 
 -- |
 -- Module     : ExifTool
--- Copyright  : (c) Martin Hoppenheit 2020-2022
+-- Copyright  : (c) Martin Hoppenheit 2020-2023
 -- License    : MIT
 -- Maintainer : martin@hoppenheit.info
 --
@@ -101,9 +100,11 @@
   ( Text,
     intercalate,
     isPrefixOf,
+    pack,
     splitOn,
     stripPrefix,
     toCaseFold,
+    unpack,
   )
 import Data.Text.Encoding (decodeUtf8', encodeUtf8)
 import Data.Text.IO (hGetLine, hPutStrLn)
@@ -120,7 +121,6 @@
     std_in,
     std_out,
   )
-import Witch (into)
 
 -- | An ExifTool instance, initialized with 'startExifTool' and terminated with
 -- 'stopExifTool'.
@@ -171,7 +171,7 @@
   parseJSON (JSON.String x)
     | Just b <- stripPrefix "base64:" x =
         either
-          (fail . into @String)
+          (fail . unpack)
           (pure . Binary)
           (decodeBase64 $ encodeUtf8 b)
     | otherwise = pure $ String x
@@ -217,10 +217,10 @@
   fromValue (Binary x) = either (const Nothing) Just $ decodeUtf8' x
   fromValue (Number x) =
     Just
-      . into @Text
+      . pack
       . formatScientific Fixed (Just $ if isInteger x then 0 else 2)
       $ x
-  fromValue (Bool x) = Just . into @Text . show $ x
+  fromValue (Bool x) = Just . pack . show $ x
   fromValue (List xs) = intercalate ", " <$> traverse fromValue xs
 
 instance ToValue Text where
@@ -267,11 +267,11 @@
 instance ToValue Bool where
   toValue = Bool
 
-instance FromValue a => FromValue [a] where
+instance (FromValue a) => FromValue [a] where
   fromValue (List xs) = traverse fromValue xs
   fromValue _ = Nothing
 
-instance ToValue a => ToValue [a] where
+instance (ToValue a) => ToValue [a] where
   toValue = List . fmap toValue
 
 -- | Start an ExifTool instance. Use 'stopExifTool' when done, or 'withExifTool'
@@ -349,13 +349,13 @@
 -- @since 0.2.0.0
 readMetaEither :: ExifTool -> [Tag] -> FilePath -> IO (Either Text Metadata)
 readMetaEither et ts fp = do
-  result <- sendCommand et (into @Text fp : options <> tags)
+  result <- sendCommand et (pack fp : options <> tags)
   pure $ Metadata . mapKeys toLower <$> (result >>= parseOutput)
   where
     options = ["-json", "-binary", "-unknown2"]
     tags = fmap (("-" <>) . tagName) ts
     parseOutput =
-      bimap (into @Text) head . eitherDecode . into @BL.ByteString . encodeUtf8
+      bimap pack head . eitherDecode . BL.fromStrict . encodeUtf8
 
 -- | Write metadata to a file. The file is modified in place, make sure you have
 -- the necessary backups!
@@ -373,10 +373,7 @@
   withSystemTempFile "exiftool.json" $ \metafile h -> do
     BL.hPut h $ encode [delete (Tag "SourceFile") m]
     hFlush h
-    void
-      <$> sendCommand
-        et
-        (into @Text fp : "-json=" <> into @Text metafile : options)
+    void <$> sendCommand et (pack fp : "-json=" <> pack metafile : options)
   where
     options = ["-overwrite_original", "-f"]
 
@@ -384,7 +381,7 @@
 -- "Description)" m == get (Tag "description") m@.
 --
 -- @since 0.2.0.0
-get :: FromValue a => Tag -> Metadata -> Maybe a
+get :: (FromValue a) => Tag -> Metadata -> Maybe a
 get t (Metadata m) = do
   v <- m !? toLower t
   guard (v /= String "-") -- Marked for deletion, see del function below.
@@ -393,7 +390,7 @@
 -- | Set a tag to a (new) value. Tag case is ignored.
 --
 -- @since 0.2.0.0
-set :: ToValue a => Tag -> a -> Metadata -> Metadata
+set :: (ToValue a) => Tag -> a -> Metadata -> Metadata
 set t v (Metadata m) = Metadata $ insert (toLower t) (toValue v) m
 
 -- | Delete a tag (i.e., set its value to a marker that will make ExifTool
@@ -405,4 +402,4 @@
 
 -- | Extract content from Right or throw error.
 eitherError :: Either Text a -> a
-eitherError = either (error . into @String) id
+eitherError = either (error . unpack) id
