
#10945: Typed Template Haskell splices broken in HEAD (7.11) -------------------------------------+------------------------------------- Reporter: jstolarek | Owner: jstolarek Type: bug | Status: new Priority: high | Milestone: 8.0.1 Component: Template Haskell | Version: 7.11 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: th/T10945 Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by jstolarek): I initially thought that this bogus code - ie. top-level typed TH splice - should be rejected as a parse error. I spent some time trying to change the parser to reject the code but I couldn't find a good way of doing that. Then I realized that this code should parse: with TH enabled all top-level expressions should really be accepted, including a typed TH splice. After some more thought I believe that the right way of doing this would be to run the typed TH splice and then report a type error in the same way we report a type error here: {{{#!hs {-# LANGUAGE TemplateHaskell #-} module T10945s where import Language.Haskell.TH True }}} {{{ T10945.hs:8:1: Couldn't match type ‘Bool’ with ‘Q [Dec]’ Expected type: DecsQ Actual type: Bool In the expression: True }}} Before investing more time into this I'd like to hear thoughts from other devs. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10945#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler