diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,8 +1,12 @@
 # Changelog for collect-errors
 
+## v0.1.1.0
+
+* Add removeValue functions
+
 ## v0.1.0.0
 
-* Initial port of CollectErrors and CN from mixed-types-num-0.4.2
+* Initial port of CollectErrors and CN from mixed-types-num-0.4.1
 
 * Simplify the code by abandoning EnsureCE and related type functions and utilities
 
diff --git a/collect-errors.cabal b/collect-errors.cabal
--- a/collect-errors.cabal
+++ b/collect-errors.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 7bf0425f189848e2370d0cab1f8335a5386e11e6f03271d1faafe460c97204ff
+-- hash: 5f417d9a5348a4f9b717f189c1f3f9770e6a4a4acf3d3840841fbd82f9ac2ef0
 
 name:           collect-errors
-version:        0.1.0.0
+version:        0.1.1.0
 synopsis:       Error monad with a Float instance
 description:    Please see the README on GitHub at <https://github.com/michalkonecny/collect-errors#readme>
 category:       Math
diff --git a/src/Control/CollectErrors.hs b/src/Control/CollectErrors.hs
--- a/src/Control/CollectErrors.hs
+++ b/src/Control/CollectErrors.hs
@@ -7,6 +7,7 @@
 , CanTestErrorsPresent(..)
 -- ** Utilities
 , noValue
+, removeValue
 , prependErrors
 , unCollectErrors
 , (~!)
diff --git a/src/Control/CollectErrors/Type.hs b/src/Control/CollectErrors/Type.hs
--- a/src/Control/CollectErrors/Type.hs
+++ b/src/Control/CollectErrors/Type.hs
@@ -64,6 +64,11 @@
 noValue :: es -> CollectErrors es v
 noValue es = CollectErrors Nothing es
 
+{-| Take a CE-value, add new errors into it and remove the value, if any -}
+removeValue :: Monoid es => CollectErrors es v -> es -> CollectErrors es v
+removeValue (CollectErrors _ es1) es2 =
+  CollectErrors Nothing (es1 <> es2)
+
 prependErrors :: (Monoid es) => es -> CollectErrors es v -> CollectErrors es v
 prependErrors es1 (CollectErrors mv es2) = CollectErrors mv (es1 <> es2)
 
diff --git a/src/Numeric/CollectErrors.hs b/src/Numeric/CollectErrors.hs
--- a/src/Numeric/CollectErrors.hs
+++ b/src/Numeric/CollectErrors.hs
@@ -4,11 +4,12 @@
   NumError(..), ErrorCertaintyLevel(..), NumErrors, CN, cn, unCN, (~!)
   -- * Utilities
 , noValueNumErrorCertain, noValueNumErrorPotential
+, removeValueErrorCertain, removeValueErrorPotential
+, prependErrorCertain, prependErrorPotential
   -- ** Applicable general collect-error utilities
 , noValue
+, removeValue
 , prependErrors
-, prependErrorCertain
-, prependErrorPotential
 , CanTestErrorsCertain(..)
 , CanTestErrorsPresent(..)
 , toEither
diff --git a/src/Numeric/CollectErrors/Type.hs b/src/Numeric/CollectErrors/Type.hs
--- a/src/Numeric/CollectErrors/Type.hs
+++ b/src/Numeric/CollectErrors/Type.hs
@@ -9,7 +9,7 @@
 import qualified Data.Set as Set
 
 import Control.CollectErrors
-    ( CanTestErrorsCertain(..), CollectErrors, noValue, prependErrors, liftCE, lift2CE, lift1TCE, liftT1CE, unCollectErrors, CanTestErrorsPresent )
+    ( CanTestErrorsCertain(..), CollectErrors, noValue, removeValue, prependErrors, liftCE, lift2CE, lift1TCE, liftT1CE, unCollectErrors, CanTestErrorsPresent  )
 
 cn :: v -> CN v
 cn = pure
@@ -56,6 +56,14 @@
 {-| Construct an empty wrapper indicating that given error may have occurred. -}
 noValueNumErrorPotential :: NumError -> CN v
 noValueNumErrorPotential e = noValue $ NumErrors $ Set.singleton (e, ErrorPotential)
+
+removeValueErrorCertain :: CN t -> NumError -> CN t
+removeValueErrorCertain v e = 
+  removeValue v $ NumErrors $ Set.singleton (e, ErrorCertain)
+
+removeValueErrorPotential :: CN t -> NumError -> CN t
+removeValueErrorPotential v e = 
+  removeValue v $ NumErrors $ Set.singleton (e, ErrorPotential)
 
 prependErrorCertain :: NumError -> CN t -> CN t
 prependErrorCertain e = prependErrors $ NumErrors $ Set.singleton (e, ErrorCertain)
