:- module require. :- use_module builtin, exception, list, private_builtin, std_util, string. require:require(Goal_3, Message_4) :- (if call(Goal_3) then true else require:error(Message_4), fail ). :- pragma termination_info(require:error((builtin:in)), infinite, can_loop). :- pragma termination_info(require:func_error((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(require:require(((pred) is semidet), (builtin:in)), infinite, can_loop). :- pragma termination_info(require:report_lookup_error((builtin:in), (builtin:in), (builtin:unused)), infinite, can_loop).