The first issue situations like Data.Int
-> GHC.Int
, where the interface is standard enough but the implementation is GHC-specific. But we can now use backpack to save us from that.
The second issue is orphans. It’s really hard to not write orphans in base without adding lots off “extra” dependencies linearizing thing. I started on https://gitlab.haskell.org/ghc/ghc/-/wikis/Rehabilitating-Orphans-with-Order-theory to make orphans permissable, as described in my post in the original thread.
With those two things, I believe we will be able to decouple base from GHC very satisfactorily.