:- module deconstruct. :- pragma termination_info(deconstruct:functor((builtin:in), builtin:in((deconstruct:do_not_allow)), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(deconstruct:functor((builtin:in), builtin:in((deconstruct:canonicalize)), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(deconstruct:functor((builtin:in), builtin:in((deconstruct:include_details_cc)), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(deconstruct:functor((builtin:in), (builtin:in), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(deconstruct:arg((builtin:in), builtin:in((deconstruct:do_not_allow)), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(deconstruct:arg((builtin:in), builtin:in((deconstruct:canonicalize)), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(deconstruct:arg((builtin:in), builtin:in((deconstruct:include_details_cc)), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(deconstruct:arg((builtin:in), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(deconstruct:named_arg((builtin:in), builtin:in((deconstruct:do_not_allow)), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(deconstruct:named_arg((builtin:in), builtin:in((deconstruct:canonicalize)), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(deconstruct:named_arg((builtin:in), builtin:in((deconstruct:include_details_cc)), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(deconstruct:named_arg((builtin:in), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(deconstruct:det_arg((builtin:in), builtin:in((deconstruct:do_not_allow)), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(deconstruct:det_arg((builtin:in), builtin:in((deconstruct:canonicalize)), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(deconstruct:det_arg((builtin:in), builtin:in((deconstruct:include_details_cc)), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(deconstruct:det_arg((builtin:in), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(deconstruct:det_named_arg((builtin:in), builtin:in((deconstruct:do_not_allow)), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(deconstruct:det_named_arg((builtin:in), builtin:in((deconstruct:canonicalize)), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(deconstruct:det_named_arg((builtin:in), builtin:in((deconstruct:include_details_cc)), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(deconstruct:det_named_arg((builtin:in), (builtin:in), (builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(deconstruct:deconstruct((builtin:in), builtin:in((deconstruct:do_not_allow)), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(deconstruct:deconstruct((builtin:in), builtin:in((deconstruct:canonicalize)), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(deconstruct:deconstruct((builtin:in), builtin:in((deconstruct:include_details_cc)), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(deconstruct:deconstruct((builtin:in), (builtin:in), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(deconstruct:limited_deconstruct((builtin:in), builtin:in((deconstruct:do_not_allow)), (builtin:in), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(deconstruct:limited_deconstruct((builtin:in), builtin:in((deconstruct:canonicalize)), (builtin:in), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(deconstruct:limited_deconstruct((builtin:in), builtin:in((deconstruct:include_details_cc)), (builtin:in), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(deconstruct:limited_deconstruct((builtin:in), (builtin:in), (builtin:in), (builtin:out), (builtin:out), (builtin:out)), infinite, cannot_loop). :- pragma termination_info(deconstruct:get_functor_info((builtin:in), (builtin:out)), infinite, can_loop).