The Vitality of Haskell
Strong types allow us to break stuff and move on
While the GHC approach to language extensions have facilitated language evolution that is only part of the story. Strong types have allowed even the base
package on which everything is generally based to evolve continuously. The Haskell standard libraries are really quite radically different from the early days (when we had no hierarchical modules, no monads or any kind of package system). Even recent iterations have been fixing up some quite basic structures.
(While I am glad of these fixes on the whole, it would be possible to have too much of a good thing. Not every change has met with universal approval. Disruption isn’t without cost.)
Outside of the core we have seen continuous development of alternative preludes, streams packages, lens packages and so on. Package maintainers are happy to make breaking changes, as long as the breakage manifests statically with type errors.
This vitality I think has been really important aspect of Haskell’s evolution, something that have been quite constant since the start.
Got an issue with any of this? Please share or drop me a line (see below).