Как разобрать необязательный флаг как значение Maybe?

Я пытаюсь использоватьoptparse-аппликативны разобратьMaybe String но я нигде не могу найти, как бороться сMaybe, Единственное, что я нашел, это добавить значение по умолчанию, но мне действительно нужноNothing если пользователь не предоставил опцию вместо"", Есть ли способ добиться этого?

Вот пример рабочего кода:

import Options.Applicative

data Config = Config
    { cIn :: String
    , cOut :: String
    } deriving Show

configParser :: Parser Config
configParser = Config
    <$> strOption (long "in" <> short 'i')
    <*> strOption (long "out" <> short 'o')


main :: IO ()
main = do
    conf <- execParser (info configParser fullDesc)
    print conf

Тем не менее, я хотел бы, чтобы параметры были необязательными и использоватьMaybe String вместоString вConfig :

data Config = Config
    { cIn :: Maybe String
    , cOut :: Maybe String
    } deriving Show

Ответы на вопрос(1)

Ваш ответ на вопрос