Я пытаюсь использовать optparse-applicative для синтаксического анализа 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
Однако, я хотел бы, чтобы параметры были необязательными и вместо String
в Config
используйте Maybe String
:
data Config = Config
{ cIn :: Maybe String
, cOut :: Maybe String
} deriving Show