RequiredTypeArguments: unexpected parse error for infix type
I am using GHC 9.10.1-alpha1, which introduces the `RequiredTypeArguments` extension. My understanding is that a visible `forall` can be instantiated with a type (without needing a `type` disambiguator) when the name of the type is unambiguously in the type syntax. For example, the following works as I would expect, since `(:!@#)` is unambiguously in the type syntax:
```hs
{-# LANGUAGE GHC2024 #-}
{-# LANGUAGE RequiredTypeArguments #-}
module Foo where
import Language.Haskell.TH
idee :: forall a -> a -> a
idee _ x = x
type (:!@#) = Bool
f :: Bool -> Bool
f = idee (:!@#) -- Relies on RequiredTypeArguments to work
```
So far, so good. Now consider what happens if we change the name of the type slightly:
```hs
-- No longer starts with a colon
type (!@#) = Bool
f :: Bool -> Bool
f = idee (!@#)
```
The name has changed to `(!@#)`, but it's still unambiguously in the type syntax. Despite this, GHC no longer accepts the program!
```
$ ghc-9.10 Foo.hs
[1 of 1] Compiling Foo ( Foo.hs, Foo.o )
Foo.hs:14:5: error: [GHC-76037]
• Not in scope: ‘!@#’
• In the expression: idee (!@#)
In an equation for ‘f’: f = idee (!@#)
|
14 | f = idee (!@#)
| ^^^^^^^^^^
```
This error message is very surprising, as `(!@#)` _is_ in scope. Surely this ought to be accepted? At the very least, I didn't see this limitation of `RequiredTypeArguments` mentioned in the [relevant section of the GHC User's Guide](https://gitlab.haskell.org/ghc/ghc/-/blob/cdfe6e01f113dbed9df6703c97207c02fc60303b/docs/users_guide/exts/required_type_arguments.rst).
issue