On Mon, Mar 23, 2015 at 3:43 PM, Simon Peyton Jones <simo...@microsoft.com> wrote: > A quasiquoter is really a splice. That is [foo| blah |] is the same as > $(foo "blah"). So it might be easier to discuss your question in the > context of ordinary splices and quotes. You want foo to return code > with a splice, thus: > > foo input_string = [| ...$(other_fun args).... |] > > But foo is in the Q monad anyway, so why not just run (other_fun args) > right there in the quasiquoter? > > Or perhaps make a tiny example to show what you mean (but not using > quasiquotation).
This may not make any sense, but consider something like this: $$(p "a: 1, b: $$(p \"x: 2, y: 3\"), c: 3") Now, my understanding is that 'p' has a type like 'String -> Q (TExp a)', where 'a' is instantiated with the expected type of the resulting expression. But I don't see how to synthesize the expected type for the nested (antiquoted) call to 'p' without implementing my own version of Haskell type inference. I'd like to be able to return a term that includes the antiquoted expression, and then rely on the type checker to properly make the second call to 'p'. /g -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users