
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!