The HP doesn't chase the compiler. It is supposed to mean stable 6 monthly dev cycles, independent of what GHC HQ is up to. It is explicitly not about chasing the bleeding edge GHC.
Really? You're going to troll dons on Hacker News?
Massive downvote.
If a change in a datatype forces you to update 1000s of LoCs, you are doing something wrong.
Consider, for example, fixing the Monad class to subclass Applicative. Or to remove the "fail" or (>>) methods.
This would incur a change to many thousands of lines of code.
Similarly, a core/base type of a whole project can be used across an entire codebase. It is possible to discover desirable changes to such a base type, and it will incur a huge change.
I think any notion of blame is really irrelevant here. The discussion was whether this kind of feature is useful. I think you implied it wasn't, because the cases it were useful in are those in which you did something wrong. But that does not follow at all. It is very possible one is to blame for a horrible mistake in the codebase, and that it still needs and can be fixed. This feature makes that fix cheaper and more practical.
That's a strawman. The claim is that it is useful to be able to compile a partially-valid program so that you can:
* Test actually running stuff
* Get the inferred types of expressions
The idea is to temporarily turn it off just to run some tests or infer some types, and then turn it on again for the rest of the work.
I think that you're arguing against a point that no one is making. Everyone agrees you should not use this feature for any other purpose except to temporarily allow some tests and exploration.
1) https://github.com/ghc/ghc/blob/master/compiler/stgSyn/StgSy...
EDIT: Okay, I can see the point. The linked ticket http://hackage.haskell.org/trac/ghc/ticket/5624 gives a better motivation: being able to load a module that doesn't type check in GHCI and view inferred types, and, maybe, invoke some isolated functions. But why not just limit it to GHCI, though?
And, FFS, would SPJ and Co. please stop breaking core libraries and tools with minor releases? We had to wait for cabal-install to be ported for 7.2 and 7.4 for a couple of months, at least. Why have the bloody Haskell-Platform if you can't keep up with the compiler releases.