module Text.Regex.Do.Pcre.MatchSame where import Text.Regex.Do.TypeDo import Text.Regex.PCRE.Wrap() import Text.Regex.Do.Pcre.Match import Data.ByteString {- | picks 'Match' instance where 'Pattern' and 'Body' are of the same type specify either 'Pattern' or 'Body' + 'out' types handy when working with 'OverloadedStrings' >>> ("^all"::String) -~ "all the time"::[String] \["all"\] -} class MatchSame a out where match'::Match a a out => Pattern a -> Body a -> out match' = match (-~)::Match a a out => a -- ^ pattern -> a -- ^ body -> out -- ^ \- in ('-~') is the minus sign (-~) = (=~) instance MatchSame String Bool instance MatchSame String [String] instance MatchSame String [[String]] instance MatchSame String [PosLen] instance MatchSame String [[PosLen]] instance MatchSame ByteString Bool instance MatchSame ByteString [ByteString] instance MatchSame ByteString [[ByteString]] instance MatchSame ByteString [PosLen] instance MatchSame ByteString [[PosLen]]