diff --git a/merge.cabal b/merge.cabal
--- a/merge.cabal
+++ b/merge.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               merge
-version:            0.3.0.1
+version:            0.3.1.1
 synopsis:           A functor for consistent merging of information
 description:        A functor for consistent merging of information.
 author:             Samuel Schlesinger
diff --git a/src/Data/Merge.hs b/src/Data/Merge.hs
--- a/src/Data/Merge.hs
+++ b/src/Data/Merge.hs
@@ -21,12 +21,13 @@
     -- * The Merge type
   , Merge (Merge, runMerge)
     -- * Construction
-  , (.?)
   , merge
   , optional
   , required
   , combine
   , combineWith
+  , (.?)
+  , (.!)
   , combineGen
   , combineGenWith
   , Alternative(..)
@@ -97,6 +98,10 @@
 -- which use 'mempty' to provide the default error type.
 (.?) :: Semigroup e => Merge e x a -> e -> Merge e x a
 m .? e = Merge \x x' -> bimap (e <>) id (runMerge m x x')
+
+-- | Applies an arbitrary function to the error.
+(.!) :: Merge e x a -> (e -> e') -> Merge e' x a
+m .! f = Merge \x x' -> bimap f id (runMerge m x x')
 
 infixl 6 .?
 
