Hello John,

Thursday, February 02, 2006, 4:24:06 AM, you wrote:

>> It can, but so far it's really ugly to apply transformations to entire
>> modules. A little syntactic sugar could be good there.

JM> module $hat.Foo(..) where
JM> ...

JM> could mean pass the entire module through the 'hat' function of TH. this
JM> would be a really cool feature a lot of rather complicated preprocessors
JM> (hat) could be implemented this way.

well, i think even more - that TH by itself can substitute much of
the better module system that we need. It can implement
parametrization, conditional compilation, hiding. But it will require
some more advanced syntax sugar. on the other side, even the existing
TH facilities can be used to implement all these features and moreover
- remain compatible with other Haskell compilers:

module Implement where
#ifdef GHC
module = [d|
#endif
foo = ...
var = ...
#ifdef GHC
|]
#endif

module Use where
import Implement
$(hat module)


-- 
Best regards,
 Bulat                            mailto:[EMAIL PROTECTED]



_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://haskell.org/mailman/listinfo/haskell-prime

Reply via email to