    You say that the one in your library is "based on" the one in
    Clocksin & Mellish.  You should be aware that that version has
    at least two bugs, one easily corrigible and of concern only
    to people trying to using "pushback lists", and the other
    fundamental and likely to cause trouble to a lot of people.

    The lesser bug is that rules of the form
        p, [X] --> ....
    do not work.  The bug is obvious when you look at the relevant
    clause in the translator (VCHECK.PL in the DEC-10 Prolog library
    would catch it).  The major bug is that the translator produces
    rules which match directly against lists instead of calling 'C'/3,
    so that rules like
        p(X) --> {q(X)}, !, [foo].
    do not work.  The problem is that this will be translated as
        p(X, [foo|S], S) :- q(X), !.
    which matches against foo far too soon.

    Since you say "based on" rather than "identical to", you may
    already have fixed these bugs.
