Как разобрать необязательный флаг как значение 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