慎重に作成されたパーサーが、スローした文字列を解析できないことがわかりました。
roi :: Parser (Maybe ROI)
roi = optional $ option (ROI <$> auto <*> auto <*> auto <*> auto)
$ long "roi" <> metavar "ROI" <> help "Only process selected region of interest"
どこROI = ROI Int Int Int Int
それが重要な場合は、上位のパーサーにネストされています
options :: Parser Opts
options = Opts <$> input <*> output <*> roi <*> startT <*> endT
はOpts
適切な ADT です。
ここで、roi
パーサーが次のような式を解析すると仮定しまし--roi 1 2 3 4
たが、失敗しInvalid argument '128'
て使用法メッセージが表示されます。
--roi 1
代わりに解析しますが、返しますJust (ROI 1 1 1 1)
これを機能させる方法はありますか?