%%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%^^A This is a sample file to demonstrate the use of the \LaTeX style option 
%%^^A pl.sty.
%%^^A
%%^^A The ^^A is just used to make it printable with the documentation.
%%^^A doc.sty insists on it. Otherwise a single % would have been enough.
%%^^A
%%^^A written by gene 11/94
%%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

:- module(sample). /*

This is a dummy module to show the possibilities of the \LaTeX{} style
option pl.
We define a predicate. It looks like

\Predicate select/3(Member, List, Rest).

This predicate describes the relation of the three arguments which fulfill
$\mbox{\it Member}\in\mbox{\it List}$\/ and $\mbox{\it Rest}=\mbox{\it
List}\backslash\mbox{\it Member}$.

And here comes the implementation:
\PL*/
select(Member,[Member|Rest],Rest).
select(Member,[Head|List],[Head|Rest]) :-
	select(Member,List,Rest).
/*PL

\Predicate in/2(Member, List).

This predicate is a reimplementation of the predicate \verb|member/2|
using the \verb|select/3| predicate.

\PL*/
in(Member,List)  :-
	select(Member,List,_).
/*PL
Now we are done with the example.
\EndProlog*/