2.5 Is If-Then-Else so important?

there is no standard function, and this let people stick to work-arounds.

2.6 What is so bad about the if-then-else sugar?

Since syntactic sugar introduces its own syntactic rules,
it is hard to predict how it interferes with other syntactic constructs.
This special syntax for instance led to conflicts with do notation.
A syntactic extension to solve this problem
is proposed for Haskell'.
It is not known what conflicts this extension might cause in future.

2.7 Why breaking lots of old and unmaintained code?

Haskell without

if-then-else

syntax

makes Haskell more logical and consistent.
There is no longer confusion to beginners like:
"What is so special about if-then-else, that it needs a separate syntax?
I though it could be simply replaced by a function.
Maybe there is some subtlety that I'm not able to see right now."
There is no longer confusion with the interference of

if-then-else

syntax with

do

notation.
Removing

if-then-else

simplifies every language tool,

say compiler, text editor, analyzer and so on.

If we arrive at Haskell two some day, (http://haskell.org/hawiki/HaskellTwo)
it will certainly be incompatible to former Haskell versions.
This does not mean, that old code must be thrown away.
There should be one tool,
that converts Haskell 98 and Haskell' to Haskell-2.
Having one tool for this purpose
is better than blowing all language tools with legacy code.

Syntactic replacements like

if-then-else

syntax to

if'

function should be especially simple.

2.8 Summary

Light proposal, compatible with Haskell 98: Add

if'

to the Prelude, maybe with a different name.

Full proposal, incompatible with Haskell 98 and Haskell': Additionally remove

2.9 See also

3 Objections

Haskell is not intended to be a minimalistic language,
but to be one, that is easy to read.

if-then-else

resembles a phrase from English language.

It shows clearly which expression is returned on a fulfilled condition,
and which one is returned for an unsatisfied condition.
It is thus easier to read.
The special syntax saves parentheses around its arguments.
If properly indented, like