ソース読んでみそ。
ttp://hackage.haskell.org/packages/archive/regex-base/latest/doc/html/src/Text-Regex-Base-RegexLike.html

多変数型クラスを宣言するにはMultiParamTypeClassesというLANGUAGEプラグマが必要。
ttp://www.kotha.net/ghcguide_ja/latest/type-class-extensions.html#idp24691328
また、多変数型クラスを含む型推論のために、多くの場合、関数従属または関連型が使われる。
ttp://www.kotha.net/ghcguide_ja/latest/type-class-extensions.html#functional-dependencies
ttp://www.kotha.net/ghcguide_ja/latest/type-families.html#assoc-decl