Clause guards have proven not-so-useful (from surveying the Aiken community and analyzing available open-source repositories). So let's remove them from the language.
Why is it a good idea?
They clutter the codebase and make maintenance harder than it needs to be. Less code means less things that can go wrong.
Besides, they can also be a great footgun, as they usually force the use of wildcard patterns in pattern-matches. Why is this bad? Because it makes code more brittle and fragile on updates since the a wildcard will swallow any modifications made on new constructor variants. Yet, we do generally want compiler warnings in such a scenario to ensure that cases are handled properly when needed.
What is the current alternative and why is it not good enough?
What is your idea? Provide a use case.
Clause guards have proven not-so-useful (from surveying the Aiken community and analyzing available open-source repositories). So let's remove them from the language.
Why is it a good idea?
They clutter the codebase and make maintenance harder than it needs to be. Less code means less things that can go wrong.
Besides, they can also be a great footgun, as they usually force the use of wildcard patterns in pattern-matches. Why is this bad? Because it makes code more brittle and fragile on updates since the a wildcard will swallow any modifications made on new constructor variants. Yet, we do generally want compiler warnings in such a scenario to ensure that cases are handled properly when needed.
What is the current alternative and why is it not good enough?
More maintenance.