<div dir="ltr">I mean getOpt has its own way of keeping track of errors and whatever construction I use to collect typechecking errors will need another. If only there were a way for the typechecking errors messages to be picked up by getOpt itself, and returned with its own native error messages.</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Jun 28, 2014 at 5:30 PM, John Meacham <span dir="ltr"><<a href="mailto:john@repetae.net" target="_blank">john@repetae.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
What is the issue with other option errors and type matches being<br>
treated differently? I mean, you can print the same error message. A<br>
handy trick is to define a helper for building your options list that<br>
passes the option names into your monadic option builder function so<br>
it can print the name of the option that was given the wrong type in a<br>
generic and pretty way. I generally use a Writer monad to collect<br>
errors rather than an Error monad that cuts out early so all option<br>
errors can be accumulated and printed together.<br>
<br>
    John<br>
<div class="HOEnZb"><div class="h5"><br>
On Sat, Jun 28, 2014 at 12:28 PM, Johan Larson <<a href="mailto:johan.g.larson@gmail.com">johan.g.larson@gmail.com</a>> wrote:<br>
> I've been looking at choices for parsing command line arguments, including<br>
> getOpt. The examples I can find focus on string arguments, whereas I am<br>
> interested in numbers. In the application at hand, it is particularly<br>
> important to issue clear error messages when arguments don't parse as<br>
> numbers or are out of range.<br>
><br>
> I could use getOpt as a first pass with string arguments and then turn the<br>
> strings into validated numbers in a second pass, but that's a bit awkward.<br>
> Alternately I could use the options records with Options -> IO Options<br>
> functions. But both of these solutions treat type mismatches differently<br>
> from other options errors.<br>
><br>
> Has anyone found a cleaner solution?<br>
><br>
> --<br>
> Johan Larson -- Toronto, Canada<br>
><br>
</div></div><div class="HOEnZb"><div class="h5">> _______________________________________________<br>
> Haskell-Cafe mailing list<br>
> <a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
> <a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
><br>
<br>
<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
John Meacham - <a href="http://notanumber.net/" target="_blank">http://notanumber.net/</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>Johan Larson -- Toronto, Canada
</div>