diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,6 @@
+#####   3.2.1
+  fix failing build
+    
 #####   3.2
   fix bug in defaultReplacer  
 
diff --git a/regex-do.cabal b/regex-do.cabal
--- a/regex-do.cabal
+++ b/regex-do.cabal
@@ -1,5 +1,5 @@
 name:                regex-do
-version:             3.2
+version:             3.2.1
 synopsis:            PCRE wrapper
 description:         format, search, replace (String | ByteString) with PCRE regex. Utf8-safe
 author:              Imants Cekusins
diff --git a/src/Text/Regex/Do/Match/Regex.hs b/src/Text/Regex/Do/Match/Regex.hs
--- a/src/Text/Regex/Do/Match/Regex.hs
+++ b/src/Text/Regex/Do/Match/Regex.hs
@@ -4,14 +4,13 @@
 
 import qualified Text.Regex.Base.RegexLike as R
 import qualified Text.Regex.Do.Type.Reexport as R
+import Control.Monad.Fail
 import Data.ByteString
 import Text.Regex.Do.Type.Do hiding (Regex)
 import Text.Regex.Do.Match.Option
 import Data.List as L
 
 
-
-
 class Regex a where
    makeRegex::a -> E R.Regex
    makeRegexOpt::a -> [Comp] -> [Exec] -> E R.Regex
@@ -32,7 +31,7 @@
    makeRegexOpt p0 _ _ = pure p0
 
 
-makeRegexOptsM::(Monad m, Opt_ a) =>
+makeRegexOptsM::(Monad m, Opt_ a, Control.Monad.Fail.MonadFail m) =>
     a -> [Comp] -> [Exec] ->
             m R.Regex
 makeRegexOptsM pat0 comp0 exec0 = rx1
@@ -63,3 +62,7 @@
     (>>=) (RegexResult (Left e1)) fn0 = RegexResult $ Left e1
     (>>=) (RegexResult (Right a0)) fn0 = fn0 a0
     fail s0 = RegexResult $ Left [s0]
+
+instance MonadFail RegexResult where
+    fail :: String -> RegexResult a
+    fail err0 = RegexResult $ Left [err0]
diff --git a/src/Text/Regex/Do/Type/Extract.hs b/src/Text/Regex/Do/Type/Extract.hs
--- a/src/Text/Regex/Do/Type/Extract.hs
+++ b/src/Text/Regex/Do/Type/Extract.hs
@@ -1,11 +1,9 @@
 module Text.Regex.Do.Type.Extract where
 
 import Text.Regex.Base.RegexLike as R hiding (empty)
-import qualified Text.Regex.Base.RegexLike as R (empty)
 import Prelude as P
 import Data.ByteString as B
 import Data.Text as T hiding (empty)
-import qualified Data.Text as T (empty)
 import Text.Regex.Do.Type.Do
 
 
@@ -25,12 +23,6 @@
 instance Extract' B.ByteString where
    concat' = B.concat
    len' = B.length
-
-
-instance Extract Text where
-    before = T.take
-    after = T.drop
-    empty = T.empty
 
 
 instance Extract' Text where
