regex-with-pcre 0.9.0.0 → 0.10.0.0
raw patch · 15 files changed
+466/−77 lines, 15 filesdep ~basedep ~regex
Dependency ranges changed: base, regex
Files
- README.markdown +2/−0
- Text/RE/Internal/SearchReplace/PCRE.hs +54/−0
- Text/RE/Internal/SearchReplace/PCRE/ByteString.hs +58/−0
- Text/RE/Internal/SearchReplace/PCRE/ByteString/Lazy.hs +58/−0
- Text/RE/Internal/SearchReplace/PCRE/Sequence.hs +58/−0
- Text/RE/Internal/SearchReplace/PCRE/String.hs +58/−0
- Text/RE/Internal/SearchReplace/PCREEdPrime.hs +63/−0
- Text/RE/PCRE.hs +4/−2
- Text/RE/PCRE/ByteString.hs +2/−0
- Text/RE/PCRE/ByteString/Lazy.hs +2/−0
- Text/RE/PCRE/RE.hs +87/−72
- Text/RE/PCRE/Sequence.hs +2/−0
- Text/RE/PCRE/String.hs +2/−0
- changelog +4/−0
- regex-with-pcre.cabal +12/−3
README.markdown view
@@ -64,6 +64,8 @@ ☒ 2017-03-18 v0.9.0.0 [Finish tidying up the API, Add type-safe replacement templates and exploit TemplateHaskellQuotes](https://github.com/iconnect/regex/milestone/9) + ☒ 2017-03-18 v0.10.0.0 [Tweak TypeSafe SearchReplace templates](https://github.com/iconnect/regex/milestone/11)+ ☐ 2017-03-31 v1.0.0.0 [First stable release](https://github.com/iconnect/regex/milestone/3) ☐ 2017-08-31 v2.0.0.0 [Fast text replacement with benchmarks](https://github.com/iconnect/regex/milestone/4)
+ Text/RE/Internal/SearchReplace/PCRE.hs view
@@ -0,0 +1,54 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE CPP #-}+#if __GLASGOW_HASKELL__ >= 800+{-# LANGUAGE TemplateHaskellQuotes #-}+#else+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+#endif++module Text.RE.Internal.SearchReplace.PCRE+ ( ed+ , edMS+ , edMI+ , edBS+ , edBI+ , edMultilineSensitive+ , edMultilineInsensitive+ , edBlockSensitive+ , edBlockInsensitive+ , ed_+ ) where++import Language.Haskell.TH+import Language.Haskell.TH.Quote+import Prelude.Compat+import Text.RE.Internal.SearchReplace.PCREEdPrime+import Text.RE.Types.REOptions+++-- | the @[ed| ... /// ... |]@ quasi quoters+ed+ , edMS+ , edMI+ , edBS+ , edBI+ , edMultilineSensitive+ , edMultilineInsensitive+ , edBlockSensitive+ , edBlockInsensitive+ , ed_ :: QuasiQuoter++ed = ed' cast $ Just minBound+edMS = edMultilineSensitive+edMI = edMultilineInsensitive+edBS = edBlockSensitive+edBI = edBlockInsensitive+edMultilineSensitive = ed' cast $ Just MultilineSensitive+edMultilineInsensitive = ed' cast $ Just MultilineInsensitive+edBlockSensitive = ed' cast $ Just BlockSensitive+edBlockInsensitive = ed' cast $ Just BlockInsensitive+ed_ = ed' cast Nothing++cast :: Q Exp+cast = [|id|]
+ Text/RE/Internal/SearchReplace/PCRE/ByteString.hs view
@@ -0,0 +1,58 @@+{-# LANGUAGE CPP #-}+#if __GLASGOW_HASKELL__ >= 800+{-# LANGUAGE TemplateHaskellQuotes #-}+#else+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+#endif++module Text.RE.Internal.SearchReplace.PCRE.ByteString+ ( ed+ , edMS+ , edMI+ , edBS+ , edBI+ , edMultilineSensitive+ , edMultilineInsensitive+ , edBlockSensitive+ , edBlockInsensitive+ , ed_+ ) where++import qualified Data.ByteString.Char8 as B+import Language.Haskell.TH+import Language.Haskell.TH.Quote+import Text.RE.PCRE.RE+import Text.RE.Internal.SearchReplace.PCREEdPrime+import Text.RE.SearchReplace+import Text.RE.Types.REOptions+++-- | the @[ed| ... /// ... |]@ quasi quoters+ed+ , edMS+ , edMI+ , edBS+ , edBI+ , edMultilineSensitive+ , edMultilineInsensitive+ , edBlockSensitive+ , edBlockInsensitive+ , ed_ :: QuasiQuoter++ed = ed' sr_cast $ Just minBound+edMS = edMultilineSensitive+edMI = edMultilineInsensitive+edBS = edBlockSensitive+edBI = edBlockInsensitive+edMultilineSensitive = ed' sr_cast $ Just MultilineSensitive+edMultilineInsensitive = ed' sr_cast $ Just MultilineInsensitive+edBlockSensitive = ed' sr_cast $ Just BlockSensitive+edBlockInsensitive = ed' sr_cast $ Just BlockInsensitive+ed_ = ed' fn_cast Nothing++sr_cast :: Q Exp+sr_cast = [|\x -> x :: SearchReplace RE B.ByteString|]++fn_cast :: Q Exp+fn_cast = [|\x -> x :: SimpleREOptions -> SearchReplace RE B.ByteString|]
+ Text/RE/Internal/SearchReplace/PCRE/ByteString/Lazy.hs view
@@ -0,0 +1,58 @@+{-# LANGUAGE CPP #-}+#if __GLASGOW_HASKELL__ >= 800+{-# LANGUAGE TemplateHaskellQuotes #-}+#else+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+#endif++module Text.RE.Internal.SearchReplace.PCRE.ByteString.Lazy+ ( ed+ , edMS+ , edMI+ , edBS+ , edBI+ , edMultilineSensitive+ , edMultilineInsensitive+ , edBlockSensitive+ , edBlockInsensitive+ , ed_+ ) where++import qualified Data.ByteString.Lazy.Char8 as LBS+import Language.Haskell.TH+import Language.Haskell.TH.Quote+import Text.RE.PCRE.RE+import Text.RE.Internal.SearchReplace.PCREEdPrime+import Text.RE.SearchReplace+import Text.RE.Types.REOptions+++-- | the @[ed| ... /// ... |]@ quasi quoters+ed+ , edMS+ , edMI+ , edBS+ , edBI+ , edMultilineSensitive+ , edMultilineInsensitive+ , edBlockSensitive+ , edBlockInsensitive+ , ed_ :: QuasiQuoter++ed = ed' sr_cast $ Just minBound+edMS = edMultilineSensitive+edMI = edMultilineInsensitive+edBS = edBlockSensitive+edBI = edBlockInsensitive+edMultilineSensitive = ed' sr_cast $ Just MultilineSensitive+edMultilineInsensitive = ed' sr_cast $ Just MultilineInsensitive+edBlockSensitive = ed' sr_cast $ Just BlockSensitive+edBlockInsensitive = ed' sr_cast $ Just BlockInsensitive+ed_ = ed' fn_cast Nothing++sr_cast :: Q Exp+sr_cast = [|\x -> x :: SearchReplace RE LBS.ByteString|]++fn_cast :: Q Exp+fn_cast = [|\x -> x :: SimpleREOptions -> SearchReplace RE LBS.ByteString|]
+ Text/RE/Internal/SearchReplace/PCRE/Sequence.hs view
@@ -0,0 +1,58 @@+{-# LANGUAGE CPP #-}+#if __GLASGOW_HASKELL__ >= 800+{-# LANGUAGE TemplateHaskellQuotes #-}+#else+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+#endif++module Text.RE.Internal.SearchReplace.PCRE.Sequence+ ( ed+ , edMS+ , edMI+ , edBS+ , edBI+ , edMultilineSensitive+ , edMultilineInsensitive+ , edBlockSensitive+ , edBlockInsensitive+ , ed_+ ) where++import qualified Data.Sequence as S+import Language.Haskell.TH+import Language.Haskell.TH.Quote+import Text.RE.PCRE.RE+import Text.RE.Internal.SearchReplace.PCREEdPrime+import Text.RE.SearchReplace+import Text.RE.Types.REOptions+++-- | the @[ed| ... /// ... |]@ quasi quoters+ed+ , edMS+ , edMI+ , edBS+ , edBI+ , edMultilineSensitive+ , edMultilineInsensitive+ , edBlockSensitive+ , edBlockInsensitive+ , ed_ :: QuasiQuoter++ed = ed' sr_cast $ Just minBound+edMS = edMultilineSensitive+edMI = edMultilineInsensitive+edBS = edBlockSensitive+edBI = edBlockInsensitive+edMultilineSensitive = ed' sr_cast $ Just MultilineSensitive+edMultilineInsensitive = ed' sr_cast $ Just MultilineInsensitive+edBlockSensitive = ed' sr_cast $ Just BlockSensitive+edBlockInsensitive = ed' sr_cast $ Just BlockInsensitive+ed_ = ed' fn_cast Nothing++sr_cast :: Q Exp+sr_cast = [|\x -> x :: SearchReplace RE (S.Seq Char)|]++fn_cast :: Q Exp+fn_cast = [|\x -> x :: SimpleREOptions -> SearchReplace RE (S.Seq Char)|]
+ Text/RE/Internal/SearchReplace/PCRE/String.hs view
@@ -0,0 +1,58 @@+{-# LANGUAGE CPP #-}+#if __GLASGOW_HASKELL__ >= 800+{-# LANGUAGE TemplateHaskellQuotes #-}+#else+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+#endif++module Text.RE.Internal.SearchReplace.PCRE.String+ ( ed+ , edMS+ , edMI+ , edBS+ , edBI+ , edMultilineSensitive+ , edMultilineInsensitive+ , edBlockSensitive+ , edBlockInsensitive+ , ed_+ ) where+++import Language.Haskell.TH+import Language.Haskell.TH.Quote+import Text.RE.PCRE.RE+import Text.RE.Internal.SearchReplace.PCREEdPrime+import Text.RE.SearchReplace+import Text.RE.Types.REOptions+++-- | the @[ed| ... /// ... |]@ quasi quoters+ed+ , edMS+ , edMI+ , edBS+ , edBI+ , edMultilineSensitive+ , edMultilineInsensitive+ , edBlockSensitive+ , edBlockInsensitive+ , ed_ :: QuasiQuoter++ed = ed' sr_cast $ Just minBound+edMS = edMultilineSensitive+edMI = edMultilineInsensitive+edBS = edBlockSensitive+edBI = edBlockInsensitive+edMultilineSensitive = ed' sr_cast $ Just MultilineSensitive+edMultilineInsensitive = ed' sr_cast $ Just MultilineInsensitive+edBlockSensitive = ed' sr_cast $ Just BlockSensitive+edBlockInsensitive = ed' sr_cast $ Just BlockInsensitive+ed_ = ed' fn_cast Nothing++sr_cast :: Q Exp+sr_cast = [|\x -> x :: SearchReplace RE String|]++fn_cast :: Q Exp+fn_cast = [|\x -> x :: SimpleREOptions -> SearchReplace RE String|]
+ Text/RE/Internal/SearchReplace/PCREEdPrime.hs view
@@ -0,0 +1,63 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE CPP #-}+#if __GLASGOW_HASKELL__ >= 800+{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}+{-# LANGUAGE TemplateHaskellQuotes #-}+#else+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+#endif++module Text.RE.Internal.SearchReplace.PCREEdPrime+ ( ed'+ ) where++import Language.Haskell.TH+import Language.Haskell.TH.Quote+import Prelude.Compat+import Text.RE.Internal.SearchReplace+import Text.RE.Internal.QQ+import Text.RE.PCRE.RE+import Text.RE.SearchReplace+import Text.RE.Types.IsRegex+import Text.RE.Types.REOptions+import Text.RE.Types.Replace+import Text.Regex.PCRE+++-- | construct a quasi quoter from a casting function and @Just sro@+-- if the options are known, otherwise a function take takes the+-- 'SimpleREOptions' and constructs the 'SearchReplace' template+ed' :: Q Exp -> Maybe SimpleREOptions -> QuasiQuoter+ed' qe mb = case mb of+ Nothing ->+ (qq0 "ed'")+ { quoteExp = parse minBound $ \rs -> AppE <$> qe <*> [|flip unsafe_compile_sr rs|]+ }+ Just sro ->+ (qq0 "ed'")+ { quoteExp = parse sro $ \rs -> AppE <$> qe <*> [|unsafe_compile_sr_simple sro rs|]+ }+ where+ parse :: SimpleREOptions -> (String->Q Exp) -> String -> Q Exp+ parse sro mk ts = either error (\_->mk ts) ei+ where+ ei :: Either String (SearchReplace RE String)+ ei = compileSearchReplace_ id (compileRegexWith sro) ts++unsafe_compile_sr_simple :: IsRegex RE s+ => SimpleREOptions+ -> String+ -> SearchReplace RE s+unsafe_compile_sr_simple sro =+ unsafe_compile_sr $ unpackSimpleREOptions sro++unsafe_compile_sr :: ( IsOption o RE CompOption ExecOption+ , IsRegex RE s+ )+ => o+ -> String+ -> SearchReplace RE s+unsafe_compile_sr os =+ unsafeCompileSearchReplace_ packR $ compileRegexWithOptions os
Text/RE/PCRE.hs view
@@ -41,6 +41,8 @@ , escape , escapeWith , module Text.RE.PCRE.RE+ -- * The [ed| ... |] quasi quoters+ , module Text.RE.Internal.SearchReplace.PCRE -- * The Operator Instances -- $instances , module Text.RE.PCRE.ByteString@@ -54,6 +56,7 @@ import qualified Text.Regex.Base as B import Text.RE import Text.RE.Internal.AddCaptureNames+import Text.RE.Internal.SearchReplace.PCRE import Text.RE.PCRE.RE import qualified Text.Regex.PCRE as PCRE import Text.RE.PCRE.ByteString()@@ -111,5 +114,4 @@ -- $instances ----- These modules merely provide the instances for the above regex--- match operators at the various text types.+-- These modules merely provide the 'IsRegex' instances.
Text/RE/PCRE/ByteString.hs view
@@ -44,6 +44,7 @@ , escape , escapeWith , module Text.RE.PCRE.RE+ , module Text.RE.Internal.SearchReplace.PCRE.ByteString ) where import Prelude.Compat@@ -52,6 +53,7 @@ import Text.Regex.Base import Text.RE import Text.RE.Internal.AddCaptureNames+import Text.RE.Internal.SearchReplace.PCRE.ByteString import Text.RE.SearchReplace import Text.RE.Types.IsRegex import Text.RE.Types.REOptions
Text/RE/PCRE/ByteString/Lazy.hs view
@@ -44,6 +44,7 @@ , escape , escapeWith , module Text.RE.PCRE.RE+ , module Text.RE.Internal.SearchReplace.PCRE.ByteString.Lazy ) where import Prelude.Compat@@ -52,6 +53,7 @@ import Text.Regex.Base import Text.RE import Text.RE.Internal.AddCaptureNames+import Text.RE.Internal.SearchReplace.PCRE.ByteString.Lazy import Text.RE.SearchReplace import Text.RE.Types.IsRegex import Text.RE.Types.REOptions
Text/RE/PCRE/RE.hs view
@@ -59,16 +59,16 @@ , reBlockSensitive , reBlockInsensitive , re_- , ed- , edMS- , edMI- , edBS- , edBI- , edMultilineSensitive- , edMultilineInsensitive- , edBlockSensitive- , edBlockInsensitive- , ed_+ -- , ed+ -- , edMS+ -- , edMI+ -- , edBS+ -- , edBI+ -- , edMultilineSensitive+ -- , edMultilineInsensitive+ -- , edBlockSensitive+ -- , edBlockInsensitive+ -- , ed_ , cp ) where @@ -81,6 +81,7 @@ import Text.RE.Internal.NamedCaptures import Text.RE.Internal.PreludeMacros import Text.RE.Internal.QQ+import Text.RE.Internal.SearchReplace import Text.RE.SearchReplace import Text.RE.TestBench import Text.RE.Types.CaptureID@@ -321,17 +322,17 @@ , reMultilineInsensitive , reBlockSensitive , reBlockInsensitive- , re_- , ed- , edMS- , edMI- , edBS- , edBI- , edMultilineSensitive- , edMultilineInsensitive- , edBlockSensitive- , edBlockInsensitive- , ed_ :: QuasiQuoter+ , re_ :: QuasiQuoter+ -- , ed+ -- , edMS+ -- , edMI+ -- , edBS+ -- , edBI+ -- , edMultilineSensitive+ -- , edMultilineInsensitive+ -- , edBlockSensitive+ -- , edBlockInsensitive+ -- , ed_ :: QuasiQuoter re = re' $ Just minBound reMS = reMultilineSensitive@@ -344,16 +345,16 @@ reBlockInsensitive = re' $ Just BlockInsensitive re_ = re' Nothing -ed = ed' $ Just minBound-edMS = edMultilineSensitive-edMI = edMultilineInsensitive-edBS = edBlockSensitive-edBI = edBlockInsensitive-edMultilineSensitive = ed' $ Just MultilineSensitive-edMultilineInsensitive = ed' $ Just MultilineInsensitive-edBlockSensitive = ed' $ Just BlockSensitive-edBlockInsensitive = ed' $ Just BlockInsensitive-ed_ = ed' Nothing+-- ed = ed' $ Just minBound+-- edMS = edMultilineSensitive+-- edMI = edMultilineInsensitive+-- edBS = edBlockSensitive+-- edBI = edBlockInsensitive+-- edMultilineSensitive = ed' $ Just MultilineSensitive+-- edMultilineInsensitive = ed' $ Just MultilineInsensitive+-- edBlockSensitive = ed' $ Just BlockSensitive+-- edBlockInsensitive = ed' $ Just BlockInsensitive+-- ed_ = ed' Nothing ------------------------------------------------------------------------@@ -421,47 +422,61 @@ -- ed Helpers ------------------------------------------------------------------------ -ed' :: Maybe SimpleREOptions -> QuasiQuoter-ed' mb = case mb of- Nothing ->- (qq0 "ed'")- { quoteExp = parse minBound (\rs->[|flip unsafe_compile_sr rs|])- }- Just sro ->- (qq0 "ed'")- { quoteExp = parse sro (\rs->[|unsafe_compile_sr_simple sro rs|])- }- where- parse :: SimpleREOptions -> (String->Q Exp) -> String -> Q Exp- parse sro mk ts = either error (\_->mk ts) ei- where- ei :: Either String (SearchReplace RE String)- ei = compileSearchReplace_ id (compileRegexWith sro) ts--unsafe_compile_sr_simple :: IsRegex RE s- => SimpleREOptions- -> String- -> SearchReplace RE s-unsafe_compile_sr_simple sro =- unsafe_compile_sr $ unpackSimpleREOptions sro--unsafe_compile_sr :: ( IsOption o RE CompOption ExecOption- , IsRegex RE s- )- => o- -> String- -> SearchReplace RE s-unsafe_compile_sr os =- unsafeCompileSearchReplace_ packR $ compileRegexWithOptions os---------+-- edS :: QuasiQuoter+-- edS = cast_ed [|\x -> x :: SearchReplace RE String|] $ Just minBound+--+-- edS_ :: QuasiQuoter+-- edS_ = cast_ed [|\x -> x :: SimpleREOptions -> SearchReplace RE String|] Nothing+--+-- cast_ed :: Q Exp -> Maybe SimpleREOptions -> QuasiQuoter+-- cast_ed qe mb = case mb of+-- Nothing ->+-- (qq0 "ed'")+-- { quoteExp = parse minBound $ \rs -> AppE <$> qe <*> [|flip unsafe_compile_sr rs|]+-- }+-- Just sro ->+-- (qq0 "ed'")+-- { quoteExp = parse sro $ \rs -> AppE <$> qe <*> [|unsafe_compile_sr_simple sro rs|]+-- }+-- where+-- parse :: SimpleREOptions -> (String->Q Exp) -> String -> Q Exp+-- parse sro mk ts = either error (\_->mk ts) ei+-- where+-- ei :: Either String (SearchReplace RE String)+-- ei = compileSearchReplace_ id (compileRegexWith sro) ts+--+-- ed' :: Maybe SimpleREOptions -> QuasiQuoter+-- ed' mb = case mb of+-- Nothing ->+-- (qq0 "ed'")+-- { quoteExp = parse minBound (\rs->[|flip unsafe_compile_sr rs|])+-- }+-- Just sro ->+-- (qq0 "ed'")+-- { quoteExp = parse sro (\rs->[|unsafe_compile_sr_simple sro rs|])+-- }+-- where+-- parse :: SimpleREOptions -> (String->Q Exp) -> String -> Q Exp+-- parse sro mk ts = either error (\_->mk ts) ei+-- where+-- ei :: Either String (SearchReplace RE String)+-- ei = compileSearchReplace_ id (compileRegexWith sro) ts+--+-- unsafe_compile_sr_simple :: IsRegex RE s+-- => SimpleREOptions+-- -> String+-- -> SearchReplace RE s+-- unsafe_compile_sr_simple sro =+-- unsafe_compile_sr $ unpackSimpleREOptions sro+--+-- unsafe_compile_sr :: ( IsOption o RE CompOption ExecOption+-- , IsRegex RE s+-- )+-- => o+-- -> String+-- -> SearchReplace RE s+-- unsafe_compile_sr os =+-- unsafeCompileSearchReplace_ packR $ compileRegexWithOptions os def_comp_option :: CompOption def_comp_option = optionsComp defaultREOptions
Text/RE/PCRE/Sequence.hs view
@@ -44,6 +44,7 @@ , escape , escapeWith , module Text.RE.PCRE.RE+ , module Text.RE.Internal.SearchReplace.PCRE.Sequence ) where import Prelude.Compat@@ -52,6 +53,7 @@ import Text.Regex.Base import Text.RE import Text.RE.Internal.AddCaptureNames+import Text.RE.Internal.SearchReplace.PCRE.Sequence import Text.RE.SearchReplace import Text.RE.Types.IsRegex import Text.RE.Types.REOptions
Text/RE/PCRE/String.hs view
@@ -44,6 +44,7 @@ , escape , escapeWith , module Text.RE.PCRE.RE+ , module Text.RE.Internal.SearchReplace.PCRE.String ) where import Prelude.Compat@@ -52,6 +53,7 @@ import Text.Regex.Base import Text.RE import Text.RE.Internal.AddCaptureNames+import Text.RE.Internal.SearchReplace.PCRE.String import Text.RE.SearchReplace import Text.RE.Types.IsRegex import Text.RE.Types.REOptions
changelog view
@@ -1,5 +1,9 @@ -*-change-log-*- +0.10.0.0 Chris Dornan <chris.dornan@irisconnect.co.uk> 2017-03-25+ * Tweak Type-Safe SearchReplace templates (#86)+ * Add escape methods to IsRegex (#87)+ 0.9.0.0 Chris Dornan <chris.dornan@irisconnect.co.uk> 2017-03-23 * Flip the order of the arguments to replace (#78) * Add type-safe replacement templates (#60)
regex-with-pcre.cabal view
@@ -1,5 +1,5 @@ Name: regex-with-pcre-Version: 0.9.0.0+Version: 0.10.0.0 Synopsis: Toolkit for regex-base Description: A Regular Expression Toolkit for regex-base with Compile-time checking of RE syntax, data types for@@ -31,12 +31,13 @@ Source-Repository this Type: git Location: https://github.com/iconnect/regex.git- Tag: 0.9.0.0+ Tag: 0.10.0.0 Library Hs-Source-Dirs: .+ Exposed-Modules: Text.RE.PCRE Text.RE.PCRE.ByteString@@ -45,6 +46,14 @@ Text.RE.PCRE.Sequence Text.RE.PCRE.String + Other-Modules:+ Text.RE.Internal.SearchReplace.PCRE+ Text.RE.Internal.SearchReplace.PCRE.ByteString+ Text.RE.Internal.SearchReplace.PCRE.ByteString.Lazy+ Text.RE.Internal.SearchReplace.PCRE.Sequence+ Text.RE.Internal.SearchReplace.PCRE.String+ Text.RE.Internal.SearchReplace.PCREEdPrime+ Default-Language: Haskell2010 Other-Extensions:@@ -78,7 +87,7 @@ -Wwarn Build-depends:- regex == 0.9.0.0+ regex == 0.10.0.0 , base >= 4 && < 5 , base-compat >= 0.6.0 , bytestring >= 0.10.2.0