I like diversity!
Yes, there is real value in people collaborating in a single giant project like GHC – we can achieve so much more together than we can individually.
But that very reach and scale makes GHC a bit ponderous and not-agile. There is a real role for other implementations to explore different parts of the design space. For example
- Lennart’s MicroHs is incredibly small compared to GHC, while still implementing many (but far from all) of its language extensions; it bootstraps in a flash, and compiles Haskell to very small binaries. They may not run as fast as GHC-compiled code, but sometimes that doesn’t matter.
- Artin is building a typechecker for Haskell that that corresponds line-for-line with formally expressed typing rules. GHC’s typechecker is far more complicated and far less comprehensible, and entirely lacks formal typing rules – even though it does more.
Maybe the Montreal Haskell Compiler will also have an “angle” that will enrich us all.