diff --git a/src/lib/builtins.pl b/src/lib/builtins.pl index c741ce28..a2f8c71c 100644 --- a/src/lib/builtins.pl +++ b/src/lib/builtins.pl @@ -985,13 +985,8 @@ retract_clause(Head, Body) :- ( Name == (:), Arity =:= 2 -> arg(1, Head, Module), - arg(2, Head, HeadAndBody), - ( HeadAndBody = (F :- Body1) -> - true - ; F = HeadAndBody, - Body1 = true - ), - retract_module_clause(F, Body1, Module) + arg(2, Head, Head1), + retract_module_clause(Head1, Body, Module) ; '$no_such_predicate'(user, Head) -> '$fail' ; '$head_is_dynamic'(user, Head) -> @@ -1016,7 +1011,7 @@ retract(Clause) :- :- meta_predicate retractall(0). retractall(Head) :- - retract((Head :- _)), + retract_clause(Head, _), false. retractall(_).