From 2c953bfaae37b427b71cbe20f0ceeda4c1d6f00f Mon Sep 17 00:00:00 2001 From: "simonpj@microsoft.com" Date: Wed, 31 Jan 2007 09:14:51 +0000 Subject: [PATCH] Add note about Template Haskell and mutual recursion --- docs/users_guide/glasgow_exts.xml | 8 ++++++++ 1 file changed, 8 insertions(+) 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. -- 1.7.10.4