; Pred = Name/Arity ->
( var(Name) ->
throw(error(instantiation_error, abolish/1))
+ ; var(Arity) ->
+ throw(error(instantiation_error, abolish/1))
; integer(Arity) ->
- ( \+ atom(Name) ->
+ (\+ atom(Name) ->
throw(error(type_error(atom, Name), abolish/1))
; Arity < 0 ->
throw(error(domain_error(not_less_than_zero, Arity), abolish/1))
; throw(error(permission_error(modify, static_procedure, Pred), abolish/1))
)
)
- ; var(Arity) -> throw(error(instantiation_error, abolish/1))
; throw(error(type_error(integer, Arity), abolish/1))
)
; throw(error(type_error(predicate_indicator, Module:Pred), abolish/1))