Admin message

Due to a large amount of spam we do not allow new users to create repositories, they are "external" users. If you are a new user and want to create a repository, for example for forking GHC, open a new issue on ghc/ghc using the "get-verified" issue template

TemplateHaskellQuotes and RebindableSyntax don't play nicely
EDIT: The original problem described here was about untyped TH, and it was fixed in !2960. But we identify a new problem with typed Template Haskell, which has yet to be solved. https://gitlab.haskell.org/ghc/ghc/-/issues/18102#note_292247 shows two illustrative examples. ------------------------------------------------------- If I say ```hs {-# LANGUAGE TemplateHaskell, RebindableSyntax #-} module Bug where import Prelude ( Monad(..), Bool(..), print, ($) ) import Language.Haskell.TH.Syntax $( do stuff <- [| if True then 10 else 15 |] runIO $ print stuff return [] ) ``` then I get errors about `ifThenElse` and `fromInteger` not being in scope. When I bring them into scope, the code is accepted, but the quoted syntax does not mention them, instead accurately reflecting the original source Haskell I wrote. There are several problems in this story: 1. Template Haskell quotes are meant to work even in the presence of unbound identifiers. 2. Template Haskell is all about quoting (and splicing) surface syntax. Quoting should not care about `-XRebindableSyntax`. 3. If we were to decide that quoting should respect `-XRebindableSyntax` (I disagree with this design, to be clear), then the output of the quote is incorrect. I propose: disable `-XRebindableSyntax` within quotes. That should fix all these problems. Other reasonable possibility: disable `-XRebindableSyntax` within quotes, but use the TH combinators that are in scope (like `conE` and `appE`, etc.). I think this would be nightmarish to implement, and no one is asking for it, but it would be a consistent way forward.
issue