# Language, library, and compiler stability (moved from GHC 9.6 Migration guide)

**URL:** <https://discourse.haskell.org/t/language-library-and-compiler-stability-moved-from-ghc-9-6-migration-guide/5745>\
**Category:** Uncategorized\
**Created:** [February 4, 2023, 4:00pm UTC](https://discourse.haskell.org/t/language-library-and-compiler-stability-moved-from-ghc-9-6-migration-guide/5745 "2023-02-04T16:00:25Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![angerman](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/angerman/32/892_2.png) [@angerman](https://discourse.haskell.org/u/angerman)\
**Post date:** [February 3, 2023, 5:56am UTC](https://discourse.haskell.org/t/language-library-and-compiler-stability-moved-from-ghc-9-6-migration-guide/5745/1 "2023-02-03T05:56:21Z")

</div>

Thank you @bgamari for posting this, and those involved in curating it.

I would however be lying if I didn’t say I’m fairly disappointed by this. Unless I’m mistaken this document tells me GHC 9.6 will reject code a compiler from ~6mo ago (9.4) still accepted without warning. This again means if any code in any dependency _has_ to be adjusted for any of these changes, it will cascade throughout the whole dependency tree and codebase.

I am _not_ against progress. But the compiler should **warn** for _at least two versions[\*]_ before outright rejecting code. I fail to understand how we can require code level migration for each release. Just to make the code compile. If code compiles with version N, warning free, it should compile with version N+2 as well, potentially with warnings.

* * *

[\*]: preferably four, at a cadence of 6mo per release, but I’d be happy with two already!

---

_[View the full topic](https://discourse.haskell.org/t/language-library-and-compiler-stability-moved-from-ghc-9-6-migration-guide/5745)._
