#2041: Allow splicing in concrete syntax
---------------------------------+------------------------------------------
    Reporter:  igloo             |       Owner:             
        Type:  bug               |      Status:  new        
    Priority:  normal            |   Milestone:  6.10 branch
   Component:  Template Haskell  |     Version:  6.8.2      
    Severity:  normal            |    Keywords:             
  Difficulty:  Unknown           |    Testcase:             
Architecture:  Unknown           |          Os:  Unknown    
---------------------------------+------------------------------------------
 Template Haskell tends to lag behind GHC extensions, so it might be nice
 to allow concrete syntax to be returned, e.g. something like
 {{{
 f = $( return (RawE "5 + 6") )
 }}}
 There wouldn't be any need to restrict it to the top level, e.g. this
 would also be allowed:
 {{{
 f = $( return (InfixE (IntE 5) '(+) (RawE "6")) )
 }}}

 One possible disadvantage is that it might result in TH languishing even
 further behind, as there is less incentive to fill in the gaps.

 Also, if a module splices in a raw expression from a TH library, what
 extensions should be enabled when parsing the string? Should we use the
 extensions enabled for the module, or should the `RawE` constructor
 specify the extensions to be used? We actually have this problem already,
 as (for example) when instances are spliced in we might need
 !OverlappingInstances enabled, so just using the extensions enabled for
 the module would be consistent.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2041>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to