#5416: Local modules and Template Haskell declaration splices
---------------------------------+------------------------------------------
    Reporter:  simonpj           |        Owner:              
        Type:  bug               |       Status:  new         
    Priority:  normal            |    Milestone:  _|_         
   Component:  Compiler          |      Version:  7.2.1       
    Keywords:                    |     Testcase:              
   Blockedby:                    |   Difficulty:              
          Os:  Unknown/Multiple  |     Blocking:              
Architecture:  Unknown/Multiple  |      Failure:  None/Unknown
---------------------------------+------------------------------------------
 Sometimes you want a Template Haskell splice to expand to a bunch of
 declarations, ''some of which are not visible to the context''.  A trivial
 example might be
 {{{
 module M where
  $(f 4)

 ====> expands to
 module M where
  helper = ...blah...
  real_fun = ...helper....
 }}}
 But `helper` is only a helper function for `real_fun` and should not be
 exported by M, nor should it conflict with other definitions in M.

 See #5398 for a more concrete example, and (at the end) a speculative
 suggestion for "local modules" that might be a good design.

 Another thing you might want is for a splice to expand into some import
 declarations that bring some new stuff into scope.  That too might be
 possible using this design.

 Prioity uncertain, details very uncertain.  I'm just making the ticket to
 keep track of the idea.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5416>
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