On 07/16/2013 08:41 PM, John Lato wrote: > The suggestion of parameterizing on a functor would be good, however > there's another approach I've often seen (although it's not quite what > you've asked for). You can leave your config datatype alone, but > instead of making it a monoid have your configuration parsers return > functions with the type (Cfg -> Cfg). You can wrap these functions in > Endo to get a monoid, combine them together, and then apply that > function to the default configuration. >
I'm using cmdargs for the command-line parsing, and I think (if I don't want to abandon its magic entirely) that I'm stuck filling a data structure automatically. I settled on using (Maybe Foo) so that the default value returned by cmdargs will be Nothing if the user doesn't supply that option; if I use a plain Cfg object, and the user doesn't pass --verbose, I'll get False back in its place and then I don't know whether or not that should override the config file (supposing the user has verbose=True in the file). Very clever though. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe