Hello Ch., Wednesday, January 04, 2006, 5:44:53 PM, you wrote: sorry, but i read your message only now. try to read http://freearc.narod.ru/th.htm - it contains my own unfinished tutorial on TH, which may be helpful for you. in brief, all TH syntax sugar in form of quotation brackets is translated to low-level expressions, which runs in the global quotation monad environment CAH> I worried whether the function f in low-level style with this CAH> use of return is equivalent to the quasi-quoted version. CAH> Somehow I felt the need to connect the argument of g with CAH> the monad of which the value of g's result belongs to. It CAH> appeared to me that this is what the quotation brackets [|y|] are CAH> establishing, because y is also in the scope of the outer brackets. CAH> On the one hand, I wonder why the name generation history, when CAH> code generation for a quotation part is finished, is not reset to the state CAH> before. This would be the case with the separate monad for g's CAH> argument. On the other hand, it must be possible to nest quotation CAH> brackets and still establish that names at the different levels are CAH> distinct, if it is wanted. CAH> Many thanks in advance for any enlighting explanation -- Best regards, Bulat mailto:bulatz@HotPOP.com