
On Sat, Apr 01, 2017 at 07:59:00AM +1000, Tony Morris wrote:
A contrary, consistent position would mean there is a belief in all of the following:
* the length of any value of the type ((,) a) is not 1 * 0 is not an integer
You keep repeating the same message, I wonder if you read the reply that have been sent to you. From the other thread (in which, after a brief threat to fork the compiler, you asked for explanations), Artyom Kazak kindly answered:
Okay, I have to admit that in this particular instance it's not quite my intuition which causes the pain. Or rather, it's a different kind of intuition, which I have acquired from Haskell in particular – "I don't have to be particularly careful about minor refactorings, because if I change the type of one thing, the compiler will tell me what other things I have to change if I want to preserve the logic of my code". The behavior of 'length' breaks this intuition because "I'll just pass a tuple here instead of whatever I used before" stops being a (relatively) safe refactoring.
No mention of it being "categorically invalid". Moreover, the message you are replying to now (by Svan Penne) is clearly illustrates the dichotomy between *type safety* and *consistency*. Surely everyone (despite their ideas and preferred outcome) can see the two competing interests?