packages feed

regex-with-pcre 1.0.1.3 → 1.0.1.4

raw patch · 4 files changed

+123/−120 lines, 4 filesdep ~base-compatdep ~containersdep ~regexPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base-compat, containers, regex, template-haskell, transformers

API changes (from Hackage documentation)

- Text.RE.PCRE.Sequence: instance Text.RE.ZeInternals.Types.IsRegex.IsRegex Text.RE.ZeInternals.PCRE.RE (Data.Sequence.Seq GHC.Types.Char)
+ Text.RE.PCRE.Sequence: instance Text.RE.ZeInternals.Types.IsRegex.IsRegex Text.RE.ZeInternals.PCRE.RE (Data.Sequence.Internal.Seq GHC.Types.Char)
- Text.RE.PCRE: SearchReplace :: ~re -> ~s -> SearchReplace re s
+ Text.RE.PCRE: SearchReplace :: !re -> !s -> SearchReplace re s
- Text.RE.PCRE: [getSearch] :: SearchReplace re s -> ~re
+ Text.RE.PCRE: [getSearch] :: SearchReplace re s -> !re
- Text.RE.PCRE: [getTemplate] :: SearchReplace re s -> ~s
+ Text.RE.PCRE: [getTemplate] :: SearchReplace re s -> !s
- Text.RE.PCRE: anyMatches :: Matches a -> Bool
+ Text.RE.PCRE: anyMatches :: () => Matches a -> Bool
- Text.RE.PCRE: countMatches :: Matches a -> Int
+ Text.RE.PCRE: countMatches :: () => Matches a -> Int
- Text.RE.PCRE: data Match a :: * -> *
+ Text.RE.PCRE: data Match a
- Text.RE.PCRE: data Matches a :: * -> *
+ Text.RE.PCRE: data Matches a
- Text.RE.PCRE: data SearchReplace re s :: * -> * -> *
+ Text.RE.PCRE: data SearchReplace re s
- Text.RE.PCRE: data SimpleREOptions :: *
+ Text.RE.PCRE: data SimpleREOptions
- Text.RE.PCRE: matched :: Match a -> Bool
+ Text.RE.PCRE: matched :: () => Match a -> Bool
- Text.RE.PCRE: matchedText :: Match a -> Maybe a
+ Text.RE.PCRE: matchedText :: () => Match a -> Maybe a
- Text.RE.PCRE: matches :: Matches a -> [a]
+ Text.RE.PCRE: matches :: () => Matches a -> [a]
- Text.RE.PCRE.ByteString: SearchReplace :: ~re -> ~s -> SearchReplace re s
+ Text.RE.PCRE.ByteString: SearchReplace :: !re -> !s -> SearchReplace re s
- Text.RE.PCRE.ByteString: [getSearch] :: SearchReplace re s -> ~re
+ Text.RE.PCRE.ByteString: [getSearch] :: SearchReplace re s -> !re
- Text.RE.PCRE.ByteString: [getTemplate] :: SearchReplace re s -> ~s
+ Text.RE.PCRE.ByteString: [getTemplate] :: SearchReplace re s -> !s
- Text.RE.PCRE.ByteString: anyMatches :: Matches a -> Bool
+ Text.RE.PCRE.ByteString: anyMatches :: () => Matches a -> Bool
- Text.RE.PCRE.ByteString: countMatches :: Matches a -> Int
+ Text.RE.PCRE.ByteString: countMatches :: () => Matches a -> Int
- Text.RE.PCRE.ByteString: data Match a :: * -> *
+ Text.RE.PCRE.ByteString: data Match a
- Text.RE.PCRE.ByteString: data Matches a :: * -> *
+ Text.RE.PCRE.ByteString: data Matches a
- Text.RE.PCRE.ByteString: data SearchReplace re s :: * -> * -> *
+ Text.RE.PCRE.ByteString: data SearchReplace re s
- Text.RE.PCRE.ByteString: data SimpleREOptions :: *
+ Text.RE.PCRE.ByteString: data SimpleREOptions
- Text.RE.PCRE.ByteString: matched :: Match a -> Bool
+ Text.RE.PCRE.ByteString: matched :: () => Match a -> Bool
- Text.RE.PCRE.ByteString: matchedText :: Match a -> Maybe a
+ Text.RE.PCRE.ByteString: matchedText :: () => Match a -> Maybe a
- Text.RE.PCRE.ByteString: matches :: Matches a -> [a]
+ Text.RE.PCRE.ByteString: matches :: () => Matches a -> [a]
- Text.RE.PCRE.ByteString.Lazy: SearchReplace :: ~re -> ~s -> SearchReplace re s
+ Text.RE.PCRE.ByteString.Lazy: SearchReplace :: !re -> !s -> SearchReplace re s
- Text.RE.PCRE.ByteString.Lazy: [getSearch] :: SearchReplace re s -> ~re
+ Text.RE.PCRE.ByteString.Lazy: [getSearch] :: SearchReplace re s -> !re
- Text.RE.PCRE.ByteString.Lazy: [getTemplate] :: SearchReplace re s -> ~s
+ Text.RE.PCRE.ByteString.Lazy: [getTemplate] :: SearchReplace re s -> !s
- Text.RE.PCRE.ByteString.Lazy: anyMatches :: Matches a -> Bool
+ Text.RE.PCRE.ByteString.Lazy: anyMatches :: () => Matches a -> Bool
- Text.RE.PCRE.ByteString.Lazy: countMatches :: Matches a -> Int
+ Text.RE.PCRE.ByteString.Lazy: countMatches :: () => Matches a -> Int
- Text.RE.PCRE.ByteString.Lazy: data Match a :: * -> *
+ Text.RE.PCRE.ByteString.Lazy: data Match a
- Text.RE.PCRE.ByteString.Lazy: data Matches a :: * -> *
+ Text.RE.PCRE.ByteString.Lazy: data Matches a
- Text.RE.PCRE.ByteString.Lazy: data SearchReplace re s :: * -> * -> *
+ Text.RE.PCRE.ByteString.Lazy: data SearchReplace re s
- Text.RE.PCRE.ByteString.Lazy: data SimpleREOptions :: *
+ Text.RE.PCRE.ByteString.Lazy: data SimpleREOptions
- Text.RE.PCRE.ByteString.Lazy: matched :: Match a -> Bool
+ Text.RE.PCRE.ByteString.Lazy: matched :: () => Match a -> Bool
- Text.RE.PCRE.ByteString.Lazy: matchedText :: Match a -> Maybe a
+ Text.RE.PCRE.ByteString.Lazy: matchedText :: () => Match a -> Maybe a
- Text.RE.PCRE.ByteString.Lazy: matches :: Matches a -> [a]
+ Text.RE.PCRE.ByteString.Lazy: matches :: () => Matches a -> [a]
- Text.RE.PCRE.Sequence: (*=~) :: (Seq Char) -> RE -> Matches (Seq Char)
+ Text.RE.PCRE.Sequence: (*=~) :: Seq Char -> RE -> Matches (Seq Char)
- Text.RE.PCRE.Sequence: (*=~/) :: (Seq Char) -> SearchReplace RE (Seq Char) -> (Seq Char)
+ Text.RE.PCRE.Sequence: (*=~/) :: Seq Char -> SearchReplace RE (Seq Char) -> Seq Char
- Text.RE.PCRE.Sequence: (=~) :: (Typeable a, RegexContext Regex (Seq Char) a) => (Seq Char) -> RE -> a
+ Text.RE.PCRE.Sequence: (=~) :: (Typeable a, RegexContext Regex (Seq Char) a) => Seq Char -> RE -> a
- Text.RE.PCRE.Sequence: (=~~) :: (Monad m, Functor m, Typeable a, RegexContext Regex (Seq Char) a) => (Seq Char) -> RE -> m a
+ Text.RE.PCRE.Sequence: (=~~) :: (Monad m, Functor m, Typeable a, RegexContext Regex (Seq Char) a) => Seq Char -> RE -> m a
- Text.RE.PCRE.Sequence: (?=~) :: (Seq Char) -> RE -> Match (Seq Char)
+ Text.RE.PCRE.Sequence: (?=~) :: Seq Char -> RE -> Match (Seq Char)
- Text.RE.PCRE.Sequence: (?=~/) :: (Seq Char) -> SearchReplace RE (Seq Char) -> (Seq Char)
+ Text.RE.PCRE.Sequence: (?=~/) :: Seq Char -> SearchReplace RE (Seq Char) -> Seq Char
- Text.RE.PCRE.Sequence: SearchReplace :: ~re -> ~s -> SearchReplace re s
+ Text.RE.PCRE.Sequence: SearchReplace :: !re -> !s -> SearchReplace re s
- Text.RE.PCRE.Sequence: [getSearch] :: SearchReplace re s -> ~re
+ Text.RE.PCRE.Sequence: [getSearch] :: SearchReplace re s -> !re
- Text.RE.PCRE.Sequence: [getTemplate] :: SearchReplace re s -> ~s
+ Text.RE.PCRE.Sequence: [getTemplate] :: SearchReplace re s -> !s
- Text.RE.PCRE.Sequence: anyMatches :: Matches a -> Bool
+ Text.RE.PCRE.Sequence: anyMatches :: () => Matches a -> Bool
- Text.RE.PCRE.Sequence: countMatches :: Matches a -> Int
+ Text.RE.PCRE.Sequence: countMatches :: () => Matches a -> Int
- Text.RE.PCRE.Sequence: data Match a :: * -> *
+ Text.RE.PCRE.Sequence: data Match a
- Text.RE.PCRE.Sequence: data Matches a :: * -> *
+ Text.RE.PCRE.Sequence: data Matches a
- Text.RE.PCRE.Sequence: data SearchReplace re s :: * -> * -> *
+ Text.RE.PCRE.Sequence: data SearchReplace re s
- Text.RE.PCRE.Sequence: data SimpleREOptions :: *
+ Text.RE.PCRE.Sequence: data SimpleREOptions
- Text.RE.PCRE.Sequence: matched :: Match a -> Bool
+ Text.RE.PCRE.Sequence: matched :: () => Match a -> Bool
- Text.RE.PCRE.Sequence: matchedText :: Match a -> Maybe a
+ Text.RE.PCRE.Sequence: matchedText :: () => Match a -> Maybe a
- Text.RE.PCRE.Sequence: matches :: Matches a -> [a]
+ Text.RE.PCRE.Sequence: matches :: () => Matches a -> [a]
- Text.RE.PCRE.String: SearchReplace :: ~re -> ~s -> SearchReplace re s
+ Text.RE.PCRE.String: SearchReplace :: !re -> !s -> SearchReplace re s
- Text.RE.PCRE.String: [getSearch] :: SearchReplace re s -> ~re
+ Text.RE.PCRE.String: [getSearch] :: SearchReplace re s -> !re
- Text.RE.PCRE.String: [getTemplate] :: SearchReplace re s -> ~s
+ Text.RE.PCRE.String: [getTemplate] :: SearchReplace re s -> !s
- Text.RE.PCRE.String: anyMatches :: Matches a -> Bool
+ Text.RE.PCRE.String: anyMatches :: () => Matches a -> Bool
- Text.RE.PCRE.String: countMatches :: Matches a -> Int
+ Text.RE.PCRE.String: countMatches :: () => Matches a -> Int
- Text.RE.PCRE.String: data Match a :: * -> *
+ Text.RE.PCRE.String: data Match a
- Text.RE.PCRE.String: data Matches a :: * -> *
+ Text.RE.PCRE.String: data Matches a
- Text.RE.PCRE.String: data SearchReplace re s :: * -> * -> *
+ Text.RE.PCRE.String: data SearchReplace re s
- Text.RE.PCRE.String: data SimpleREOptions :: *
+ Text.RE.PCRE.String: data SimpleREOptions
- Text.RE.PCRE.String: matched :: Match a -> Bool
+ Text.RE.PCRE.String: matched :: () => Match a -> Bool
- Text.RE.PCRE.String: matchedText :: Match a -> Maybe a
+ Text.RE.PCRE.String: matchedText :: () => Match a -> Maybe a
- Text.RE.PCRE.String: matches :: Matches a -> [a]
+ Text.RE.PCRE.String: matches :: () => Matches a -> [a]
- Text.RE.PCRE.Text: SearchReplace :: ~re -> ~s -> SearchReplace re s
+ Text.RE.PCRE.Text: SearchReplace :: !re -> !s -> SearchReplace re s
- Text.RE.PCRE.Text: [getSearch] :: SearchReplace re s -> ~re
+ Text.RE.PCRE.Text: [getSearch] :: SearchReplace re s -> !re
- Text.RE.PCRE.Text: [getTemplate] :: SearchReplace re s -> ~s
+ Text.RE.PCRE.Text: [getTemplate] :: SearchReplace re s -> !s
- Text.RE.PCRE.Text: anyMatches :: Matches a -> Bool
+ Text.RE.PCRE.Text: anyMatches :: () => Matches a -> Bool
- Text.RE.PCRE.Text: countMatches :: Matches a -> Int
+ Text.RE.PCRE.Text: countMatches :: () => Matches a -> Int
- Text.RE.PCRE.Text: data Match a :: * -> *
+ Text.RE.PCRE.Text: data Match a
- Text.RE.PCRE.Text: data Matches a :: * -> *
+ Text.RE.PCRE.Text: data Matches a
- Text.RE.PCRE.Text: data SearchReplace re s :: * -> * -> *
+ Text.RE.PCRE.Text: data SearchReplace re s
- Text.RE.PCRE.Text: data SimpleREOptions :: *
+ Text.RE.PCRE.Text: data SimpleREOptions
- Text.RE.PCRE.Text: matched :: Match a -> Bool
+ Text.RE.PCRE.Text: matched :: () => Match a -> Bool
- Text.RE.PCRE.Text: matchedText :: Match a -> Maybe a
+ Text.RE.PCRE.Text: matchedText :: () => Match a -> Maybe a
- Text.RE.PCRE.Text: matches :: Matches a -> [a]
+ Text.RE.PCRE.Text: matches :: () => Matches a -> [a]
- Text.RE.PCRE.Text.Lazy: SearchReplace :: ~re -> ~s -> SearchReplace re s
+ Text.RE.PCRE.Text.Lazy: SearchReplace :: !re -> !s -> SearchReplace re s
- Text.RE.PCRE.Text.Lazy: [getSearch] :: SearchReplace re s -> ~re
+ Text.RE.PCRE.Text.Lazy: [getSearch] :: SearchReplace re s -> !re
- Text.RE.PCRE.Text.Lazy: [getTemplate] :: SearchReplace re s -> ~s
+ Text.RE.PCRE.Text.Lazy: [getTemplate] :: SearchReplace re s -> !s
- Text.RE.PCRE.Text.Lazy: anyMatches :: Matches a -> Bool
+ Text.RE.PCRE.Text.Lazy: anyMatches :: () => Matches a -> Bool
- Text.RE.PCRE.Text.Lazy: countMatches :: Matches a -> Int
+ Text.RE.PCRE.Text.Lazy: countMatches :: () => Matches a -> Int
- Text.RE.PCRE.Text.Lazy: data Match a :: * -> *
+ Text.RE.PCRE.Text.Lazy: data Match a
- Text.RE.PCRE.Text.Lazy: data Matches a :: * -> *
+ Text.RE.PCRE.Text.Lazy: data Matches a
- Text.RE.PCRE.Text.Lazy: data SearchReplace re s :: * -> * -> *
+ Text.RE.PCRE.Text.Lazy: data SearchReplace re s
- Text.RE.PCRE.Text.Lazy: data SimpleREOptions :: *
+ Text.RE.PCRE.Text.Lazy: data SimpleREOptions
- Text.RE.PCRE.Text.Lazy: matched :: Match a -> Bool
+ Text.RE.PCRE.Text.Lazy: matched :: () => Match a -> Bool
- Text.RE.PCRE.Text.Lazy: matchedText :: Match a -> Maybe a
+ Text.RE.PCRE.Text.Lazy: matchedText :: () => Match a -> Maybe a
- Text.RE.PCRE.Text.Lazy: matches :: Matches a -> [a]
+ Text.RE.PCRE.Text.Lazy: matches :: () => Matches a -> [a]

Files

− README.markdown
@@ -1,111 +0,0 @@-# regex--regex is a regular expression toolkit for regex-base with:--  * a text-replacement toolkit with type-safe text-replacement templates;-  * special datatypes for matches and captures;-  * compile-time checking of RE syntax;-  * a unified means of controlling case-sensitivity and multi-line options;-  * high-level AWK-like tools for building text processing apps;-  * the option of using match operators with reduced polymorphism on the-    text and result types;-  * regular expression macros including:-      + a number of useful RE macros;-      + a test bench for testing and documenting new macro environments;-  * built-in support for the TDFA and PCRE back ends;-  * comprehensive documentation, tutorials and copious examples.---See the [About page](http://about.regex.uk) for details.---## regex and regex-examples--The library and tutorial, tests and examples have been split across-two packages:--  * the `regex` package contains the regex library with the Posix TDFA-    back end-  * the `regex-with-pcre` library package contains the extra modules-    needed for the PCRE back end-  * the `regex-examples` package contains the tutorial, tests-    and example programs.---## Road Map--    ☒  2017-04-10  v1.0.0.0  [First stable release](https://github.com/iconnect/regex/milestone/3)--    ☒  2017-06-03  v1.0.1.0  [PCRE.Text, strict PVP, Update Stackage vrns, add re-top](https://github.com/iconnect/regex/milestone/19)--    ☐  2017-08-31  v2.0.0.0  [Fast text replacement with benchmarks](https://github.com/iconnect/regex/milestone/4)----See the [Roadmap page](http://roadmap.regex.uk) for details.---## The regex blog--Check out the [regex blog](http://blog.regex.uk) for news articles and-discussion concerning all things regex.---## Build Status--[![Hackage](http://regex.uk/badges/hackage.svg)](https://hackage.haskell.org/package/regex) [![BSD3 License](http://regex.uk/badges/license.svg)](https://tldrlegal.com/license/bsd-3-clause-license-%28revised%29) [![Un*x build](http://regex.uk/badges/unix-build.svg)](https://travis-ci.org/iconnect/regex) [![Windows build](http://regex.uk/badges/windows-build.svg)](https://ci.appveyor.com/project/engineerirngirisconnectcouk/regex/branch/master) [![Coverage](http://regex.uk/badges/coverage.svg)](https://coveralls.io/github/iconnect/regex?branch=master)--See [build status page](http://regex.uk/build-status) for details.---## Installing the Package--The package can be easily installed with cabal or stack on GHC-8.0,- 7.10 or 7.8 for the above platforms. See the-[Installation page](http://installation.regex.uk) for details.---## The Tutorial Tests and Examples--See the [Tutorial page](http://tutorial.regex.uk) and-[Examples page](http://examples.regex.uk) for details.---## Helping Out--If you have any feedback or suggestion then please drop us a line.--  * `t` [@hregex](https://twitter.com/hregex)\n-  * `e` maintainers@regex.uk\n-  * `w` http://issues.regex.uk--The [Contact page](http://contact.regex.uk) has more details.---## The API--The Haddocks can be found at http://hs.regex.uk.---## The Macro Tables--The macro environments are an important part of the package and-are documented [here](http://macros.regex.uk).---## The regex.uk Directory--A handy overview of the regex.uk domain can be found-[here](http://directory.regex.uk).---## The Changelog--The `changelog` is posted [here](http://changelog.regex.uk).---## The Authors--This library was written and is currently maintained by-[Chris Dornan](mailto:chris.dornan@irisconnect.com) aka-[@cdornan](https://twitter.com/cdornan)
+ README.md view
@@ -0,0 +1,111 @@+# regex++regex is a regular expression toolkit for regex-base with:++  * a text-replacement toolkit with type-safe text-replacement templates;+  * special datatypes for matches and captures;+  * compile-time checking of RE syntax;+  * a unified means of controlling case-sensitivity and multi-line options;+  * high-level AWK-like tools for building text processing apps;+  * the option of using match operators with reduced polymorphism on the+    text and result types;+  * regular expression macros including:+      + a number of useful RE macros;+      + a test bench for testing and documenting new macro environments;+  * built-in support for the TDFA and PCRE back ends;+  * comprehensive documentation, tutorials and copious examples.+++See the [About page](http://about.regex.uk) for details.+++## regex and regex-examples++The library and tutorial, tests and examples have been split across+two packages:++  * the `regex` package contains the regex library with the Posix TDFA+    back end+  * the `regex-with-pcre` library package contains the extra modules+    needed for the PCRE back end+  * the `regex-examples` package contains the tutorial, tests+    and example programs.+++## Road Map++- [X] 2017-04-10  v1.0.0.0  [First stable release](https://github.com/iconnect/regex/milestone/3)+- [X] 2017-06-03  v1.0.1.0  [PCRE.Text, strict PVP, Update Stackage vrns, add re-top](https://github.com/iconnect/regex/milestone/19)+- [X] 2017-06-04  v1.0.1.1  [Fix 1.0.1.0 release bug and provisionally fix UTF8/PCRE interworking](https://github.com/iconnect/regex/milestone/20)+- [X] 2017-06-05  v1.0.1.2  [Permit utf8-string-1](https://github.com/iconnect/regex/milestone/21)+- [X] 2017-06-05  v1.0.1.3  [Suspend Windows tests for PCRE on UTF-8 text](https://github.com/iconnect/regex/milestone/22)+- [ ] 2017-08-31  v2.0.0.0  [Fast text replacement with benchmarks](https://github.com/iconnect/regex/milestone/4)+++See the [Roadmap page](http://roadmap.regex.uk) for details.+++## The regex blog++Check out the [regex blog](http://blog.regex.uk) for news articles and+discussion concerning all things regex.+++## Build Status++[![Hackage](http://regex.uk/badges/hackage.svg)](https://hackage.haskell.org/package/regex) [![BSD3 License](http://regex.uk/badges/license.svg)](https://tldrlegal.com/license/bsd-3-clause-license-%28revised%29) [![Un*x build](http://regex.uk/badges/unix-build.svg)](https://travis-ci.org/iconnect/regex) [![Windows build](http://regex.uk/badges/windows-build.svg)](https://ci.appveyor.com/project/engineerirngirisconnectcouk/regex/branch/master) [![Coverage](http://regex.uk/badges/coverage.svg)](https://coveralls.io/github/iconnect/regex?branch=master)++See [build status page](http://regex.uk/build-status) for details.+++## Installing the Package++The package can be easily installed with cabal or stack on GHC-8.0,+ 7.10 or 7.8 for the above platforms. See the+[Installation page](http://installation.regex.uk) for details.+++## The Tutorial Tests and Examples++See the [Tutorial page](http://tutorial.regex.uk) and+[Examples page](http://examples.regex.uk) for details.+++## Helping Out++If you have any feedback or suggestion then please drop us a line.++  * `t` [&#64;hregex](https://twitter.com/hregex)<br/>+  * `e` maintainers@regex.uk<br/>+  * `w` http://issues.regex.uk++The [Contact page](http://contact.regex.uk) has more details.+++## The API++The Haddocks can be found at http://hs.regex.uk.+++## The Macro Tables++The macro environments are an important part of the package and+are documented [here](http://macros.regex.uk).+++## The regex.uk Directory++A handy overview of the regex.uk domain can be found+[here](http://directory.regex.uk).+++## The Changelog++The `changelog` is posted [here](http://changelog.regex.uk).+++## The Authors++This library was written and is currently maintained by+[Chris Dornan](mailto:chris.dornan@irisconnect.com) aka+[&#64;cdornan](https://twitter.com/cdornan)
changelog view
@@ -1,5 +1,8 @@ -*-change-log-*- +1.0.1.4 Chris Dornan <chris.dornan@irisconnect.co.uk> 2018-12-14+  * GHC-8.4.4, GHC-8.6.2 (#160)+ 1.0.1.3 Chris Dornan <chris.dornan@irisconnect.co.uk> 2017-06-05   * Suspending UTF-8 tests for Windows/PCRE (#144) 
regex-with-pcre.cabal view
@@ -1,5 +1,5 @@ Name:                   regex-with-pcre-Version:                1.0.1.3+Version:                1.0.1.4 Synopsis:               Toolkit for regex-base Description:            A regular expression toolkit for regex-base with                         compile-time checking of RE syntax, data types for@@ -20,7 +20,7 @@ bug-reports:            http://issues.regex.uk  Extra-Source-Files:-    README.markdown+    README.md     changelog  Cabal-Version:          >= 1.10@@ -32,7 +32,7 @@ Source-Repository this     Type:               git     Location:           https://github.com/iconnect/regex.git-    Tag:                1.0.1.3+    Tag:                1.0.1.4   @@ -94,18 +94,18 @@       -Wwarn      Build-depends:-        regex                == 1.0.1.3-      , base                 >= 4        && < 5-      , base-compat          >= 0.6      && < 0.10+        regex                +      , base                 >= 4        && <  5+      , base-compat          >= 0.6       , bytestring           == 0.10.*-      , containers           >= 0.4      && < 0.6+      , containers           >= 0.4       , regex-base           == 0.93.*       , regex-pcre-builtin   == 0.94.*       , regex-pcre-text      == 0.94.*       , regex-tdfa           == 1.2.*-      , template-haskell     >= 2.7      && < 2.12+      , template-haskell     >= 2.7       , text                 == 1.2.*-      , transformers         >= 0.2.2    && < 0.6+      , transformers         >= 0.2.2       , unordered-containers == 0.2.*