Proposal: Deprecate decodeUtf8

Niklas Hamb├╝chen mail at nh2.me
Thu Aug 18 09:08:25 UTC 2016


I propose to add a deprecation pragma to the partial function
Data.Text.decodeUtf8.

I see checks or decoding failure accidentally omitted from production
code every week. I claim decodeUtf8 to be *the* most abused partial
function in the current Haskell ecosystem (with `head` and `tail` at
least everybody knows they should feel bad when typing them down).

decodeUtf8' with custom error message is a better solution in all cases
I have seen and can come up with.

I therefore propose:

  * Add deprecation pragma to decodeUtf8
  * Do it with Text.Lazy and *16/*32 functions too
  * But keep them indefinitely (we don't want to break compiles)

I believe that deprecating decodeUtf8 will result in lots of useful
warnings across the world every day and less software crashing at runtime.

Discussion period 2 months.

Thanks!


More information about the Libraries mailing list