A lot of documentation exists about Haskell, and its foundations, in the form of research papers written by those investigating language design. And it is this enormous research effort that goes into making Haskell such a sane language. In general, if a feature is not well understood, it isn't going to become part of the language.
Here is a selection of those papers, with the goal of making the wealth of material published on Haskell more available to the casual user, and not just researchers. Some of the papers are highly technical, others, not so. These papers are not suitable for those trying to learn the language from scratch, but more for those looking for a deeper understanding of the theoretical and practical aspects of Haskell.
- Why Functional Programming Matters
- John Hughes. Comput. J. 32(2): 98-107 (1989)
- Higher-order + Polymorphic = Reusable
- Simon Thompson, 1997.
- The History of Haskell
- Simon Peyton Jones, Paul Hudak, John Hughes, and Philip Wadler, 2006
- Runtime systems
- Parallel and concurrent Haskell
- Type systems
- Data structures
- Monads and arrows
- Generic programming
- Testing and correctness
- Domain specific languages
- Functional reactive programming
See also haskell.readscheme.org