\begin{code}
#if __GLASGOW_HASKELL__ >= 800
#endif
module Text.RE.Types.IsRegex where
import Text.RE.Types.Match
import Text.RE.Types.Matches
import Text.RE.Types.REOptions
import Text.RE.Types.Replace
import Text.RE.Types.SearchReplace
\end{code}
\begin{code}
class Replace s => IsRegex re s where
matchOnce :: re -> s -> Match s
matchMany :: re -> s -> Matches s
makeRegex :: (Functor m,Monad m) => s -> m re
makeRegexWith :: (Functor m,Monad m) => SimpleREOptions -> s -> m re
makeSearchReplace :: (Functor m,Monad m,IsRegex re s) => s -> s -> m (SearchReplace re s)
makeSearchReplaceWith :: (Functor m,Monad m,IsRegex re s) => SimpleREOptions -> s -> s -> m (SearchReplace re s)
regexSource :: re -> s
makeRegex = makeRegexWith minBound
makeSearchReplace = makeSearchReplaceWith minBound
\end{code}