:- module require.
:- pragma termination_info(require.error((builtin.in)), infinite, cannot_loop).
:- pragma termination_info(require.func_error((builtin.in)) = (builtin.out), infinite, cannot_loop).
:- pragma termination_info(require.sorry((builtin.in), (builtin.in)) = (builtin.out), infinite, cannot_loop).
:- pragma termination_info(require.sorry((builtin.in), (builtin.in)), infinite, cannot_loop).
:- pragma termination_info(require.sorry((builtin.in), (builtin.in), (builtin.in)) = (builtin.out), infinite, cannot_loop).
:- pragma termination_info(require.sorry((builtin.in), (builtin.in), (builtin.in)), infinite, cannot_loop).
:- pragma termination_info(require.unexpected((builtin.in), (builtin.in)) = (builtin.out), infinite, cannot_loop).
:- pragma termination_info(require.unexpected((builtin.in), (builtin.in)), infinite, cannot_loop).
:- pragma termination_info(require.unexpected((builtin.in), (builtin.in), (builtin.in)) = (builtin.out), infinite, cannot_loop).
:- pragma termination_info(require.unexpected((builtin.in), (builtin.in), (builtin.in)), infinite, cannot_loop).
:- pragma termination_info(require.require(((pred) is semidet), (builtin.in)), infinite, can_loop).
:- pragma termination_info(require.expect(((pred) is semidet), (builtin.in), (builtin.in)), infinite, can_loop).
:- pragma termination_info(require.expect(((pred) is semidet), (builtin.in), (builtin.in), (builtin.in)), infinite, can_loop).
:- pragma termination_info(require.expect_not(((pred) is semidet), (builtin.in), (builtin.in)), infinite, can_loop).
:- pragma termination_info(require.expect_not(((pred) is semidet), (builtin.in), (builtin.in), (builtin.in)), infinite, can_loop).
:- pragma termination_info(require.report_lookup_error((builtin.in), (builtin.in)), infinite, can_loop).
:- pragma termination_info(require.report_lookup_error((builtin.in), (builtin.in), (builtin.unused)), infinite, can_loop).
:- pragma exceptions(predicate, (require.error), 1, 0, may_throw(user_exception)).
:- pragma exceptions(function, (require.func_error), 2, 0, may_throw(user_exception)).
:- pragma exceptions(function, (require.sorry), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (require.sorry), 2, 0, may_throw(user_exception)).
:- pragma exceptions(function, (require.sorry), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (require.sorry), 3, 0, may_throw(user_exception)).
:- pragma exceptions(function, (require.unexpected), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (require.unexpected), 2, 0, may_throw(user_exception)).
:- pragma exceptions(function, (require.unexpected), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (require.unexpected), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (require.require), 2, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (require.expect), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (require.expect), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (require.expect_not), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (require.expect_not), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (require.report_lookup_error), 2, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (require.report_lookup_error), 3, 0, may_throw(user_exception)).
