
On Sun, Apr 20, 2008 at 4:46 AM, Jonathan Cast
On 19 Apr 2008, at 5:02 AM, David MacIver wrote:
Independently of the rant...
On Sat, Apr 19, 2008 at 6:01 AM, Jonathan Cast
wrote: But why do I need to jump through these hoops for a perfectly safe & commonly desired operation?
It's called a proof obligation. Haskell is not here to stop you from jumping through hoops. In fact, it is here precisely to force you to
jump
through hoops. That's why it's called a bondage and discipline language.
Surely it's there to lovingly assist you through the hoops? You can't just force people not to do the wrong thing and expect to get a good statically typed language out of it - you have to make it easier for them to do the right thing.
I think going through the hoop is paramount in Haskell. That's why Haskell is pure, for example, even though it (still) requires awkward code on occasion. Haskell is certainly designed to make getting through the hoops as easy as possible, but never by providing a general way around them. (unsafePerformIO notwithstanding).
Sure. I'm just saying, it's more of a "Jump through this hoop and you shall have moist, delicious cake. And by the way, here's a leg up" set up. There are rewards for the hoop jumping, and assistance on the way there (which is more than can be said for a lot of languages which make you jump through hoops) :-) I think I might be stretching the analogy slightly.