PceEmacs says predicate is unreferenced

In short:
Is there a way of convincing PceEmacs that a predicate is used, when PceEmacs has decided otherwise?

More detail:
PceEmacs flags unused predicates, and is pretty good at detecting partial application of predicates and flagging accordingly.
Of course this system isn’t perfect.
We might have smoething like:

is_thing(thing).

test(L) :- 
    atom_concat(is_, thing, F),
    maplist(F, L).

In this case is_thing is flagged as unreferenced, although it is referenced dynamically.
I tried to satisfy the error checking with a little hack along the lines of:

reference(_).

:- reference(is_thing).
is_thing(thing).

But that doesn’t seem to work.

You can use this to tell the cross referencer something will be calling this.

:- public is_thing/1.
3 Likes