Dear Haskellers,
b) A related suggestion would be the addition of an
irrefutable swap, (swap'?), defined as
"swap ~(a,b) = (b,a)", and its addition to Prelude for
the same reasons.
If I define a function that matches on a single-constructor data type, such as (,), is there any reason against using ~? Like
f (a,b) = ...
instead of
f ~(a,b) = ...
? I've seen that not using ~ can lead to problems sometimes, but not the other way around.
(Of course changing the semantics of existing functions such as `swap` is problematic, my question targets the problem in general.)
Best regards,
Petr Pudlak