# `abolish_events/5`

## Description

    abolish_events(Event, Object, Message, Sender, Monitor)

Abolishes all matching events. The two types of events are represented by the atoms `before` and `after`. When the predicate is called with the first argument unbound, both types of events are abolished.

## Modes and number of proofs

    abolish_events(@term, @term, @term, @term, @term) - one

## Errors

`Event` is neither a variable nor a valid event identifier:
`type_error(event, Event)`
`Object` is neither a variable nor a valid object identifier:
`type_error(object_identifier, Object)`
`Message` is neither a variable nor a callable term:
`type_error(callable, Message)`
`Sender` is neither a variable nor a valid object identifier:
`type_error(object_identifier, Sender)`
`Monitor` is neither a variable nor a valid object identifier:
`type_error(object_identifier, Monitor)`

## Examples

    % abolish all events for messages sent to the "list"
    % object being monitored by the "debugger" object:
    | ?- abolish_events(_, list, _, _, debugger).

See also

current_event/5, define_events/5, before/3, after/3