built-in predicate

# `current_protocol/1`

## Description

    current_protocol(Protocol)

Enumerates, by backtracking, all currently defined protocols. All protocols are found, either static, dynamic, or built-in.

## Modes and number of proofs

    current_protocol(?protocol_identifier) - zero_or_more

## Errors

`Protocol` is neither a variable nor a valid protocol identifier:
`type_error(protocol_identifier, Protocol)`

## Examples

    % enumerate the defined protocols:
    | ?- current_protocol(Protocol).

    Protocol = expanding ;
    Protocol = monitoring ;
    Protocol = forwarding ;
    ...

See also

abolish_protocol/1, create_protocol/3, protocol_property/2, conforms_to_protocol/2-3, extends_protocol/2-3, implements_protocol/2-3