#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