Implicit parameters with higher rank types are incorrectly rejected by the parser
If I try to define:
foo :: (?blah :: forall a. a -> a) => ()
then I get the error:
error: parse error on input `forall'
However, adding parentheses around the type fixes the issue:
foo :: (?blah :: (forall a. a -> a)) => ()
I'm not sure there is much use for higher rank implicit parameters because of #18759, but this still seems to be a bug in the parser.