<div dir="ltr">Hello,<div><br></div><div>While being knee deep in metaprogramming with merl (OTP 18.3) I made a small typo which led the compilation of my module into an infinite loop.</div><div><br></div><div>I managed to shrink it down to a module like this</div><div><br></div><div><div>    -module(infinity).</div><div>    -export([f/1]).</div><div>    -include_lib("syntax_tools/include/merl.hrl").</div><div>    f(V) -> merl:qquote("@var", [{var, V}]).</div></div><div><br></div><div>( or this oneliner call</div><div><div>    Form = merl:quote("f(V) -> merl:qquote(\"@var\", [{var, V}])."), merl_transform:parse_transform([Form], []).</div><div>)</div></div><div><br></div><div>Seems to me that the optimisation to create templates at compile time in merl_transform:expand_qquote is tricked.</div><div><br></div><div>Can this be considered a bug? I would expect either a compilation error or just silently creating a module which will throw at runtime.</div><div><br></div><div><br></div><div>thanks</div><div>Peter</div></div>