<div dir="ltr"><div>In Mercury reference[1] there is an example shows that a seperate definition can be used to make `append(out, in, in)` more efficient.</div><div><br></div><div>But `libraray/list.m` and `library/string.m` both do not define `append(out, in, in)` mode, instead `remove_suffix/3`is¬†recommended to be used, because of determinism and¬†efficiency issues. That seems to contradict with the reference.</div><div><br></div><div>[1] <a href="http://mercurylang.org/information/doc-latest/mercury_ref/Different-clauses-for-different-modes.html">http://mercurylang.org/information/doc-latest/mercury_ref/Different-clauses-for-different-modes.html</a><br></div><div><br></div><div>Regards,</div><div>Xin Wang</div></div>