<div dir="ltr">Sometimes I try developing a new predicate starting with a clause "head(Args) :- fail.", then add actual code under it when I get round to that case. If I forget to remove the "fail.", mmc gets confused as it thinks it's looking at a definition of ,/2:<br>
<div><br>:- module test.<br>:- interface.<br>:- pred test is det.<br>:- implementation.<br>test :- fail.<br>    test,<br>    test,<br>    test.<br><br>/*<br>pwb@rhuidean /tmp $ mmc -c test.m<br>Uncaught Mercury exception:<br>
Software Error: hlds.pred_table: predicate `hlds.pred_table.get_proc_id'/3: Unexpected: cannot take address of pred<br>`,/2' with no modes.<br>(Sorry, confused by earlier errors -- bailing out.)<br>*/<br clear="all">
<div><br>-- <br>Peter Berry <<a href="mailto:pwberry@gmail.com" target="_blank">pwberry@gmail.com</a>><br>()  ascii ribbon campaign - against html e-mail <br>/\  <a href="http://www.asciiribbon.org" target="_blank">www.asciiribbon.org</a>   - against proprietary attachments
</div></div></div>