From: simonpj@microsoft.com Date: Wed, 31 Jan 2007 09:14:51 +0000 (+0000) Subject: Add note about Template Haskell and mutual recursion X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=2c953bfaae37b427b71cbe20f0ceeda4c1d6f00f;p=ghc-hetmet.git Add note about Template Haskell and mutual recursion --- diff --git a/docs/users_guide/glasgow_exts.xml b/docs/users_guide/glasgow_exts.xml index 0c3b07c..fb2124e 100644 --- a/docs/users_guide/glasgow_exts.xml +++ b/docs/users_guide/glasgow_exts.xml @@ -4226,6 +4226,14 @@ Tim Sheard is going to expand it.) (It would make sense to do so, but it's hard to implement.) + + Furthermore, the you can only run a function at compile time if it is imported + from another module that is not part of a mutually-recursive group of modules + that includes the module currently being compiled. For example, when compiling module A, + you can only run Template Haskell functions imported from B if B does not import A (directly or indirectly). + The reason should be clear: to run B we must compile and run A, but we are currently type-checking A. + + The flag -ddump-splices shows the expansion of all top-level splices as they happen.