`ghc-debug-common-0.3.0.0` build failure on GHC 9.4

Ryan Scott
2022-10-12T11:13:18Z

Attempting to build `ghc-debug-common-0.3.0.0` on GHC 9.4.2 fails with:

```
[6 of 9] Compiling GHC.Debug.Decode.Convert ( src/GHC/Debug/Decode/Convert.hs, dist/build/GHC/Debug/Decode/Convert.o, dist/build/GHC/Debug/Decode/Convert.dyn_o )

src/GHC/Debug/Decode/Convert.hs:53:38: error:
• Couldn't match type ‘a’ with ‘Maybe a’
Expected: Maybe a
Actual: Maybe (Maybe a)
‘a’ is a rigid type variable bound by
the type signature for:
convertClosure :: forall a.
(Num a, Eq a, Show a) =>
StgInfoTableWithPtr
-> GHC.GenClosure a -> DebugClosure Void InfoTablePtr Void a
at src/GHC/Debug/Decode/Convert.hs:12:1-123
• In the sixth argument of ‘WeakClosure’, namely ‘w_link’
In the expression: WeakClosure itb a2 a3 a4 a5 w_link
In the expression:
let w_link = if a6 == 0 then Nothing else Just a6
in WeakClosure itb a2 a3 a4 a5 w_link
• Relevant bindings include
w_link :: Maybe (Maybe a)
(bound at src/GHC/Debug/Decode/Convert.hs:49:11)
a6 :: Maybe a (bound at src/GHC/Debug/Decode/Convert.hs:44:35)
a5 :: a (bound at src/GHC/Debug/Decode/Convert.hs:44:32)
a4 :: a (bound at src/GHC/Debug/Decode/Convert.hs:44:29)
a3 :: a (bound at src/GHC/Debug/Decode/Convert.hs:44:26)
a2 :: a (bound at src/GHC/Debug/Decode/Convert.hs:44:23)
(Some bindings suppressed; use -fmax-relevant-binds=N or -fno-max-relevant-binds)
|
53 | in WeakClosure itb a2 a3 a4 a5 w_link
| ^^^^^^
```

The build succeeds on GHC 9.2 and earlier. I think the culprit is [this code](https://gitlab.haskell.org/ghc/ghc-debug/-/blob/d2566bc3bfae4417c3b43b4e378131b1e78665ef/common/src/GHC/Debug/Decode/Convert.hs#L45-52):

```hs
#if __GLASGOW_HASKELL__ >= 905
let w_link = a6
#else
-- nullPtr check
let w_link = if a6 == 0
then Nothing
else Just a6
#endif
```

I believe that `>= 905` should be `>= 904` instead.