RFC: Add HasCallStack constraint to partial Data.List functions.
Bryan Richter
b at chreekat.net
Mon May 31 17:55:57 UTC 2021
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, <hecate at glitchbra.in> 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 listLibraries at haskell.orghttp://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>
> --
> Hécate ✨
> 🐦: @TechnoEmpress
> IRC: Hecate
> WWW: https://glitchbra.in
> RUN: BSD
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20210531/fed2d488/attachment.html>
More information about the Libraries
mailing list