title: Syntax for lazy pattern matching with `as` syntax
body: <p>In (vanilla) GHCi 8.6.5 following function was prefectly valid:</p>
  <pre><code>f xs@ ~(x:xt) = xs
  </code></pre>
  <p>If I now do the same in 9.0.1 I get an error</p>
  <pre><code>Suffix occurrence of @. For an as-pattern, remove the leading whitespace.
  </code></pre>
  <p>Just removing the white space between <code>@</code> and <code>~</code> doesn't seem to suffice, as then <code>@~</code> would be interpreted as an operator, so the only valid variation I found was</p>
  <pre><code>f xs@(~(x:xt)) = xs
  </code></pre>
  <p>I'd like to know the following, for which I couldn't find answers in the change notes:</p>
  <ol>
  <li>What exactly changed from 8.6.5 to 9.0.1 that introduced this incompatibility?</li>
  <li>Is <code>xs@(~(x:xt))</code> really the best way to write this pattern, or is there a preferred way over this?</li>
  </ol>