:- module std_util. :- pragma termination_info(std_util:type_to_univ((builtin:di), (builtin:uo)), infinite, cannot_loop). :- pragma termination_info(std_util:type_to_univ((builtin:in), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(std_util:type_to_univ((builtin:out), (builtin:in)), infinite, can_loop). :- pragma termination_info(std_util:univ_to_type((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:univ_to_type((builtin:out), (builtin:in)), infinite, cannot_loop). :- pragma termination_info(std_util:univ_to_type((builtin:uo), (builtin:di)), infinite, cannot_loop). :- pragma termination_info(std_util:univ((builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(std_util:univ((builtin:di)) = (builtin:uo), infinite, cannot_loop). :- pragma termination_info(std_util:univ((builtin:out)) = (builtin:in), infinite, can_loop). :- pragma termination_info(std_util:det_univ_to_type((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:univ_type((builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(std_util:univ_value((builtin:in)) = (builtin:out), finite(-1, [no, yes, no]), cannot_loop). :- pragma termination_info(std_util:map_maybe((pred((builtin:in), (builtin:out)) is det), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:map_maybe((pred((builtin:in), (builtin:out)) is semidet), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:map_maybe((pred((builtin:in), (builtin:out)) is multi), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:map_maybe((pred((builtin:in), (builtin:out)) is nondet), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:map_maybe((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:fold_maybe((pred((builtin:in), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:fold_maybe((pred((builtin:in), (builtin:in), (builtin:out)) is semidet), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:fold_maybe((pred((builtin:in), (builtin:di), (builtin:uo)) is det), (builtin:in), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:fold_maybe((builtin:in), (builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:map_fold_maybe((pred((builtin:in), (builtin:out), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:out), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:map_fold_maybe((pred((builtin:in), (builtin:out), (builtin:di), (builtin:uo)) is det), (builtin:in), (builtin:out), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:map_fold2_maybe((pred((builtin:in), (builtin:out), (builtin:in), (builtin:out), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:out), (builtin:in), (builtin:out), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:map_fold2_maybe((pred((builtin:in), (builtin:out), (builtin:in), (builtin:out), (builtin:di), (builtin:uo)) is det), (builtin:in), (builtin:out), (builtin:in), (builtin:out), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:fst((builtin:in), (builtin:out)), finite(-2, [no, no, yes, no]), cannot_loop). :- pragma termination_info(std_util:fst((builtin:in)) = (builtin:out), finite(-2, [no, no, yes, no]), cannot_loop). :- pragma termination_info(std_util:snd((builtin:in), (builtin:out)), finite(-2, [no, no, yes, no]), cannot_loop). :- pragma termination_info(std_util:snd((builtin:in)) = (builtin:out), finite(-2, [no, no, yes, no]), cannot_loop). :- pragma termination_info(std_util:pair((builtin:in), (builtin:in)) = (builtin:out), finite(2, [no, no, yes, yes, no]), cannot_loop). :- pragma termination_info(std_util:solutions((pred((builtin:out)) is multi), builtin:out((list:non_empty_list))), infinite, can_loop). :- pragma termination_info(std_util:solutions((pred((builtin:out)) is nondet), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:solutions((pred((builtin:out)) is multi)) = builtin:out((list:non_empty_list)), infinite, can_loop). :- pragma termination_info(std_util:solutions((pred((builtin:out)) is nondet)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:solutions_set((pred((builtin:out)) is multi), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:solutions_set((pred((builtin:out)) is nondet), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:solutions_set((pred((builtin:out)) is multi)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:solutions_set((pred((builtin:out)) is nondet)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:unsorted_solutions((pred((builtin:out)) is multi), builtin:out((list:non_empty_list))), infinite, can_loop). :- pragma termination_info(std_util:unsorted_solutions((pred((builtin:out)) is nondet), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:aggregate((pred((builtin:out)) is multi), (func((builtin:in), (builtin:in)) = (builtin:out) is det), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:aggregate((pred((builtin:out)) is nondet), (func((builtin:in), (builtin:in)) = (builtin:out) is det), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:aggregate((pred((builtin:out)) is multi), (pred((builtin:in), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:aggregate((pred((builtin:out)) is multi), (pred((builtin:in), (builtin:di), (builtin:uo)) is det), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:aggregate((pred((builtin:out)) is nondet), (pred((builtin:in), (builtin:di), (builtin:uo)) is det), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:aggregate((pred((builtin:out)) is nondet), (pred((builtin:in), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:aggregate2((pred((builtin:out)) is multi), (pred((builtin:in), (builtin:in), (builtin:out), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:out), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:aggregate2((pred((builtin:out)) is multi), (pred((builtin:in), (builtin:in), (builtin:out), (builtin:di), (builtin:uo)) is det), (builtin:in), (builtin:out), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:aggregate2((pred((builtin:out)) is nondet), (pred((builtin:in), (builtin:in), (builtin:out), (builtin:di), (builtin:uo)) is det), (builtin:in), (builtin:out), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:aggregate2((pred((builtin:out)) is nondet), (pred((builtin:in), (builtin:in), (builtin:out), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:out), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:unsorted_aggregate((pred((builtin:out)) is multi), (pred((builtin:in), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:unsorted_aggregate((pred((builtin:out)) is multi), (pred((builtin:in), (builtin:di), (builtin:uo)) is det), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:unsorted_aggregate((pred((builtin:out)) is multi), (pred((builtin:in), (builtin:di), (builtin:uo)) is cc_multi), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:unsorted_aggregate((pred((builtin:muo)) is multi), (pred((builtin:mdi), (builtin:di), (builtin:uo)) is det), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:unsorted_aggregate((pred((builtin:out)) is nondet), (pred((builtin:in), (builtin:di), (builtin:uo)) is det), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:unsorted_aggregate((pred((builtin:out)) is nondet), (pred((builtin:in), (builtin:di), (builtin:uo)) is cc_multi), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:unsorted_aggregate((pred((builtin:out)) is nondet), (pred((builtin:in), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:unsorted_aggregate((pred((builtin:muo)) is nondet), (pred((builtin:mdi), (builtin:di), (builtin:uo)) is det), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:do_while((pred((builtin:out)) is multi), (pred((builtin:in), (builtin:out), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:do_while((pred((builtin:out)) is multi), (pred((builtin:in), (builtin:out), (builtin:di), (builtin:uo)) is det), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:do_while((pred((builtin:out)) is multi), (pred((builtin:in), (builtin:out), (builtin:di), (builtin:uo)) is cc_multi), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:do_while((pred((builtin:out)) is nondet), (pred((builtin:in), (builtin:out), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:do_while((pred((builtin:out)) is nondet), (pred((builtin:in), (builtin:out), (builtin:di), (builtin:uo)) is det), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:do_while((pred((builtin:out)) is nondet), (pred((builtin:in), (builtin:out), (builtin:di), (builtin:uo)) is cc_multi), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:compose((builtin:in), (builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:converse((builtin:in), (builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:pow((builtin:in), (builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:id((builtin:in)) = (builtin:out), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(std_util:maybe_pred((pred((builtin:in), (builtin:out)) is semidet), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:maybe_func((func((builtin:in)) = (builtin:out) is semidet), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:isnt((pred((builtin:in)) is semidet), (builtin:in)), infinite, can_loop). :- pragma termination_info((std_util:semidet_succeed), finite(0, []), cannot_loop). :- pragma termination_info((std_util:semidet_fail), finite(0, []), cannot_loop). :- pragma termination_info(std_util:cc_multi_equal((builtin:di), (builtin:uo)), infinite, cannot_loop). :- pragma termination_info(std_util:cc_multi_equal((builtin:in), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(std_util:type_of((builtin:unused)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(std_util:has_type((builtin:unused), (builtin:in)), infinite, cannot_loop). :- pragma termination_info(std_util:type_name((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:type_ctor_and_args((builtin:in), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(std_util:type_ctor((builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(std_util:type_args((builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(std_util:type_ctor_name((builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(std_util:type_ctor_module_name((builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(std_util:type_ctor_arity((builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(std_util:type_ctor_name_and_arity((builtin:in), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(std_util:make_type((builtin:in), (builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(std_util:make_type((builtin:out), (builtin:out)) = (builtin:in), infinite, cannot_loop). :- pragma termination_info(std_util:det_make_type((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:num_functors((builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(std_util:get_functor((builtin:in), (builtin:in), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(std_util:get_functor((builtin:in), (builtin:in), (builtin:out), (builtin:out), (builtin:out), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:get_functor_ordinal((builtin:in), (builtin:in), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(std_util:construct((builtin:in), (builtin:in), (builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(std_util:construct_tuple((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:functor((builtin:in), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(std_util:functor_cc((builtin:in), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(std_util:arg((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:arg_cc((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:argument((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:argument_cc((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:named_argument((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:named_argument_cc((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:det_arg((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:det_arg_cc((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:det_argument((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:det_argument_cc((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:det_named_argument((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(std_util:det_named_argument_cc((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:deconstruct((builtin:in), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(std_util:deconstruct_cc((builtin:in), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(std_util:limited_deconstruct((builtin:in), (builtin:in), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(std_util:limited_deconstruct_cc((builtin:in), (builtin:in), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(std_util:dynamic_cast((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:builtin_aggregate((pred((builtin:out)) is multi), (pred((builtin:in), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:builtin_aggregate((pred((builtin:out)) is multi), (pred((builtin:in), (builtin:di), (builtin:uo)) is det), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:builtin_aggregate((pred((builtin:out)) is multi), (pred((builtin:in), (builtin:di), (builtin:uo)) is cc_multi), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:builtin_aggregate((pred((builtin:muo)) is multi), (pred((builtin:mdi), (builtin:di), (builtin:uo)) is det), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:builtin_aggregate((pred((builtin:out)) is nondet), (pred((builtin:in), (builtin:di), (builtin:uo)) is det), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:builtin_aggregate((pred((builtin:out)) is nondet), (pred((builtin:in), (builtin:di), (builtin:uo)) is cc_multi), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:builtin_aggregate((pred((builtin:out)) is nondet), (pred((builtin:in), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:builtin_aggregate((pred((builtin:muo)) is nondet), (pred((builtin:mdi), (builtin:di), (builtin:uo)) is det), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(std_util:builtin_solutions((pred((builtin:out)) is multi), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:builtin_solutions((pred((builtin:out)) is nondet), (builtin:out)), infinite, can_loop). :- pragma termination_info(std_util:cons((builtin:in), (builtin:in), (builtin:out)), finite(2, [no, yes, yes, no]), cannot_loop).