built-in predicate
extends_category/2-3
Description
extends_category(Category, ParentCategory)
extends_category(Category, ParentCategory, Scope)
Enumerates, by backtracking, all pairs of categories such that the first
one extends the second. The relation scope is represented by the atoms
public
, protected
, and private
.
Modes and number of proofs
extends_category(?category_identifier, ?category_identifier) - zero_or_more
extends_category(?category_identifier, ?category_identifier, ?scope) - zero_or_more
Errors
Category
is neither a variable nor a valid protocol identifier:type_error(category_identifier, Category)
ParentCategory
is neither a variable nor a valid protocol identifier:type_error(category_identifier, ParentCategory)
Scope
is neither a variable nor an atom:type_error(atom, Scope)
Scope
is an atom but an invalid entity scope:domain_error(scope, Scope)
Examples
% enumerate the categories extended by the derailleur category:
| ?- extends_category(derailleur, Category).
% enumerate categories that privately extend the basics category:
| ?- extends_category(Category, basics, private).