Proposal: die to System.Exit (and/or Prelude)

Edward Kmett ekmett at gmail.com
Mon Dec 16 01:09:24 UTC 2013


I'm neutral on adding or removing it to System.Exit in the first place.

On one hand it incurs the extra clutter of another name for a simple
composition, but on the other it is exiled to a fairly appropriate place
and I can see that there is a worldview in which would be the right way to
deal with exceptional situations that have no recovery mechanism.

That said, I'm pretty strongly -1 on adding it to the Prelude.

-Edward


On Sun, Dec 15, 2013 at 7:40 PM, <amindfv at gmail.com> wrote:

> +1 adding to System.Exit
> -0.5 adding to Prelude
>
> Tom
>
>
> El Dec 15, 2013, a las 18:50, John Lato <jwlato at gmail.com> escribió:
>
> +1 to adding 'die' to System.Exit
> -1 to adding to Prelude
>
> I've pretty much only wanted this in command-line type programs, but as
> the proposal notes, it's very frequently required in that situation.
>
> John L.
>
>
> On Sat, Dec 14, 2013 at 2:56 AM, Simon Hengel <sol at typeful.net> wrote:
>
>> Hi!
>> I propose to add
>>
>>     die :: String -> IO ()
>>     die err = hPutStrLn stderr err >> exitFailure
>>
>> to System.Exit.
>>
>> Reasoning:
>>
>> (1) It's a frequently required functionality.  Almost every command-line
>>     program has code similar to this.
>>
>> (2) The definition is relatively short, but in addition to the
>>     definition, you need two import statements.
>>
>> (3) It's frequently done wrong (e.g. writing to stdout instead of
>>     stderr, or not using exitFailure, or both).
>>
>> I haven't done any extensive research on Hackage, but I quickly looked
>> at Haddock.  Here we have a definition of die [1], but we also print to
>> stdout at a couple of place and then call exitFailure [2].
>>
>> Personally, I think it should be re-exported from Prelude.  But this may
>> be controversial.  So let's have two separate votes:
>>
>> Add System.Exit.die:            +1
>> Re-export it from Prelude:      +1
>>
>> (discussion until December, 28th)
>>
>> Cheers,
>> Simon
>>
>> [1]
>> https://github.com/ghc/haddock/blob/8d4c94ca5a969a5ebbb791939fb0195dc672429e/src/Haddock/Utils.hs#L303
>> [2]
>> https://github.com/ghc/haddock/blob/c6faeae064668125721b0d5e60f067f90c538933/src/Haddock.hs#L87
>> _______________________________________________
>> Libraries mailing list
>> Libraries at haskell.org
>> http://www.haskell.org/mailman/listinfo/libraries
>>
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries
>
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20131215/2134b3fe/attachment.html>


More information about the Libraries mailing list