Reify and separating renamer+TH from type-checking

Jacques Carette carette at mcmaster.ca
Wed Jan 13 02:57:57 UTC 2016


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:ezyang at mit.edu]
> | Sent: 08 January 2016 19:40
> | To: Simon Peyton Jones <simonpj at microsoft.com>
> | Cc: ghc-devs <ghc-devs at 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 at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs



More information about the ghc-devs mailing list