A Revised Haskell 2010 Language Report

throawayonthe1 pts0 comments

A Revised Haskell 2010 Language Report | The Haskell Programming Language's blog

A Revised Haskell 2010 Language Report

David Binder August 04, 2026 [Ecosystem] #haskell-2010

The Haskell 2010 language report was released almost exactly 16 years ago, and although various attempts have been made, no further report has been released.<br>This does not mean, however, that the language hasn't changed.<br>On the contrary, the Haskell that we write today is quite different to the one we wrote 16 years ago, and the language has become more beautiful, consistent and ergonomic in the process.<br>The specification, unfortunately, couldn't keep up.

Many members of our community express some pessimism when it comes to the possibility of a new report. Sure, they would also love to have a new and updated report, but they think that it is either too hard or not worth the effort. I think that is not true. Having an up-to-date report is essential for the health of our community, and it is actually possible for us to get there in a reasonable amount of time with a reasonable amount of work.<br>Here is my plan for how we can get there, and how we can finish the process before the new year.

Why We Need a New Report

The Haskell Language Report is an essential part of the documentation of the language. It is not the first thing that a beginner should consult when they learn Haskell, but it is an important resource for those who want to advance to being an intermediate or experienced Haskeller. If you want to learn about the precise syntax of floating point literals, the rules and desugaring for do-notation, or the meaning of default declarations, the report is the authorative resource where you can find answers.<br>It is therefore unfortunate if the answers that you find in the report are wrong, or do not correspond to what compilers implement or the base library provides.<br>In that case, you have to retrace the proposals and discussions that lead to the current state:<br>The Functor-Applicative-Monad, MonadFail, Foldable-Traversable and Monad-of-no-return proposals undoubtedly made the language better, but they also turn programmers looking for answers in the report into involuntary Haskell historians.

If the language report were the only Haskell resource available to you, then any non-trivial Haskell 2010 program that you would write is almost guaranteed to be incompatible with what modern compilers like GHC or MicroHS expect. We can, and should, fix that.

How to Get the Cost-Benefit Tradeoff Right

Writing a new report is a lot of work, and we want to avoid running into the problems that stalled previous attempts of writing one.<br>It is therefore important that we set ourselves a goal that is both achievable and provides a tangible benefit for the Haskell community.<br>The most obvious such goal is to start with a Revised Haskell 2010 Language Report :

A revised report is eminently achievable: We have a very clear "todo list" in the documented discrepancies in the user guide (GHC User Guide: Bugs and Infelicities). Most of these listed discrepancies are already well-documented in the accepted proposals that lead to them.

None of the changes that we have to implement are likely to be contentious: They reflect the Haskell that we are already writing today. Since the required changes are not contentious, we can use a lightweight decision process in the compilation of the revised report.

There is a clear benefit for the community: The most important piece of our reference documentation is no longer outdated. We can refer people to the Haskell report without having to warn them to stay clear of parts of the report that no longer hold true.

Since we don't define a new Haskell version with a new feature set, but only a revised version of a previous report, we don't generate any churn for the ecosystem or compiler writers. Taking inspiration from Tolkien who rewrote the Hobbit after he came up with the story of the Lord of the Rings, we can retcon the report and pretend that the revised report is what we meant by Haskell2010 all along. We can then simplify the GHC user guide and remove most of its section 16 which documents infelicities compared to the existing report.

So here is the a target that we can set for ourselves: Every program that is valid according to the revised Haskell 2010 language report will be accepted by MicroHS and GHC using the Haskell2010 language edition.

Let's Talk Technicalities

With the motivation and goal out of the way, let us discuss some technical details when it comes to working on the report, building it, and generating the final PDF and HTML documents.

The Haskell 2010 language report is available both as a PDF and HTML document, and there are no obvious good reasons to change this.<br>Working on a document of the complexity and length of the Haskell report can be made joyful if the authoring technology is right, and arduous if we are struggling with long compile times (Compiling long-ish PDFs with LaTeX can take...

report haskell language revised community made

Related Articles