GHC 9.14 regresssion: cannot SPECIALIZE with higher-rank quantifier
The following SPECIALIZE fails with GHC 9.14 alpha1:
```haskell
newtype TCMT m a = TCM { unTCM :: Strict.IORef TCState -> TCEnv -> m a }
type TCM = TCMT IO
{-# SPECIALIZE INLINE mapTCMT :: (forall a. IO a -> IO a) -> TCM a -> TCM a #-}
mapTCMT :: (forall a. m a -> n a) -> TCMT m a -> TCMT n a
mapTCMT f (TCM m) = TCM $ \ s e -> f (m s e)
```
Basically we want to fix `n = m = IO` here. Error:
```
src/full/Agda/TypeChecking/Monad/Base.hs:6137:1: error: [GHC-69441] [-Werror]
RULE left-hand side too complicated to desugar
Optimised lhs: \ (ds_d9yDd :: forall a. IO a -> IO a) ->
mapTCMT @IO @IO @a ds_d9yDd
Orig lhs: (\ (@a) (ds_d9yDd :: forall a. IO a -> IO a) ->
mapTCMT @IO @IO @a (\ (@a) -> ds_d9yDd @a))
@a
|
6137 | {-# SPECIALIZE INLINE mapTCMT :: (forall a. IO a -> IO a) -> TCM a -> TCM a #-}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```
Downstream issue:
- https://github.com/agda/agda/issues/8074
issue