protocol

# hierarchyp

> Common hierarchy protocol for prototype and class hierarchies.

author:
  `Paulo Moura`
version:
  `1.0`
date:
  `2000/7/24`

compilation flags:
  `static`

(no dependencies on other files)

## Public interface

### ancestor/1

> Returns, by backtracking, all object ancestors.

compilation flags:
  `static`
template:
  `ancestor(Ancestor)`
mode – number of proofs:
  `ancestor(?object) – zero_or_more`

### ancestors/1

> List of all object ancestors.

compilation flags:
  `static`
template:
  `ancestors(Ancestors)`
mode – number of proofs:
  `ancestors(-list) – one`

### leaf/1

> Returns, by backtracking, all object leaves.

compilation flags:
  `static`
template:
  `leaf(Leaf)`
mode – number of proofs:
  `leaf(?object) – zero_or_more`

### leaves/1

> List of all object leaves.

compilation flags:
  `static`
template:
  `leaves(Leaves)`
mode – number of proofs:
  `leaves(-list) – one`

### descendant/1

> Returns, by backtracking, all object descendants.

compilation flags:
  `static`
template:
  `descendant(Descendant)`
mode – number of proofs:
  `descendant(?object) – zero_or_more`

### descendants/1

> List of all object descendants.

compilation flags:
  `static`
template:
  `descendants(Descendants)`
mode – number of proofs:
  `descendants(-list) – one`

## Protected interface

(none)

## Private predicates

(none)

## Operators

### (none)

## Remarks

### (none)