Somehow it seems to me there is no difference between the following two Picat member/2 definitions:
member1(X, [X|_]) ?=> true. member1(X, [_|Y]) => m