directive

# `private/1`

## Description

    private(Name/Arity)
    private((Name/Arity, ...))
    private([Name/Arity, ...])

    private(Name//Arity)
    private((Name//Arity, ...))
    private([Name//Arity, ...])

    private(op(Precedence,Associativity,Operator))
    private((op(Precedence,Associativity,Operator), ...))
    private([op(Precedence,Associativity,Operator), ...])

Declares private predicates, private grammar rule non-terminals, and private operators. A private predicate can only be called from the object containing the private directive. A private non-terminal can only be used in a call of the phrase/2 and phrase/3 methods from the object containing the private directive.

## Template and modes

    private(+predicate_indicator_term)
    private(+non_terminal_indicator_term)
    private(+operator_declaration)

## Examples

    :- private(counter/1).

    :- private((init/1, free/1)).

    :- private([data/3, key/1, keys/1]).

See also

protected/1, public/1, predicate_property/2