私のアプリのどこかで、Either ParserError MyParseResult
Parsecからを受け取ります。この結果の下流では、他のライブラリを使用して他の解析が実行されます。解析のその第2フェーズ中に、ある種のエラーが発生する可能性があります。これをとして渡したいのですLeft String
が、そのためには、結果をParsecからString
も変換する必要があります。Left
これを実現するには、関数を使用してマップを作成できる関数が必要ですshow
。
私が考えているマッピング関数は次のようになります。
mapLeft :: (a -> b) -> Either a c -> Either b c
mapLeft f (Left x) = Left $ f x
mapLeft _ x = x
しかし、私はhackagedbに一致するものが見つからなかったことに非常に驚いていました。だから今、私は自分の問題に対して正しいアプローチを使用しているかどうか疑問に思っています。
標準ライブラリにそのような関数がないのはなぜですか?私のアプローチの何が問題になっていますか?