<div dir="ltr"><div><div><div><div><div><div><div><div>Hi all,<br><br></div>I'm writing some TH code that should generate property tests. For example, the expression:<br><br></div><span style="font-family:monospace">$(generate [e| law "idempotent" (insert a (insert a b) == insert a b) |])</span><br><br></div>should generate the code<br><br></div><span style="font-family:monospace">property $ \a b -> insert a (insert a b) === insert a b</span><br><br></div>I do this by looking for UnboundVarEs in the Exp returned by the [e| quote, and binding them in a lambda. All of this works.<br><br></div>However, now I'm trying to get the inferred types of `a` and `b` in the above. GHC clearly is typechecking the quote, since it will fail if I replace `b` with something nonsensical. <b>Is there some existent way to get the inferred type of an UnboundVarE --- ideally without reimplementing the typechecker?</b><br><br></div>Thanks!<br></div>Sandy<br></div>