TTG: Removing even more orphan instances after AST separation
## Summary
The Trees-that-Grow migration moved the Haskell AST into the
**`Language.Haskell.Syntax`** namespace while GHC's instantiation of it stayed
under **`GHC.*`**. The data-types moved but their instances largely did not, because at the time they could not.
The result is a population of instances declared in modules that define neither the type-class nor the data-type, kept quiet by per-module `-Wno-orphans` pragmas.
## Difficulties
The obvious homes are unreachable. **`GHC.Utils.Outputable`** and
**`GHC.Utils.Binary`** sit *below* the AST in the import graph:
* Every **`GHC.Hs.*`** module reaches **`GHC.Types.SrcLoc`**, which imports
**`GHC.Utils.Outputable`**;
* **`GHC.Types.Name`** imports **`GHC.Utils.Binary`** directly, in order to
declare `instance Binary Name`.
Resolving these instances is therefore requires restating each
body so that the equations it depends on become constraints discharged at the
call site, or inverting the dependency so the class module can reach what it
needs.
## Desiderata
Migrate every instance whose body can be expressed at its type-class module or its
data-type's module, subject to three constraints:
1. no change to AST semantics — encodings, pretty-printed output and ordering
behaviour preserved;
2. no GHC internals moved into **`Language.Haskell.Syntax`**;
3. no new `.hs-boot` files.
Retire any `-Wno-orphans` pragmas that become unnecessary, and record the instances that remain together with the specific obstacle blocking each.
## Related
* [#27469 — TTG: Addressing orphan instance technical debt](https://gitlab.haskell.org/ghc/ghc/-/issues/27469) *(closed)*
* [#21262 — TTG follow-up: Outputable orphans](https://gitlab.haskell.org/ghc/ghc/-/issues/21262) *(closed)*
* [!16299 — TTG: Removing orphan instances after AST separation](https://gitlab.haskell.org/ghc/ghc/-/merge_requests/16299) *(closed)* — resolved a first tranche of 39 instances
This issue covers the debt remaining after that MR.
issue