I see two approaches here. You can do some import shuffling and just alias the functions you need to have less general types, such as import qualified Text.Regex.Posix as P import Text.Regex.Posix hiding ((=~)) (=~) :: RegexContext Regex String target => String -> String -> target (=~) = (P.=~) Then...