The definition of this Prolog library predicate is:
:- tool(checklist/3, checklist_body/4). checklist_body(_, [], _). checklist_body(Pred, [Head|Tail], M) :- Pred =.. PL, append(PL, [Head], NewPred), Call =.. NewPred, call(Call, M), checklist_body(Pred, Tail, M).The following should be noted:
1. This predicate does not perform any type testing functions.
2. This predicate is not protected by ECLiPSe and may be redefined without generating a warning message.
Success: checklist(integer, [1, 3, 5]). checklist(spy, [var/1, functor/3]). Fail: checklist(current_op(_, _), [+, -, =]). (fails because the precedence of = does not match that of +)