    module Text.RE.Replace
      (
      -- * The Replacing Tutorial
      -- $tutorial

      -- * replaceAll
        replaceAll
      , replaceAllCaptures
      , replaceAllCaptures_
      , replaceAllCapturesM
      -- * replace
      , replace
      , replaceCaptures
      , replaceCaptures_
      , replaceCapturesM
      -- * REContext and RELocation
      , REContext(..)
      , RELocation(..)
      , isTopLocation
      -- * Matches
      , Matches(..)
      , anyMatches
      , countMatches
      , matches
      , mainCaptures
      -- * Match
      , Match(..)
      , noMatch
      , emptyMatchArray
      , matched
      , matchedText
      , matchCapture
      , matchCaptures
      , (!$$)
      , captureText
      , (!$$?)
      , captureTextMaybe
      , (!$)
      , capture
      , (!$?)
      , captureMaybe
      , convertMatchText
      -- * Capture
      , Capture(..)
      , hasCaptured
      , capturePrefix
      , captureSuffix
      -- * CaptureID
      , CaptureID(..)
      , CaptureNames
      , noCaptureNames
      , CaptureName(..)
      , CaptureOrdinal(..)
      , findCaptureID
      -- * Replace and ReplaceMethods
      , Replace(..)
      , ReplaceMethods(..)
      , replaceMethods
      ) where

    import           Text.RE.ZeInternals.Replace
    import           Text.RE.ZeInternals.Types.Capture
    import           Text.RE.ZeInternals.Types.CaptureID
    import           Text.RE.ZeInternals.Types.Match
    import           Text.RE.ZeInternals.Types.Matches

    -- $tutorial
    -- This API module covers the specialised regex tools for doing general
    -- editing on text, including the internal details of the 'Matches' and
    -- 'Match' types and the associated functions for extracting captures
    -- and applying functions to them to transform the subject text.
    --
    -- See the tutorials at http://re-tutorial-replacing.regex.uk