FYI, metaocaml runs into the same problem [for different reasons].
There the design decision was to not allow using a data-type in the same
file as its definition. Separate compilation then solves the problem.
This is a minor pain. But in Haskell, this would lead to orphan
instances when using TH to derive instances, which is likely to be
thought of as a rather bigger pain.
Jacques
On 2016-01-08 6:08 PM, Simon Peyton Jones wrote:
Bother. That's true. And it's a vital feature. Otherwise how do we do
data T = T1 | T2
$(makeLenses 'T)
So we can't separate the two after all. Sorry -- I totally forgot about that.
Very annoying.
Simon
| -----Original Message-----
| From: Edward Z. Yang [mailto:ezy...@mit.edu]
| Sent: 08 January 2016 19:40
| To: Simon Peyton Jones <simo...@microsoft.com>
| Cc: ghc-devs <ghc-devs@haskell.org>
| Subject: Reify and separating renamer+TH from type-checking
|
| I implemented the refactoring to run the renamer and TH splices all
| first before doing any type-checking, but actually there's a problem:
| Template Haskell splices can call 'reify', which needs the type
| information in order to supply the information about the identifiers
| in question. I can't think of any good way around this problem.
|
| Edward
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs