:- module list. :- pragma termination_info(list:is_empty((builtin:in)), finite(0, [no, no]), cannot_loop). :- pragma termination_info(list:is_not_empty((builtin:in)), finite(0, [no, no]), cannot_loop). :- pragma termination_info(list:append((builtin:di), (builtin:di), (builtin:uo)), finite(0, [no, yes, yes, no]), cannot_loop). :- pragma termination_info(list:append((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, yes, no]), cannot_loop). :- pragma termination_info(list:append((builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no]), cannot_loop). :- pragma termination_info(list:append((builtin:in), (builtin:out), (builtin:in)), finite(0, [no, no, no, yes]), cannot_loop). :- pragma termination_info(list:append((builtin:out), (builtin:out), (builtin:in)), finite(0, [no, no, no, yes]), cannot_loop). :- pragma termination_info(list:append((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, yes, no]), cannot_loop). :- pragma termination_info(list:'++'((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, yes, no]), cannot_loop). :- pragma termination_info(list:remove_suffix((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(list:merge((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, yes, no]), cannot_loop). :- pragma termination_info(list:merge((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, yes, no]), cannot_loop). :- pragma termination_info(list:merge_and_remove_dups((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, yes, no]), cannot_loop). :- pragma termination_info(list:merge_and_remove_dups((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, yes, no]), cannot_loop). :- pragma termination_info(list:remove_adjacent_dups((builtin:in), (builtin:out)), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(list:remove_adjacent_dups((builtin:in)) = (builtin:out), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(list:remove_dups((builtin:in), (builtin:out)), finite(0, [no, yes, no]), can_loop). :- pragma termination_info(list:remove_dups((builtin:in)) = (builtin:out), finite(0, [no, yes, no]), can_loop). :- pragma termination_info(list:member((builtin:in), (builtin:in)), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(list:member((builtin:out), (builtin:in)), finite(-2, [no, no, yes]), cannot_loop). :- pragma termination_info(list:member((builtin:out), (builtin:in), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(list:length((builtin:in), (builtin:out)), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(list:length((builtin:in)) = (builtin:out), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(list:same_length((builtin:in), (list:output_list_skel)), infinite, cannot_loop). :- pragma termination_info(list:same_length((list:output_list_skel), (builtin:in)), infinite, cannot_loop). :- pragma termination_info(list:same_length((builtin:in), (builtin:in)), finite(0, [no, no, no, no]), cannot_loop). :- pragma termination_info(list:split_list((builtin:in), (builtin:in), (builtin:out), (builtin:out)), finite(0, [no, no, yes, no, no]), cannot_loop). :- pragma termination_info(list:take((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, no, yes, no]), cannot_loop). :- pragma termination_info(list:take_upto((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, no, yes, no]), cannot_loop). :- pragma termination_info(list:take_upto((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, no, yes, no]), cannot_loop). :- pragma termination_info(list:drop((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, no, yes, no]), cannot_loop). :- pragma termination_info(list:insert((builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no]), cannot_loop). :- pragma termination_info(list:insert((builtin:in), (builtin:out), (builtin:in)), finite(-2, [no, no, no, yes]), cannot_loop). :- pragma termination_info(list:insert((builtin:out), (builtin:out), (builtin:in)), finite(-2, [no, no, no, yes]), cannot_loop). :- pragma termination_info(list:insert((builtin:in), (builtin:in), (builtin:out)), finite(2, [no, yes, yes, no]), cannot_loop). :- pragma termination_info(list:delete((builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no]), cannot_loop). :- pragma termination_info(list:delete((builtin:in), (builtin:in), (builtin:out)), finite(-2, [no, yes, no, no]), cannot_loop). :- pragma termination_info(list:delete((builtin:in), (builtin:out), (builtin:out)), finite(-2, [no, yes, no, no]), cannot_loop). :- pragma termination_info(list:delete((builtin:out), (builtin:in), (builtin:in)), finite(2, [no, no, yes, yes]), cannot_loop). :- pragma termination_info(list:delete_all((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(list:delete_first((builtin:in), (builtin:in), (builtin:out)), finite(-2, [no, yes, no, no]), cannot_loop). :- pragma termination_info(list:delete_all((builtin:di), (builtin:in), (builtin:uo)), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(list:delete_all((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(list:delete_elems((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(list:delete_elems((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, no, no]), cannot_loop). :- pragma termination_info(list:replace((builtin:in), (builtin:in), (builtin:in), (builtin:in)), finite(0, [no, no, no, no, no]), cannot_loop). :- pragma termination_info(list:replace((builtin:in), (builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no, yes, no]), cannot_loop). :- pragma termination_info(list:replace_first((builtin:in), (builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no, yes, no]), cannot_loop). :- pragma termination_info(list:replace_all((builtin:in), (builtin:in), (builtin:in), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(list:replace_all((builtin:in), (builtin:in), (builtin:in)) = (builtin:out), infinite, cannot_loop). :- pragma termination_info(list:replace_nth((builtin:in), (builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no, yes, no]), cannot_loop). :- pragma termination_info(list:replace_nth_det((builtin:in), (builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no, yes, no]), can_loop). :- pragma termination_info(list:replace_nth_det((builtin:in), (builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, no, yes, no]), can_loop). :- pragma termination_info(list:sort_and_remove_dups((builtin:in), (builtin:out)), finite(0, [no, yes, no]), can_loop). :- pragma termination_info(list:sort_and_remove_dups((builtin:in)) = (builtin:out), finite(0, [no, yes, no]), can_loop). :- pragma termination_info(list:sort((builtin:in), (builtin:out)), finite(0, [no, yes, no]), can_loop). :- pragma termination_info(list:sort((builtin:in)) = (builtin:out), finite(0, [no, yes, no]), can_loop). :- pragma termination_info(list:reverse((builtin:in), (builtin:out)), finite(0, [no, yes, no]), can_loop). :- pragma termination_info(list:reverse((builtin:in)) = (builtin:out), finite(0, [no, yes, no]), can_loop). :- pragma termination_info(list:perm((builtin:in), (builtin:out)), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(list:nth_member_search((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, no, no, no]), cannot_loop). :- pragma termination_info(list:index0((builtin:in), (builtin:in), (builtin:out)), finite(-2, [no, yes, no, no]), cannot_loop). :- pragma termination_info(list:index1((builtin:in), (builtin:in), (builtin:out)), finite(-2, [no, yes, no, no]), cannot_loop). :- pragma termination_info(list:index0_det((builtin:in), (builtin:in), (builtin:out)), finite(-2, [no, yes, no, no]), can_loop). :- pragma termination_info(list:index1_det((builtin:in), (builtin:in), (builtin:out)), finite(-2, [no, yes, no, no]), can_loop). :- pragma termination_info(list:index0_det((builtin:in), (builtin:in)) = (builtin:out), finite(-2, [no, yes, no, no]), can_loop). :- pragma termination_info(list:index1_det((builtin:in), (builtin:in)) = (builtin:out), finite(-2, [no, yes, no, no]), can_loop). :- pragma termination_info(list:zip((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, yes, no]), cannot_loop). :- pragma termination_info(list:zip((builtin:in), (builtin:in)) = (builtin:out), finite(0, [no, yes, yes, no]), cannot_loop). :- pragma termination_info(list:duplicate((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:duplicate((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(list:condense((builtin:in), (builtin:out)), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(list:condense((builtin:in)) = (builtin:out), finite(0, [no, yes, no]), cannot_loop). :- pragma termination_info(list:chunk((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:chunk((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(list:sublist((builtin:in), (builtin:in)), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(list:all_same((builtin:in)), finite(0, [no, no]), cannot_loop). :- pragma termination_info(list:last((builtin:in), (builtin:out)), finite(-2, [no, yes, no]), cannot_loop). :- pragma termination_info(list:last_det((builtin:in), (builtin:out)), finite(-2, [no, yes, no]), can_loop). :- pragma termination_info(list:split_last((builtin:in), (builtin:out), (builtin:out)), finite(-2, [no, yes, no, no]), cannot_loop). :- pragma termination_info(list:split_last_det((builtin:in), (builtin:out), (builtin:out)), finite(-2, [no, yes, no, no]), can_loop). :- pragma termination_info(list:map((pred((builtin:in), (builtin:out)) is det), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:map((pred((builtin:in), (builtin:out)) is semidet), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:map((pred((builtin:in), (builtin:out)) is multi), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:map((pred((builtin:in), (builtin:out)) is nondet), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:map((pred((builtin:in), (builtin:in)) is semidet), (builtin:in), (builtin:in)), infinite, can_loop). :- pragma termination_info(list:map((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(list:map2((pred((builtin:in), (builtin:out), (builtin:out)) is det), (builtin:in), (builtin:out), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:map2((pred((builtin:in), (builtin:out), (builtin:out)) is semidet), (builtin:in), (builtin:out), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:map2((pred((builtin:in), (builtin:out), (builtin:out)) is multi), (builtin:in), (builtin:out), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:map2((pred((builtin:in), (builtin:out), (builtin:out)) is nondet), (builtin:in), (builtin:out), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:map2((pred((builtin:in), (builtin:in), (builtin:in)) is semidet), (builtin:in), (builtin:in), (builtin:in)), infinite, can_loop). :- pragma termination_info(list:map3((pred((builtin:in), (builtin:out), (builtin:out), (builtin:out)) is det), (builtin:in), (builtin:out), (builtin:out), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:map3((pred((builtin:in), (builtin:out), (builtin:out), (builtin:out)) is semidet), (builtin:in), (builtin:out), (builtin:out), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:map3((pred((builtin:in), (builtin:out), (builtin:out), (builtin:out)) is multi), (builtin:in), (builtin:out), (builtin:out), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:map3((pred((builtin:in), (builtin:out), (builtin:out), (builtin:out)) is nondet), (builtin:in), (builtin:out), (builtin:out), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:map3((pred((builtin:in), (builtin:in), (builtin:in), (builtin:in)) is semidet), (builtin:in), (builtin:in), (builtin:in), (builtin:in)), infinite, can_loop). :- pragma termination_info(list:map_corresponding((builtin:in), (builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(list:map_corresponding3((builtin:in), (builtin:in), (builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(list:filter_map_corresponding((func((builtin:in), (builtin:in)) = (builtin:out) is semidet), (builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(list:filter_map_corresponding3((func((builtin:in), (builtin:in), (builtin:in)) = (builtin:out) is semidet), (builtin:in), (builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(list:foldl((pred((builtin:in), (builtin:di), (builtin:uo)) is det), (builtin:in), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(list:foldl((pred((builtin:in), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:foldl((pred((builtin:in), (builtin:in), (builtin:out)) is semidet), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:foldl((pred((builtin:in), (builtin:in), (builtin:out)) is nondet), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:foldl((pred((builtin:in), (builtin:di), (builtin:uo)) is cc_multi), (builtin:in), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(list:foldl((pred((builtin:in), (builtin:in), (builtin:out)) is cc_multi), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:foldl((builtin:in), (builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(list:foldr((pred((builtin:in), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:foldr((pred((builtin:in), (builtin:in), (builtin:out)) is semidet), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:foldr((pred((builtin:in), (builtin:in), (builtin:out)) is nondet), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:foldr((pred((builtin:in), (builtin:di), (builtin:uo)) is cc_multi), (builtin:in), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(list:foldr((pred((builtin:in), (builtin:in), (builtin:out)) is cc_multi), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:foldr((builtin:in), (builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(list:foldl2((pred((builtin:in), (builtin:in), (builtin:out), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:in), (builtin:out), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:foldl2((pred((builtin:in), (builtin:in), (builtin:out), (builtin:in), (builtin:out)) is semidet), (builtin:in), (builtin:in), (builtin:out), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:foldl2((pred((builtin:in), (builtin:in), (builtin:out), (builtin:in), (builtin:out)) is nondet), (builtin:in), (builtin:in), (builtin:out), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:foldl2((pred((builtin:in), (builtin:in), (builtin:out), (builtin:mdi), (builtin:muo)) is det), (builtin:in), (builtin:in), (builtin:out), (builtin:mdi), (builtin:muo)), infinite, can_loop). :- pragma termination_info(list:foldl2((pred((builtin:in), (builtin:in), (builtin:out), (builtin:di), (builtin:uo)) is det), (builtin:in), (builtin:in), (builtin:out), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(list:foldl2((pred((builtin:in), (builtin:di), (builtin:uo), (builtin:di), (builtin:uo)) is det), (builtin:in), (builtin:di), (builtin:uo), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(list:foldl3((pred((builtin:in), (builtin:in), (builtin:out), (builtin:in), (builtin:out), (builtin:in), (builtin:out)) is det), (builtin:in), (builtin:in), (builtin:out), (builtin:in), (builtin:out), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:foldl3((pred((builtin:in), (builtin:in), (builtin:out), (builtin:in), (builtin:out), (builtin:in), (builtin:out)) is semidet), (builtin:in), (builtin:in), (builtin:out), (builtin:in), (builtin:out), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:foldl3((pred((builtin:in), (builtin:in), (builtin:out), (builtin:in), (builtin:out), (builtin:in), (builtin:out)) is nondet), (builtin:in), (builtin:in), (builtin:out), (builtin:in), (builtin:out), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:foldl3((pred((builtin:in), (builtin:in), (builtin:out), (builtin:in), (builtin:out), (builtin:di), (builtin:uo)) is det), (builtin:in), (builtin:in), (builtin:out), (builtin:in), (builtin:out), (builtin:di), (builtin:uo)), infinite, can_loop). :- pragma termination_info(list:map_foldl((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(list:map_foldl((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(list:map_foldl((pred((builtin:in), (builtin:out), (builtin:in), (builtin:out)) is semidet), (builtin:in), (builtin:out), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:map_foldl((pred((builtin:in), (builtin:out), (builtin:in), (builtin:out)) is nondet), (builtin:in), (builtin:out), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:map_foldl2((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(list:map_foldl2((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(list:map_foldl2((pred((builtin:in), (builtin:out), (builtin:in), (builtin:out), (builtin:in), (builtin:out)) is semidet), (builtin:in), (builtin:out), (builtin:in), (builtin:out), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:map_foldl2((pred((builtin:in), (builtin:out), (builtin:in), (builtin:out), (builtin:in), (builtin:out)) is nondet), (builtin:in), (builtin:out), (builtin:in), (builtin:out), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:filter((pred((builtin:in)) is semidet), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:filter((pred((builtin:in)) is semidet), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(list:filter((pred((builtin:in)) is semidet), (builtin:in), (builtin:out), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:filter_map((pred((builtin:in), (builtin:out)) is semidet), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:filter_map((func((builtin:in)) = (builtin:out) is semidet), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(list:filter_map((pred((builtin:in), (builtin:out)) is semidet), (builtin:in), (builtin:out), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:takewhile((pred((builtin:in)) is semidet), (builtin:in), (builtin:out), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:sort(builtin:in((builtin:comparison_pred)), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:sort((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(list:sort_and_remove_dups(builtin:in((builtin:comparison_pred)), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:remove_adjacent_dups(builtin:in((builtin:comparison_pred)), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:merge(builtin:in((builtin:comparison_pred)), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:merge((builtin:in), (builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(list:merge_and_remove_dups(builtin:in((builtin:comparison_pred)), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:merge_and_remove_dups((builtin:in), (builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(list:series((builtin:in), (pred((builtin:in)) is semidet), (func((builtin:in)) = (builtin:out) is det)) = (builtin:out), infinite, can_loop). :- pragma termination_info(list:'..'((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(list:det_head((builtin:in)) = (builtin:out), finite(-2, [no, yes, no]), can_loop). :- pragma termination_info(list:det_tail((builtin:in)) = (builtin:out), finite(-2, [no, yes, no]), can_loop). :- pragma termination_info(list:replace_nth_2((builtin:in), (builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no, yes, no]), cannot_loop). :- pragma termination_info(list:length_2((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, no, yes, no]), cannot_loop). :- pragma termination_info(list:reverse_2((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, yes, no]), can_loop). :- pragma termination_info(list:merge_sort((builtin:in), (builtin:out)), finite(0, [no, yes, no]), can_loop). :- pragma termination_info(list:merge_sort_2((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, no, yes, no]), can_loop). :- pragma termination_info(list:remove_dups_2((builtin:in), (builtin:in), (builtin:out)), finite(0, [no, yes, no, no]), can_loop). :- pragma termination_info(list:remove_adjacent_dups_2((builtin:in), (builtin:in), (builtin:out)), finite(2, [no, yes, yes, no]), cannot_loop). :- pragma termination_info(list:chunk_2((builtin:in), (builtin:in), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:all_same_2((builtin:in), (builtin:in)), finite(0, [no, no, no]), cannot_loop). :- pragma termination_info(list:remove_adjacent_dups_2(builtin:in((builtin:comparison_pred)), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(list:hosort(builtin:in((builtin:comparison_pred)), (builtin:in), (builtin:in), (builtin:out), (builtin:out)), infinite, can_loop).