:- module thread.
:- pragma termination_info((thread.can_spawn), finite(0, []), cannot_loop).
:- pragma termination_info(thread.spawn(builtin.in((pred((builtin.di), (builtin.uo)) is cc_multi)), (builtin.di), (builtin.uo)), infinite, cannot_loop).
:- pragma termination_info(thread.yield((builtin.di), (builtin.uo)), infinite, cannot_loop).
:- pragma termination_info(thread.call_back_to_mercury((pred((builtin.di), (builtin.uo)) is cc_multi), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma exceptions(predicate, (thread.can_spawn), 0, 0, will_not_throw).
:- pragma exceptions(predicate, (thread.spawn), 3, 0, will_not_throw).
:- pragma exceptions(predicate, (thread.yield), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (thread.call_back_to_mercury), 3, 0, may_throw(user_exception)).
