[Haskell-cafe] I hate Haskell's typeclasses
Jonathan Cast
jonathanccast at fastmail.fm
Sun Apr 20 11:07:42 EDT 2008
On 20 Apr 2008, at 3:05 AM, David MacIver wrote:
> On Sun, Apr 20, 2008 at 4:46 AM, Jonathan Cast
> <jonathanccast at fastmail.fm> wrote:
>>
>> 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
>>> <jonathanccast at fastmail.fm> 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) :-)
Absolutely. But I think the original rant strayed into the realm of
wanting the cake and the leg up /without/ the hoop.
>
> I think I might be stretching the analogy slightly.
There is nothing the least bit wrong with that.
jcc
More information about the Haskell-Cafe
mailing list