/*
This category defines a set of predicates, which are imported by the 
roots of both the class-based and the prototype-based hierarchies of
this example
*/

:- category(predicates).

	:- public(public/0).
	:- mode(public, one).

	:- protected(protected/0).
	:- mode(protected, one).

	:- private(private/0).
	:- mode(private, one).

	public :-
		write('Public predicate declared and defined in category "predicates".'), nl.

	protected :-
		write('Protected predicate declared and defined in category "predicates".'), nl.

	private :-
		write('Private predicate declared and defined in category "predicates".'), nl.

:- end_category.