Decouple 'Language.Haskell.Syntax.Type' from 'GHC.Utils.Panic'
This PR addresses issue #26626 (closed) by fully decoupling the Language.Haskell.Syntax.Type module from depending on GHC.Utils.Panic.
The only import from GHC.Utils.Panic was a single call to panic within the function hsQTvExplicit.
Specifically, panic was invoked only within the "extension branch" represented by the data constructor XLHsQTyVars of the LHsQTyVars data-type.
The function hsQTvExplicit was exported by Language.Haskell.Syntax.Type and utilized by several other modules with GHC and Haddock.
Fortunately, I scrutinized each call site of hsQTvExplicit and determined that the XLHsQTyVars branch will never be entered.
The "concrete" type of the type familty instances for LHsQTyVars at all call sites resolved to DataConCantHappen.
This allowed be to "inline" the defintion of hsQTvExplicit at all call sites; applying the HsQTvs branch and eliding the (impossible) XLHsQTyVars branch.
The process simplified to a substitution of hsQTvExplicit with hsq_explicit.
Going forward, developers will have to explicitly specify the behavior of the extension data-type contained within the XLHsQTyVars constructor if one other than DataConCantHappen is used. I believe that this provides a better API than an obfuscated call to panic, no different from forcing developers to check a Maybe a value instead of creating a partial function.
This MR is the first step in up-streaming changes to decouple the AST from GHC, via TTG.