% The clause will be inserted at the beginning of the module.
asserta(Clause0) :-
loader:strip_subst_module(Clause0, user, Module, Clause),
- iso_ext:asserta(Module, Clause).
+ asserta_(Module, Clause).
+asserta_(Module, (Head :- Body)) :-
+ !,
+ '$asserta'(Module, Head, Body).
+asserta_(Module, Fact) :-
+ '$asserta'(Module, Fact, true).
:- meta_predicate assertz(:).
% The clase will be inserted at the end of the module.
assertz(Clause0) :-
loader:strip_subst_module(Clause0, user, Module, Clause),
- iso_ext:assertz(Module, Clause).
+ assertz_(Module, Clause).
+
+assertz_(Module, (Head :- Body)) :-
+ !,
+ '$assertz'(Module, Head, Body).
+assertz_(Module, Fact) :-
+ '$assertz'(Module, Fact, true).
:- meta_predicate retract(:).
succ/2,
call_nth/2,
countall/2,
- copy_term_nat/2,
- asserta/2,
- assertz/2]).
+ copy_term_nat/2]).
:- use_module(library(error), [can_be/2,
domain_error/3,
copy_term_nat(Source, Dest) :-
'$copy_term_without_attr_vars'(Source, Dest).
-%% asserta(Module, Rule_Fact).
-%
-% Similar to `asserta/1` but allows specifying a Module
-asserta(Module, (Head :- Body)) :-
- !,
- '$asserta'(Module, Head, Body).
-asserta(Module, Fact) :-
- '$asserta'(Module, Fact, true).
-
-%% assertz(Module, Rule_Fact).
-%
-% Similar to `assertz/1` but allows specifying a Module
-assertz(Module, (Head :- Body)) :-
- !,
- '$assertz'(Module, Head, Body).
-assertz(Module, Fact) :-
- '$assertz'(Module, Fact, true).
-