Skip to content

Update docs for change in parsing behaviour of infix operators like `@` in GHC 9

GHC 9 now treats @ with spaces as an infix operator, which breaks Template Haskell code like:

let myType = ... :: Q Type
[| foo @ $myType |]

(this is intended to generate code like foo @Int). The space here was needed so that @$ wasn't being treated as a single unit, but this breaks with GHC 9. The fix is to change this to @($myType).

Update migration guide, release notes, and any other documentation to be more clear about this change in behavior. There was a small note added to the release docs in !5499 (closed), but it doesn't clearly indicate that it breaks code like the above.

Edited by Zubin
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information