protocol

# expanding

> Term and goal expansion protocol.

author:
  `Paulo Moura`
version:
  `1.0`
date:
  `2013/8/19`

compilation flags:
  `static, built_in`

(no dependencies on other files)

## Public interface

### goal_expansion/2

> Defines a goal expansion. Called recursively until a fixed point is reached on goals found while compiling a source file (including clause goals, goal meta-arguments of standard meta-predicates, initialization goals, and conditional compilation goals).

compilation flags:
  `static`
template:
  `goal_expansion(Goal,ExpandedGoal)`
mode – number of proofs:
  `goal_expansion(+callable,-callable) – zero_or_one`

### term_expansion/2

> Defines a term expansion. Called until it succeeds on all terms read while compiling a source file except those skipped by using the conditional compilation directives.

compilation flags:
  `static`
template:
  `term_expansion(Term,ExpandedTerms)`
mode – number of proofs:
  `term_expansion(+term,-term) – zero_or_one`
  `term_expansion(+term,-list(term)) – zero_or_one`

## Protected interface

(none)

## Private predicates

(none)

## Operators

### (none)

## Remarks

### (none)

## See also

### (none)