Make `template-haskell` reinstallable
Currently template-haskell
is a dependency of GHC. This makes it difficult to reinstall the template-haskell
package. In turn this means that template-haskell
's dependencies are not reinstallable.
Though we should note that an advanced users could reinstall the same version of template-haskell
if they were also willing to rebuild the same version of iserv
bundled with ghc
.
This ticket is split off from #24021 to just cover the task of making template-haskell
properly reinstallable.
In order to do this we must move the parts that GHC depends on into another package. Currently we are aiming to move them into ghc-internal
.
We must also make it so template-haskell
has a proper unit id, so it cannot make use of the -this-unit-id
option and cannot be the host of wired-in identifiers.
Both GHC and template-haskell
would then depend on this package.