A polymorphic, POSIX, extended regex-engine.

Latest on Hackage:

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow to host generated Haddocks.

GPL licensed by Dr. Alistair Ward
Maintained by


Hackage Build Status

This is "RegExDot", a polymorphic regex-engine.


It can be built and installed using Cabal.


More information about this library can be found at RegExDot.


For information on copying and distributing this package, see the file "LICENSE" in this directory.


Bug-reports should be emailed to .


This library is written and maintained by Dr. Alistair Ward.


2010-11-18 Dr. Alistair Ward

  • First version of the package.

  • Reacted to major-number changes in the package "ToolShed-".
  • Created sub-directory "src/RegExDot/" & then modified module-names accordingly.
  • Pacified hlint.
  • Added a makefile.
  • Removed awkward unary operators from Repeatable.hs.
  • Qualified identifiers used in error-messages.

  • Ported to ghc-7.0.1:
    • Used definitions of NFData & rnf from new package "deepseq", rather than "parallel".
    • Replaced reference to the deprecated function Control.Parallel.Strategies.parFlatMap with concat . Control.Parallel.Strategies.parMap.

  • Set @threaded@ flag to @True@ by default.
  • Replaced use of @threaded@-flag in source-code, with CABAL CPP-macro.
  • Relocated module "RegExDot.Options" to "ToolShed.Options".

  • Renamed package "RegExDot" to "regexdot", for compatibility with Debian's .deb-format.

  • Added manually controlled flag "llvm" to the .cabal-file.
  • Changed identifier for type-parameters, to better reflect its role.
  • Reacted to the creation of module "ToolShed.Defaultable".
  • Uploaded to Hackage.

  • Amended the .cabal-file to more correctly specify dependency on package "toolshed".
  • Used new module "ToolShed.Pair" from package "toolshed-".
  • Guarded flag "eager-blackholing" in the .cabal-file.

  • Replaced (+ 1) and (- 1) with the faster calls succ and pred, in module "RegExDot.RegEx".
  • Reacted to; new module-hierarchy, creation of new module "ToolShed.Data.List.Splits", and addition of method ToolShed.SelfValidate.getErrors in package "toolshed-", and used it to improved error-reporting in instance Read RegExDot.RegEx.ExtendedRegEx.
  • Minor reworking of RegExDot.Repeatable.repeatableParser.
  • Replaced System with System.Environment and System.Exit.

  • Added class Eq to the context of RegExDot.RegEx.safeReciprocal, for migration to ghc-7.4.

  • Removed comments referring to deleted module "ToolShed.Unsafe", from RegExDot.RegEx.
  • Removed Show from the context of functions in module "RegExDot.RegEx".
  • Exported a new constant RegExDot.Anchor.unanchored.
  • Refactored RegExDot.ConsumptionProfile.withinConsumptionBounds.

  • Tested with haskell-platform-2013.2.0.0.
  • Replaced preprocessor-directives with build-depends constraints in the .cabal-file.
  • In function RegExDot.RegEx.findMatch.findMatchSlave.matchPairList, changed fromIntegral (which required a type-signature) to toRational.
  • Either replaced instances of (<$>) with fmap to avoid ambiguity between modules "Control.Applicative" & "Prelude" which (from package "base-4.8") also exports this symbol, or hid the symbol when importing the module "Prelude".

  • Added "Default-language"-specification to the .cabal-file.
  • Added file "README.markdown".
  • Converted this file to markdown-format.
  • Renamed directory "src/" to "src-lib/" for consistency with other packages.
  • Used CPP to control the import of symbols from Control.Applicative.

  • Corrected the markdown-syntax in this file.
  • Uploaded to GitHub.
  • Added file .travis.yml to control testing by
  • Added file .ghci.
  • Replaced use of module ToolShed.Defaultable with Data.Default.
  • Reimplemented RegExDot.RegEx.deconstruct using record-syntax.
  • Tested with ghc-8.0.1.

  • Checked that pre-processor macros are defined.

  • Replaced the identifer pattern, since this becomes a Haskell-keyword when PatternSynonyms are enabled.
Depends on 7 packages:
Used by 1 package:
comments powered byDisqus