[ Obsolete | Reference Manual | Alphabetic Index ]

# abolish_record(++Key)

Remove the local record Key and all its recorded values.

Key
  Key specification of the form Name/Arity or just Name.

### This built-in predicate is obsolete!

## Description

Remove the local record Key visible from the context module and all its recorded values. If global records are recorded under the key Key, they become visible to that module.

Key is equal to Key/0.

If there is no local key declared in the context module (with local record/1), error 45 is raised.

Note that abolish_record/1 is used to remove a records completely (even its local declaration) so that a global record (if any) becomes visible whereas erase_all/1 does not remove the local declaration.

### Modes and Determinism

- abolish_record(++) is det

### Modules

This predicate is sensitive to its module context (tool predicate, see @/2).

### Exceptions

(4) instantiation fault
  Key is not instantiated.
(5) type error
  Key is not of the form Atom or Atom/Integer.
(45) named object does not exist
  No local key Key is declared in the context module.

## Examples

    Success:
          [eclipse]: record(type, integer). % global by default
          yes.
          [eclipse]: module(beer).
          [beer]: record(type, string).   % added global
          yes.
          [beer]: local record(type).     % define a local
          yes.
          [beer]: record(type, lager),
                  record(type, stout).
          yes.
          [beer]: recorded(type, X).
          X = lager     More? (;)
          X = stout     More? (;)
          no (more) solution.
          [beer]: abolish_record(type/0).
          yes. % the visible is now the global one again
          [beer]: recorded(type, X).
          X = integer     More? (;)
          X = string     More? (;)
          no (more) solution.

    Error:
          abolish_record(X).               (Error 4).
          abolish_record(123).             (Error 5).
          local(record(key/3)),
              abolish_record(key/3),
              abolish_record(key/3).       (Error 45).

## See Also

erase / 2, erase_all / 1, record / 1, record / 2, recorded / 2, recorded / 3