
abolish_op(+Name, +Associativity)

   Remove the declaration of the visible operator +Name of associativity
Associativity.



Arguments
   Name                Atom
   Associativity       Atom.

Type
   Obsolete

Description
   Used to remove the local declaration of the operator Name defined in the
   caller module or to remove the hiding of a global operator declaration
   (made with local_op(0, Associativity, Name)) so that the global operator
   declaration becomes visible again.


   If no operator Name with associativity Associativity is visible from the
   caller module, error 72 is raised.


   If Associativity is not one of following atoms, a range error is raised:



----------------------------
 xfx           infix
 xfy           infix
 yfx           infix
 fx            prefix
 fy            prefix
 xf            postfix
 yf            postfix



Modes and Determinism
   abolish_op(+, +) is det

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

Exceptions
     4 --- Name or Associativity is uninstantiated.
     5 --- Name is not an atom.
     5 --- Associativity is not an atom.
     6 --- Associativity is not a valid associativity name.
    72 --- there is no operator Name with associativity Associativity    visible from the caller module.

Examples
   
Success:
      [eclipse]: op(100, fx, -+-).
      yes. % defined a global prefix operator
      [eclipse]: local_op(0, fy, -+-).
      yes. % hide any global prefix operator
      [eclipse]: current_op(X, Y, -+-).
      no (more) solution.
      [eclipse]: abolish_op(-+-, fy).
      yes. % remove the hiding
      [eclipse]: current_op(X, Y, -+-).
      X = 100
      Y = fx     More? (;)  % global visible again
      no (more) solution.
      [eclipse]: abolish_op(-+-, fx).
      yes. % remove the global definition
      [eclipse]: current_op(X, Y, -+-).
      no (more) solution.

Error:
      abolish_op(X, yfx).         (Error 4)
      abolish_op(+, X).           (Error 4)
      abolish_op("+", yfx).       (Error 5)
      abolish_op(+, 12).          (Error 5)
      abolish_op(+, fff).         (Error 6)
      abolish_op(no_op, fx).      (Error 72)
      local_op(100, fx, +),
          abolish_op(+, fy).      (Error 72).





See Also
   current_op / 3, global_op / 3, op / 3
