<div dir="ltr">i'm trying to construct simple function using merl, and documentation states taht any metavariable ending with @ character will be automatically represented as abstrast syntax but when i'm trying to do this: <div><br></div><div><div>1> merl:show(merl:qquote("f(#'@R@'{ _@A@ = ok }) -> ok.", [{'R', rec}, {'A', field}])).                                         </div><div>function: f(#'@R@'{...}) -> ok.</div><div>  atom: f</div><div>  +</div><div>  clause: (#'@R@'{'@A@' = ok}) -> ok</div><div>    record_expr: #'@R@'{'@A@' = ok}</div><div>      atom: '@R@'</div><div>      +</div><div>      record_field: '@A@' = ok</div><div>        atom: '@A@'</div><div>        +</div><div>        atom: ok</div><div>    +</div><div>    atom: ok</div></div><div><br></div><div>this is not what i expect. I would expect this instead: <br><div>function: f(#rec{...}) -> ok.</div><div>  atom: f</div><div>  +</div><div>  clause: (#rec{field = ok}) -> ok</div><div>    record_expr: #rec{field = ok}</div><div>      atom: rec</div><div>      +</div><div>      record_field: field = ok</div><div>        atom: field</div><div>        +</div><div>        atom: ok</div><div>    +</div><div>    atom: ok</div></div><div><br></div><div>which is what i get if i call: <br></div><div>2>  merl:show(merl:qquote("f(#'@R'{ _@A = ok }) -> ok.", [{'R',      erl_syntax:abstract(rec)}, {'A', erl_syntax:abstract(field)}])).</div><div><br></div><div>what am i missing??</div><div>to clarify: i expect both calls to produce the same thing </div><div><br></div><div>thank you</div></div>