-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Perl-like substitute and split for PCRE regexps.
--   
--   This package introduces split and replace like functions using PCRE
--   regexps.
@package pcre-utils
@version 0.1.8.1.1


-- | A module implementing regexp-based split and substitute.
--   
--   <pre>
--   &gt;&gt;&gt; substituteCompile "(a+)" "lapin" "'\\1'"
--   Right "l'a'pin"
--   </pre>
--   
--   <pre>
--   &gt;&gt;&gt; splitCompile "\\d" "a1b2c3"
--   Right ["a","b","c"]
--   </pre>
module Text.Regex.PCRE.ByteString.Utils

-- | Substitutes values matched by a <a>Regex</a>. References can be used.
--   
--   It doesn't support anything else than global substitution for now ..
substitute :: Regex -> ByteString -> ByteString -> IO (Either String ByteString)

-- | Splits strings, using a <a>Regex</a> as delimiter.
split :: Regex -> ByteString -> IO (Either String [ByteString])

-- | Compiles the regular expression (using default options) and
--   <a>substitute</a>s
substituteCompile :: ByteString -> ByteString -> ByteString -> IO (Either String ByteString)

-- | Compiles the regular expression (using default options) and
--   <a>split</a>s.
splitCompile :: ByteString -> ByteString -> IO (Either String [ByteString])

-- | A compiled regular expression
data Regex :: *
data CompOption :: *
data ExecOption :: *
compBlank :: CompOption
execBlank :: ExecOption

-- | A pure version of <a>compile</a>, using unsafePerformIO.
compile' :: CompOption -> ExecOption -> ByteString -> Either (MatchOffset, String) Regex

-- | A pure version of <a>execute</a>, using unsafePerformIO.
execute' :: Regex -> ByteString -> Either WrapError (Maybe (Array Int (MatchOffset, MatchLength)))

-- | A pure version of <a>substitute</a>, using unsafePerformIO.
substitute' :: Regex -> ByteString -> ByteString -> Either String ByteString

-- | A pure version of <a>split</a>, using unsafePerformIO.
split' :: Regex -> ByteString -> Either String [ByteString]

-- | A pure version of <a>substituteCompile</a>, using unsafePerformIO.
substituteCompile' :: ByteString -> ByteString -> ByteString -> Either String ByteString

-- | A pure version of <a>splitCompile</a>, using unsafePerformIO.
splitCompile' :: ByteString -> ByteString -> Either String [ByteString]
instance GHC.Show.Show Text.Regex.PCRE.ByteString.Utils.Replacement
instance GHC.Classes.Ord a => GHC.Classes.Ord (Text.Regex.PCRE.ByteString.Utils.RegexpSplit a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Text.Regex.PCRE.ByteString.Utils.RegexpSplit a)
instance GHC.Show.Show a => GHC.Show.Show (Text.Regex.PCRE.ByteString.Utils.RegexpSplit a)
instance GHC.Base.Functor Text.Regex.PCRE.ByteString.Utils.RegexpSplit
