getOpt return record of type a rather than [a]
Henning Thielemann
lemming at henning-thielemann.de
Tue Dec 18 17:10:58 EST 2007
The current version of System.Console.GetOpt.getOpt returns a list of
values, where the element type has usually one constructor per option.
data Flag
= Verbose | Version
| Input String | Output String | LibDir String
What I more like to receive is a record consisting of one constructor and
many fields, where optional options are of type Maybe, options with
multiple occurrence are of type list.
data Flag = Flag {
verbose :: Bool,
version :: Bool,
input :: Maybe FilePath,
output :: Maybe FilePath,
libdir :: FilePath
}
Then we would need
data ArgDescr a =
NoArg (a -> a)
ReqArg (String -> a -> a) String
OptArg (String -> a -> a) String
e.g.
OptArg (\path flags -> flags {input = Just path}) "FILE"
I feel this approach is so natural, that someone must have implemented it
already.
More information about the Libraries
mailing list