Re: RFC: Add HasCallStack constraint to partial Data.List functions.
Bryan Richter <[email protected]>
| Newsgroups | gmane.comp.lang.haskell.libraries |
|---|---|
| Message-ID | <CAH9BU=x5o50ZKtQn7VmRkX1iwBSZ-ooGvqRB-NedzoMHzMxDFg@mail.gmail.com> |
I like this avenue of thought! I would suggest the following: Step 1: Accept this proposal. Step 2: Introduce more *educational* error messages in the exceptions. Instead of "error: empty list", for example, it could be "error: unguarded use of head has failed". Sorry for phone-brevity. On Mon, 31 May 2021, 19.31 Hécate, <[email protected]> wrote: > I think the vast majority of the functions presented in this proposal have > a total counterpart, whether it is a function or a code pattern. We have > NonEmpty in `base`, as well as ExceptT/MonadError and Exceptions to allow > us to mimic such a cul-de-sac in the code with appropriate annotations > around it. > > Le 31/05/2021 à 18:15, Henning Thielemann a écrit : > > > On Mon, 31 May 2021, Ryan Trinkle via Libraries wrote: > > I certainly agree that a more systemic solution would be preferable. > However, none have been forthcoming in the 15 or so years I've been > using Haskell. The use of partial functions in library code has been > one of the few consistent sources of multi-day debugging exercises in > Haskell that I've seen, and even cutting that down in an ad-hoc way > would be valuable, since there are probably a dozen functions that > account for 80% of the debugging hours (I'd certainly like to see > fromJust on that list, for example). > > > I understand the proposal as tagging all partial functions in a compiler > accessible way, in order to tell the user: Don't use that function! > > If so, then we should make sure that every such tagged function has a > total counterpart. > > _______________________________________________ > Libraries mailing [email protected]://mail.haskell.org/cgi-bin/mailman/listinfo/libraries > > -- > Hécate ✨ > 🐦: @TechnoEmpress > IRC: Hecate > WWW: https://glitchbra.in > RUN: BSD > > _______________________________________________ > Libraries mailing list > [email protected] > http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries > _______________________________________________ Libraries mailing list [email protected] http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries