>>24
The underscore practice is actually more of a venerable thing: it dates back to Multics, which was the first filesystem that supported names longer than 8 characters. When you stare into the C and Unix long enough, you start realising that there are a lot of very fundamental design choices that weren't deliberate at all; they were just familiar and consistent with Multics at the time—and
those decisions were mostly hacked out by committee in the mid-sixties.
I was definitely happy with how Haskell handled its type classing structure, although at the time I was taught about them, the professor stumbled through it and we all did very horribly on applying
Num,
Ord, and
Eq consistently on our tests. But, like with anything that doesn't conform to 'worse is better', there will always be limits on how much effort it will save you overall.