Taking a step back

Henning Thielemann lemming at henning-thielemann.de
Wed Oct 21 08:12:21 UTC 2015


On Tue, 20 Oct 2015, Jeremy wrote:

> I'm interested in why you think recent changes are making Haskell a less
> viable alternative to mainstream languages. My experience is the opposite -
> beginners frequently ask "why is x not a superclass of y?" and "why does
> function a seem to be the same as b?", and are horrified to be told that
> it's for historical reasons (y existed before x, a existed before the more
> general b, etc.).

I would not explain it this way, not even to myself.

> This is a big anti-climax for someone coming from a "mainstream" 
> language, where type classes are all in the expected logical hierarchy, 
> and functions/types always have the most general constraints possible.

The most general type would be:
    f :: Anything a => a

and programs would read like f (f (f a) (f b)).

I don't think that the Traversable and Foldable functions in Prelude are 
the most general ones - what about using Arrow class instead of functions? 
If we always try to get the most general functions into Prelude we will 
get constant change but certainly not progress. The more general the types 
become the more type annotations you will need and the more mental type 
inference the reader of a program must perform. Prelude would tend to 
depend on the newest type extensions.


More information about the Libraries mailing list