# protocol_property/2

## Description

    protocol_property(Protocol, Property)

Enumerates, by backtracking, the properties associated with the currently defined protocols. The valid protocol properties are listed in the language gramar section on entity properties.

## Modes and number of proofs

    protocol_property(?protocol_identifier, ?protocol_property) - zero_or_more

## Errors

Protocol is neither a variable nor a valid protocol identifier:
`type_error(protocol_identifier, Protocol)`
Property is neither a variable nor a callable term:
`type_error(callable, Property)`
Property is a callable term but not a valid protocol property:
`domain_error(protocol_property, Property)`

## Examples

    | ?- protocol_property(listp, Property).

See also

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