ここには 2 つのアプローチがあります。いくつかのインポート シャッフルを実行し、次のような一般的ではない型を持つ必要がある関数にエイリアスを設定することができます。
import qualified Text.Regex.Posix as P
import Text.Regex.Posix hiding ((=~))
(=~) :: RegexContext Regex String target => String -> String -> target
(=~) = (P.=~)
その後、ファイル全体でコードを変更する必要はありません。ただし、これは混乱を招く可能性があり、動作する必要がありますFlexibleContexts
(大したことではありません)。
または、タイプを指定するための独自の Python のような構文を作成することもできます。
r :: String -> String
r = id
u :: Text -> Text
u = id
b :: ByteString -> ByteString
b = id
example :: Bool
example = r"test" =~ r"te.t"
splitComma :: Text -> Text
splitComma = Data.Text.splitOn (u",")
ただし、これにはさらに多くのコードを編集する必要があります。追加の言語拡張は使用せず、実装するコードは最初の方法と比較しても非常に単純です。また、括弧や$
記号をより慎重に使用する必要があることも意味しますが、 r
、u
、およびb
関数を関数として使用することもできます。