Hacker News new | past | comments | ask | show | jobs | submit login

Hopefully other people more knowledgeable will answer, but there are a couple things that are pretty obvious off the top of my head:

  - lazy evaluation
  - type inference
  - ridiculous amounts of programmer tools (it *derives* type classes for you!!!)
  - lots of experimental ideas that are in the compiler but that people don't really use (it's a research tool after all).
The language is simple from a conceptual standpoint. Not every thing in the compiler is there simply to support expression of an idea. Quite a lot of it is there to help the programmer.

I think there is something to be said for the idea of writing a similar language which has a less monolithic set of tools (although, to be fair, I have not look at the architecture of GHC at all, so maybe it is really beautiful under the hood). The point is that I don't think that you can necessarily equate the simplicity of expression with the complexity of the tools.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact