[GHC] #5375: Regression in newName

GHC cvs-ghc at haskell.org
Fri Aug 5 11:04:02 CEST 2011


#5375: Regression in newName
---------------------------------+------------------------------------------
    Reporter:  reinerp           |        Owner:                           
        Type:  bug               |       Status:  new                      
    Priority:  highest           |    Milestone:  7.2.1                    
   Component:  Template Haskell  |      Version:  7.3                      
    Keywords:                    |     Testcase:                           
   Blockedby:                    |   Difficulty:                           
          Os:  Unknown/Multiple  |     Blocking:                           
Architecture:  Unknown/Multiple  |      Failure:  GHC rejects valid program
---------------------------------+------------------------------------------

Comment(by simonpj):

 Quasiquotation, by definition, puts all the control in the hands of the
 author of the quasiquoter. All TH can hope to do is to make facilities
 available that let them do what they want.  `lookupName` is such a
 facility.   I can't answer your first example without knowing precisely
 what the quasiquoter is trying to do.

 For your second example, you are doing a Bad Thing.  It's precisely the
 same Bad Thing as this:
 {{{
 f x = return (LamE (VarP 'x) (VarE 'x))
 }}}
 Here the `'x` is the `Name` of the `x` that is f's argument. You should
 not put such a `Name` in a binding position.  (I forget whether TH will
 emit an error message if you do so, but it Jolly Well Should!)

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5375#comment:11>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler



More information about the Glasgow-haskell-bugs mailing list