diff --git a/src/lib/si.pl b/src/lib/si.pl index bdebc956..ac28b43c 100644 --- a/src/lib/si.pl +++ b/src/lib/si.pl @@ -37,6 +37,7 @@ atomic_si/1, list_si/1, character_si/1, + term_si/1, chars_si/1, dif_si/2]). @@ -68,6 +69,11 @@ character_si(Ch) :- atom(Ch), atom_length(Ch,1). +term_si(Term) :- + ( ground(Term) -> acyclic_term(Term) + ; throw(error(instantiation_error, term_si/1)) + ). + chars_si(Chs0) :- '$skip_max_list'(_,_, Chs0,Chs), ( nonvar(Chs) -> Chs == [] ; true ), % fails for infinite lists too